All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<struct dohentry *>
      Src: /src/curl_fuzzer/fuzz_doh.cc:64,1
    - Dst: de_init
      Src: /src/curl_fuzzer/fuzz_doh.cc:65,1
    - Dst: doh_resp_decode
      Src: /src/curl_fuzzer/fuzz_doh.cc:66,1
    - Dst: de_cleanup
      Src: /src/curl_fuzzer/fuzz_doh.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - body
    - len
    - dnstype
    argTypes:
    - uint8_t*
    - size_t
    - DNStype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: RunDecode
    functionSourceFile: /src/curl_fuzzer/fuzz_doh.cc
    functionUses: 0
    functionsReached:
    - de_init
    - doh_resp_decode
    - reinterpret_cast<struct dohentry *>
    - de_cleanup
    linkageType: ''
    returnType: void
    signature: void RunDecode(const uint8_t *body, size_t len, DNStype dnstype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/curl_fuzzer/fuzz_doh.cc:78,1
    - Dst: std::string::c_str
      Src: /src/curl_fuzzer/fuzz_doh.cc:78,1
    - Dst: doh_req_encode
      Src: /src/curl_fuzzer/fuzz_doh.cc:83,1
    - Dst: std::string::c_str
      Src: /src/curl_fuzzer/fuzz_doh.cc:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - body
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: RunEncode
    functionSourceFile: /src/curl_fuzzer/fuzz_doh.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - doh_req_encode
    - std::strlen
    linkageType: ''
    returnType: void
    signature: void RunEncode(const uint8_t *body, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<struct dohentry *>
      Src: /src/curl_fuzzer/fuzz_doh.cc:64,1
    - Dst: de_init
      Src: /src/curl_fuzzer/fuzz_doh.cc:65,1
    - Dst: doh_resp_decode
      Src: /src/curl_fuzzer/fuzz_doh.cc:66,1
    - Dst: de_cleanup
      Src: /src/curl_fuzzer/fuzz_doh.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - body
    - len
    - dnstype
    argTypes:
    - uint8_t*
    - size_t
    - DNStype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: RunDecode
    functionSourceFile: /src/curl_fuzzer/fuzz_doh.cc
    functionUses: 0
    functionsReached:
    - de_init
    - doh_resp_decode
    - reinterpret_cast<struct dohentry *>
    - de_cleanup
    linkageType: ''
    returnType: void
    signature: void RunDecode(const uint8_t *body, size_t len, DNStype dnstype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/curl_fuzzer/fuzz_doh.cc:78,1
    - Dst: std::string::c_str
      Src: /src/curl_fuzzer/fuzz_doh.cc:78,1
    - Dst: doh_req_encode
      Src: /src/curl_fuzzer/fuzz_doh.cc:83,1
    - Dst: std::string::c_str
      Src: /src/curl_fuzzer/fuzz_doh.cc:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - body
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: RunEncode
    functionSourceFile: /src/curl_fuzzer/fuzz_doh.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - doh_req_encode
    - std::strlen
    linkageType: ''
    returnType: void
    signature: void RunEncode(const uint8_t *body, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/curl_fuzzer/fuzz_doh.cc:98,1
    - Dst: RunDecode
      Src: /src/curl_fuzzer/fuzz_doh.cc:109,1
    - Dst: RunDecode
      Src: /src/curl_fuzzer/fuzz_doh.cc:112,1
    - Dst: RunDecode
      Src: /src/curl_fuzzer/fuzz_doh.cc:115,1
    - Dst: RunEncode
      Src: /src/curl_fuzzer/fuzz_doh.cc:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 123
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/curl_fuzzer/fuzz_doh.cc
    functionUses: 0
    functionsReached:
    - signal
    - RunEncode
    - RunDecode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: timeout_handler
    functionSourceFile: /src/curl_fuzzer/standalone_fuzz_target_runner.cc
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void timeout_handler(int sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:65,1
    - Dst: atoi
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:67,1
    - Dst: memset
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:75,1
    - Dst: sigemptyset
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:77,1
    - Dst: sigaction
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: install_timeout_handler
    functionSourceFile: /src/curl_fuzzer/standalone_fuzz_target_runner.cc
    functionUses: 0
    functionsReached:
    - sigemptyset
    - sigaction
    - getenv
    - atoi
    - memset
    linkageType: ''
    returnType: void
    signature: void install_timeout_handler(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:91,1
    - Dst: fopen
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:93,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:95,1
    - Dst: printf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:100,1
    - Dst: fseek
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:102,1
    - Dst: ftell
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:103,1
    - Dst: fseek
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:104,1
    - Dst: calloc
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:106,1
    - Dst: fread
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:108,1
    - Dst: printf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:110,1
    - Dst: sigsetjmp
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:114,1
    - Dst: alarm
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:116,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:117,1
    - Dst: alarm
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:118,1
    - Dst: printf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:121,1
    - Dst: alarm
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:125,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:126,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:132,1
    - Dst: printf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:134,1
    - Dst: free
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:136,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:139,1
    - Dst: fclose
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:145,1
    - Dst: printf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:147,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - path
    - verbose
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 148
    functionName: run_one_file
    functionSourceFile: /src/curl_fuzzer/standalone_fuzz_target_runner.cc
    functionUses: 0
    functionsReached:
    - fclose
    - fseek
    - printf
    - alarm
    - calloc
    - LLVMFuzzerTestOneInput
    - free
    - fopen
    - ftell
    - sigsetjmp
    - fread
    - fprintf
    linkageType: ''
    returnType: void
    signature: void run_one_file(const char *path, bool verbose)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fs::recursive_directory_iterator
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:167,1
    - Dst: fs::recursive_directory_iterator
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:170,1
    - Dst: auto::increment
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:171,1
    - Dst: auto::is_regular_file
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:172,1
    - Dst: isatty
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:176,1
    - Dst: fileno
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:176,1
    - Dst: std::max<size_t>
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:177,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:181,1
    - Dst: std::error_code::clear
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:183,1
    - Dst: fs::recursive_directory_iterator
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:184,1
    - Dst: fs::recursive_directory_iterator
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:187,1
    - Dst: auto::increment
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:188,1
    - Dst: auto::is_regular_file
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:189,1
    - Dst: run_one_file
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:190,1
    - Dst: auto::path
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:190,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:193,1
    - Dst: fflush
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:196,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:199,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:205,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:207,1
    - Dst: std::error_code::message
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:208,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - dir_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 210
    functionName: process_directory
    functionSourceFile: /src/curl_fuzzer/standalone_fuzz_target_runner.cc
    functionUses: 0
    functionsReached:
    - auto::increment
    - std::error_code::message
    - auto::is_regular_file
    - fs::recursive_directory_iterator
    - std::max<size_t>
    - auto::path
    - fflush
    - std::error_code::clear
    - isatty
    - run_one_file
    - fileno
    - fprintf
    linkageType: ''
    returnType: void
    signature: void process_directory(const char *dir_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: install_timeout_handler
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:232,1
    - Dst: Curl_http_decode_status
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:236,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:238,1
    - Dst: std::error_code::message
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:239,1
    - Dst: fs::is_directory
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:243,1
    - Dst: process_directory
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:244,1
    - Dst: run_one_file
      Src: /src/curl_fuzzer/standalone_fuzz_target_runner.cc:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 252
    functionName: main
    functionSourceFile: /src/curl_fuzzer/standalone_fuzz_target_runner.cc
    functionUses: 0
    functionsReached:
    - fs::is_directory
    - std::error_code::message
    - process_directory
    - run_one_file
    - install_timeout_handler
    - Curl_http_decode_status
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:49,1
    - Dst: printf
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:49,1
    - Dst: DEBUG
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:54,1
    - Dst: printf
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:54,1
    - Dst: DEBUG
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:61,1
    - Dst: printf
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:61,1
    - Dst: strnlen
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:65,1
    - Dst: DEBUG
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:67,1
    - Dst: printf
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:67,1
    - Dst: DEBUG
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:75,1
    - Dst: printf
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:75,1
    - Dst: strlen
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:85,1
    - Dst: DEBUG
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:86,1
    - Dst: printf
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:86,1
    - Dst: strlen
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:87,1
    - Dst: DEBUG
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:93,1
    - Dst: printf
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:93,1
    - Dst: DEBUG
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:94,1
    - Dst: printf
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:94,1
    - Dst: Curl_fnmatch
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:97,1
    - Dst: DEBUG
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:100,1
    - Dst: printf
      Src: /src/curl_fuzzer/fuzz_fnmatch.cc:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 105
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/curl_fuzzer/fuzz_fnmatch.cc
    functionUses: 1
    functionsReached:
    - strnlen
    - printf
    - Curl_fnmatch
    - strlen
    - DEBUG
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - verbose
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: FV_PRINTF
    functionSourceFile: /src/curl_fuzzer/fuzz_bufq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FV_PRINTF(verbose, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: FTRY
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTRY(FUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - COND
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 497
    functionName: FCHECK
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FCHECK(COND)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUZZP
    - ','
    - OPTNAME
    - ','
    - OPTVALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: FSET_OPTION
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSET_OPTION(FUZZP, OPTNAME, OPTVALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FUZZP
    - ','
    - OPTNAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 504
    functionName: FCHECK_OPTION_UNSET
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FCHECK_OPTION_UNSET(FUZZP, OPTNAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUZZP
    - ','
    - TLVNAME
    - ','
    - OPTNAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 511
    functionName: FSINGLETONTLV
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSINGLETONTLV(FUZZP, TLVNAME, OPTNAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SMAN
    - ','
    - TLVNAME
    - ','
    - INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: FRESPONSETLV
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FRESPONSETLV(SMAN, TLVNAME, INDEX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUZZP
    - ','
    - TLVNAME
    - ','
    - OPTNAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 528
    functionName: FU32TLV
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU32TLV(FUZZP, TLVNAME, OPTNAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FUZZP
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 533
    functionName: FV_PRINTF
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FV_PRINTF(FUZZP, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: FUZZ_MAX
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUZZ_MAX(A, B)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/curl_fuzzer/curl_fuzzer.cc:42,1
    - Dst: memset
      Src: /src/curl_fuzzer/curl_fuzzer.cc:45,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:53,1
    - Dst: fuzz_initialize_fuzz_data
      Src: /src/curl_fuzzer/curl_fuzzer.cc:53,1
    - Dst: fuzz_get_first_tlv
      Src: /src/curl_fuzzer/curl_fuzzer.cc:55,1
    - Dst: fuzz_get_next_tlv
      Src: /src/curl_fuzzer/curl_fuzzer.cc:57,1
    - Dst: fuzz_parse_tlv
      Src: /src/curl_fuzzer/curl_fuzzer.cc:60,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:74,1
    - Dst: fuzz_set_easy_options
      Src: /src/curl_fuzzer/curl_fuzzer.cc:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:85,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:89,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:93,1
    - Dst: fuzz_handle_transfer
      Src: /src/curl_fuzzer/curl_fuzzer.cc:97,1
    - Dst: fuzz_terminate_fuzz_data
      Src: /src/curl_fuzzer/curl_fuzzer.cc:101,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 105
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 1
    functionsReached:
    - fuzz_set_easy_options
    - FTRY
    - fuzz_initialize_fuzz_data
    - signal
    - fuzz_get_next_tlv
    - fuzz_parse_tlv
    - fuzz_handle_transfer
    - curl_easy_setopt
    - memset
    - fuzz_get_first_tlv
    - fuzz_terminate_fuzz_data
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: to_u32
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t to_u32(const uint8_t b[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: to_u16
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t to_u16(const uint8_t b[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl_fuzzer/curl_fuzzer.cc:138,1
    - Dst: curl_easy_init
      Src: /src/curl_fuzzer/curl_fuzzer.cc:142,1
    - Dst: FCHECK
      Src: /src/curl_fuzzer/curl_fuzzer.cc:143,1
    - Dst: getenv
      Src: /src/curl_fuzzer/curl_fuzzer.cc:156,1
    - Dst: FCHECK
      Src: /src/curl_fuzzer/curl_fuzzer.cc:158,1
    - Dst: setenv
      Src: /src/curl_fuzzer/curl_fuzzer.cc:158,1
    - Dst: FCHECK
      Src: /src/curl_fuzzer/curl_fuzzer.cc:159,1
    - Dst: setenv
      Src: /src/curl_fuzzer/curl_fuzzer.cc:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - fuzz
    - data
    - data_len
    argTypes:
    - FUZZ_DATA*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 164
    functionName: fuzz_initialize_fuzz_data
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 1
    functionsReached:
    - setenv
    - getenv
    - curl_easy_init
    - FCHECK
    - memset
    linkageType: ''
    returnType: int
    signature: "int fuzz_initialize_fuzz_data(FUZZ_DATA *fuzz,\n                              const
      uint8_t *data,\n                              size_t data_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:176,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:176,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:179,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:179,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:182,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:182,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:187,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:187,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:190,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:190,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:193,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:193,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:196,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:196,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:199,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:199,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:202,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:202,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:205,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:205,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:208,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:208,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:211,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:211,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:214,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:214,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:217,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:217,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:218,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:218,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:222,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:222,1
    - Dst: curl_slist_append
      Src: /src/curl_fuzzer/curl_fuzzer.cc:226,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:227,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:227,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:230,1
    - Dst: fuzz_set_allowed_protocols
      Src: /src/curl_fuzzer/curl_fuzzer.cc:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - fuzz
    argTypes:
    - FUZZ_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 235
    functionName: fuzz_set_easy_options
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 1
    functionsReached:
    - FTRY
    - curl_slist_append
    - fuzz_set_allowed_protocols
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int fuzz_set_easy_options(FUZZ_DATA *fuzz)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_free
      Src: /src/curl_fuzzer/curl_fuzzer.cc:244,1
    - Dst: close
      Src: /src/curl_fuzzer/curl_fuzzer.cc:248,1
    - Dst: curl_slist_free_all
      Src: /src/curl_fuzzer/curl_fuzzer.cc:254,1
    - Dst: curl_slist_free_all
      Src: /src/curl_fuzzer/curl_fuzzer.cc:259,1
    - Dst: curl_slist_free_all
      Src: /src/curl_fuzzer/curl_fuzzer.cc:264,1
    - Dst: curl_mime_free
      Src: /src/curl_fuzzer/curl_fuzzer.cc:269,1
    - Dst: curl_easy_cleanup
      Src: /src/curl_fuzzer/curl_fuzzer.cc:274,1
    - Dst: curl_formfree
      Src: /src/curl_fuzzer/curl_fuzzer.cc:283,1
    - Dst: fuzz_free
      Src: /src/curl_fuzzer/curl_fuzzer.cc:289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - fuzz
    argTypes:
    - FUZZ_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 291
    functionName: fuzz_terminate_fuzz_data
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 1
    functionsReached:
    - fuzz_free
    - curl_mime_free
    - curl_formfree
    - curl_slist_free_all
    - curl_easy_cleanup
    - close
    linkageType: ''
    returnType: void
    signature: void fuzz_terminate_fuzz_data(FUZZ_DATA *fuzz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/curl_fuzzer/curl_fuzzer.cc:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: fuzz_free
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void fuzz_free(void **ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_init
      Src: /src/curl_fuzzer/curl_fuzzer.cc:335,1
    - Dst: curl_multi_add_handle
      Src: /src/curl_fuzzer/curl_fuzzer.cc:338,1
    - Dst: curl_multi_perform
      Src: /src/curl_fuzzer/curl_fuzzer.cc:341,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer.cc:342,1
    - Dst: FD_ZERO
      Src: /src/curl_fuzzer/curl_fuzzer.cc:348,1
    - Dst: FD_ZERO
      Src: /src/curl_fuzzer/curl_fuzzer.cc:349,1
    - Dst: FD_ZERO
      Src: /src/curl_fuzzer/curl_fuzzer.cc:350,1
    - Dst: curl_multi_fdset
      Src: /src/curl_fuzzer/curl_fuzzer.cc:359,1
    - Dst: fprintf
      Src: /src/curl_fuzzer/curl_fuzzer.cc:361,1
    - Dst: FD_SET
      Src: /src/curl_fuzzer/curl_fuzzer.cc:369,1
    - Dst: FUZZ_MAX
      Src: /src/curl_fuzzer/curl_fuzzer.cc:373,1
    - Dst: fuzz_select
      Src: /src/curl_fuzzer/curl_fuzzer.cc:378,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer.cc:382,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer.cc:386,1
    - Dst: FD_ISSET
      Src: /src/curl_fuzzer/curl_fuzzer.cc:410,1
    - Dst: fuzz_send_next_response
      Src: /src/curl_fuzzer/curl_fuzzer.cc:411,1
    - Dst: curl_multi_perform
      Src: /src/curl_fuzzer/curl_fuzzer.cc:419,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl_fuzzer/curl_fuzzer.cc:423,1
    - Dst: curl_multi_cleanup
      Src: /src/curl_fuzzer/curl_fuzzer.cc:427,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 1
    argNames:
    - fuzz
    argTypes:
    - FUZZ_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 430
    functionName: fuzz_handle_transfer
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 1
    functionsReached:
    - FUZZ_MAX
    - fuzz_send_next_response
    - fprintf
    - curl_multi_remove_handle
    - curl_multi_perform
    - FD_ZERO
    - FV_PRINTF
    - fuzz_select
    - curl_multi_init
    - FD_SET
    - curl_multi_cleanup
    - FD_ISSET
    - curl_multi_add_handle
    - curl_multi_fdset
    linkageType: ''
    returnType: int
    signature: int fuzz_handle_transfer(FUZZ_DATA *fuzz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/curl_fuzzer/curl_fuzzer.cc:448,1
    - Dst: printf
      Src: /src/curl_fuzzer/curl_fuzzer.cc:450,1
    - Dst: fwrite
      Src: /src/curl_fuzzer/curl_fuzzer.cc:451,1
    - Dst: printf
      Src: /src/curl_fuzzer/curl_fuzzer.cc:452,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer.cc:457,1
    - Dst: write
      Src: /src/curl_fuzzer/curl_fuzzer.cc:465,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer.cc:478,1
    - Dst: shutdown
      Src: /src/curl_fuzzer/curl_fuzzer.cc:482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - fuzz
    - sman
    argTypes:
    - FUZZ_DATA*
    - FUZZ_SOCKET_MANAGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 487
    functionName: fuzz_send_next_response
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 1
    functionsReached:
    - read
    - printf
    - fwrite
    - FV_PRINTF
    - write
    - shutdown
    linkageType: ''
    returnType: int
    signature: int fuzz_send_next_response(FUZZ_DATA *fuzz, FUZZ_SOCKET_MANAGER *sman)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select
      Src: /src/curl_fuzzer/curl_fuzzer.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - nfds
    - readfds
    - writefds
    - exceptfds
    - timeout
    argTypes:
    - int
    - fd_set*
    - fd_set*
    - fd_set*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: fuzz_select
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 1
    functionsReached:
    - select
    linkageType: ''
    returnType: int
    signature: "int fuzz_select(int nfds,\n                fd_set *readfds,\n                fd_set
      *writefds,\n                fd_set *exceptfds,\n                struct timeval
      *timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:576,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:576,1
    - Dst: FTRY
      Src: /src/curl_fuzzer/curl_fuzzer.cc:579,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/curl_fuzzer.cc:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - fuzz
    argTypes:
    - FUZZ_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 584
    functionName: fuzz_set_allowed_protocols
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer.cc
    functionUses: 1
    functionsReached:
    - FTRY
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int fuzz_set_allowed_protocols(FUZZ_DATA *fuzz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: FUZZ_VALID_SOCK
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_callback.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUZZ_VALID_SOCK(s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:65,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:68,1
    - Dst: socketpair
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:72,1
    - Dst: FUZZ_VALID_SOCK
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:77,1
    - Dst: FUZZ_VALID_SOCK
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:77,1
    - Dst: printf
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:81,1
    - Dst: close
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:88,1
    - Dst: close
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:89,1
    - Dst: fcntl
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:95,1
    - Dst: fcntl
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:96,1
    - Dst: close
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:100,1
    - Dst: close
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:101,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:117,1
    - Dst: write
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:119,1
    - Dst: close
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:121,1
    - Dst: close
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:124,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:133,1
    - Dst: shutdown
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 3
    argNames:
    - ptr
    - purpose
    - address
    argTypes:
    - void*
    - curlsocktype
    - struct curl_sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 143
    functionName: fuzz_open_socket
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_callback.cc
    functionUses: 0
    functionsReached:
    - printf
    - fcntl
    - shutdown
    - FV_PRINTF
    - FUZZ_VALID_SOCK
    - socketpair
    - write
    - close
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t fuzz_open_socket(void *ptr,\n                               curlsocktype
      purpose,\n                               struct curl_sockaddr *address)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - curlfd
    - purpose
    argTypes:
    - void*
    - curl_socket_t
    - curlsocktype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: fuzz_sockopt_callback
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_callback.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fuzz_sockopt_callback(void *ptr,\n                          curl_socket_t
      curlfd,\n                          curlsocktype purpose)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:187,1
    - Dst: memcpy
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - ptr
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 202
    functionName: fuzz_read_callback
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_callback.cc
    functionUses: 0
    functionsReached:
    - FV_PRINTF
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t fuzz_read_callback(char *buffer,\n                          size_t
      size,\n                          size_t nitems,\n                          void
      *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:223,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_callback.cc:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - contents
    - size
    - nmemb
    - ptr
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 237
    functionName: fuzz_write_callback
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_callback.cc
    functionUses: 0
    functionsReached:
    - FV_PRINTF
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t fuzz_write_callback(void *contents,\n                           size_t
      size,\n                           size_t nmemb,\n                           void
      *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/curl_fuzzer/fuzz_bufq.cc:47,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:48,1
    - Dst: mprotect
      Src: /src/curl_fuzzer/fuzz_bufq.cc:56,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (err == 0)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (buf != (unsigned char *)-1)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: allocate_template_buffer
    functionSourceFile: /src/curl_fuzzer/fuzz_bufq.cc
    functionUses: 0
    functionsReached:
    - mprotect
    - assert
    - mmap
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *allocate_template_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - next_byte
    - buf
    argTypes:
    - unsigned char
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: compute_buffer
    functionSourceFile: /src/curl_fuzzer/fuzz_bufq.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *compute_buffer(unsigned char next_byte, unsigned char
      *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:89,1
    - Dst: compute_buffer
      Src: /src/curl_fuzzer/fuzz_bufq.cc:93,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:94,1
    - Dst: memcmp
      Src: /src/curl_fuzzer/fuzz_bufq.cc:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - writer_ctx
    - buf
    - len
    - pnwritten
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts:
    - condition: (memcmp(buf, compare, *pnwritten) == 0)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: bufq_writer_cb
    functionSourceFile: /src/curl_fuzzer/fuzz_bufq.cc
    functionUses: 0
    functionsReached:
    - compute_buffer
    - FV_PRINTF
    - memcmp
    - assert
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode bufq_writer_cb(void *writer_ctx,\n                       const
      unsigned char *buf, size_t len,\n                       size_t *pnwritten)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:121,1
    - Dst: compute_buffer
      Src: /src/curl_fuzzer/fuzz_bufq.cc:125,1
    - Dst: memcpy
      Src: /src/curl_fuzzer/fuzz_bufq.cc:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - reader_ctx
    - buf
    - len
    - pnread
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: bufq_reader_cb
    functionSourceFile: /src/curl_fuzzer/fuzz_bufq.cc
    functionUses: 0
    functionsReached:
    - compute_buffer
    - FV_PRINTF
    - memcpy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode bufq_reader_cb(void *reader_ctx,\n                              unsigned
      char *buf, size_t len,\n                              size_t *pnread)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl_fuzzer/fuzz_bufq.cc:138,1
    - Dst: allocate_template_buffer
      Src: /src/curl_fuzzer/fuzz_bufq.cc:139,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:145,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:146,1
    - Dst: FuzzedDataProvider*::ConsumeBool
      Src: /src/curl_fuzzer/fuzz_bufq.cc:147,1
    - Dst: FuzzedDataProvider*::ConsumeBool
      Src: /src/curl_fuzzer/fuzz_bufq.cc:148,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:149,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:151,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:154,1
    - Dst: Curl_bufcp_init
      Src: /src/curl_fuzzer/fuzz_bufq.cc:155,1
    - Dst: Curl_bufq_initp
      Src: /src/curl_fuzzer/fuzz_bufq.cc:156,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:158,1
    - Dst: Curl_bufq_init
      Src: /src/curl_fuzzer/fuzz_bufq.cc:159,1
    - Dst: FuzzedDataProvider*::remaining_bytes
      Src: /src/curl_fuzzer/fuzz_bufq.cc:165,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:167,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:169,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl_fuzzer/fuzz_bufq.cc:169,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:170,1
    - Dst: Curl_bufq_len
      Src: /src/curl_fuzzer/fuzz_bufq.cc:170,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:174,1
    - Dst: Curl_bufq_reset
      Src: /src/curl_fuzzer/fuzz_bufq.cc:175,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:182,1
    - Dst: Curl_bufq_peek
      Src: /src/curl_fuzzer/fuzz_bufq.cc:185,1
    - Dst: compute_buffer
      Src: /src/curl_fuzzer/fuzz_bufq.cc:187,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:188,1
    - Dst: memcmp
      Src: /src/curl_fuzzer/fuzz_bufq.cc:188,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:190,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:196,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:197,1
    - Dst: Curl_bufq_peek_at
      Src: /src/curl_fuzzer/fuzz_bufq.cc:200,1
    - Dst: compute_buffer
      Src: /src/curl_fuzzer/fuzz_bufq.cc:202,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:203,1
    - Dst: memcmp
      Src: /src/curl_fuzzer/fuzz_bufq.cc:203,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:205,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:211,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:212,1
    - Dst: malloc
      Src: /src/curl_fuzzer/fuzz_bufq.cc:213,1
    - Dst: Curl_bufq_read
      Src: /src/curl_fuzzer/fuzz_bufq.cc:215,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:217,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:219,1
    - Dst: compute_buffer
      Src: /src/curl_fuzzer/fuzz_bufq.cc:220,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:222,1
    - Dst: memcmp
      Src: /src/curl_fuzzer/fuzz_bufq.cc:222,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:224,1
    - Dst: free
      Src: /src/curl_fuzzer/fuzz_bufq.cc:226,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:231,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:232,1
    - Dst: Curl_bufq_slurp
      Src: /src/curl_fuzzer/fuzz_bufq.cc:235,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:237,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:240,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:244,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:250,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:251,1
    - Dst: Curl_bufq_sipn
      Src: /src/curl_fuzzer/fuzz_bufq.cc:254,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:256,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:258,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:261,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:267,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:268,1
    - Dst: Curl_bufq_pass
      Src: /src/curl_fuzzer/fuzz_bufq.cc:271,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:273,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:276,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:280,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:286,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:287,1
    - Dst: Curl_bufq_skip
      Src: /src/curl_fuzzer/fuzz_bufq.cc:288,1
    - Dst: FuzzedDataProvider*::ConsumeIntegralInRange
      Src: /src/curl_fuzzer/fuzz_bufq.cc:296,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:297,1
    - Dst: compute_buffer
      Src: /src/curl_fuzzer/fuzz_bufq.cc:298,1
    - Dst: Curl_bufq_write
      Src: /src/curl_fuzzer/fuzz_bufq.cc:300,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:302,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:305,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/fuzz_bufq.cc:307,1
    - Dst: assert
      Src: /src/curl_fuzzer/fuzz_bufq.cc:314,1
    - Dst: Curl_bufq_free
      Src: /src/curl_fuzzer/fuzz_bufq.cc:319,1
    - Dst: Curl_bufcp_free
      Src: /src/curl_fuzzer/fuzz_bufq.cc:322,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 120
    argCount: 1
    argNames:
    - fuzz
    argTypes:
    - FuzzedDataProvider*
    assertStmts:
    - condition: (Curl_bufq_is_empty(&q) == !buffer_bytes)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (buffer_bytes >= 0)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (memcmp(pbuf, compare, plen) == 0)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (false)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (buffer_bytes >= 0)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (buffer_bytes <= chunk_size * max_chunks)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (Curl_bufq_len(&q) == buffer_bytes)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (buffer_bytes <= chunk_size * max_chunks)
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (buffer_bytes <= chunk_size * max_chunks)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (memcmp(pbuf, compare, plen) == 0)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - condition: (memcmp(buf, compare, read) == 0)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    constantsTouched: []
    func_position:
      end: 326
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 326
    functionName: fuzz_handle_bufq
    functionSourceFile: /src/curl_fuzzer/fuzz_bufq.cc
    functionUses: 0
    functionsReached:
    - Curl_bufcp_free
    - Curl_bufq_slurp
    - Curl_bufq_initp
    - getenv
    - memcmp
    - Curl_bufq_peek_at
    - Curl_bufq_sipn
    - Curl_bufq_init
    - Curl_bufq_pass
    - Curl_bufq_write
    - allocate_template_buffer
    - Curl_bufq_len
    - malloc
    - FuzzedDataProvider*::ConsumeBool
    - Curl_bufq_free
    - assert
    - Curl_bufq_is_empty
    - Curl_bufq_peek
    - Curl_bufq_read
    - FuzzedDataProvider*::remaining_bytes
    - Curl_bufq_reset
    - free
    - FV_PRINTF
    - Curl_bufq_skip
    - FuzzedDataProvider*::ConsumeIntegralInRange
    - compute_buffer
    - Curl_bufcp_init
    linkageType: ''
    returnType: int
    signature: int fuzz_handle_bufq(FuzzedDataProvider *fuzz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/curl_fuzzer/fuzz_bufq.cc:338,1
    - Dst: fuzz_handle_bufq
      Src: /src/curl_fuzzer/fuzz_bufq.cc:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 345
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/curl_fuzzer/fuzz_bufq.cc
    functionUses: 1
    functionsReached:
    - signal
    - fuzz_handle_bufq
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl_fuzzer/fuzz_url.cc:38,1
    - Dst: malloc
      Src: /src/curl_fuzzer/fuzz_url.cc:42,1
    - Dst: memcpy
      Src: /src/curl_fuzzer/fuzz_url.cc:44,1
    - Dst: curl_url_set
      Src: /src/curl_fuzzer/fuzz_url.cc:47,1
    - Dst: free
      Src: /src/curl_fuzzer/fuzz_url.cc:48,1
    - Dst: curl_url_cleanup
      Src: /src/curl_fuzzer/fuzz_url.cc:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 55
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/curl_fuzzer/fuzz_url.cc
    functionUses: 1
    functionsReached:
    - curl_url_set
    - memcpy
    - curl_url_cleanup
    - free
    - malloc
    - curl_url
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_get_tlv_comn
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fuzz
    - tlv
    argTypes:
    - FUZZ_DATA*
    - TLV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: fuzz_get_first_tlv
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_tlv.cc
    functionUses: 1
    functionsReached:
    - fuzz_get_tlv_comn
    linkageType: ''
    returnType: int
    signature: "int fuzz_get_first_tlv(FUZZ_DATA *fuzz,\n                       TLV
      *tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_get_tlv_comn
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fuzz
    - tlv
    argTypes:
    - FUZZ_DATA*
    - TLV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: fuzz_get_next_tlv
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_tlv.cc
    functionUses: 1
    functionsReached:
    - fuzz_get_tlv_comn
    linkageType: ''
    returnType: int
    signature: "int fuzz_get_next_tlv(FUZZ_DATA *fuzz,\n                      TLV
      *tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_u16
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:71,1
    - Dst: to_u32
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:72,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:75,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:83,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:84,1
    - Dst: FV_PRINTF
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - fuzz
    - tlv
    argTypes:
    - FUZZ_DATA*
    - TLV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 93
    functionName: fuzz_get_tlv_comn
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_tlv.cc
    functionUses: 2
    functionsReached:
    - to_u16
    - FV_PRINTF
    - to_u32
    linkageType: ''
    returnType: int
    signature: "int fuzz_get_tlv_comn(FUZZ_DATA *fuzz,\n                      TLV
      *tlv)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:108,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:109,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:110,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:111,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:112,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:113,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:114,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:115,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:116,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:117,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:118,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:120,1
    - Dst: FRESPONSETLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:121,1
    - Dst: FCHECK_OPTION_UNSET
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:127,1
    - Dst: FSET_OPTION
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:132,1
    - Dst: FSET_OPTION
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:133,1
    - Dst: fuzz_tlv_to_string
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:146,1
    - Dst: curl_slist_append
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:151,1
    - Dst: fuzz_tlv_to_string
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:166,1
    - Dst: curl_slist_append
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:171,1
    - Dst: curl_mime_init
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:180,1
    - Dst: curl_mime_addpart
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:183,1
    - Dst: fuzz_add_mime_part
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:186,1
    - Dst: FCHECK_OPTION_UNSET
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:191,1
    - Dst: fuzz_tlv_to_string
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:192,1
    - Dst: FSET_OPTION
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:193,1
    - Dst: FCHECK_OPTION_UNSET
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:197,1
    - Dst: fuzz_setup_http_post
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:198,1
    - Dst: FSET_OPTION
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:199,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:203,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:204,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:205,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:206,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:207,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:208,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:209,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:210,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:211,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:212,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:213,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:214,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:215,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:216,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:217,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:218,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:219,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:220,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:221,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:222,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:223,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:224,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:225,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:226,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:227,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:229,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:230,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:231,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:232,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:233,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:234,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:235,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:236,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:237,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:238,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:239,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:240,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:241,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:242,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:243,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:244,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:245,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:246,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:247,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:248,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:249,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:250,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:251,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:252,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:253,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:254,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:255,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:256,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:257,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:258,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:259,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:260,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:261,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:262,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:263,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:264,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:265,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:266,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:267,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:268,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:269,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:270,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:271,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:272,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:273,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:274,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:275,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:276,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:277,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:278,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:279,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:280,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:281,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:282,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:283,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:284,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:285,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:286,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:287,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:288,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:289,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:290,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:291,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:292,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:293,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:294,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:295,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:296,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:297,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:298,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:299,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:300,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:301,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:302,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:303,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:304,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:305,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:306,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:307,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:308,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:309,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:310,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:311,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:312,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:313,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:314,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:315,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:316,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:317,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:318,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:319,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:320,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:321,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:322,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:323,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:324,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:326,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:327,1
    - Dst: FU32TLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:328,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:332,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:333,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:334,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:335,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:336,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:337,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:338,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:339,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:340,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:341,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:342,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:343,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:344,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:345,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:346,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:347,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:348,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:349,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:350,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:351,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:352,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:353,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:354,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:355,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:356,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:357,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:358,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:359,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:360,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:361,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:362,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:363,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:364,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:365,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:366,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:367,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:368,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:369,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:370,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:371,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:372,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:373,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:374,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:375,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:376,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:377,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:378,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:379,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:380,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:381,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:382,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:383,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:384,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:385,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:386,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:387,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:388,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:389,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:390,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:391,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:392,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:393,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:394,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:395,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:396,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:397,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:398,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:399,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:400,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:401,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:402,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:403,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:404,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:405,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:406,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:407,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:408,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:409,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:410,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:411,1
    - Dst: FSINGLETONTLV
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:412,1
    - Dst: fuzz_free
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:425,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 288
    argCount: 2
    argNames:
    - fuzz
    - tlv
    argTypes:
    - FUZZ_DATA*
    - TLV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 428
    functionName: fuzz_parse_tlv
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_tlv.cc
    functionUses: 1
    functionsReached:
    - fuzz_free
    - FSET_OPTION
    - FU32TLV
    - FRESPONSETLV
    - fuzz_setup_http_post
    - curl_mime_addpart
    - curl_slist_append
    - fuzz_add_mime_part
    - fuzz_tlv_to_string
    - curl_mime_init
    - FCHECK_OPTION_UNSET
    - FSINGLETONTLV
    linkageType: ''
    returnType: int
    signature: int fuzz_parse_tlv(FUZZ_DATA *fuzz, TLV *tlv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:438,1
    - Dst: memcpy
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tlv
    argTypes:
    - TLV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 446
    functionName: fuzz_tlv_to_string
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_tlv.cc
    functionUses: 1
    functionsReached:
    - malloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *fuzz_tlv_to_string(TLV *tlv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_tlv_to_string
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:455,1
    - Dst: curl_formadd
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:464,1
    - Dst: strlen
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - fuzz
    - tlv
    argTypes:
    - FUZZ_DATA*
    - TLV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 475
    functionName: fuzz_setup_http_post
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_tlv.cc
    functionUses: 1
    functionsReached:
    - fuzz_tlv_to_string
    - strlen
    - curl_formadd
    linkageType: ''
    returnType: void
    signature: void fuzz_setup_http_post(FUZZ_DATA *fuzz, TLV *tlv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:487,1
    - Dst: fuzz_get_first_tlv
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:498,1
    - Dst: fuzz_get_next_tlv
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:500,1
    - Dst: fuzz_parse_mime_tlv
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:503,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - src_tlv
    - part
    argTypes:
    - TLV*
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 519
    functionName: fuzz_add_mime_part
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_tlv.cc
    functionUses: 1
    functionsReached:
    - fuzz_get_first_tlv
    - fuzz_parse_mime_tlv
    - fuzz_get_next_tlv
    - memset
    linkageType: ''
    returnType: int
    signature: int fuzz_add_mime_part(TLV *src_tlv, curl_mimepart *part)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_tlv_to_string
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:531,1
    - Dst: curl_mime_name
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:532,1
    - Dst: fuzz_free
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:533,1
    - Dst: curl_mime_data
      Src: /src/curl_fuzzer/curl_fuzzer_tlv.cc:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - part
    - tlv
    argTypes:
    - curl_mimepart*
    - TLV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 553
    functionName: fuzz_parse_mime_tlv
    functionSourceFile: /src/curl_fuzzer/curl_fuzzer_tlv.cc
    functionUses: 1
    functionsReached:
    - fuzz_free
    - fuzz_tlv_to_string
    - curl_mime_name
    - curl_mime_data
    linkageType: ''
    returnType: int
    signature: int fuzz_parse_mime_tlv(curl_mimepart *part, TLV *tlv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: proto_fuzzer::MockConnection::MockConnection
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockConnection(const MockConnection&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(const MockConnection&)'
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MockConnection
    signature: MockConnection & operator=(const MockConnection&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: proto_fuzzer::MockConnection::MockConnection
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockConnection(const MockConnection&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(const MockConnection&)'
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MockConnection
    signature: MockConnection & operator=(const MockConnection&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl_fuzzer/proto_fuzzer/fuzzer_main.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: CurlGlobalBootstrap
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/fuzzer_main.cc
    functionUses: 0
    functionsReached:
    - curl_global_init
    linkageType: ''
    returnType: void
    signature: void CurlGlobalBootstrap()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl_fuzzer/proto_fuzzer/fuzzer_main.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: CurlGlobalBootstrap
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/fuzzer_main.cc
    functionUses: 0
    functionsReached:
    - curl_global_init
    linkageType: ''
    returnType: void
    signature: void CurlGlobalBootstrap()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::ScenarioRunner::ScenarioRunner
      Src: /src/curl_fuzzer/proto_fuzzer/fuzzer_main.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: DEFINE_BINARY_PROTO_FUZZER
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/fuzzer_main.cc
    functionUses: 0
    functionsReached:
    - proto_fuzzer::ScenarioRunner::ScenarioRunner
    linkageType: ''
    returnType: void
    signature: void DEFINE_BINARY_PROTO_FUZZER(const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: operator()(CURL* h) const noexcept
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void operator()(CURL* h) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - curl::fuzzer::proto::Scheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: proto_fuzzer::SchemePrefix
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * SchemePrefix(curl::fuzzer::proto::Scheme scheme)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: scheme
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:57,1
    - Dst: std::make_unique<MockServer>
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:60,1
    - Dst: std::make_unique<WebSocketMockServer>
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: proto_fuzzer::MakeMockServerForScenario
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<WebSocketMockServer>
    - std::make_unique<MockServer>
    - scheme
    linkageType: ''
    returnType: std::unique_ptr<MockServerBase>
    signature: std::unique_ptr<MockServerBase> MakeMockServerForScenario(const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: operator()(CURL* h) const noexcept
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void operator()(CURL* h) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - curl::fuzzer::proto::Scheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: proto_fuzzer::SchemePrefix
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * SchemePrefix(curl::fuzzer::proto::Scheme scheme)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: scheme
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:57,1
    - Dst: std::make_unique<MockServer>
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:60,1
    - Dst: std::make_unique<WebSocketMockServer>
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: proto_fuzzer::MakeMockServerForScenario
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<WebSocketMockServer>
    - std::make_unique<MockServer>
    - scheme
    linkageType: ''
    returnType: std::unique_ptr<MockServerBase>
    signature: std::unique_ptr<MockServerBase> MakeMockServerForScenario(const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: proto_fuzzer::ScenarioRunner::ScenarioRunner
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScenarioRunner::ScenarioRunner()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: ScenarioRunner::~ScenarioRunner()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScenarioRunner::~ScenarioRunner()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SchemePrefix
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:94,1
    - Dst: scheme
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:94,1
    - Dst: host_path
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:95,1
    - Dst: MakeMockServerForScenario
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:99,1
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:110,1
    - Dst: options_size
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:110,1
    - Dst: ApplyBaselineOptions
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:112,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:112,1
    - Dst: std::string
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:114,1
    - Dst: host_path
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:114,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:115,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:115,1
    - Dst: std::string::c_str
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:115,1
    - Dst: std::unique_ptr::Install
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:117,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:117,1
    - Dst: options
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:119,1
    - Dst: ApplySetOption
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:122,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:122,1
    - Dst: std::unique_ptr::DriveScenario
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:125,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:125,1
    - Dst: CurlEasyPtr::reset
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:127,1
    - Dst: curl_slist_free_all
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 130
    functionName: proto_fuzzer::ScenarioRunner::Run
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - MakeMockServerForScenario
    - std::string
    - host_path
    - scheme
    - std::string::c_str
    - std::unique_ptr::DriveScenario
    - options_size
    - ApplyBaselineOptions
    - options
    - SchemePrefix
    - ApplySetOption
    - CurlEasyPtr::reset
    - curl_slist_free_all
    - CurlEasyPtr::get
    - curl_easy_setopt
    - std::vector::reserve
    - std::unique_ptr::Install
    linkageType: ''
    returnType: int
    signature: int ScenarioRunner::Run(const curl::fuzzer::proto::Scenario& scenario)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: operator()(CURL* h) const noexcept
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void operator()(CURL* h) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - curl::fuzzer::proto::Scheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: proto_fuzzer::SchemePrefix
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * SchemePrefix(curl::fuzzer::proto::Scheme scheme)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: scheme
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:57,1
    - Dst: std::make_unique<MockServer>
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:60,1
    - Dst: std::make_unique<WebSocketMockServer>
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: proto_fuzzer::MakeMockServerForScenario
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<WebSocketMockServer>
    - std::make_unique<MockServer>
    - scheme
    linkageType: ''
    returnType: std::unique_ptr<MockServerBase>
    signature: std::unique_ptr<MockServerBase> MakeMockServerForScenario(const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: operator()(CURL* h) const noexcept
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void operator()(CURL* h) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - curl::fuzzer::proto::Scheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: proto_fuzzer::SchemePrefix
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * SchemePrefix(curl::fuzzer::proto::Scheme scheme)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: scheme
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:57,1
    - Dst: std::make_unique<MockServer>
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:60,1
    - Dst: std::make_unique<WebSocketMockServer>
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: proto_fuzzer::MakeMockServerForScenario
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<WebSocketMockServer>
    - std::make_unique<MockServer>
    - scheme
    linkageType: ''
    returnType: std::unique_ptr<MockServerBase>
    signature: std::unique_ptr<MockServerBase> MakeMockServerForScenario(const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: proto_fuzzer::ScenarioRunner::ScenarioRunner
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScenarioRunner::ScenarioRunner()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: ScenarioRunner::~ScenarioRunner()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScenarioRunner::~ScenarioRunner()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SchemePrefix
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:94,1
    - Dst: scheme
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:94,1
    - Dst: host_path
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:95,1
    - Dst: MakeMockServerForScenario
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:99,1
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:110,1
    - Dst: options_size
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:110,1
    - Dst: ApplyBaselineOptions
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:112,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:112,1
    - Dst: std::string
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:114,1
    - Dst: host_path
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:114,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:115,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:115,1
    - Dst: std::string::c_str
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:115,1
    - Dst: std::unique_ptr::Install
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:117,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:117,1
    - Dst: options
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:119,1
    - Dst: ApplySetOption
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:122,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:122,1
    - Dst: std::unique_ptr::DriveScenario
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:125,1
    - Dst: CurlEasyPtr::get
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:125,1
    - Dst: CurlEasyPtr::reset
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:127,1
    - Dst: curl_slist_free_all
      Src: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 130
    functionName: proto_fuzzer::ScenarioRunner::Run
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    functionUses: 0
    functionsReached:
    - MakeMockServerForScenario
    - std::string
    - host_path
    - scheme
    - std::string::c_str
    - std::unique_ptr::DriveScenario
    - options_size
    - ApplyBaselineOptions
    - options
    - SchemePrefix
    - ApplySetOption
    - CurlEasyPtr::reset
    - curl_slist_free_all
    - CurlEasyPtr::get
    - curl_easy_setopt
    - std::vector::reserve
    - std::unique_ptr::Install
    linkageType: ''
    returnType: int
    signature: int ScenarioRunner::Run(const curl::fuzzer::proto::Scenario& scenario)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:73,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:78,1
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:81,1
    - Dst: substr
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - ' request'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: proto_fuzzer::ExtractWebSocketKey
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - find
    - size
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string ExtractWebSocketKey(const std::string& request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::ComputeWebSocketAcceptKey
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: proto_fuzzer::ComputeWebSocketAccept
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - proto_fuzzer::ComputeWebSocketAcceptKey
    linkageType: ''
    returnType: std::string
    signature: std::string ComputeWebSocketAccept(const std::string& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:102,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:103,1
    - Dst: on_readable_size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:103,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:105,1
    - Dst: on_readable
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:105,1
    - Dst: std::vector::size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:107,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:108,1
    - Dst: server_frames_size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:108,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: proto_fuzzer::SerializeWebSocketFrame
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: server_frames
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' conn'
    argTypes:
    - curl::fuzzer::proto::Connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: proto_fuzzer::BuildFrameChunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - proto_fuzzer::SerializeWebSocketFrame
    - server_frames
    - on_readable
    - on_readable_size
    - std::vector::size
    - std::min<std::size_t>
    - static_cast<int>
    - server_frames_size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> BuildFrameChunks(const curl::fuzzer::proto::Connection&
      conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:118,1
    - Dst: option_id
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:119,1
    - Dst: value_case
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:122,1
    - Dst: uint_value
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: proto_fuzzer::ScenarioRequestsManualWsDrive
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - uint_value
    - option_id
    - value_case
    - options
    linkageType: ''
    returnType: bool
    signature: bool ScenarioRequestsManualWsDrive(const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WebSocketMockServer*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:140,1
    - Dst: auto*::easy_handle
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:142,1
    - Dst: curl_ws_meta
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:144,1
    - Dst: auto*::ws_probe_fired
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:145,1
    - Dst: auto*::MarkWsProbeFired
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:146,1
    - Dst: std::fill
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:148,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - size
    - nmemb
    - userdata
    argTypes:
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: proto_fuzzer::WebSocketWriteCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<WebSocketMockServer*>
    - auto*::MarkWsProbeFired
    - auto*::easy_handle
    - std::fill
    - curl_ws_send
    - curl_ws_meta
    - auto*::ws_probe_fired
    linkageType: ''
    returnType: size_t
    signature: size_t WebSocketWriteCallback(void* /*contents*/, size_t size, size_t
      nmemb, void* userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_recv
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: proto_fuzzer::DrainWsRecv
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - curl_ws_recv
    linkageType: ''
    returnType: void
    signature: void DrainWsRecv(CURL* easy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:73,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:78,1
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:81,1
    - Dst: substr
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - ' request'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: proto_fuzzer::ExtractWebSocketKey
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - find
    - size
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string ExtractWebSocketKey(const std::string& request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::ComputeWebSocketAcceptKey
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: proto_fuzzer::ComputeWebSocketAccept
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - proto_fuzzer::ComputeWebSocketAcceptKey
    linkageType: ''
    returnType: std::string
    signature: std::string ComputeWebSocketAccept(const std::string& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:102,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:103,1
    - Dst: on_readable_size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:103,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:105,1
    - Dst: on_readable
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:105,1
    - Dst: std::vector::size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:107,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:108,1
    - Dst: server_frames_size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:108,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: proto_fuzzer::SerializeWebSocketFrame
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: server_frames
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' conn'
    argTypes:
    - curl::fuzzer::proto::Connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: proto_fuzzer::BuildFrameChunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - proto_fuzzer::SerializeWebSocketFrame
    - server_frames
    - on_readable
    - on_readable_size
    - std::vector::size
    - std::min<std::size_t>
    - static_cast<int>
    - server_frames_size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> BuildFrameChunks(const curl::fuzzer::proto::Connection&
      conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:118,1
    - Dst: option_id
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:119,1
    - Dst: value_case
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:122,1
    - Dst: uint_value
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: proto_fuzzer::ScenarioRequestsManualWsDrive
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - uint_value
    - option_id
    - value_case
    - options
    linkageType: ''
    returnType: bool
    signature: bool ScenarioRequestsManualWsDrive(const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WebSocketMockServer*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:140,1
    - Dst: auto*::easy_handle
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:142,1
    - Dst: curl_ws_meta
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:144,1
    - Dst: auto*::ws_probe_fired
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:145,1
    - Dst: auto*::MarkWsProbeFired
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:146,1
    - Dst: std::fill
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:148,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - size
    - nmemb
    - userdata
    argTypes:
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: proto_fuzzer::WebSocketWriteCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<WebSocketMockServer*>
    - auto*::MarkWsProbeFired
    - auto*::easy_handle
    - std::fill
    - curl_ws_send
    - curl_ws_meta
    - auto*::ws_probe_fired
    linkageType: ''
    returnType: size_t
    signature: size_t WebSocketWriteCallback(void* /*contents*/, size_t size, size_t
      nmemb, void* userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_recv
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: proto_fuzzer::DrainWsRecv
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - curl_ws_recv
    linkageType: ''
    returnType: void
    signature: void DrainWsRecv(CURL* easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: proto_fuzzer::WebSocketMockServer::WebSocketMockServer
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::WebSocketMockServer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: WebSocketMockServer::~WebSocketMockServer()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::~WebSocketMockServer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::MockServerBase::Install
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:192,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:195,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:196,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: proto_fuzzer::WebSocketMockServer::Install
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - proto_fuzzer::MockServerBase::Install
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::Install(CURL* easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: proto_fuzzer::WebSocketMockServer::ws_probe_fired
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::ws_probe_fired() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: proto_fuzzer::WebSocketMockServer::MarkWsProbeFired
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::MarkWsProbeFired()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    functionName: proto_fuzzer::WebSocketMockServer::easy_handle
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURL
    signature: CURL * WebSocketMockServer::easy_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frames
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: proto_fuzzer::WebSocketMockServer::SetFrames
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::SetFrames(std::vector<std::string> frames)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - manual
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: proto_fuzzer::WebSocketMockServer::SetManualDelivery
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::SetManualDelivery(bool manual)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: proto_fuzzer::WebSocketMockServer::manual_delivery
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::manual_delivery() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: proto_fuzzer::WebSocketMockServer::handshake_sent
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::handshake_sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: proto_fuzzer::WebSocketMockServer::has_more_chunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::has_more_chunks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:234,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: proto_fuzzer::WebSocketMockServer::remaining_chunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t WebSocketMockServer::remaining_chunks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: '& WebSocketMockServer::PeekChunk(std::size_t index) const'
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & WebSocketMockServer::PeekChunk(std::size_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: proto_fuzzer::WebSocketMockServer::ConsumeChunk
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::ConsumeChunk()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MockConnection>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:258,1
    - Dst: ok
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:259,1
    - Dst: reset
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:260,1
    - Dst: ApplyPendingBackpressure
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:263,1
    - Dst: take_client_fd
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: proto_fuzzer::WebSocketMockServer::HandleOpenSocket
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<MockConnection>
    - reset
    - take_client_fd
    - ok
    - ApplyPendingBackpressure
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t WebSocketMockServer::HandleOpenSocket()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DrainIncoming
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:278,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - unsigned char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: proto_fuzzer::WebSocketMockServer::PushRawBytes
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - WriteAll
    - DrainIncoming
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::PushRawBytes(const unsigned char* data, std::size_t
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:286,1
    - Dst: DrainIncoming
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:289,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:291,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:292,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:292,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:292,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:292,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:294,1
    - Dst: ShutdownWrite
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 297
    functionName: proto_fuzzer::WebSocketMockServer::DeliverNextChunk
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - DrainIncoming
    - data
    - WriteAll
    - reinterpret_cast<const unsigned char*>
    - size
    - ShutdownWrite
    - empty
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::DeliverNextChunk()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadAvailable
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:307,1
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:308,1
    - Dst: ExtractWebSocketKey
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:311,1
    - Dst: std::string::empty
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:314,1
    - Dst: std::string
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:314,1
    - Dst: ComputeWebSocketAccept
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:314,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:321,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:321,1
    - Dst: std::string::data
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:321,1
    - Dst: std::string::size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 324
    functionName: proto_fuzzer::WebSocketMockServer::TryAdvanceHandshake
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - std::string
    - find
    - ExtractWebSocketKey
    - ComputeWebSocketAccept
    - std::string::empty
    - WriteAll
    - ReadAvailable
    - std::string::size
    - reinterpret_cast<const unsigned char*>
    - std::string::data
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::TryAdvanceHandshake()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::WebSocketMockServer::SetManualDelivery
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:336,1
    - Dst: ScenarioRequestsManualWsDrive
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:336,1
    - Dst: proto_fuzzer::WebSocketMockServer::SetFrames
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:339,1
    - Dst: BuildFrameChunks
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:339,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:339,1
    - Dst: curl_multi_perform
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:346,1
    - Dst: proto_fuzzer::WebSocketMockServer::handshake_sent
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:351,1
    - Dst: proto_fuzzer::WebSocketMockServer::TryAdvanceHandshake
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:352,1
    - Dst: WaitOnMultiFdset
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:360,1
    - Dst: proto_fuzzer::WebSocketMockServer::manual_delivery
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:367,1
    - Dst: proto_fuzzer::WebSocketMockServer::handshake_sent
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:367,1
    - Dst: proto_fuzzer::WebSocketMockServer::has_more_chunks
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:367,1
    - Dst: proto_fuzzer::WebSocketMockServer::DeliverNextChunk
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:368,1
    - Dst: proto_fuzzer::WebSocketMockServer::manual_delivery
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:377,1
    - Dst: proto_fuzzer::WebSocketMockServer::handshake_sent
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:377,1
    - Dst: proto_fuzzer::WebSocketMockServer::remaining_chunks
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:383,1
    - Dst: PeekChunk
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:384,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:385,1
    - Dst: proto_fuzzer::WebSocketMockServer::PushRawBytes
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:386,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:386,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:386,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:386,1
    - Dst: proto_fuzzer::WebSocketMockServer::ConsumeChunk
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:388,1
    - Dst: DrainWsRecv
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:389,1
    - Dst: DrainWsRecv
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:392,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:394,1
    - Dst: flag_matrix
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:398,1
    - Dst: curl_ws_start_frame
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:411,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:411,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:413,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:414,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:415,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:416,1
    - Dst: unaligned_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:421,1
    - Dst: curl_ws_start_frame
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:426,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:428,1
    - Dst: std::fill
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:434,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:435,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:436,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:437,1
    - Dst: raw_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:441,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:447,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:448,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:449,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 3
    argNames:
    - multi
    - easy
    - ' scenario'
    argTypes:
    - CURLM*
    - CURL*
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 452
    functionName: proto_fuzzer::WebSocketMockServer::RunLoop
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - connection
    - BuildFrameChunks
    - proto_fuzzer::WebSocketMockServer::has_more_chunks
    - flag_matrix
    - proto_fuzzer::WebSocketMockServer::manual_delivery
    - proto_fuzzer::WebSocketMockServer::remaining_chunks
    - PeekChunk
    - proto_fuzzer::WebSocketMockServer::SetManualDelivery
    - curl_ws_start_frame
    - ScenarioRequestsManualWsDrive
    - WaitOnMultiFdset
    - reinterpret_cast<const unsigned char*>
    - curl_ws_send
    - proto_fuzzer::WebSocketMockServer::TryAdvanceHandshake
    - unaligned_send
    - proto_fuzzer::WebSocketMockServer::DeliverNextChunk
    - std::fill
    - size
    - proto_fuzzer::WebSocketMockServer::ConsumeChunk
    - empty
    - static_cast<curl_off_t>
    - proto_fuzzer::WebSocketMockServer::PushRawBytes
    - curl_multi_perform
    - data
    - DrainWsRecv
    - raw_send
    - proto_fuzzer::WebSocketMockServer::handshake_sent
    - proto_fuzzer::WebSocketMockServer::SetFrames
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::RunLoop(CURLM* multi, CURL* easy, const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:73,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:78,1
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:81,1
    - Dst: substr
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - ' request'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: proto_fuzzer::ExtractWebSocketKey
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - find
    - size
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string ExtractWebSocketKey(const std::string& request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::ComputeWebSocketAcceptKey
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: proto_fuzzer::ComputeWebSocketAccept
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - proto_fuzzer::ComputeWebSocketAcceptKey
    linkageType: ''
    returnType: std::string
    signature: std::string ComputeWebSocketAccept(const std::string& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:102,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:103,1
    - Dst: on_readable_size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:103,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:105,1
    - Dst: on_readable
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:105,1
    - Dst: std::vector::size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:107,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:108,1
    - Dst: server_frames_size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:108,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: proto_fuzzer::SerializeWebSocketFrame
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: server_frames
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' conn'
    argTypes:
    - curl::fuzzer::proto::Connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: proto_fuzzer::BuildFrameChunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - proto_fuzzer::SerializeWebSocketFrame
    - server_frames
    - on_readable
    - on_readable_size
    - std::vector::size
    - std::min<std::size_t>
    - static_cast<int>
    - server_frames_size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> BuildFrameChunks(const curl::fuzzer::proto::Connection&
      conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:118,1
    - Dst: option_id
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:119,1
    - Dst: value_case
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:122,1
    - Dst: uint_value
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: proto_fuzzer::ScenarioRequestsManualWsDrive
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - uint_value
    - option_id
    - value_case
    - options
    linkageType: ''
    returnType: bool
    signature: bool ScenarioRequestsManualWsDrive(const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WebSocketMockServer*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:140,1
    - Dst: auto*::easy_handle
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:142,1
    - Dst: curl_ws_meta
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:144,1
    - Dst: auto*::ws_probe_fired
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:145,1
    - Dst: auto*::MarkWsProbeFired
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:146,1
    - Dst: std::fill
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:148,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - size
    - nmemb
    - userdata
    argTypes:
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: proto_fuzzer::WebSocketWriteCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<WebSocketMockServer*>
    - auto*::MarkWsProbeFired
    - auto*::easy_handle
    - std::fill
    - curl_ws_send
    - curl_ws_meta
    - auto*::ws_probe_fired
    linkageType: ''
    returnType: size_t
    signature: size_t WebSocketWriteCallback(void* /*contents*/, size_t size, size_t
      nmemb, void* userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_recv
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: proto_fuzzer::DrainWsRecv
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - curl_ws_recv
    linkageType: ''
    returnType: void
    signature: void DrainWsRecv(CURL* easy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:73,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:78,1
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:81,1
    - Dst: substr
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - ' request'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: proto_fuzzer::ExtractWebSocketKey
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - find
    - size
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string ExtractWebSocketKey(const std::string& request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::ComputeWebSocketAcceptKey
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: proto_fuzzer::ComputeWebSocketAccept
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - proto_fuzzer::ComputeWebSocketAcceptKey
    linkageType: ''
    returnType: std::string
    signature: std::string ComputeWebSocketAccept(const std::string& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:102,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:103,1
    - Dst: on_readable_size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:103,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:105,1
    - Dst: on_readable
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:105,1
    - Dst: std::vector::size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:107,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:108,1
    - Dst: server_frames_size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:108,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: proto_fuzzer::SerializeWebSocketFrame
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: server_frames
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' conn'
    argTypes:
    - curl::fuzzer::proto::Connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: proto_fuzzer::BuildFrameChunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - proto_fuzzer::SerializeWebSocketFrame
    - server_frames
    - on_readable
    - on_readable_size
    - std::vector::size
    - std::min<std::size_t>
    - static_cast<int>
    - server_frames_size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> BuildFrameChunks(const curl::fuzzer::proto::Connection&
      conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:118,1
    - Dst: option_id
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:119,1
    - Dst: value_case
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:122,1
    - Dst: uint_value
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' scenario'
    argTypes:
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: proto_fuzzer::ScenarioRequestsManualWsDrive
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - uint_value
    - option_id
    - value_case
    - options
    linkageType: ''
    returnType: bool
    signature: bool ScenarioRequestsManualWsDrive(const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WebSocketMockServer*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:140,1
    - Dst: auto*::easy_handle
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:142,1
    - Dst: curl_ws_meta
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:144,1
    - Dst: auto*::ws_probe_fired
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:145,1
    - Dst: auto*::MarkWsProbeFired
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:146,1
    - Dst: std::fill
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:148,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - size
    - nmemb
    - userdata
    argTypes:
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: proto_fuzzer::WebSocketWriteCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<WebSocketMockServer*>
    - auto*::MarkWsProbeFired
    - auto*::easy_handle
    - std::fill
    - curl_ws_send
    - curl_ws_meta
    - auto*::ws_probe_fired
    linkageType: ''
    returnType: size_t
    signature: size_t WebSocketWriteCallback(void* /*contents*/, size_t size, size_t
      nmemb, void* userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_recv
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: proto_fuzzer::DrainWsRecv
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - curl_ws_recv
    linkageType: ''
    returnType: void
    signature: void DrainWsRecv(CURL* easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: proto_fuzzer::WebSocketMockServer::WebSocketMockServer
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::WebSocketMockServer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: WebSocketMockServer::~WebSocketMockServer()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::~WebSocketMockServer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::MockServerBase::Install
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:192,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:195,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:196,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: proto_fuzzer::WebSocketMockServer::Install
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - proto_fuzzer::MockServerBase::Install
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::Install(CURL* easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: proto_fuzzer::WebSocketMockServer::ws_probe_fired
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::ws_probe_fired() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: proto_fuzzer::WebSocketMockServer::MarkWsProbeFired
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::MarkWsProbeFired()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    functionName: proto_fuzzer::WebSocketMockServer::easy_handle
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURL
    signature: CURL * WebSocketMockServer::easy_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frames
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: proto_fuzzer::WebSocketMockServer::SetFrames
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::SetFrames(std::vector<std::string> frames)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - manual
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: proto_fuzzer::WebSocketMockServer::SetManualDelivery
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::SetManualDelivery(bool manual)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: proto_fuzzer::WebSocketMockServer::manual_delivery
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::manual_delivery() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: proto_fuzzer::WebSocketMockServer::handshake_sent
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::handshake_sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: proto_fuzzer::WebSocketMockServer::has_more_chunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::has_more_chunks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:234,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: proto_fuzzer::WebSocketMockServer::remaining_chunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t WebSocketMockServer::remaining_chunks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: '& WebSocketMockServer::PeekChunk(std::size_t index) const'
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & WebSocketMockServer::PeekChunk(std::size_t index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: proto_fuzzer::WebSocketMockServer::ConsumeChunk
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::ConsumeChunk()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MockConnection>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:258,1
    - Dst: ok
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:259,1
    - Dst: reset
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:260,1
    - Dst: ApplyPendingBackpressure
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:263,1
    - Dst: take_client_fd
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: proto_fuzzer::WebSocketMockServer::HandleOpenSocket
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<MockConnection>
    - reset
    - take_client_fd
    - ok
    - ApplyPendingBackpressure
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t WebSocketMockServer::HandleOpenSocket()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DrainIncoming
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:278,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - unsigned char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: proto_fuzzer::WebSocketMockServer::PushRawBytes
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached:
    - WriteAll
    - DrainIncoming
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::PushRawBytes(const unsigned char* data, std::size_t
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:286,1
    - Dst: DrainIncoming
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:289,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:291,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:292,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:292,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:292,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:292,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:294,1
    - Dst: ShutdownWrite
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 297
    functionName: proto_fuzzer::WebSocketMockServer::DeliverNextChunk
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached:
    - DrainIncoming
    - data
    - WriteAll
    - reinterpret_cast<const unsigned char*>
    - size
    - ShutdownWrite
    - empty
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::DeliverNextChunk()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadAvailable
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:307,1
    - Dst: find
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:308,1
    - Dst: ExtractWebSocketKey
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:311,1
    - Dst: std::string::empty
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:314,1
    - Dst: std::string
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:314,1
    - Dst: ComputeWebSocketAccept
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:314,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:321,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:321,1
    - Dst: std::string::data
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:321,1
    - Dst: std::string::size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 324
    functionName: proto_fuzzer::WebSocketMockServer::TryAdvanceHandshake
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 1
    functionsReached:
    - std::string
    - find
    - ExtractWebSocketKey
    - ComputeWebSocketAccept
    - std::string::empty
    - WriteAll
    - ReadAvailable
    - std::string::size
    - reinterpret_cast<const unsigned char*>
    - std::string::data
    linkageType: ''
    returnType: bool
    signature: bool WebSocketMockServer::TryAdvanceHandshake()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::WebSocketMockServer::SetManualDelivery
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:336,1
    - Dst: ScenarioRequestsManualWsDrive
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:336,1
    - Dst: proto_fuzzer::WebSocketMockServer::SetFrames
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:339,1
    - Dst: BuildFrameChunks
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:339,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:339,1
    - Dst: curl_multi_perform
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:346,1
    - Dst: proto_fuzzer::WebSocketMockServer::handshake_sent
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:351,1
    - Dst: proto_fuzzer::WebSocketMockServer::TryAdvanceHandshake
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:352,1
    - Dst: WaitOnMultiFdset
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:360,1
    - Dst: proto_fuzzer::WebSocketMockServer::manual_delivery
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:367,1
    - Dst: proto_fuzzer::WebSocketMockServer::handshake_sent
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:367,1
    - Dst: proto_fuzzer::WebSocketMockServer::has_more_chunks
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:367,1
    - Dst: proto_fuzzer::WebSocketMockServer::DeliverNextChunk
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:368,1
    - Dst: proto_fuzzer::WebSocketMockServer::manual_delivery
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:377,1
    - Dst: proto_fuzzer::WebSocketMockServer::handshake_sent
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:377,1
    - Dst: proto_fuzzer::WebSocketMockServer::remaining_chunks
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:383,1
    - Dst: PeekChunk
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:384,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:385,1
    - Dst: proto_fuzzer::WebSocketMockServer::PushRawBytes
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:386,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:386,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:386,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:386,1
    - Dst: proto_fuzzer::WebSocketMockServer::ConsumeChunk
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:388,1
    - Dst: DrainWsRecv
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:389,1
    - Dst: DrainWsRecv
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:392,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:394,1
    - Dst: flag_matrix
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:398,1
    - Dst: curl_ws_start_frame
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:411,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:411,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:413,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:414,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:415,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:416,1
    - Dst: unaligned_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:421,1
    - Dst: curl_ws_start_frame
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:426,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:428,1
    - Dst: std::fill
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:434,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:435,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:436,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:437,1
    - Dst: raw_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:441,1
    - Dst: curl_ws_send
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:447,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:448,1
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc:449,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 3
    argNames:
    - multi
    - easy
    - ' scenario'
    argTypes:
    - CURLM*
    - CURL*
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 452
    functionName: proto_fuzzer::WebSocketMockServer::RunLoop
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
    functionUses: 0
    functionsReached:
    - connection
    - BuildFrameChunks
    - proto_fuzzer::WebSocketMockServer::has_more_chunks
    - flag_matrix
    - proto_fuzzer::WebSocketMockServer::manual_delivery
    - proto_fuzzer::WebSocketMockServer::remaining_chunks
    - PeekChunk
    - proto_fuzzer::WebSocketMockServer::SetManualDelivery
    - curl_ws_start_frame
    - ScenarioRequestsManualWsDrive
    - WaitOnMultiFdset
    - reinterpret_cast<const unsigned char*>
    - curl_ws_send
    - proto_fuzzer::WebSocketMockServer::TryAdvanceHandshake
    - unaligned_send
    - proto_fuzzer::WebSocketMockServer::DeliverNextChunk
    - std::fill
    - size
    - proto_fuzzer::WebSocketMockServer::ConsumeChunk
    - empty
    - static_cast<curl_off_t>
    - proto_fuzzer::WebSocketMockServer::PushRawBytes
    - curl_multi_perform
    - data
    - DrainWsRecv
    - raw_send
    - proto_fuzzer::WebSocketMockServer::handshake_sent
    - proto_fuzzer::WebSocketMockServer::SetFrames
    linkageType: ''
    returnType: void
    signature: void WebSocketMockServer::RunLoop(CURLM* multi, CURL* easy, const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: proto_fuzzer::MockServerBase::MockServerBase
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServerBase(const MockServerBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: '& operator=(const MockServerBase&)'
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MockServerBase
    signature: MockServerBase & operator=(const MockServerBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: proto_fuzzer::MockServerBase::MockServerBase
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServerBase(const MockServerBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: '& operator=(const MockServerBase&)'
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MockServerBase
    signature: MockServerBase & operator=(const MockServerBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: proto_fuzzer::FdFitsInFdSet
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FdFitsInFdSet(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:45,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:46,1
    - Dst: on_readable_size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:46,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:48,1
    - Dst: on_readable
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:48,1
    - Dst: std::vector::size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:50,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:51,1
    - Dst: server_frames_size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:51,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: proto_fuzzer::SerializeWebSocketFrame
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: server_frames
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' conn'
    argTypes:
    - curl::fuzzer::proto::Connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: proto_fuzzer::BuildChunkList
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - proto_fuzzer::SerializeWebSocketFrame
    - server_frames
    - on_readable
    - on_readable_size
    - std::vector::size
    - std::min<std::size_t>
    - static_cast<int>
    - server_frames_size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> BuildChunkList(const curl::fuzzer::proto::Connection&
      conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: proto_fuzzer::FdFitsInFdSet
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FdFitsInFdSet(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:45,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:46,1
    - Dst: on_readable_size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:46,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:48,1
    - Dst: on_readable
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:48,1
    - Dst: std::vector::size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:50,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:51,1
    - Dst: server_frames_size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:51,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: proto_fuzzer::SerializeWebSocketFrame
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: server_frames
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' conn'
    argTypes:
    - curl::fuzzer::proto::Connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: proto_fuzzer::BuildChunkList
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - proto_fuzzer::SerializeWebSocketFrame
    - server_frames
    - on_readable
    - on_readable_size
    - std::vector::size
    - std::min<std::size_t>
    - static_cast<int>
    - server_frames_size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> BuildChunkList(const curl::fuzzer::proto::Connection&
      conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:69,1
    - Dst: FdFitsInFdSet
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:74,1
    - Dst: FdFitsInFdSet
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:74,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:75,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:76,1
    - Dst: fcntl
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:81,1
    - Dst: fcntl
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:82,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:83,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 91
    functionName: proto_fuzzer::MockConnection::MockConnection
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - close
    - FdFitsInFdSet
    - fcntl
    - socketpair
    linkageType: ''
    returnType: void
    signature: void MockConnection::MockConnection()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:96,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: MockConnection::~MockConnection()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void MockConnection::~MockConnection()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: proto_fuzzer::MockConnection::ok
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool MockConnection::ok() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: proto_fuzzer::MockConnection::server_fd
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MockConnection::server_fd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<curl_socket_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: proto_fuzzer::MockConnection::take_client_fd
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<curl_socket_t>
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t MockConnection::take_client_fd()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rtp_write
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:129,1
    - Dst: static_cast<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - unsigned char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: proto_fuzzer::MockConnection::WriteAll
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - rtp_write
    linkageType: ''
    returnType: bool
    signature: bool MockConnection::WriteAll(const unsigned char* data, std::size_t
      size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_cli_ftp_upload_read
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:156,1
    - Dst: static_cast<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 162
    functionName: proto_fuzzer::MockConnection::DrainIncoming
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - test_cli_ftp_upload_read
    linkageType: ''
    returnType: void
    signature: void MockConnection::DrainIncoming()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:174,1
    - Dst: setsockopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - recv_buf_bytes
    - drain_limit
    argTypes:
    - int
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: proto_fuzzer::MockConnection::ApplyBackpressure
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void MockConnection::ApplyBackpressure(int recv_buf_bytes, std::size_t
      drain_limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_cli_ftp_upload_read
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:193,1
    - Dst: std::string*::append
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:197,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:197,1
    - Dst: static_cast<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: proto_fuzzer::MockConnection::ReadAvailable
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    - std::string*::append
    - static_cast<std::size_t>
    - test_cli_ftp_upload_read
    linkageType: ''
    returnType: void
    signature: void MockConnection::ReadAvailable(std::string* out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfer_recv_shutdown
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: proto_fuzzer::MockConnection::ShutdownWrite
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - xfer_recv_shutdown
    linkageType: ''
    returnType: void
    signature: void MockConnection::ShutdownWrite()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: proto_fuzzer::MockServer::MockServer
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServer::MockServer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: MockServer::~MockServer()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServer::~MockServer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:226,1
    - Dst: std::move
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - initial_response
    - on_readable
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: proto_fuzzer::MockServer::SetScript
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void MockServer::SetScript(std::string initial_response, std::vector<std::string>
      on_readable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: proto_fuzzer::MockServer::has_more_chunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool MockServer::has_more_chunks() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MockConnection>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:245,1
    - Dst: ok
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:246,1
    - Dst: reset
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:247,1
    - Dst: ApplyPendingBackpressure
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:250,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:251,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:252,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:252,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:252,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:253,1
    - Dst: reset
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:254,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:259,1
    - Dst: ShutdownWrite
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:260,1
    - Dst: take_client_fd
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 263
    functionName: proto_fuzzer::MockServer::HandleOpenSocket
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<MockConnection>
    - reset
    - ok
    - data
    - WriteAll
    - take_client_fd
    - reinterpret_cast<const unsigned char*>
    - size
    - ShutdownWrite
    - empty
    - ApplyPendingBackpressure
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t MockServer::HandleOpenSocket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:268,1
    - Dst: DrainIncoming
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:271,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:273,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:274,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:274,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:274,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:274,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:276,1
    - Dst: ShutdownWrite
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: proto_fuzzer::MockServer::DeliverNextChunk
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - DrainIncoming
    - data
    - WriteAll
    - reinterpret_cast<const unsigned char*>
    - size
    - ShutdownWrite
    - empty
    linkageType: ''
    returnType: void
    signature: void MockServer::DeliverNextChunk()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:289,1
    - Dst: proto_fuzzer::MockServer::SetScript
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:290,1
    - Dst: initial_response
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:290,1
    - Dst: BuildChunkList
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:290,1
    - Dst: curl_multi_perform
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:297,1
    - Dst: WaitOnMultiFdset
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:305,1
    - Dst: DrainIncoming
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:315,1
    - Dst: proto_fuzzer::MockServer::has_more_chunks
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:317,1
    - Dst: proto_fuzzer::MockServer::DeliverNextChunk
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:318,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - multi
    - easy
    - ' scenario'
    argTypes:
    - CURLM*
    - CURL*
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 326
    functionName: proto_fuzzer::MockServer::RunLoop
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - BuildChunkList
    - connection
    - DrainIncoming
    - curl_multi_perform
    - proto_fuzzer::MockServer::DeliverNextChunk
    - WaitOnMultiFdset
    - proto_fuzzer::MockServer::has_more_chunks
    - proto_fuzzer::MockServer::SetScript
    - initial_response
    linkageType: ''
    returnType: void
    signature: void MockServer::RunLoop(CURLM* multi, CURL* easy, const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: proto_fuzzer::FdFitsInFdSet
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FdFitsInFdSet(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:45,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:46,1
    - Dst: on_readable_size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:46,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:48,1
    - Dst: on_readable
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:48,1
    - Dst: std::vector::size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:50,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:51,1
    - Dst: server_frames_size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:51,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: proto_fuzzer::SerializeWebSocketFrame
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: server_frames
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' conn'
    argTypes:
    - curl::fuzzer::proto::Connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: proto_fuzzer::BuildChunkList
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - proto_fuzzer::SerializeWebSocketFrame
    - server_frames
    - on_readable
    - on_readable_size
    - std::vector::size
    - std::min<std::size_t>
    - static_cast<int>
    - server_frames_size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> BuildChunkList(const curl::fuzzer::proto::Connection&
      conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: proto_fuzzer::FdFitsInFdSet
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FdFitsInFdSet(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:45,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:46,1
    - Dst: on_readable_size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:46,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:48,1
    - Dst: on_readable
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:48,1
    - Dst: std::vector::size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:50,1
    - Dst: std::min<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:51,1
    - Dst: server_frames_size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:51,1
    - Dst: std::vector::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: proto_fuzzer::SerializeWebSocketFrame
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: server_frames
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' conn'
    argTypes:
    - curl::fuzzer::proto::Connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: proto_fuzzer::BuildChunkList
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - proto_fuzzer::SerializeWebSocketFrame
    - server_frames
    - on_readable
    - on_readable_size
    - std::vector::size
    - std::min<std::size_t>
    - static_cast<int>
    - server_frames_size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> BuildChunkList(const curl::fuzzer::proto::Connection&
      conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:69,1
    - Dst: FdFitsInFdSet
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:74,1
    - Dst: FdFitsInFdSet
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:74,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:75,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:76,1
    - Dst: fcntl
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:81,1
    - Dst: fcntl
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:82,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:83,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 91
    functionName: proto_fuzzer::MockConnection::MockConnection
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - close
    - FdFitsInFdSet
    - fcntl
    - socketpair
    linkageType: ''
    returnType: void
    signature: void MockConnection::MockConnection()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:96,1
    - Dst: close
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: MockConnection::~MockConnection()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void MockConnection::~MockConnection()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: proto_fuzzer::MockConnection::ok
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool MockConnection::ok() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: proto_fuzzer::MockConnection::server_fd
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MockConnection::server_fd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<curl_socket_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: proto_fuzzer::MockConnection::take_client_fd
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<curl_socket_t>
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t MockConnection::take_client_fd()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rtp_write
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:129,1
    - Dst: static_cast<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - unsigned char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: proto_fuzzer::MockConnection::WriteAll
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - rtp_write
    linkageType: ''
    returnType: bool
    signature: bool MockConnection::WriteAll(const unsigned char* data, std::size_t
      size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_cli_ftp_upload_read
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:156,1
    - Dst: static_cast<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 162
    functionName: proto_fuzzer::MockConnection::DrainIncoming
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - test_cli_ftp_upload_read
    linkageType: ''
    returnType: void
    signature: void MockConnection::DrainIncoming()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:174,1
    - Dst: setsockopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - recv_buf_bytes
    - drain_limit
    argTypes:
    - int
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: proto_fuzzer::MockConnection::ApplyBackpressure
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void MockConnection::ApplyBackpressure(int recv_buf_bytes, std::size_t
      drain_limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_cli_ftp_upload_read
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:193,1
    - Dst: std::string*::append
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:197,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:197,1
    - Dst: static_cast<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: proto_fuzzer::MockConnection::ReadAvailable
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    - std::string*::append
    - static_cast<std::size_t>
    - test_cli_ftp_upload_read
    linkageType: ''
    returnType: void
    signature: void MockConnection::ReadAvailable(std::string* out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfer_recv_shutdown
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: proto_fuzzer::MockConnection::ShutdownWrite
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - xfer_recv_shutdown
    linkageType: ''
    returnType: void
    signature: void MockConnection::ShutdownWrite()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: proto_fuzzer::MockServer::MockServer
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServer::MockServer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: MockServer::~MockServer()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServer::~MockServer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:226,1
    - Dst: std::move
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - initial_response
    - on_readable
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: proto_fuzzer::MockServer::SetScript
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void MockServer::SetScript(std::string initial_response, std::vector<std::string>
      on_readable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: proto_fuzzer::MockServer::has_more_chunks
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool MockServer::has_more_chunks() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MockConnection>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:245,1
    - Dst: ok
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:246,1
    - Dst: reset
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:247,1
    - Dst: ApplyPendingBackpressure
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:250,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:251,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:252,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:252,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:252,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:253,1
    - Dst: reset
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:254,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:259,1
    - Dst: ShutdownWrite
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:260,1
    - Dst: take_client_fd
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 263
    functionName: proto_fuzzer::MockServer::HandleOpenSocket
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<MockConnection>
    - reset
    - ok
    - data
    - WriteAll
    - take_client_fd
    - reinterpret_cast<const unsigned char*>
    - size
    - ShutdownWrite
    - empty
    - ApplyPendingBackpressure
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t MockServer::HandleOpenSocket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:268,1
    - Dst: DrainIncoming
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:271,1
    - Dst: empty
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:273,1
    - Dst: WriteAll
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:274,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:274,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:274,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:274,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:276,1
    - Dst: ShutdownWrite
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: proto_fuzzer::MockServer::DeliverNextChunk
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 1
    functionsReached:
    - DrainIncoming
    - data
    - WriteAll
    - reinterpret_cast<const unsigned char*>
    - size
    - ShutdownWrite
    - empty
    linkageType: ''
    returnType: void
    signature: void MockServer::DeliverNextChunk()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: connection
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:289,1
    - Dst: proto_fuzzer::MockServer::SetScript
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:290,1
    - Dst: initial_response
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:290,1
    - Dst: BuildChunkList
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:290,1
    - Dst: curl_multi_perform
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:297,1
    - Dst: WaitOnMultiFdset
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:305,1
    - Dst: DrainIncoming
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:315,1
    - Dst: proto_fuzzer::MockServer::has_more_chunks
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:317,1
    - Dst: proto_fuzzer::MockServer::DeliverNextChunk
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server.cc:318,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - multi
    - easy
    - ' scenario'
    argTypes:
    - CURLM*
    - CURL*
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 326
    functionName: proto_fuzzer::MockServer::RunLoop
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
    functionUses: 0
    functionsReached:
    - BuildChunkList
    - connection
    - DrainIncoming
    - curl_multi_perform
    - proto_fuzzer::MockServer::DeliverNextChunk
    - WaitOnMultiFdset
    - proto_fuzzer::MockServer::has_more_chunks
    - proto_fuzzer::MockServer::SetScript
    - initial_response
    linkageType: ''
    returnType: void
    signature: void MockServer::RunLoop(CURLM* multi, CURL* easy, const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: proto_fuzzer::ScenarioRunner::ScenarioRunner
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScenarioRunner(const ScenarioRunner&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: '& operator=(const ScenarioRunner&)'
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ScenarioRunner
    signature: ScenarioRunner & operator=(const ScenarioRunner&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: proto_fuzzer::ScenarioRunner::ScenarioRunner
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScenarioRunner(const ScenarioRunner&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: '& operator=(const ScenarioRunner&)'
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/scenario_runner.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ScenarioRunner
    signature: ScenarioRunner & operator=(const ScenarioRunner&)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:34,1
    - Dst: uint8_t::uint8_t
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:43,1
    - Dst: std::memset
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:46,1
    - Dst: std::memcpy
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:48,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:60,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:60,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:61,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:61,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:64,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:82,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:85,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:102,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:103,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:105,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:107,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:108,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:109,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:110,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 113
    functionName: proto_fuzzer::detail::Sha1
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 0
    functionsReached:
    - std::memcpy
    - left_rotate
    - std::memset
    - static_cast<uint8_t>
    - static_cast<uint64_t>
    - store
    - static_cast<uint32_t>
    - uint8_t::uint8_t
    linkageType: ''
    returnType: std::array<uint8_t, 20>
    signature: std::array<uint8_t, 20> Sha1(const uint8_t *data, std::size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:122,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:124,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:125,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:126,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:127,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:128,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:129,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 133
    functionName: proto_fuzzer::detail::Base64Encode
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 0
    functionsReached:
    - std::string::reserve
    - static_cast<uint32_t>
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string Base64Encode(const uint8_t *data, std::size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:34,1
    - Dst: uint8_t::uint8_t
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:43,1
    - Dst: std::memset
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:46,1
    - Dst: std::memcpy
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:48,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:60,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:60,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:61,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:61,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:64,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:82,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:85,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:102,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:103,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:105,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:107,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:108,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:109,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:110,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 113
    functionName: proto_fuzzer::detail::Sha1
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 0
    functionsReached:
    - std::memcpy
    - left_rotate
    - std::memset
    - static_cast<uint8_t>
    - static_cast<uint64_t>
    - store
    - static_cast<uint32_t>
    - uint8_t::uint8_t
    linkageType: ''
    returnType: std::array<uint8_t, 20>
    signature: std::array<uint8_t, 20> Sha1(const uint8_t *data, std::size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:122,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:124,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:125,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:126,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:127,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:128,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:129,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 133
    functionName: proto_fuzzer::detail::Base64Encode
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 0
    functionsReached:
    - std::string::reserve
    - static_cast<uint32_t>
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string Base64Encode(const uint8_t *data, std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::detail::Sha1
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:143,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:143,1
    - Dst: std::string::data
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:143,1
    - Dst: std::string::size
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:143,1
    - Dst: proto_fuzzer::detail::Base64Encode
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:144,1
    - Dst: auto::data
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:144,1
    - Dst: auto::size
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: proto_fuzzer::ComputeWebSocketAcceptKey
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 4
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - auto::data
    - auto::size
    - proto_fuzzer::detail::Base64Encode
    - std::string::size
    - proto_fuzzer::detail::Sha1
    - std::string::data
    linkageType: ''
    returnType: std::string
    signature: std::string ComputeWebSocketAcceptKey(const std::string &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:34,1
    - Dst: uint8_t::uint8_t
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:43,1
    - Dst: std::memset
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:46,1
    - Dst: std::memcpy
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:48,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:60,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:60,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:61,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:61,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:64,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:82,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:85,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:102,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:103,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:105,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:107,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:108,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:109,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:110,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 113
    functionName: proto_fuzzer::detail::Sha1
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 1
    functionsReached:
    - std::memcpy
    - left_rotate
    - std::memset
    - static_cast<uint8_t>
    - static_cast<uint64_t>
    - store
    - static_cast<uint32_t>
    - uint8_t::uint8_t
    linkageType: ''
    returnType: std::array<uint8_t, 20>
    signature: std::array<uint8_t, 20> Sha1(const uint8_t *data, std::size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:122,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:124,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:125,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:126,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:127,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:128,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:129,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 133
    functionName: proto_fuzzer::detail::Base64Encode
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 1
    functionsReached:
    - std::string::reserve
    - static_cast<uint32_t>
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string Base64Encode(const uint8_t *data, std::size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:34,1
    - Dst: uint8_t::uint8_t
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:43,1
    - Dst: std::memset
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:46,1
    - Dst: std::memcpy
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:48,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:60,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:60,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:61,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:61,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:64,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:82,1
    - Dst: left_rotate
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:85,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:102,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:103,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:105,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:107,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:108,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:109,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:110,1
    - Dst: store
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 113
    functionName: proto_fuzzer::detail::Sha1
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 1
    functionsReached:
    - std::memcpy
    - left_rotate
    - std::memset
    - static_cast<uint8_t>
    - static_cast<uint64_t>
    - store
    - static_cast<uint32_t>
    - uint8_t::uint8_t
    linkageType: ''
    returnType: std::array<uint8_t, 20>
    signature: std::array<uint8_t, 20> Sha1(const uint8_t *data, std::size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:122,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:124,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:125,1
    - Dst: static_cast<uint32_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:126,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:127,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:128,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:129,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 133
    functionName: proto_fuzzer::detail::Base64Encode
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 1
    functionsReached:
    - std::string::reserve
    - static_cast<uint32_t>
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string Base64Encode(const uint8_t *data, std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::detail::Sha1
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:143,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:143,1
    - Dst: std::string::data
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:143,1
    - Dst: std::string::size
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:143,1
    - Dst: proto_fuzzer::detail::Base64Encode
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:144,1
    - Dst: auto::data
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:144,1
    - Dst: auto::size
      Src: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: proto_fuzzer::ComputeWebSocketAcceptKey
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
    functionUses: 4
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - auto::data
    - auto::size
    - proto_fuzzer::detail::Base64Encode
    - std::string::size
    - proto_fuzzer::detail::Sha1
    - std::string::data
    linkageType: ''
    returnType: std::string
    signature: std::string ComputeWebSocketAcceptKey(const std::string &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - nmemb
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: proto_fuzzer::SilentWriteCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SilentWriteCallback(void* /*contents*/, size_t size, size_t
      nmemb, void* /*userdata*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ReadState*>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:78,1
    - Dst: std::min
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: proto_fuzzer::BoundedReadCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached:
    - std::min
    - static_cast<ReadState*>
    linkageType: ''
    returnType: size_t
    signature: size_t BoundedReadCallback(char* buffer, size_t size, size_t nitems,
      void* userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - curl::fuzzer::proto::CurlOptionId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: proto_fuzzer::Lookup
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OptionDescriptor
    signature: OptionDescriptor * Lookup(curl::fuzzer::proto::CurlOptionId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - nmemb
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: proto_fuzzer::SilentWriteCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SilentWriteCallback(void* /*contents*/, size_t size, size_t
      nmemb, void* /*userdata*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ReadState*>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:78,1
    - Dst: std::min
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: proto_fuzzer::BoundedReadCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached:
    - std::min
    - static_cast<ReadState*>
    linkageType: ''
    returnType: size_t
    signature: size_t BoundedReadCallback(char* buffer, size_t size, size_t nitems,
      void* userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - curl::fuzzer::proto::CurlOptionId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: proto_fuzzer::Lookup
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OptionDescriptor
    signature: OptionDescriptor * Lookup(curl::fuzzer::proto::CurlOptionId id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:117,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:124,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:125,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:129,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:130,1
    - Dst: curl_slist_append
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:134,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:135,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:138,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:139,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:140,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:140,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:143,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:144,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:145,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:146,1
    - Dst: std::getenv
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:150,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 154
    functionName: proto_fuzzer::ApplyBaselineOptions
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached:
    - static_cast<curl_off_t>
    - std::getenv
    - curl_slist_append
    - curl_easy_setopt
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist * ApplyBaselineOptions(CURL* easy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::Lookup
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:168,1
    - Dst: option_id
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:168,1
    - Dst: string_value
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:176,1
    - Dst: std::vector<std::string>*::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:177,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:177,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:177,1
    - Dst: std::vector<std::string>*::back
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:178,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:182,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:182,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:182,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:185,1
    - Dst: c_str
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:185,1
    - Dst: uint_value
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:190,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:193,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:194,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:194,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:196,1
    - Dst: static_cast<long>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:196,1
    - Dst: bool_value
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:201,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - easy
    - ' option'
    - string_storage
    argTypes:
    - CURL*
    - curl::fuzzer::proto::SetOption
    - std::vector<std::string>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 206
    functionName: proto_fuzzer::ApplySetOption
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached:
    - static_cast<curl_off_t>
    - uint_value
    - proto_fuzzer::Lookup
    - static_cast<long>
    - option_id
    - data
    - std::vector<std::string>*::emplace_back
    - string_value
    - size
    - curl_easy_setopt
    - static_cast<int>
    - bool_value
    - c_str
    - std::vector<std::string>*::back
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ApplySetOption(CURL* easy, const curl::fuzzer::proto::SetOption&
      option,\n                        std::vector<std::string>* string_storage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - nmemb
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: proto_fuzzer::SilentWriteCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SilentWriteCallback(void* /*contents*/, size_t size, size_t
      nmemb, void* /*userdata*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ReadState*>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:78,1
    - Dst: std::min
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: proto_fuzzer::BoundedReadCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached:
    - std::min
    - static_cast<ReadState*>
    linkageType: ''
    returnType: size_t
    signature: size_t BoundedReadCallback(char* buffer, size_t size, size_t nitems,
      void* userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - curl::fuzzer::proto::CurlOptionId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: proto_fuzzer::Lookup
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OptionDescriptor
    signature: OptionDescriptor * Lookup(curl::fuzzer::proto::CurlOptionId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - nmemb
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: proto_fuzzer::SilentWriteCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SilentWriteCallback(void* /*contents*/, size_t size, size_t
      nmemb, void* /*userdata*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ReadState*>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:78,1
    - Dst: std::min
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: proto_fuzzer::BoundedReadCallback
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached:
    - std::min
    - static_cast<ReadState*>
    linkageType: ''
    returnType: size_t
    signature: size_t BoundedReadCallback(char* buffer, size_t size, size_t nitems,
      void* userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - curl::fuzzer::proto::CurlOptionId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: proto_fuzzer::Lookup
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OptionDescriptor
    signature: OptionDescriptor * Lookup(curl::fuzzer::proto::CurlOptionId id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:117,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:124,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:125,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:129,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:130,1
    - Dst: curl_slist_append
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:134,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:135,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:138,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:139,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:140,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:140,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:143,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:144,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:145,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:146,1
    - Dst: std::getenv
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:150,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 154
    functionName: proto_fuzzer::ApplyBaselineOptions
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached:
    - static_cast<curl_off_t>
    - std::getenv
    - curl_slist_append
    - curl_easy_setopt
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist * ApplyBaselineOptions(CURL* easy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::Lookup
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:168,1
    - Dst: option_id
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:168,1
    - Dst: string_value
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:176,1
    - Dst: std::vector<std::string>*::emplace_back
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:177,1
    - Dst: data
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:177,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:177,1
    - Dst: std::vector<std::string>*::back
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:178,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:182,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:182,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:182,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:185,1
    - Dst: c_str
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:185,1
    - Dst: uint_value
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:190,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:193,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:194,1
    - Dst: static_cast<curl_off_t>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:194,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:196,1
    - Dst: static_cast<long>
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:196,1
    - Dst: bool_value
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:201,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/option_apply.cc:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - easy
    - ' option'
    - string_storage
    argTypes:
    - CURL*
    - curl::fuzzer::proto::SetOption
    - std::vector<std::string>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 206
    functionName: proto_fuzzer::ApplySetOption
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    functionUses: 0
    functionsReached:
    - static_cast<curl_off_t>
    - uint_value
    - proto_fuzzer::Lookup
    - static_cast<long>
    - option_id
    - data
    - std::vector<std::string>*::emplace_back
    - string_value
    - size
    - curl_easy_setopt
    - static_cast<int>
    - bool_value
    - c_str
    - std::vector<std::string>*::back
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ApplySetOption(CURL* easy, const curl::fuzzer::proto::SetOption&
      option,\n                        std::vector<std::string>* string_storage)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - form
    - payload_len
    argTypes:
    - std::uint32_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: proto_fuzzer::ResolveLengthForm
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t ResolveLengthForm(std::uint32_t form, std::size_t payload_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:47,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - value
    - width
    argTypes:
    - std::string*
    - std::uint64_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: proto_fuzzer::AppendBigEndian
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 0
    functionsReached:
    - std::string*::push_back
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void AppendBigEndian(std::string* out, std::uint64_t value, std::size_t
      width)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - form
    - payload_len
    argTypes:
    - std::uint32_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: proto_fuzzer::ResolveLengthForm
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t ResolveLengthForm(std::uint32_t form, std::size_t payload_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:47,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - value
    - width
    argTypes:
    - std::string*
    - std::uint64_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: proto_fuzzer::AppendBigEndian
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 0
    functionsReached:
    - std::string*::push_back
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void AppendBigEndian(std::string* out, std::uint64_t value, std::size_t
      width)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: payload
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:61,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:62,1
    - Dst: fin
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:66,1
    - Dst: rsv1
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:67,1
    - Dst: rsv2
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:68,1
    - Dst: rsv3
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:69,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:70,1
    - Dst: opcode
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:70,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:71,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:71,1
    - Dst: proto_fuzzer::ResolveLengthForm
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:74,1
    - Dst: length_form
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:74,1
    - Dst: masked
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:75,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:82,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:83,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:83,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:87,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:87,1
    - Dst: proto_fuzzer::AppendBigEndian
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:88,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:88,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:93,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:93,1
    - Dst: proto_fuzzer::AppendBigEndian
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:94,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:94,1
    - Dst: masked
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:102,1
    - Dst: mask_key
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:103,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:105,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:106,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:107,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:108,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:111,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:111,1
    - Dst: std::string::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:113,1
    - Dst: std::string::size
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:113,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:115,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:115,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:115,1
    - Dst: std::string::append
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:118,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - ' frame'
    argTypes:
    - curl::fuzzer::proto::WebSocketFrame
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 122
    functionName: proto_fuzzer::SerializeWebSocketFrame
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 8
    functionsReached:
    - static_cast<std::uint8_t>
    - rsv1
    - fin
    - static_cast<char>
    - rsv2
    - std::string::append
    - std::string::size
    - proto_fuzzer::ResolveLengthForm
    - proto_fuzzer::AppendBigEndian
    - rsv3
    - std::string::reserve
    - length_form
    - static_cast<std::uint64_t>
    - payload
    - size
    - masked
    - opcode
    - mask_key
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string SerializeWebSocketFrame(const curl::fuzzer::proto::WebSocketFrame&
      frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - form
    - payload_len
    argTypes:
    - std::uint32_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: proto_fuzzer::ResolveLengthForm
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t ResolveLengthForm(std::uint32_t form, std::size_t payload_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:47,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - value
    - width
    argTypes:
    - std::string*
    - std::uint64_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: proto_fuzzer::AppendBigEndian
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 1
    functionsReached:
    - std::string*::push_back
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void AppendBigEndian(std::string* out, std::uint64_t value, std::size_t
      width)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - form
    - payload_len
    argTypes:
    - std::uint32_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: proto_fuzzer::ResolveLengthForm
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t ResolveLengthForm(std::uint32_t form, std::size_t payload_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:47,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - value
    - width
    argTypes:
    - std::string*
    - std::uint64_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: proto_fuzzer::AppendBigEndian
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 1
    functionsReached:
    - std::string*::push_back
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void AppendBigEndian(std::string* out, std::uint64_t value, std::size_t
      width)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: payload
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:61,1
    - Dst: size
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:62,1
    - Dst: fin
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:66,1
    - Dst: rsv1
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:67,1
    - Dst: rsv2
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:68,1
    - Dst: rsv3
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:69,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:70,1
    - Dst: opcode
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:70,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:71,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:71,1
    - Dst: proto_fuzzer::ResolveLengthForm
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:74,1
    - Dst: length_form
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:74,1
    - Dst: masked
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:75,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:82,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:83,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:83,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:87,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:87,1
    - Dst: proto_fuzzer::AppendBigEndian
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:88,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:88,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:93,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:93,1
    - Dst: proto_fuzzer::AppendBigEndian
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:94,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:94,1
    - Dst: masked
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:102,1
    - Dst: mask_key
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:103,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:105,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:106,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:107,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:108,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:111,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:111,1
    - Dst: std::string::reserve
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:113,1
    - Dst: std::string::size
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:113,1
    - Dst: std::string::push_back
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:115,1
    - Dst: static_cast<char>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:115,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:115,1
    - Dst: std::string::append
      Src: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc:118,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - ' frame'
    argTypes:
    - curl::fuzzer::proto::WebSocketFrame
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 122
    functionName: proto_fuzzer::SerializeWebSocketFrame
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
    functionUses: 8
    functionsReached:
    - static_cast<std::uint8_t>
    - rsv1
    - fin
    - static_cast<char>
    - rsv2
    - std::string::append
    - std::string::size
    - proto_fuzzer::ResolveLengthForm
    - proto_fuzzer::AppendBigEndian
    - rsv3
    - std::string::reserve
    - length_form
    - static_cast<std::uint64_t>
    - payload
    - size
    - masked
    - opcode
    - mask_key
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string SerializeWebSocketFrame(const curl::fuzzer::proto::WebSocketFrame&
      frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: proto_fuzzer::SockOptTrampoline
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SockOptTrampoline(void* /*clientp*/, curl_socket_t /*curlfd*/,
      curlsocktype /*purpose*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: proto_fuzzer::SockOptTrampoline
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SockOptTrampoline(void* /*clientp*/, curl_socket_t /*curlfd*/,
      curlsocktype /*purpose*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MockServerBase*>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clientp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: proto_fuzzer::MockServerBaseOpenSocketTrampoline
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached:
    - static_cast<MockServerBase*>
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t MockServerBaseOpenSocketTrampoline(void* clientp, curlsocktype
      /*purpose*/,\n                                                 struct curl_sockaddr*
      /*address*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: proto_fuzzer::MockServerBase::MockServerBase
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServerBase::MockServerBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: MockServerBase::~MockServerBase()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServerBase::~MockServerBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: proto_fuzzer::MockServerBase::connection
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: MockConnection
    signature: MockConnection * MockServerBase::connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: proto_fuzzer::MockServerBase::Install
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 2
    functionsReached:
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void MockServerBase::Install(CURL* easy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::MockServerBase::connection
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:67,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:68,1
    - Dst: recv_buf_bytes
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:68,1
    - Dst: static_cast<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:69,1
    - Dst: drain_limit
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:69,1
    - Dst: curl_multi_init
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:71,1
    - Dst: curl_multi_add_handle
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:75,1
    - Dst: RunLoop
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:76,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:77,1
    - Dst: curl_multi_cleanup
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - easy
    - ' scenario'
    argTypes:
    - CURL*
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: proto_fuzzer::MockServerBase::DriveScenario
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached:
    - drain_limit
    - RunLoop
    - curl_multi_remove_handle
    - recv_buf_bytes
    - static_cast<std::size_t>
    - proto_fuzzer::MockServerBase::connection
    - curl_multi_init
    - static_cast<int>
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: void
    signature: void MockServerBase::DriveScenario(CURL* easy, const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ApplyBackpressure
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: proto_fuzzer::MockServerBase::ApplyPendingBackpressure
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached:
    - ApplyBackpressure
    linkageType: ''
    returnType: void
    signature: void MockServerBase::ApplyPendingBackpressure()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:97,1
    - Dst: FD_ZERO
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:98,1
    - Dst: FD_ZERO
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:99,1
    - Dst: curl_multi_fdset
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:101,1
    - Dst: fuzz_select
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - multi
    - rc
    argTypes:
    - CURLM*
    - CURLMcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: proto_fuzzer::MockServerBase::WaitOnMultiFdset
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached:
    - fuzz_select
    - curl_multi_fdset
    - FD_ZERO
    linkageType: ''
    returnType: int
    signature: int MockServerBase::WaitOnMultiFdset(CURLM* multi, CURLMcode* rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: proto_fuzzer::SockOptTrampoline
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SockOptTrampoline(void* /*clientp*/, curl_socket_t /*curlfd*/,
      curlsocktype /*purpose*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: proto_fuzzer::SockOptTrampoline
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SockOptTrampoline(void* /*clientp*/, curl_socket_t /*curlfd*/,
      curlsocktype /*purpose*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MockServerBase*>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clientp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: proto_fuzzer::MockServerBaseOpenSocketTrampoline
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached:
    - static_cast<MockServerBase*>
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t MockServerBaseOpenSocketTrampoline(void* clientp, curlsocktype
      /*purpose*/,\n                                                 struct curl_sockaddr*
      /*address*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: proto_fuzzer::MockServerBase::MockServerBase
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServerBase::MockServerBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: MockServerBase::~MockServerBase()
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockServerBase::~MockServerBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: proto_fuzzer::MockServerBase::connection
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: MockConnection
    signature: MockConnection * MockServerBase::connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: proto_fuzzer::MockServerBase::Install
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 2
    functionsReached:
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void MockServerBase::Install(CURL* easy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proto_fuzzer::MockServerBase::connection
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:67,1
    - Dst: static_cast<int>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:68,1
    - Dst: recv_buf_bytes
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:68,1
    - Dst: static_cast<std::size_t>
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:69,1
    - Dst: drain_limit
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:69,1
    - Dst: curl_multi_init
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:71,1
    - Dst: curl_multi_add_handle
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:75,1
    - Dst: RunLoop
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:76,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:77,1
    - Dst: curl_multi_cleanup
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - easy
    - ' scenario'
    argTypes:
    - CURL*
    - curl::fuzzer::proto::Scenario
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: proto_fuzzer::MockServerBase::DriveScenario
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached:
    - drain_limit
    - RunLoop
    - curl_multi_remove_handle
    - recv_buf_bytes
    - static_cast<std::size_t>
    - proto_fuzzer::MockServerBase::connection
    - curl_multi_init
    - static_cast<int>
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: void
    signature: void MockServerBase::DriveScenario(CURL* easy, const curl::fuzzer::proto::Scenario&
      scenario)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ApplyBackpressure
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: proto_fuzzer::MockServerBase::ApplyPendingBackpressure
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached:
    - ApplyBackpressure
    linkageType: ''
    returnType: void
    signature: void MockServerBase::ApplyPendingBackpressure()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:97,1
    - Dst: FD_ZERO
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:98,1
    - Dst: FD_ZERO
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:99,1
    - Dst: curl_multi_fdset
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:101,1
    - Dst: fuzz_select
      Src: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - multi
    - rc
    argTypes:
    - CURLM*
    - CURLMcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: proto_fuzzer::MockServerBase::WaitOnMultiFdset
    functionSourceFile: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
    functionUses: 0
    functionsReached:
    - fuzz_select
    - curl_multi_fdset
    - FD_ZERO
    linkageType: ''
    returnType: int
    signature: int MockServerBase::WaitOnMultiFdset(CURLM* multi, CURLMcode* rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/curl/tests/cmake/test.c:30,1
    - Dst: puts
      Src: /src/curl/tests/cmake/test.c:31,1
    - Dst: puts
      Src: /src/curl/tests/cmake/test.c:32,1
    - Dst: curl_version
      Src: /src/curl/tests/cmake/test.c:32,1
    - Dst: puts
      Src: /src/curl/tests/cmake/test.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/curl/tests/cmake/test.c
    functionUses: 0
    functionsReached:
    - curl_version
    - puts
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_version
      Src: /src/curl/tests/cmake/test.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - void*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: CurlClass::curl_multi_setopt
    functionSourceFile: /src/curl/tests/cmake/test.cpp
    functionUses: 0
    functionsReached:
    - curl_version
    linkageType: ''
    returnType: void
    signature: void curl_multi_setopt(void *a, int b, long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CurlClass::curl_multi_setopt
      Src: /src/curl/tests/cmake/test.cpp:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/cmake/test.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: main
    functionSourceFile: /src/curl/tests/cmake/test.cpp
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - CurlClass::curl_multi_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: apr_strtoi64
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:47,1
    - Dst: apr_time_from_sec
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:65,1
    - Dst: apr_time_from_sec
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:69,1
    - Dst: apr_time_from_sec
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:74,1
    - Dst: apr_time_from_sec
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:87,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 3
    argNames:
    - ptimeout
    - value
    - def_unit
    argTypes:
    - apr_interval_time_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 109
    functionName: duration_parse
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - apr_time_from_sec
    - apr_strtoi64
    linkageType: ''
    returnType: apr_status_t
    signature: "apr_status_t duration_parse(apr_interval_time_t *ptimeout,\n                                   const
      char *value, const char *def_unit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:113,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - pstatus
    argTypes:
    - char*
    - apr_status_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: status_from_str
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int status_from_str(const char *s, apr_status_t *pstatus)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:137,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:144,1
    - Dst: apr_cstr_split
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:148,1
    - Dst: APR_ARRAY_IDX
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:150,1
    - Dst: strchr
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:151,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:155,1
    - Dst: apr_atoi64
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:156,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:159,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:163,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:167,1
    - Dst: duration_parse
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:168,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:178,1
    - Dst: ap_remove_output_filter_byhandle
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:181,1
    - Dst: apr_table_set
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:190,1
    - Dst: apr_ltoa
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:191,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:196,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:199,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:200,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:201,1
    - Dst: apr_table_get
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:203,1
    - Dst: ap_set_content_type
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:204,1
    - Dst: apr_table_get
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:206,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:207,1
    - Dst: apr_table_get
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:208,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:211,1
    - Dst: apr_sleep
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:212,1
    - Dst: apr_brigade_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:215,1
    - Dst: ap_setup_client_block
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:217,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:221,1
    - Dst: ap_remove_output_filter_byhandle
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:224,1
    - Dst: ap_should_client_block
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:228,1
    - Dst: ap_get_client_block
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:229,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:232,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:235,1
    - Dst: ap_remove_output_filter_byhandle
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:236,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:240,1
    - Dst: apr_brigade_write
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:242,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:245,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:248,1
    - Dst: apr_bucket_eos_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:253,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:254,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:255,1
    - Dst: apr_is_empty_table
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:257,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:258,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:260,1
    - Dst: apr_itoa
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:261,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:264,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:270,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:275,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 114
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 279
    functionName: curltest_echo_handler
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - ap_pass_brigade
    - apr_table_set
    - duration_parse
    - strcmp
    - apr_table_setn
    - ap_should_client_block
    - apr_brigade_write
    - apr_ltoa
    - APR_ARRAY_IDX
    - apr_atoi64
    - apr_cstr_split
    - apr_table_unset
    - apr_itoa
    - ap_setup_client_block
    - ap_remove_output_filter_byhandle
    - apr_table_get
    - apr_sleep
    - ap_set_content_type
    - APR_BRIGADE_INSERT_TAIL
    - apr_is_empty_table
    - ap_log_rerror
    - apr_brigade_create
    - strchr
    - ap_get_client_block
    - apr_bucket_eos_create
    linkageType: ''
    returnType: int
    signature: int curltest_echo_handler(request_rec *r)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:298,1
    - Dst: apr_cstr_split
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:310,1
    - Dst: APR_ARRAY_IDX
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:312,1
    - Dst: strchr
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:313,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:317,1
    - Dst: apr_atoi64
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:318,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:323,1
    - Dst: apr_atoi64
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:324,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:329,1
    - Dst: apr_atoi64
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:330,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:333,1
    - Dst: ap_die
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:335,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:341,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:346,1
    - Dst: status_from_str
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:347,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:351,1
    - Dst: apr_atoi64
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:352,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:357,1
    - Dst: status_from_str
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:358,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:362,1
    - Dst: duration_parse
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:363,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:368,1
    - Dst: duration_parse
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:369,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:374,1
    - Dst: duration_parse
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:375,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:380,1
    - Dst: apr_atoi64
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:381,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:384,1
    - Dst: apr_atoi64
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:385,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:389,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:394,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:398,1
    - Dst: ap_die
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:401,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:406,1
    - Dst: HTTP_VERSION
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:410,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:411,1
    - Dst: apr_table_set
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:413,1
    - Dst: apr_ltoa
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:414,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:417,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:419,1
    - Dst: apr_palloc
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:423,1
    - Dst: memset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:424,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:427,1
    - Dst: apr_psprintf
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:428,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:432,1
    - Dst: apr_psprintf
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:433,1
    - Dst: apr_palloc
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:437,1
    - Dst: memset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:438,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:440,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:443,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:444,1
    - Dst: ap_set_content_type
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:445,1
    - Dst: apr_brigade_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:446,1
    - Dst: apr_sleep
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:449,1
    - Dst: ap_map_http_request_error
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:452,1
    - Dst: apr_bucket_flush_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:455,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:456,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:457,1
    - Dst: memset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:461,1
    - Dst: apr_sleep
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:464,1
    - Dst: apr_brigade_write
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:466,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:469,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:472,1
    - Dst: apr_bucket_eos_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:481,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:482,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:483,1
    - Dst: apr_brigade_cleanup
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:484,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:485,1
    - Dst: apr_bucket_flush_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:491,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:492,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:493,1
    - Dst: apr_brigade_cleanup
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:494,1
    - Dst: apr_sleep
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:495,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:499,1
    - Dst: ap_map_http_request_error
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:506,1
    - Dst: ap_bucket_error_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:507,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:508,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:511,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:512,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 196
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 519
    functionName: curltest_tweak_handler
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - ap_pass_brigade
    - apr_table_set
    - duration_parse
    - ap_die
    - apr_brigade_cleanup
    - strcmp
    - apr_table_setn
    - ap_map_http_request_error
    - apr_bucket_flush_create
    - apr_brigade_write
    - apr_ltoa
    - APR_ARRAY_IDX
    - apr_atoi64
    - apr_cstr_split
    - apr_table_unset
    - apr_palloc
    - memset
    - apr_sleep
    - apr_psprintf
    - status_from_str
    - HTTP_VERSION
    - ap_set_content_type
    - ap_bucket_error_create
    - APR_BRIGADE_INSERT_TAIL
    - ap_log_rerror
    - apr_brigade_create
    - strchr
    - apr_bucket_eos_create
    linkageType: ''
    returnType: int
    signature: int curltest_tweak_handler(request_rec *r)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:538,1
    - Dst: apr_cstr_split
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:546,1
    - Dst: APR_ARRAY_IDX
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:548,1
    - Dst: strchr
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:549,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:553,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:558,1
    - Dst: duration_parse
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:559,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:564,1
    - Dst: duration_parse
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:565,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:570,1
    - Dst: apr_atoi64
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:571,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:575,1
    - Dst: ap_die
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:578,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:583,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:587,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:589,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:590,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:591,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:592,1
    - Dst: apr_table_get
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:594,1
    - Dst: ap_set_content_type
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:595,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:598,1
    - Dst: apr_sleep
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:599,1
    - Dst: apr_brigade_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:601,1
    - Dst: ap_setup_client_block
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:603,1
    - Dst: ap_should_client_block
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:606,1
    - Dst: ap_get_client_block
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:607,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:608,1
    - Dst: apr_sleep
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:611,1
    - Dst: apr_psprintf
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:621,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:622,1
    - Dst: apr_brigade_puts
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:623,1
    - Dst: apr_bucket_eos_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:626,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:627,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:628,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:630,1
    - Dst: apr_sleep
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:633,1
    - Dst: apr_time_from_sec
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:633,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:640,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:645,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 96
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 649
    functionName: curltest_put_handler
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - ap_pass_brigade
    - duration_parse
    - ap_die
    - strcmp
    - apr_table_setn
    - ap_should_client_block
    - APR_ARRAY_IDX
    - apr_brigade_puts
    - apr_atoi64
    - apr_cstr_split
    - apr_table_unset
    - ap_setup_client_block
    - apr_table_get
    - apr_sleep
    - apr_psprintf
    - ap_set_content_type
    - APR_BRIGADE_INSERT_TAIL
    - apr_time_from_sec
    - ap_log_rerror
    - apr_brigade_create
    - strchr
    - ap_get_client_block
    - apr_bucket_eos_create
    linkageType: ''
    returnType: int
    signature: int curltest_put_handler(request_rec *r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:659,1
    - Dst: HTTP_VERSION_MAJOR
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:663,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:664,1
    - Dst: ap_die
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:665,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:669,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:673,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:675,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:676,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:677,1
    - Dst: apr_table_get
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:679,1
    - Dst: ap_set_content_type
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:680,1
    - Dst: apr_brigade_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:682,1
    - Dst: apr_bucket_flush_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:684,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:685,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:686,1
    - Dst: apr_brigade_printf
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:691,1
    - Dst: apr_bucket_eos_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:694,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:695,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:696,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:698,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:704,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:709,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 713
    functionName: curltest_1_1_required
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - apr_bucket_flush_create
    - ap_pass_brigade
    - ap_set_content_type
    - apr_brigade_printf
    - apr_table_unset
    - ap_die
    - APR_BRIGADE_INSERT_TAIL
    - strcmp
    - apr_table_setn
    - ap_log_rerror
    - apr_table_get
    - apr_brigade_create
    - HTTP_VERSION_MAJOR
    - apr_bucket_eos_create
    linkageType: ''
    returnType: int
    signature: int curltest_1_1_required(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:719,1
    - Dst: apr_brigade_printf
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - bb
    - name
    argTypes:
    - request_rec*
    - apr_bucket_brigade*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 723
    functionName: brigade_env_var
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - apr_brigade_printf
    - apr_table_get
    linkageType: ''
    returnType: int
    signature: "int brigade_env_var(request_rec *r, apr_bucket_brigade *bb,\n                           const
      char *name)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:735,1
    - Dst: apr_cstr_split
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:743,1
    - Dst: APR_ARRAY_IDX
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:745,1
    - Dst: strchr
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:746,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:750,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:756,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:761,1
    - Dst: ap_die
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:764,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:769,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:773,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:775,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:777,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:778,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:779,1
    - Dst: ap_set_content_type
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:781,1
    - Dst: apr_brigade_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:783,1
    - Dst: apr_brigade_puts
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:785,1
    - Dst: brigade_env_var
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:786,1
    - Dst: brigade_env_var
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:787,1
    - Dst: brigade_env_var
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:788,1
    - Dst: brigade_env_var
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:789,1
    - Dst: brigade_env_var
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:790,1
    - Dst: brigade_env_var
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:791,1
    - Dst: brigade_env_var
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:792,1
    - Dst: brigade_env_var
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:793,1
    - Dst: apr_brigade_puts
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:794,1
    - Dst: apr_bucket_flush_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:797,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:798,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:799,1
    - Dst: apr_bucket_eos_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:804,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:805,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:806,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:808,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:816,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:821,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 825
    functionName: curltest_sslinfo_handler
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - apr_bucket_flush_create
    - ap_pass_brigade
    - ap_set_content_type
    - apr_table_unset
    - ap_die
    - APR_ARRAY_IDX
    - apr_brigade_puts
    - brigade_env_var
    - strcmp
    - apr_table_setn
    - APR_BRIGADE_INSERT_TAIL
    - ap_log_rerror
    - apr_brigade_create
    - strchr
    - apr_bucket_eos_create
    - apr_cstr_split
    linkageType: ''
    returnType: int
    signature: int curltest_sslinfo_handler(request_rec *r)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:849,1
    - Dst: apr_cstr_split
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:857,1
    - Dst: APR_ARRAY_IDX
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:859,1
    - Dst: strchr
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:860,1
    - Dst: strcmp
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:864,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:870,1
    - Dst: ap_die
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:873,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:878,1
    - Dst: apr_time_now
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:880,1
    - Dst: apr_thread_mutex_lock
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:881,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:884,1
    - Dst: apr_time_from_sec
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:892,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:893,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:897,1
    - Dst: apr_thread_mutex_unlock
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:900,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:905,1
    - Dst: apr_table_unset
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:907,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:909,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:910,1
    - Dst: apr_table_setn
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:911,1
    - Dst: apr_psprintf
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:914,1
    - Dst: apr_table_set
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:915,1
    - Dst: ap_set_content_type
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:918,1
    - Dst: apr_brigade_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:920,1
    - Dst: apr_brigade_puts
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:922,1
    - Dst: apr_bucket_flush_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:925,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:926,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:927,1
    - Dst: apr_bucket_eos_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:932,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:933,1
    - Dst: ap_pass_brigade
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:934,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:940,1
    - Dst: ap_log_rerror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:945,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 949
    functionName: curltest_limit_handler
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - ap_pass_brigade
    - apr_time_now
    - apr_table_set
    - ap_die
    - strcmp
    - apr_table_setn
    - apr_bucket_flush_create
    - APR_ARRAY_IDX
    - apr_brigade_puts
    - apr_thread_mutex_unlock
    - apr_cstr_split
    - apr_table_unset
    - apr_thread_mutex_lock
    - apr_psprintf
    - ap_set_content_type
    - APR_BRIGADE_INSERT_TAIL
    - apr_time_from_sec
    - ap_log_rerror
    - apr_brigade_create
    - strchr
    - apr_bucket_eos_create
    linkageType: ''
    returnType: int
    signature: int curltest_limit_handler(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_userdata_get
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:962,1
    - Dst: apr_pool_userdata_set
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:965,1
    - Dst: apr_thread_mutex_create
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - p
    - plog
    - ptemp
    - s
    argTypes:
    - apr_pool_t*
    - apr_pool_t*
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 971
    functionName: curltest_post_config
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - apr_pool_userdata_set
    - apr_pool_userdata_get
    - apr_thread_mutex_create
    linkageType: ''
    returnType: int
    signature: "int curltest_post_config(apr_pool_t *p, apr_pool_t *plog,\n                                apr_pool_t
      *ptemp, server_rec *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_log_perror
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:975,1
    - Dst: ap_hook_post_config
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:979,1
    - Dst: ap_hook_handler
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:982,1
    - Dst: ap_hook_handler
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:983,1
    - Dst: ap_hook_handler
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:984,1
    - Dst: ap_hook_handler
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:985,1
    - Dst: ap_hook_handler
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:986,1
    - Dst: ap_hook_handler
      Src: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 988
    functionName: curltest_hooks
    functionSourceFile: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    functionUses: 0
    functionsReached:
    - ap_log_perror
    - ap_hook_handler
    - ap_hook_post_config
    linkageType: ''
    returnType: void
    signature: void curltest_hooks(apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - outstream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: t1518_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1518.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t t1518_write_cb(char *buffer, size_t size, size_t nitems,\n
      \                            void *outstream)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1518.c:47,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1518.c:49,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1518.c:50,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1518.c:56,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1518.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1518.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1518.c:63,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1518.c:66,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1518.c:68,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1518.c:72,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1518.c:76,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1518.c:77,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1518.c:78,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1518.c:79,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1518.c:80,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1518.c:82,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1518.c:96,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1518.c:97,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1518.c:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 100
    functionName: test_lib1518
    functionSourceFile: /src/curl/tests/libtest/lib1518.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - curl_url_cleanup
    - test_setopt
    - curl_easy_cleanup
    - curl_global_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1518(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib574.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ptr
    - pattern
    - string
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: new_fnmatch
    functionSourceFile: /src/curl/tests/libtest/lib574.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: int new_fnmatch(void *ptr, const char *pattern, const char *string)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib574.c:39,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib574.c:40,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib574.c:44,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib574.c:46,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib574.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib574.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib574.c:52,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib574.c:53,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib574.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib574.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib574.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib574.c:61,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib574.c:63,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib574.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib574.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 71
    functionName: test_lib574
    functionSourceFile: /src/curl/tests/libtest/lib574.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib574(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib500.c:36,1
    - Dst: CURL_SOCKET
      Src: /src/curl/tests/libtest/lib500.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - clientp
    - purpose
    - addr
    argTypes:
    - void*
    - curlsocktype
    - struct curl_sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: tst_opensocket
    functionSourceFile: /src/curl/tests/libtest/lib500.c
    functionUses: 0
    functionsReached:
    - CURL_SOCKET
    - curl_mprintf
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t tst_opensocket(void *clientp,\n                                    curlsocktype
      purpose,\n                                    struct curl_sockaddr *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib500.c:43,1
    - Dst: sclose
      Src: /src/curl/tests/libtest/lib500.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - clientp
    - sock
    argTypes:
    - void*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: tst_closesocket
    functionSourceFile: /src/curl/tests/libtest/lib500.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - sclose
    linkageType: ''
    returnType: int
    signature: int tst_closesocket(void *clientp, curl_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib500.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib500.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: setupcallbacks
    functionSourceFile: /src/curl/tests/libtest/lib500.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void setupcallbacks(CURL *curl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib500.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib500.c:61,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib500.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib500.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib500.c:68,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib500.c:72,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib500.c:73,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib500.c:77,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib500.c:78,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib500.c:79,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib500.c:81,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib500.c:82,1
    - Dst: setupcallbacks
      Src: /src/curl/tests/libtest/lib500.c:85,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib500.c:87,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib500.c:90,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib500.c:92,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib500.c:100,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib500.c:101,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib500.c:102,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib500.c:103,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib500.c:105,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib500.c:107,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib500.c:109,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib500.c:114,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib500.c:122,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib500.c:131,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib500.c:140,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib500.c:149,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib500.c:157,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib500.c:165,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib500.c:172,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib500.c:173,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 176
    functionName: test_lib500
    functionSourceFile: /src/curl/tests/libtest/lib500.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curlx_fopen
    - test_setopt
    - strcmp
    - curl_easy_cleanup
    - setupcallbacks
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib500(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib573.c:46,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib573.c:48,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib573.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib573.c:52,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib573.c:53,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib573.c:57,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib573.c:58,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib573.c:59,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib573.c:61,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib573.c:63,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib573.c:73,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib573.c:75,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib573.c:80,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib573.c:81,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib573.c:82,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib573.c:84,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib573.c:88,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib573.c:90,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib573.c:93,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib573.c:95,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib573.c:104,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib573.c:105,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib573.c:106,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib573.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 110
    functionName: test_lib573
    functionSourceFile: /src/curl/tests/libtest/lib573.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_easy_getinfo
    - easy_setopt
    - multi_fdset
    - curl_mfprintf
    - easy_init
    - curl_multi_remove_handle
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib573(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1956.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1956.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1956.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1956.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1956.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1956.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1956.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1956.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1956.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1956.c:49,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1956.c:50,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1956.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1956.c:56,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1956.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1956.c:59,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1956.c:61,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1956.c:65,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1956.c:66,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1956.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1956.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 71
    functionName: test_lib1956
    functionSourceFile: /src/curl/tests/libtest/lib1956.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1956(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3010.c:33,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib3010.c:34,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3010.c:37,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3010.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3010.c:40,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib3010.c:42,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib3010.c:45,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib3010.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3010.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3010.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3010.c:49,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3010.c:51,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib3010.c:53,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib3010.c:57,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib3010.c:58,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3010.c:59,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3010.c:63,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3010.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 67
    functionName: test_lib3010
    functionSourceFile: /src/curl/tests/libtest/lib3010.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - curl_easy_strerror
    - curl_easy_reset
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3010(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SET_SOCKERRNO
      Src: /src/curl/tests/libtest/first.c:38,1
    - Dst: Sleep
      Src: /src/curl/tests/libtest/first.c:48,1
    - Dst: curlx_tvtoms
      Src: /src/curl/tests/libtest/first.c:48,1
    - Dst: select
      Src: /src/curl/tests/libtest/first.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - nfds
    - rd
    - wr
    - exc
    - tv
    argTypes:
    - int
    - fd_set*
    - fd_set*
    - fd_set*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: select_wrapper
    functionSourceFile: /src/curl/tests/libtest/first.c
    functionUses: 0
    functionsReached:
    - curlx_tvtoms
    - select
    - Sleep
    - SET_SOCKERRNO
    linkageType: ''
    returnType: int
    signature: "int select_wrapper(int nfds, fd_set *rd, fd_set *wr, fd_set *exc,\n
      \                  struct timeval *tv)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/libtest/first.c:82,1
    - Dst: strchr
      Src: /src/curl/tests/libtest/first.c:90,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - argc
    - argv
    - optstring
    argTypes:
    - int
    - char*[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 128
    functionName: cgetopt
    functionSourceFile: /src/curl/tests/libtest/first.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strchr
    linkageType: ''
    returnType: int
    signature: int cgetopt(int argc, const char * const argv[], const char *optstring)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/tests/libtest/first.c:135,1
    - Dst: curl_dbg_memdebug
      Src: /src/curl/tests/libtest/first.c:138,1
    - Dst: getenv
      Src: /src/curl/tests/libtest/first.c:141,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/first.c:144,1
    - Dst: curl_dbg_memlimit
      Src: /src/curl/tests/libtest/first.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: memory_tracking_init
    functionSourceFile: /src/curl/tests/libtest/first.c
    functionUses: 0
    functionsReached:
    - getenv
    - curl_dbg_memdebug
    - curl_dbg_memlimit
    - curlx_str_number
    linkageType: ''
    returnType: void
    signature: void memory_tracking_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: memory_tracking_init
    functionSourceFile: /src/curl/tests/libtest/first.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memory_tracking_init()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/first.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: hexdump
    functionSourceFile: /src/curl/tests/libtest/first.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: char
    signature: char *hexdump(const unsigned char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_send
      Src: /src/curl/tests/libtest/first.c:169,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/first.c:169,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - curl
    - send_payload
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: ws_send_ping
    functionSourceFile: /src/curl/tests/libtest/first.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_mfprintf
    - curl_ws_send
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ws_send_ping(CURL *curl, const char *send_payload)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_recv
      Src: /src/curl/tests/libtest/first.c:181,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:183,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:189,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:194,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/first.c:195,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/first.c:196,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:197,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - curl
    - expected_payload
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 202
    functionName: ws_recv_pong
    functionSourceFile: /src/curl/tests/libtest/first.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_mfprintf
    - curl_ws_recv
    - memcmp
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ws_recv_pong(CURL *curl, const char *expected_payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_send
      Src: /src/curl/tests/libtest/first.c:208,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: ws_close
    functionSourceFile: /src/curl/tests/libtest/first.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_ws_send
    linkageType: ''
    returnType: void
    signature: void ws_close(CURL *curl)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/libtest/first.c:223,1
    - Dst: memory_tracking_init
      Src: /src/curl/tests/libtest/first.c:225,1
    - Dst: curlx_now_init
      Src: /src/curl/tests/libtest/first.c:227,1
    - Dst: setlocale
      Src: /src/curl/tests/libtest/first.c:236,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:243,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/first.c:251,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:258,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:264,1
    - Dst: getenv
      Src: /src/curl/tests/libtest/first.c:280,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/first.c:283,1
    - Dst: tool_init_stderr
      Src: /src/curl/tests/libtest/first.c:288,1
    - Dst: entry_func
      Src: /src/curl/tests/libtest/first.c:291,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/first.c:292,1
    - Dst: _flushall
      Src: /src/curl/tests/libtest/first.c:296,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 302
    functionName: main
    functionSourceFile: /src/curl/tests/libtest/first.c
    functionUses: 0
    functionsReached:
    - memory_tracking_init
    - curl_mfprintf
    - tool_init_stderr
    - entry_func
    - setlocale
    - getenv
    - curlx_str_number
    - _flushall
    - strcmp
    - CURL_BINMODE
    - curlx_now_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib2502.c:43,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2502.c:44,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib2502.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2502.c:47,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib2502.c:51,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2502.c:53,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib2502.c:55,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib2502.c:57,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib2502.c:60,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib2502.c:62,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib2502.c:64,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2502.c:67,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2502.c:69,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2502.c:70,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2502.c:71,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2502.c:73,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2502.c:77,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2502.c:78,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2502.c:79,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2502.c:81,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2502.c:83,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2502.c:86,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib2502.c:88,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib2502.c:90,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib2502.c:100,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib2502.c:102,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2502.c:107,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2502.c:108,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2502.c:109,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib2502.c:111,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib2502.c:115,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib2502.c:117,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib2502.c:119,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib2502.c:126,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib2502.c:127,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2502.c:128,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib2502.c:131,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib2502.c:133,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2502.c:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 60
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 137
    functionName: test_lib2502
    functionSourceFile: /src/curl/tests/libtest/lib2502.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_msnprintf
    - curl_multi_remove_handle
    - test_setopt
    - multi_setopt
    - curl_global_cleanup
    - select_test
    - multi_fdset
    - easy_init
    - curl_mprintf
    - curl_slist_free_all
    - curlx_wait_ms
    - easy_setopt
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - multi_init
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - start_test_timing
    - multi_perform
    - curl_slist_append
    - abort_on_test_timeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2502(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1955.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1955.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1955.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1955.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1955.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1955.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1955.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1955.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1955.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1955.c:49,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1955.c:50,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1955.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1955.c:56,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1955.c:57,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1955.c:63,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1955.c:68,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1955.c:72,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1955.c:74,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1955.c:75,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1955.c:76,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1955.c:78,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1955.c:82,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1955.c:83,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1955.c:84,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1955.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 88
    functionName: test_lib1955
    functionSourceFile: /src/curl/tests/libtest/lib1955.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1955(const char *URL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1939.c:32,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/lib1939.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1939.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1939.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1939.c:45,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/lib1939.c:51,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/lib1939.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1939.c:59,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1939.c:63,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1939.c:65,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1939.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 69
    functionName: test_lib1939
    functionSourceFile: /src/curl/tests/libtest/lib1939.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_init
    - curl_multi_perform
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1939(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1649.c:32,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1649.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - curl
    - url
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 44
    functionName: init1649
    functionSourceFile: /src/curl/tests/libtest/lib1649.c
    functionUses: 0
    functionsReached:
    - res_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode init1649(CURL *curl, const char *url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init1649
      Src: /src/curl/tests/libtest/lib1649.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1649.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - curl
    - url
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: run1649
    functionSourceFile: /src/curl/tests/libtest/lib1649.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - init1649
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode run1649(CURL *curl, const char *url)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib1649.c:62,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1649.c:66,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1649.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1649.c:69,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1649.c:73,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1649.c:75,1
    - Dst: run1649
      Src: /src/curl/tests/libtest/lib1649.c:77,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1649.c:82,1
    - Dst: run1649
      Src: /src/curl/tests/libtest/lib1649.c:84,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1649.c:87,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1649.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 90
    functionName: test_lib1649
    functionSourceFile: /src/curl/tests/libtest/lib1649.c
    functionUses: 0
    functionsReached:
    - run1649
    - curl_mfprintf
    - easy_setopt
    - curl_easy_init
    - start_test_timing
    - res_global_init
    - curl_easy_cleanup
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1649(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: RTP_PKT_CHANNEL
    functionSourceFile: /src/curl/tests/libtest/lib571.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTP_PKT_CHANNEL(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: RTP_PKT_LENGTH
    functionSourceFile: /src/curl/tests/libtest/lib571.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTP_PKT_LENGTH(p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RTP_PKT_CHANNEL
      Src: /src/curl/tests/libtest/lib571.c:51,1
    - Dst: RTP_PKT_LENGTH
      Src: /src/curl/tests/libtest/lib571.c:53,1
    - Dst: curlx_uztosi
      Src: /src/curl/tests/libtest/lib571.c:58,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib571.c:60,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib571.c:62,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib571.c:70,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib571.c:71,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib571.c:78,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib571.c:79,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib571.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - data
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 92
    functionName: rtp_write
    functionSourceFile: /src/curl/tests/libtest/lib571.c
    functionUses: 2
    functionsReached:
    - curlx_uztosi
    - RTP_PKT_LENGTH
    - curl_mfprintf
    - curl_mprintf
    - memcmp
    - RTP_PKT_CHANNEL
    linkageType: ''
    returnType: size_t
    signature: size_t rtp_write(char *data, size_t size, size_t nmemb, void *stream)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib571.c:101,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib571.c:103,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib571.c:107,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib571.c:108,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib571.c:109,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib571.c:113,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib571.c:115,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib571.c:116,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib571.c:117,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:120,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib571.c:122,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:127,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib571.c:128,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:131,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:132,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:133,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:134,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:136,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:137,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib571.c:139,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib571.c:144,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:149,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib571.c:150,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:152,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib571.c:154,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib571.c:159,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:164,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib571.c:165,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:167,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib571.c:169,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib571.c:173,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:178,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib571.c:179,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:181,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib571.c:183,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib571.c:187,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib571.c:191,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib571.c:192,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib571.c:193,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib571.c:197,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib571.c:200,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib571.c:202,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib571.c:203,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 93
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 206
    functionName: test_lib571
    functionSourceFile: /src/curl/tests/libtest/lib571.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - tutil_suburl
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curlx_fopen
    - test_setopt
    - curl_free
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib571(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: test_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_setopt(A, B, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: test_multi_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_multi_setopt(A, B, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: exe_easy_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_easy_init(A, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: res_easy_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_easy_init(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: chk_easy_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_easy_init(A, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: easy_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: easy_init(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: exe_multi_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_multi_init(A, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: res_multi_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_multi_init(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: chk_multi_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_multi_init(A, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: multi_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_init(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: exe_easy_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_easy_setopt(A, B, C, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: res_easy_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_easy_setopt(A, B, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: chk_easy_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_easy_setopt(A, B, C, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: easy_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: easy_setopt(A, B, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: exe_multi_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_multi_setopt(A, B, C, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: res_multi_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_multi_setopt(A, B, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: chk_multi_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_multi_setopt(A, B, C, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: multi_setopt
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_setopt(A, B, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 271
    functionName: exe_multi_add_handle
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_multi_add_handle(A, B, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: res_multi_add_handle
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_multi_add_handle(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: chk_multi_add_handle
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_multi_add_handle(A, B, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: multi_add_handle
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_add_handle(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 298
    functionName: exe_multi_remove_handle
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_multi_remove_handle(A, B, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: res_multi_remove_handle
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_multi_remove_handle(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: chk_multi_remove_handle
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_multi_remove_handle(A, B, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: multi_remove_handle
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_remove_handle(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 334
    functionName: exe_multi_perform
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_multi_perform(A, B, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: res_multi_perform
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_multi_perform(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: chk_multi_perform
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_multi_perform(A, B, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 347
    functionName: multi_perform
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_perform(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 368
    functionName: exe_multi_fdset
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_multi_fdset(A, B, C, D, E, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 371
    functionName: res_multi_fdset
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_multi_fdset(A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: chk_multi_fdset
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_multi_fdset(A, B, C, D, E, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: multi_fdset
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_fdset(A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 402
    functionName: exe_multi_timeout
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_multi_timeout(A, B, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 405
    functionName: res_multi_timeout
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_multi_timeout(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 412
    functionName: chk_multi_timeout
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_multi_timeout(A, B, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: multi_timeout
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_timeout(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 436
    functionName: exe_multi_poll
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_multi_poll(A, B, C, D, E, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: res_multi_poll
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_multi_poll(A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: chk_multi_poll
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_multi_poll(A, B, C, D, E, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: multi_poll
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_poll(A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 465
    functionName: exe_multi_wakeup
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_multi_wakeup(A, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 468
    functionName: res_multi_wakeup
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_multi_wakeup(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: chk_multi_wakeup
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_multi_wakeup(A, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: multi_wakeup
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_wakeup(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 495
    functionName: exe_select_test
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_select_test(A, B, C, D, E, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: res_select_test
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_select_test(A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 505
    functionName: chk_select_test
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_select_test(A, B, C, D, E, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 508
    functionName: select_test
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select_test(A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: start_test_timing
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: start_test_timing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 529
    functionName: exe_test_timedout
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_test_timedout(T, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: res_test_timedout
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_test_timedout()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 536
    functionName: res_test_timedout_custom
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_test_timedout_custom(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 544
    functionName: chk_test_timedout
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_test_timedout(T, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 547
    functionName: abort_on_test_timeout
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abort_on_test_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 550
    functionName: abort_on_test_timeout_custom
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abort_on_test_timeout_custom(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 555
    functionName: res_global_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: res_global_init(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 573
    functionName: exe_global_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exe_global_init(A, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 580
    functionName: chk_global_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_global_init(A, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 586
    functionName: global_init
    functionSourceFile: /src/curl/tests/libtest/first.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: global_init(A)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/lib562.c:39,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib562.c:42,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib562.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib562.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib562.c:50,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib562.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib562.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib562.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib562.c:62,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib562.c:65,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib562.c:69,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib562.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 73
    functionName: test_lib562
    functionSourceFile: /src/curl/tests/libtest/lib562.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curlx_str_number
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib562(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1587.c:45,1
    - Dst: SSL_CTX_get_options
      Src: /src/curl/tests/libtest/lib1587.c:49,1
    - Dst: SSL_CTX_set_options
      Src: /src/curl/tests/libtest/lib1587.c:50,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1587.c:51,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1587.c:54,1
    - Dst: SSL_get_options
      Src: /src/curl/tests/libtest/lib1587.c:58,1
    - Dst: SSL_set_options
      Src: /src/curl/tests/libtest/lib1587.c:59,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1587.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 65
    functionName: write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1587.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - SSL_set_options
    - SSL_CTX_set_options
    - curl_mprintf
    - SSL_CTX_get_options
    - SSL_get_options
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1587.c:69,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1587.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1587.c:76,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1587.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1587.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1587.c:79,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1587.c:80,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1587.c:81,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1587.c:83,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1587.c:84,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1587.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 90
    functionName: test_lib1587
    functionSourceFile: /src/curl/tests/libtest/lib1587.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1587(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: test_lib1587
    functionSourceFile: /src/curl/tests/libtest/lib1587.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1587(const char *URL)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib661.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib661.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib661.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib661.c:40,1
    - Dst: curl_maprintf
      Src: /src/curl/tests/libtest/lib661.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:51,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib661.c:52,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib661.c:56,1
    - Dst: curl_maprintf
      Src: /src/curl/tests/libtest/lib661.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib661.c:59,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib661.c:65,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib661.c:66,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib661.c:68,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib661.c:73,1
    - Dst: curl_maprintf
      Src: /src/curl/tests/libtest/lib661.c:74,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:75,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:76,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:77,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:78,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib661.c:79,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib661.c:84,1
    - Dst: curl_maprintf
      Src: /src/curl/tests/libtest/lib661.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:86,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:87,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib661.c:88,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib661.c:92,1
    - Dst: curl_maprintf
      Src: /src/curl/tests/libtest/lib661.c:93,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:94,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:95,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib661.c:96,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib661.c:102,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib661.c:103,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib661.c:105,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib661.c:110,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib661.c:112,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:117,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:118,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:119,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:120,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:121,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib661.c:122,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib661.c:128,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib661.c:129,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib661.c:131,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:136,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:137,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:138,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:139,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:140,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib661.c:141,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib661.c:148,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:149,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:150,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:151,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:152,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib661.c:153,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib661.c:154,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib661.c:159,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib661.c:160,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib661.c:161,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib661.c:162,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib661.c:163,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 119
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 166
    functionName: test_lib661
    functionSourceFile: /src/curl/tests/libtest/lib661.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_free
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_reset
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib661(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts:
    - condition: (false)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/curl/tests/libtest/lib2700.c
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: descr_flags
    functionSourceFile: /src/curl/tests/libtest/lib2700.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *descr_flags(int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_send
      Src: /src/curl/tests/libtest/lib2700.c:52,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:55,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2700.c:59,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib2700.c:60,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:61,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - curl
    - flags
    - size
    argTypes:
    - CURL*
    - int
    - size_t
    assertStmts:
    - condition: (nsent == 0)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (nsent == 0)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (nsent == 0)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/curl/tests/libtest/lib2700.c
    constantsTouched: []
    func_position:
      end: 68
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 68
    functionName: send_header
    functionSourceFile: /src/curl/tests/libtest/lib2700.c
    functionUses: 0
    functionsReached:
    - curl_easy_strerror
    - curl_mfprintf
    - curl_ws_send
    - assert
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode send_header(CURL *curl, int flags, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_recv
      Src: /src/curl/tests/libtest/lib2700.c:82,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:84,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2700.c:88,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib2700.c:89,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:90,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:94,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:95,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:96,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:97,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2700.c:103,1
    - Dst: descr_flags
      Src: /src/curl/tests/libtest/lib2700.c:103,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2700.c:107,1
    - Dst: send_header
      Src: /src/curl/tests/libtest/lib2700.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 4
    argNames:
    - curl
    - flags
    - offset
    - bytesleft
    argTypes:
    - CURL*
    - int*
    - curl_off_t*
    - curl_off_t*
    assertStmts:
    - condition: (nread == 0)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (nread == 0)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (nread == 0)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (meta != NULL)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (meta->flags)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (meta->offset == 0)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/curl/tests/libtest/lib2700.c
    constantsTouched: []
    func_position:
      end: 114
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 114
    functionName: recv_header
    functionSourceFile: /src/curl/tests/libtest/lib2700.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - descr_flags
    - curl_easy_strerror
    - send_header
    - assert
    - curl_ws_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode recv_header(CURL *curl, int *flags, curl_off_t *offset,\n
      \                           curl_off_t *bytesleft)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_send
      Src: /src/curl/tests/libtest/lib2700.c:123,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:126,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2700.c:130,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib2700.c:131,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:132,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - curl
    - flags
    - buffer
    - size
    - offset
    argTypes:
    - CURL*
    - int
    - char*
    - size_t
    - size_t*
    assertStmts:
    - condition: (nsent == 0)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (nsent == 0)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (nsent <= size - *offset)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/curl/tests/libtest/lib2700.c
    constantsTouched: []
    func_position:
      end: 141
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 141
    functionName: send_chunk
    functionSourceFile: /src/curl/tests/libtest/lib2700.c
    functionUses: 0
    functionsReached:
    - curl_easy_strerror
    - curl_mfprintf
    - curl_ws_send
    - assert
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode send_chunk(CURL *curl, int flags, const char *buffer,\n                           size_t
      size, size_t *offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_recv
      Src: /src/curl/tests/libtest/lib2700.c:153,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:155,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2700.c:159,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib2700.c:160,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:161,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:165,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:166,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:167,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:168,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib2700.c:169,1
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib2700.c:174,1
    - Dst: send_chunk
      Src: /src/curl/tests/libtest/lib2700.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - curl
    - flags
    - offset
    - bytesleft
    argTypes:
    - CURL*
    - int
    - curl_off_t*
    - curl_off_t*
    assertStmts:
    - condition: (nread == 0)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (nread == 0)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (nread <= sizeof(buffer))
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (meta != NULL)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (meta->flags == flags)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (meta->offset == *offset)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/curl/tests/libtest/lib2700.c
    - condition: (meta->bytesleft == (*bytesleft - (curl_off_t)nread))
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/curl/tests/libtest/lib2700.c
    constantsTouched: []
    func_position:
      end: 183
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 183
    functionName: recv_chunk
    functionSourceFile: /src/curl/tests/libtest/lib2700.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_strerror
    - fwrite
    - send_chunk
    - assert
    - curl_ws_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode recv_chunk(CURL *curl, int flags, curl_off_t *offset,\n                           curl_off_t
      *bytesleft)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: recv_header
      Src: /src/curl/tests/libtest/lib2700.c:192,1
    - Dst: recv_chunk
      Src: /src/curl/tests/libtest/lib2700.c:197,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2700.c:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - curl
    - stop
    argTypes:
    - CURL*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: recv_frame
    functionSourceFile: /src/curl/tests/libtest/lib2700.c
    functionUses: 0
    functionsReached:
    - recv_header
    - recv_chunk
    - curl_mfprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode recv_frame(CURL *curl, bool *stop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2700.c:218,1
    - Dst: curl_global_trace
      Src: /src/curl/tests/libtest/lib2700.c:219,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib2700.c:220,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2700.c:222,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2700.c:223,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2700.c:226,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2700.c:227,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2700.c:228,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2700.c:229,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2700.c:231,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2700.c:233,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2700.c:235,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib2700.c:237,1
    - Dst: recv_frame
      Src: /src/curl/tests/libtest/lib2700.c:242,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2700.c:248,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2700.c:249,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2700.c:253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 256
    functionName: test_lib2700
    functionSourceFile: /src/curl/tests/libtest/lib2700.c
    functionUses: 0
    functionsReached:
    - curl_global_trace
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - recv_frame
    - curl_easy_perform
    - curl_easy_strerror
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2700(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1937.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1937.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1937.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1937.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1937.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1937.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1937.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1937.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1937.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1937.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1937.c:50,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1937.c:52,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1937.c:54,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1937.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1937.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1937.c:57,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1937.c:59,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1937.c:63,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1937.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1937.c:65,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1937.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 69
    functionName: test_lib1937
    functionSourceFile: /src/curl/tests/libtest/lib1937.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1937(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: header
    functionSourceFile: /src/curl/tests/libtest/lib1556.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t header(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1556.c:50,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1556.c:52,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1556.c:54,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1556.c:55,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1556.c:56,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1556.c:57,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1556.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1556.c:61,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1556.c:63,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1556.c:68,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1556.c:72,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1556.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 76
    functionName: test_lib1556
    functionSourceFile: /src/curl/tests/libtest/lib1556.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - curl_easy_perform
    - curl_mprintf
    - curl_easy_strerror
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1556(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1906.c:30,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1906.c:34,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1906.c:36,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1906.c:37,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1906.c:38,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1906.c:39,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1906.c:41,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1906.c:43,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1906.c:44,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1906.c:46,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1906.c:48,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1906.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1906.c:57,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1906.c:58,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1906.c:62,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1906.c:64,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1906.c:66,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1906.c:68,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1906.c:71,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1906.c:72,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1906.c:75,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1906.c:76,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1906.c:77,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1906.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 81
    functionName: test_lib1906
    functionSourceFile: /src/curl/tests/libtest/lib1906.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - curl_easy_perform
    - curl_url_cleanup
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_url_get
    - curl_free
    - curl_global_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1906(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2082.c:40,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2082.c:41,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2082.c:44,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2082.c:45,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2082.c:48,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2082.c:49,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2082.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - clientp
    - conn_primary_ip
    - conn_local_ip
    - conn_primary_port
    - conn_local_port
    argTypes:
    - void*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 52
    functionName: prereq_callback
    functionSourceFile: /src/curl/tests/libtest/lib2082.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: int
    signature: "int prereq_callback(void *clientp,\n                           char
      *conn_primary_ip,\n                           char *conn_local_ip,\n                           int
      conn_primary_port,\n                           int conn_local_port)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib2082.c:64,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2082.c:65,1
    - Dst: strstr
      Src: /src/curl/tests/libtest/lib2082.c:68,1
    - Dst: strstr
      Src: /src/curl/tests/libtest/lib2082.c:72,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2082.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2082.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2082.c:79,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2082.c:80,1
    - Dst: strstr
      Src: /src/curl/tests/libtest/lib2082.c:82,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2082.c:84,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2082.c:87,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2082.c:89,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib2082.c:91,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2082.c:97,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2082.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 101
    functionName: test_lib2082
    functionSourceFile: /src/curl/tests/libtest/lib2082.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - strstr
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2082(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib560.c:44,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib560.c:48,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib560.c:51,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib560.c:52,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib560.c:53,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib560.c:54,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib560.c:57,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib560.c:60,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib560.c:63,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib560.c:65,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib560.c:75,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib560.c:76,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib560.c:77,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib560.c:84,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib560.c:88,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib560.c:90,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib560.c:93,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib560.c:95,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib560.c:102,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib560.c:103,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib560.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 107
    functionName: test_lib560
    functionSourceFile: /src/curl/tests/libtest/lib560.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - multi_fdset
    - easy_init
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib560(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 50
    functionName: t667_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib667.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t667_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib667.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib667.c:68,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib667.c:72,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib667.c:75,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib667.c:78,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib667.c:81,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib667.c:85,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib667.c:88,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib667.c:89,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib667.c:90,1
    - Dst: curl_mime_encoder
      Src: /src/curl/tests/libtest/lib667.c:91,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib667.c:93,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib667.c:96,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib667.c:99,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib667.c:101,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib667.c:105,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib667.c:106,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib667.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 109
    functionName: test_lib667
    functionSourceFile: /src/curl/tests/libtest/lib667.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_mime_free
    - test_setopt
    - curl_mime_addpart
    - curl_mime_data_cb
    - curl_mime_encoder
    - curl_mime_init
    - curl_easy_cleanup
    - curl_global_init
    - strlen
    - curl_mime_name
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib667(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib658.c:37,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib658.c:38,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib658.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib658.c:43,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib658.c:47,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib658.c:49,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib658.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib658.c:55,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib658.c:57,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib658.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib658.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib658.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib658.c:65,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib658.c:71,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib658.c:72,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib658.c:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 76
    functionName: test_lib658
    functionSourceFile: /src/curl/tests/libtest/lib658.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - curl_url_strerror
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_url_cleanup
    - curl_easy_strerror
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib658(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib567.c:35,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib567.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib567.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib567.c:42,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib567.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib567.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib567.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib567.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib567.c:52,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib567.c:53,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib567.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib567.c:55,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib567.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib567.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib567.c:60,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib567.c:65,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib567.c:66,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib567.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 70
    functionName: test_lib567
    functionSourceFile: /src/curl/tests/libtest/lib567.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib567(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib1517.c:38,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1517.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 50
    functionName: t1517_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1517.c
    functionUses: 0
    functionsReached:
    - memcpy
    - curlx_wait_ms
    linkageType: ''
    returnType: size_t
    signature: size_t t1517_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1517.c:63,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1517.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1517.c:66,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1517.c:70,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1517.c:72,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1517.c:73,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1517.c:78,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1517.c:81,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1517.c:84,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1517.c:87,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1517.c:90,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1517.c:93,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1517.c:96,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1517.c:100,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1517.c:104,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1517.c:109,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1517.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 113
    functionName: test_lib1517
    functionSourceFile: /src/curl/tests/libtest/lib1517.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1517(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1902.c:31,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1902.c:33,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1902.c:35,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1902.c:36,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1902.c:43,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1902.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 46
    functionName: test_lib1902
    functionSourceFile: /src/curl/tests/libtest/lib1902.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - curl_easy_init
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1902(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib543.c:40,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib543.c:41,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib543.c:43,1
    - Dst: curl_easy_escape
      Src: /src/curl/tests/libtest/lib543.c:48,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib543.c:51,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib543.c:52,1
    - Dst: curl_easy_escape
      Src: /src/curl/tests/libtest/lib543.c:55,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib543.c:57,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib543.c:58,1
    - Dst: curl_easy_escape
      Src: /src/curl/tests/libtest/lib543.c:60,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib543.c:62,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib543.c:63,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib543.c:66,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib543.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 71
    functionName: test_lib543
    functionSourceFile: /src/curl/tests/libtest/lib543.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_mprintf
    - curl_easy_init
    - curl_easy_cleanup
    - global_init
    - curl_free
    - curl_global_cleanup
    - curl_easy_escape
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib543(const char *URL)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1911.c:39,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1911.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1911.c:42,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1911.c:47,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1911.c:50,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1911.c:50,1
    - Dst: curl_easy_option_next
      Src: /src/curl/tests/libtest/lib1911.c:52,1
    - Dst: curl_easy_option_next
      Src: /src/curl/tests/libtest/lib1911.c:52,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1911.c:71,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1911.c:80,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1911.c:87,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1911.c:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 90
    functionName: test_lib1911
    functionSourceFile: /src/curl/tests/libtest/lib1911.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - strlen
    - curl_easy_init
    - curl_mprintf
    - curl_easy_cleanup
    - curl_global_init
    - curl_easy_setopt
    - memset
    - curl_easy_option_next
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1911(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: KN
    functionSourceFile: /src/curl/tests/libtest/lib1541.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1541.c:36,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1541.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - val
    - lineno
    argTypes:
    - char*
    - CURLcode
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: t1541_geterr
    functionSourceFile: /src/curl/tests/libtest/lib1541.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_easy_strerror
    linkageType: ''
    returnType: void
    signature: void t1541_geterr(const char *name, CURLcode val, int lineno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1541.c:44,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1541.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - key
    - where
    - time
    - ok
    argTypes:
    - char*
    - char*
    - curl_off_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: report_time
    functionSourceFile: /src/curl/tests/libtest/lib1541.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: void
    signature: "void report_time(const char *key, const char *where, curl_off_t time,\n
      \                       bool ok)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1541.c:54,1
    - Dst: t1541_geterr
      Src: /src/curl/tests/libtest/lib1541.c:56,1
    - Dst: report_time
      Src: /src/curl/tests/libtest/lib1541.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - curl
    - key
    - name
    - where
    argTypes:
    - CURL*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: check_time
    functionSourceFile: /src/curl/tests/libtest/lib1541.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - t1541_geterr
    - report_time
    linkageType: ''
    returnType: void
    signature: "void check_time(CURL *curl, int key, const char *name,\n                       const
      char *where)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1541.c:66,1
    - Dst: t1541_geterr
      Src: /src/curl/tests/libtest/lib1541.c:68,1
    - Dst: report_time
      Src: /src/curl/tests/libtest/lib1541.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - curl
    - key
    - name
    - where
    argTypes:
    - CURL*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: check_time0
    functionSourceFile: /src/curl/tests/libtest/lib1541.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - t1541_geterr
    - report_time
    linkageType: ''
    returnType: void
    signature: "void check_time0(CURL *curl, int key, const char *name,\n                        const
      char *where)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:83,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:83,1
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:84,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:84,1
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:85,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:85,1
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:87,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:87,1
    - Dst: check_time0
      Src: /src/curl/tests/libtest/lib1541.c:89,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:89,1
    - Dst: check_time0
      Src: /src/curl/tests/libtest/lib1541.c:91,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:91,1
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib1541.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: t1541_header_callback
    functionSourceFile: /src/curl/tests/libtest/lib1541.c
    functionUses: 0
    functionsReached:
    - check_time0
    - check_time
    - KN
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: "size_t t1541_header_callback(char *ptr, size_t size, size_t nmemb,\n
      \                                   void *userp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib1541.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: t1541_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1541.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t t1541_write_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1541.c:113,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1541.c:115,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1541.c:117,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1541.c:119,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1541.c:122,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1541.c:123,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1541.c:124,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1541.c:125,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1541.c:126,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1541.c:128,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1541.c:130,1
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:132,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:132,1
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:133,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:133,1
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:134,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:134,1
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:135,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:135,1
    - Dst: check_time0
      Src: /src/curl/tests/libtest/lib1541.c:137,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:137,1
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:138,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:138,1
    - Dst: check_time
      Src: /src/curl/tests/libtest/lib1541.c:139,1
    - Dst: KN
      Src: /src/curl/tests/libtest/lib1541.c:139,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1541.c:143,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1541.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 147
    functionName: test_lib1541
    functionSourceFile: /src/curl/tests/libtest/lib1541.c
    functionUses: 0
    functionsReached:
    - check_time
    - easy_setopt
    - easy_init
    - check_time0
    - curl_easy_perform
    - KN
    - start_test_timing
    - curl_easy_cleanup
    - global_init
    - memset
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1541(const char *URL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1977.c:29,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1977.c:30,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1977.c:34,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1977.c:35,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1977.c:38,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1977.c:39,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1977.c:41,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1977.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1977.c:49,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1977.c:52,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1977.c:53,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1977.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1977.c:56,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1977.c:61,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1977.c:64,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1977.c:70,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1977.c:72,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1977.c:77,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1977.c:80,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1977.c:83,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1977.c:84,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1977.c:85,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1977.c:86,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 89
    functionName: test_lib1977
    functionSourceFile: /src/curl/tests/libtest/lib1977.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_easy_getinfo
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_mprintf
    - curl_url_cleanup
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1977(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1500.c:35,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1500.c:37,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1500.c:39,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1500.c:41,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1500.c:43,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1500.c:44,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1500.c:46,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1500.c:48,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1500.c:50,1
    - Dst: curl_multi_wait
      Src: /src/curl/tests/libtest/lib1500.c:55,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1500.c:57,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1500.c:62,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1500.c:64,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1500.c:66,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib1500.c:69,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1500.c:79,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1500.c:80,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1500.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 87
    functionName: test_lib1500
    functionSourceFile: /src/curl/tests/libtest/lib1500.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - easy_init
    - curl_multi_info_read
    - curl_mprintf
    - start_test_timing
    - multi_perform
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_wait
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1500(const char *URL)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib568.c:43,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib568.c:44,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib568.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib568.c:50,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib568.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:58,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib568.c:60,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:65,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib568.c:66,1
    - Dst: curlx_open
      Src: /src/curl/tests/libtest/lib568.c:69,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib568.c:71,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib568.c:72,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib568.c:73,1
    - Dst: curlx_fstat
      Src: /src/curl/tests/libtest/lib568.c:77,1
    - Dst: curlx_close
      Src: /src/curl/tests/libtest/lib568.c:78,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib568.c:80,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib568.c:82,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib568.c:83,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib568.c:84,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:88,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:90,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:91,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:92,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:93,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib568.c:96,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:100,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib568.c:101,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib568.c:105,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:110,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib568.c:111,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:114,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib568.c:115,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib568.c:121,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:126,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib568.c:127,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib568.c:130,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:136,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:137,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:138,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib568.c:141,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:145,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:146,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib568.c:147,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib568.c:151,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:156,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib568.c:157,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib568.c:160,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib568.c:161,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib568.c:166,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib568.c:168,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib568.c:171,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib568.c:173,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib568.c:174,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 114
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 177
    functionName: test_lib568
    functionSourceFile: /src/curl/tests/libtest/lib568.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - tutil_suburl
    - curlx_close
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curlx_strerror
    - curlx_fopen
    - test_setopt
    - curl_free
    - curl_slist_append
    - curlx_open
    - curl_easy_cleanup
    - curlx_fstat
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib568(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1662.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: t1662_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1662.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t1662_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1662.c:59,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1662.c:61,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:63,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:65,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib1662.c:66,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib1662.c:68,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib1662.c:69,1
    - Dst: curl_mime_filename
      Src: /src/curl/tests/libtest/lib1662.c:70,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib1662.c:71,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:72,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:73,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:76,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1662.c:79,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1662.c:80,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1662.c:84,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib1662.c:85,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1662.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 88
    functionName: test_lib1662
    functionSourceFile: /src/curl/tests/libtest/lib1662.c
    functionUses: 0
    functionsReached:
    - curl_mime_filename
    - curl_easy_init
    - curl_easy_perform
    - curl_mime_free
    - curl_mime_data_cb
    - curl_mime_addpart
    - curl_easy_cleanup
    - curl_mime_init
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    - curl_mime_name
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1662(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3103.c:32,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/lib3103.c:34,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib3103.c:35,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib3103.c:37,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3103.c:38,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3103.c:40,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3103.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3103.c:42,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3103.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3103.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3103.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3103.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3103.c:52,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib3103.c:53,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3103.c:59,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib3103.c:60,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3103.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 64
    functionName: test_lib3103
    functionSourceFile: /src/curl/tests/libtest/lib3103.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_share_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - test_setopt
    - curl_share_init
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    - curl_share_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3103(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib3027.c:30,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3027.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib3027.c:34,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3027.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3027.c:37,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3027.c:38,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib3027.c:41,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3027.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3027.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: test_lib3027
    functionSourceFile: /src/curl/tests/libtest/lib3027.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_easy_perform
    - curl_easy_init
    - start_test_timing
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3027(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1967.c:28,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1967.c:32,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1967.c:33,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1967.c:35,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1967.c:36,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1967.c:37,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1967.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: test_lib1967
    functionSourceFile: /src/curl/tests/libtest/lib1967.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mprintf
    - curl_url_cleanup
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1967(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1598.c:40,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1598.c:42,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1598.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - userdata
    argTypes:
    - struct curl_slist**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: t1598_trailers_callback
    functionSourceFile: /src/curl/tests/libtest/lib1598.c
    functionUses: 0
    functionsReached:
    - curl_slist_append
    - curl_slist_free_all
    linkageType: ''
    returnType: int
    signature: int t1598_trailers_callback(struct curl_slist **list, void *userdata)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1598.c:62,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1598.c:63,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1598.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1598.c:69,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1598.c:70,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1598.c:74,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1598.c:79,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1598.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1598.c:86,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1598.c:87,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1598.c:87,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1598.c:88,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1598.c:89,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1598.c:90,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1598.c:91,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1598.c:93,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1598.c:97,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1598.c:99,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1598.c:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 104
    functionName: test_lib1598
    functionSourceFile: /src/curl/tests/libtest/lib1598.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - strlen
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1598(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib559.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib559.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib559.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib559.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib559.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib559.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib559.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib559.c:45,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib559.c:47,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib559.c:50,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib559.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 54
    functionName: test_lib559
    functionSourceFile: /src/curl/tests/libtest/lib559.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib559(const char *URL)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1534.c:34,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1534.c:36,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1534.c:41,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:43,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1534.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:49,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1534.c:56,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1534.c:57,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1534.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:61,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1534.c:63,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1534.c:70,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:72,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1534.c:74,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:78,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib1534.c:88,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:90,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1534.c:96,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:98,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1534.c:100,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:104,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib1534.c:114,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1534.c:116,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:118,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1534.c:120,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1534.c:124,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1534.c:132,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1534.c:133,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1534.c:134,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 136
    functionName: test_lib1534
    functionSourceFile: /src/curl/tests/libtest/lib1534.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_duphandle
    - curl_easy_strerror
    - curl_easy_reset
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1534(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1528.c:34,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1528.c:35,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1528.c:39,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1528.c:41,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1528.c:42,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1528.c:46,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1528.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1528.c:53,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1528.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1528.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1528.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1528.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1528.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1528.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1528.c:60,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1528.c:62,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1528.c:66,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1528.c:67,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1528.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1528.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 72
    functionName: test_lib1528
    functionSourceFile: /src/curl/tests/libtest/lib1528.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1528(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib547.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib547.c:46,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib547.c:47,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib547.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - clientp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: t547_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib547.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t547_read_cb(char *ptr, size_t size, size_t nmemb, void *clientp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib547.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - curl
    - cmd
    - clientp
    argTypes:
    - CURL*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: t547_ioctl_callback
    functionSourceFile: /src/curl/tests/libtest/lib547.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: curlioerr
    signature: curlioerr t547_ioctl_callback(CURL *curl, int cmd, void *clientp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib547.c:71,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib547.c:72,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib547.c:76,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib547.c:78,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib547.c:79,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:83,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:84,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:88,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:92,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:93,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:95,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:96,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:99,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:101,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:102,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:103,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib547.c:104,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib547.c:107,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib547.c:111,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib547.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 115
    functionName: test_lib547
    functionSourceFile: /src/curl/tests/libtest/lib547.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib547(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1513.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - arg
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: progressKiller
    functionSourceFile: /src/curl/tests/libtest/lib1513.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: int
    signature: "int progressKiller(void *arg,\n                          double dltotal,\n
      \                         double dlnow,\n                          double ultotal,\n
      \                         double ulnow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1513.c:53,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1513.c:55,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1513.c:57,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1513.c:58,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1513.c:59,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1513.c:60,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1513.c:61,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1513.c:62,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1513.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1513.c:70,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1513.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 74
    functionName: test_lib1513
    functionSourceFile: /src/curl/tests/libtest/lib1513.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1513(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/lib1568.c:32,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1568.c:35,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1568.c:38,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1568.c:39,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1568.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1568.c:41,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1568.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1568.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1568.c:44,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1568.c:45,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1568.c:46,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1568.c:48,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1568.c:50,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1568.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 54
    functionName: test_lib1568
    functionSourceFile: /src/curl/tests/libtest/lib1568.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curlx_str_number
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1568(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/curl/tests/libtest/lib670.c:47,1
    - Dst: time
      Src: /src/curl/tests/libtest/lib670.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib670.c:56,1
    - Dst: exit
      Src: /src/curl/tests/libtest/lib670.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 58
    functionName: t670_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib670.c
    functionUses: 0
    functionsReached:
    - time
    - curl_mfprintf
    - exit
    linkageType: ''
    returnType: size_t
    signature: size_t t670_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/curl/tests/libtest/lib670.c:72,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib670.c:75,1
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/lib670.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - clientp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 84
    functionName: t670_xferinfo
    functionSourceFile: /src/curl/tests/libtest/lib670.c
    functionUses: 0
    functionsReached:
    - time
    - curl_mfprintf
    - curl_easy_pause
    linkageType: ''
    returnType: int
    signature: "int t670_xferinfo(void *clientp,\n                         curl_off_t
      dltotal, curl_off_t dlnow,\n                         curl_off_t ultotal, curl_off_t
      ulnow)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib670.c:98,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib670.c:99,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib670.c:105,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib670.c:108,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib670.c:111,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib670.c:114,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib670.c:119,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib670.c:120,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib670.c:121,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib670.c:123,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib670.c:129,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib670.c:134,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib670.c:140,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib670.c:146,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib670.c:151,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib670.c:154,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/lib670.c:161,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/lib670.c:162,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/lib670.c:172,1
    - Dst: time
      Src: /src/curl/tests/libtest/lib670.c:177,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib670.c:180,1
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/lib670.c:186,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib670.c:189,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib670.c:190,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib670.c:191,1
    - Dst: curl_multi_fdset
      Src: /src/curl/tests/libtest/lib670.c:194,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib670.c:199,1
    - Dst: select
      Src: /src/curl/tests/libtest/lib670.c:202,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib670.c:204,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib670.c:213,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib670.c:221,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib670.c:222,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib670.c:226,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib670.c:227,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib670.c:228,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib670.c:229,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib670.c:233,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib670.c:236,1
    - Dst: curl_formfree
      Src: /src/curl/tests/libtest/lib670.c:239,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib670.c:242,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 92
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 244
    functionName: test_lib670
    functionSourceFile: /src/curl/tests/libtest/lib670.c
    functionUses: 0
    functionsReached:
    - curl_multi_remove_handle
    - curl_mime_free
    - curl_formfree
    - test_setopt
    - time
    - select
    - curl_global_cleanup
    - curl_formadd
    - curl_multi_cleanup
    - curlx_wait_ms
    - curl_mime_data_cb
    - curl_mime_addpart
    - curl_global_init
    - curl_multi_info_read
    - curl_multi_add_handle
    - FD_ZERO
    - curl_easy_cleanup
    - curl_mime_init
    - curl_multi_init
    - curl_easy_pause
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_multi_perform
    - curl_mime_name
    - curl_multi_fdset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib670(const char *URL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/lib3033.c:36,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3033.c:37,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3033.c:40,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib3033.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3033.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib3033.c:45,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib3033.c:46,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib3033.c:47,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/lib3033.c:49,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/lib3033.c:54,1
    - Dst: curl_multi_wait
      Src: /src/curl/tests/libtest/lib3033.c:55,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3033.c:57,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib3033.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3033.c:72,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib3033.c:76,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3033.c:78,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3033.c:83,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib3033.c:92,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 4
    argNames:
    - multi
    - curl
    - URL
    - index
    argTypes:
    - CURLM*
    - CURL*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 95
    functionName: t3033_req_test
    functionSourceFile: /src/curl/tests/libtest/lib3033.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - easy_setopt
    - curl_mfprintf
    - curl_multi_wait
    - curl_multi_remove_handle
    - curl_mprintf
    - curl_multi_perform
    - curl_multi_setopt
    - curl_easy_reset
    - curl_easy_setopt
    - curl_multi_info_read
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode t3033_req_test(CURLM *multi, CURL *curl,\n                               const
      char *URL, int index)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib3033.c:103,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib3033.c:104,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib3033.c:105,1
    - Dst: t3033_req_test
      Src: /src/curl/tests/libtest/lib3033.c:110,1
    - Dst: t3033_req_test
      Src: /src/curl/tests/libtest/lib3033.c:113,1
    - Dst: t3033_req_test
      Src: /src/curl/tests/libtest/lib3033.c:116,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3033.c:122,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib3033.c:123,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3033.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 127
    functionName: test_lib3033
    functionSourceFile: /src/curl/tests/libtest/lib3033.c
    functionUses: 0
    functionsReached:
    - easy_init
    - curl_easy_cleanup
    - global_init
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - t3033_req_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3033(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1545.c:33,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1545.c:35,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1545.c:37,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib1545.c:38,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1545.c:40,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1545.c:42,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1545.c:43,1
    - Dst: curl_formfree
      Src: /src/curl/tests/libtest/lib1545.c:47,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1545.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1545.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: test_lib1545
    functionSourceFile: /src/curl/tests/libtest/lib1545.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_formadd
    - curl_easy_perform
    - curl_formfree
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1545(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib599.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - clientp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: t599_progress_callback
    functionSourceFile: /src/curl/tests/libtest/lib599.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: int
    signature: "int t599_progress_callback(void *clientp, double dltotal,\n                                  double
      dlnow, double ultotal, double ulnow)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib599.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib599.c:49,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib599.c:53,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib599.c:55,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib599.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib599.c:61,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib599.c:64,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib599.c:65,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib599.c:68,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib599.c:71,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib599.c:74,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib599.c:77,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib599.c:81,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib599.c:83,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib599.c:85,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib599.c:86,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib599.c:93,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib599.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 97
    functionName: test_lib599
    functionSourceFile: /src/curl/tests/libtest/lib599.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curlx_fopen
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib599(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib3034.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: t3034_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib3034.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t3034_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib3034.c:42,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib3034.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3034.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3034.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3034.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3034.c:52,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3034.c:53,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3034.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3034.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3034.c:58,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib3034.c:60,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib3034.c:65,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3034.c:68,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3034.c:69,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3034.c:71,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3034.c:74,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3034.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 77
    functionName: test_lib3034
    functionSourceFile: /src/curl/tests/libtest/lib3034.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - easy_init
    - curl_easy_perform
    - curl_easy_strerror
    - test_setopt
    - curl_easy_reset
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3034(const char *URL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1531.c:38,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1531.c:40,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1531.c:43,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/lib1531.c:46,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/lib1531.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1531.c:52,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1531.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1531.c:54,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/lib1531.c:57,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1531.c:59,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1531.c:73,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1531.c:74,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1531.c:75,1
    - Dst: curl_multi_timeout
      Src: /src/curl/tests/libtest/lib1531.c:81,1
    - Dst: curlx_mstotv
      Src: /src/curl/tests/libtest/lib1531.c:83,1
    - Dst: curl_multi_fdset
      Src: /src/curl/tests/libtest/lib1531.c:91,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1531.c:94,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib1531.c:105,1
    - Dst: select
      Src: /src/curl/tests/libtest/lib1531.c:110,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/lib1531.c:119,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1531.c:123,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib1531.c:128,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1531.c:130,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1531.c:135,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1531.c:139,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1531.c:142,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1531.c:143,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 146
    functionName: test_lib1531
    functionSourceFile: /src/curl/tests/libtest/lib1531.c
    functionUses: 0
    functionsReached:
    - curl_multi_timeout
    - select
    - curl_global_cleanup
    - curl_mprintf
    - curlx_wait_ms
    - curl_multi_info_read
    - curl_multi_add_handle
    - FD_ZERO
    - curl_easy_cleanup
    - curl_multi_init
    - global_init
    - curlx_mstotv
    - curl_mfprintf
    - curl_easy_init
    - curl_multi_perform
    - start_test_timing
    - curl_easy_setopt
    - abort_on_test_timeout
    - curl_multi_cleanup
    - curl_multi_fdset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1531(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - curl
    argTypes:
    - struct cb_data*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: reset_data
    functionSourceFile: /src/curl/tests/libtest/lib1533.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_data(struct cb_data *data, CURL *curl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1533.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ptr
    - size
    - nitems
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: t1533_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1533.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: size_t
    signature: size_t t1533_read_cb(char *ptr, size_t size, size_t nitems, void *userp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/lib1533.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: t1533_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1533.c
    functionUses: 0
    functionsReached:
    - curl_easy_pause
    linkageType: ''
    returnType: size_t
    signature: size_t t1533_write_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1533.c:99,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1533.c:101,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1533.c:105,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1533.c:107,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1533.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - curl
    - description
    - expected_connections
    argTypes:
    - CURL*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 120
    functionName: perform_and_check_connections
    functionSourceFile: /src/curl/tests/libtest/lib1533.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_mfprintf
    - curl_easy_getinfo
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode perform_and_check_connections(CURL *curl,\n                                              const
      char *description,\n                                              long expected_connections)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1533.c:128,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1533.c:129,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1533.c:133,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1533.c:135,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1533.c:136,1
    - Dst: reset_data
      Src: /src/curl/tests/libtest/lib1533.c:140,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1533.c:142,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1533.c:143,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1533.c:144,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1533.c:146,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1533.c:147,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1533.c:148,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1533.c:149,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1533.c:150,1
    - Dst: perform_and_check_connections
      Src: /src/curl/tests/libtest/lib1533.c:153,1
    - Dst: reset_data
      Src: /src/curl/tests/libtest/lib1533.c:160,1
    - Dst: perform_and_check_connections
      Src: /src/curl/tests/libtest/lib1533.c:162,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1533.c:168,1
    - Dst: reset_data
      Src: /src/curl/tests/libtest/lib1533.c:170,1
    - Dst: perform_and_check_connections
      Src: /src/curl/tests/libtest/lib1533.c:172,1
    - Dst: reset_data
      Src: /src/curl/tests/libtest/lib1533.c:178,1
    - Dst: perform_and_check_connections
      Src: /src/curl/tests/libtest/lib1533.c:180,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1533.c:189,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1533.c:190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 193
    functionName: test_lib1533
    functionSourceFile: /src/curl/tests/libtest/lib1533.c
    functionUses: 0
    functionsReached:
    - perform_and_check_connections
    - curl_mfprintf
    - reset_data
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1533(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib537.c:45,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib537.c:48,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib537.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - err
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: t537_store_errmsg
    functionSourceFile: /src/curl/tests/libtest/lib537.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curlx_strerror
    linkageType: ''
    returnType: void
    signature: void t537_store_errmsg(const char *msg, int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_close
      Src: /src/curl/tests/libtest/lib537.c:59,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/libtest/lib537.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: t537_close_file_descriptors
    functionSourceFile: /src/curl/tests/libtest/lib537.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_close
    linkageType: ''
    returnType: void
    signature: void t537_close_file_descriptors(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib537.c:73,1
    - Dst: t537_store_errmsg
      Src: /src/curl/tests/libtest/lib537.c:75,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib537.c:76,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib537.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: t537_fopen_works
    functionSourceFile: /src/curl/tests/libtest/lib537.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - t537_store_errmsg
    - curl_mfprintf
    - curlx_fopen
    linkageType: ''
    returnType: int
    signature: int t537_fopen_works(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib537.c:437,1
    - Dst: t537_test_rlimit
      Src: /src/curl/tests/libtest/lib537.c:439,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib537.c:440,1
    - Dst: t537_test_rlimit
      Src: /src/curl/tests/libtest/lib537.c:446,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib537.c:454,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib537.c:455,1
    - Dst: t537_close_file_descriptors
      Src: /src/curl/tests/libtest/lib537.c:456,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib537.c:460,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib537.c:462,1
    - Dst: t537_close_file_descriptors
      Src: /src/curl/tests/libtest/lib537.c:463,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib537.c:464,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib537.c:468,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib537.c:469,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib537.c:471,1
    - Dst: t537_close_file_descriptors
      Src: /src/curl/tests/libtest/lib537.c:475,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib537.c:476,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib537.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 480
    functionName: test_lib537
    functionSourceFile: /src/curl/tests/libtest/lib537.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - strcmp
    - t537_close_file_descriptors
    - t537_test_rlimit
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib537(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib537.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: test_lib537
    functionSourceFile: /src/curl/tests/libtest/lib537.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib537(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - nitems
    - blen
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: test_cli_ftp_upload_read
    functionSourceFile: /src/curl/tests/libtest/cli_ftp_upload.c
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t test_cli_ftp_upload_read(char *buf,\n                                       size_t
      nitems, size_t blen,\n                                       void *userdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: usage_ftp_upload
    functionSourceFile: /src/curl/tests/libtest/cli_ftp_upload.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void usage_ftp_upload(const char *msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cgetopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:86,1
    - Dst: usage_ftp_upload
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:92,1
    - Dst: usage_ftp_upload
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:99,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:105,1
    - Dst: memset
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:107,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:110,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:112,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:113,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:114,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:117,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:118,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:119,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:120,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:121,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:122,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:123,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:125,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:126,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:128,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:129,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:131,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:132,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:134,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:136,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:137,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:139,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:140,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:141,1
    - Dst: curl_multi_fdset
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:143,1
    - Dst: select
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:144,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:145,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:148,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:149,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:154,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:164,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:166,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:167,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:168,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:169,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:170,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:172,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ftp_upload.c:176,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 76
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 179
    functionName: test_cli_ftp_upload
    functionSourceFile: /src/curl/tests/libtest/cli_ftp_upload.c
    functionUses: 0
    functionsReached:
    - cgetopt
    - curl_multi_remove_handle
    - select
    - curl_global_cleanup
    - usage_ftp_upload
    - curl_slist_free_all
    - curl_easy_reset
    - curl_global_init
    - curl_multi_info_read
    - curl_multi_add_handle
    - FD_ZERO
    - curl_easy_cleanup
    - curl_multi_init
    - memset
    - curl_mfprintf
    - curl_easy_init
    - curl_multi_perform
    - curl_slist_append
    - curl_easy_setopt
    - strlen
    - curl_multi_cleanup
    - curl_multi_fdset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_ftp_upload(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib3208.c:35,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib3208.c:37,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib3208.c:39,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib3208.c:41,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib3208.c:43,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib3208.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib3208.c:45,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib3208.c:47,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib3208.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3208.c:51,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib3208.c:54,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib3208.c:56,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib3208.c:58,1
    - Dst: curl_multi_wait
      Src: /src/curl/tests/libtest/lib3208.c:63,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3208.c:65,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib3208.c:70,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib3208.c:72,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib3208.c:74,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib3208.c:77,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib3208.c:83,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3208.c:86,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib3208.c:92,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3208.c:93,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3208.c:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 100
    functionName: test_lib3208
    functionSourceFile: /src/curl/tests/libtest/lib3208.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - easy_init
    - curl_multi_info_read
    - curl_easy_perform
    - curl_mprintf
    - curl_multi_remove_handle
    - start_test_timing
    - multi_perform
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_wait
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3208(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1959.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1959.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1959.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1959.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1959.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1959.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1959.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1959.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1959.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1959.c:49,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1959.c:50,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1959.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1959.c:56,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1959.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1959.c:60,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1959.c:62,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1959.c:66,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1959.c:67,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1959.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1959.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 72
    functionName: test_lib1959
    functionSourceFile: /src/curl/tests/libtest/lib1959.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1959(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib589.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib589.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib589.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib589.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib589.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib589.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib589.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib589.c:48,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib589.c:51,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib589.c:52,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib589.c:54,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib589.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib589.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib589.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib589.c:63,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib589.c:66,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib589.c:71,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib589.c:72,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib589.c:73,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 76
    functionName: test_lib589
    functionSourceFile: /src/curl/tests/libtest/lib589.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mime_free
    - test_setopt
    - curl_mime_addpart
    - curl_easy_cleanup
    - curl_mime_init
    - curl_mime_data
    - curl_global_init
    - curl_global_cleanup
    - curl_mime_name
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib589(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1970.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1970.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1970.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1970.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1970.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1970.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1970.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1970.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1970.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1970.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1970.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1970.c:51,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1970.c:52,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1970.c:55,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1970.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1970.c:59,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1970.c:61,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1970.c:65,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1970.c:66,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1970.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1970.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 71
    functionName: test_lib1970
    functionSourceFile: /src/curl/tests/libtest/lib1970.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1970(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1648.c:36,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1648.c:40,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1648.c:44,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - curl
    - url
    - proxy
    argTypes:
    - CURL*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: init1648
    functionSourceFile: /src/curl/tests/libtest/lib1648.c
    functionUses: 0
    functionsReached:
    - res_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode init1648(CURL *curl, const char *url, const char *proxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init1648
      Src: /src/curl/tests/libtest/lib1648.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1648.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - curl
    - url
    - proxy
    argTypes:
    - CURL*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: run1648
    functionSourceFile: /src/curl/tests/libtest/lib1648.c
    functionUses: 0
    functionsReached:
    - init1648
    - curl_easy_perform
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode run1648(CURL *curl, const char *url, const char *proxy)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1648.c:82,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1648.c:84,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1648.c:88,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1648.c:90,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib1648.c:93,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1648.c:97,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1648.c:99,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1648.c:100,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1648.c:104,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1648.c:107,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1648.c:112,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1648.c:114,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1648.c:115,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1648.c:117,1
    - Dst: run1648
      Src: /src/curl/tests/libtest/lib1648.c:118,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1648.c:122,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1648.c:124,1
    - Dst: run1648
      Src: /src/curl/tests/libtest/lib1648.c:125,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1648.c:131,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1648.c:132,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1648.c:133,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - hostip
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 135
    functionName: test_lib1648
    functionSourceFile: /src/curl/tests/libtest/lib1648.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - easy_setopt
    - run1648
    - curl_easy_init
    - curl_mprintf
    - curl_slist_free_all
    - start_test_timing
    - res_global_init
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1648(const char *hostip)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib1502.c:46,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1502.c:51,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1502.c:54,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1502.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1502.c:58,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:59,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1502.c:63,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1502.c:65,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1502.c:66,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1502.c:67,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib1502.c:69,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:71,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1502.c:75,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:76,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:77,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1502.c:81,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1502.c:83,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1502.c:85,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1502.c:87,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1502.c:96,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1502.c:97,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1502.c:98,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib1502.c:102,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib1502.c:106,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1502.c:108,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1502.c:110,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1502.c:112,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:121,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:122,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:123,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib1502.c:127,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:128,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:129,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:130,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:134,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:135,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:136,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib1502.c:140,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:141,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:142,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1502.c:143,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1502.c:147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 72
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 150
    functionName: test_lib1502
    functionSourceFile: /src/curl/tests/libtest/lib1502.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_msnprintf
    - curl_multi_remove_handle
    - curl_global_cleanup
    - select_test
    - multi_fdset
    - easy_init
    - curl_slist_free_all
    - easy_setopt
    - FD_ZERO
    - curl_easy_cleanup
    - multi_init
    - curl_mfprintf
    - curl_easy_duphandle
    - start_test_timing
    - multi_perform
    - res_global_init
    - curl_slist_append
    - abort_on_test_timeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1502(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib2402.c:41,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2402.c:42,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib2402.c:43,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2402.c:45,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib2402.c:49,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2402.c:51,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib2402.c:53,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib2402.c:55,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib2402.c:58,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib2402.c:60,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib2402.c:62,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2402.c:65,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2402.c:67,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2402.c:69,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2402.c:70,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2402.c:72,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2402.c:74,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2402.c:76,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2402.c:78,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2402.c:81,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib2402.c:83,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib2402.c:85,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib2402.c:95,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib2402.c:97,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2402.c:102,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2402.c:103,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2402.c:104,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib2402.c:106,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib2402.c:110,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib2402.c:112,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib2402.c:114,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib2402.c:121,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib2402.c:122,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2402.c:123,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib2402.c:126,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib2402.c:128,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2402.c:129,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 132
    functionName: test_lib2402
    functionSourceFile: /src/curl/tests/libtest/lib2402.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_msnprintf
    - curl_multi_remove_handle
    - multi_setopt
    - curl_global_cleanup
    - select_test
    - multi_fdset
    - easy_init
    - curl_mprintf
    - curl_slist_free_all
    - curlx_wait_ms
    - easy_setopt
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - multi_init
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - start_test_timing
    - multi_perform
    - curl_slist_append
    - abort_on_test_timeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2402(const char *URL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:44,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - frame
    - r_offset
    - nread
    - exp_len
    argTypes:
    - struct curl_ws_frame*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 68
    functionName: test_ws_data_m2_check_recv
    functionSourceFile: /src/curl/tests/libtest/cli_ws_data.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode test_ws_data_m2_check_recv(const struct curl_ws_frame *frame,\n
      \                                          size_t r_offset, size_t nread,\n
      \                                          size_t exp_len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/tests/libtest/cli_ws_data.c:84,1
    - Dst: curlx_calloc
      Src: /src/curl/tests/libtest/cli_ws_data.c:85,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_ws_data.c:94,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:103,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:104,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:105,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/cli_ws_data.c:106,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:107,1
    - Dst: memset
      Src: /src/curl/tests/libtest/cli_ws_data.c:115,1
    - Dst: curl_ws_send
      Src: /src/curl/tests/libtest/cli_ws_data.c:119,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:122,1
    - Dst: curl_ws_recv
      Src: /src/curl/tests/libtest/cli_ws_data.c:139,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:143,1
    - Dst: test_ws_data_m2_check_recv
      Src: /src/curl/tests/libtest/cli_ws_data.c:146,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:163,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/cli_ws_data.c:164,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/cli_ws_data.c:168,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:169,1
    - Dst: debug_dump
      Src: /src/curl/tests/libtest/cli_ws_data.c:170,1
    - Dst: debug_dump
      Src: /src/curl/tests/libtest/cli_ws_data.c:172,1
    - Dst: ws_close
      Src: /src/curl/tests/libtest/cli_ws_data.c:182,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_ws_data.c:183,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_ws_data.c:185,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_ws_data.c:186,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 92
    argCount: 4
    argNames:
    - url
    - count
    - plen_min
    - plen_max
    argTypes:
    - char*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 188
    functionName: test_ws_data_m2_echo
    functionSourceFile: /src/curl/tests/libtest/cli_ws_data.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - memcmp
    - curlx_wait_ms
    - ws_close
    - curlx_free
    - curlx_calloc
    - test_ws_data_m2_check_recv
    - curl_ws_send
    - curl_easy_setopt
    - memset
    - debug_dump
    - curl_easy_cleanup
    - curl_ws_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode test_ws_data_m2_echo(const char *url,\n                                     size_t
      count,\n                                     size_t plen_min,\n                                     size_t
      plen_max)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_start_frame
      Src: /src/curl/tests/libtest/cli_ws_data.c:217,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/cli_ws_data.c:225,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:228,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - buf
    - nitems
    - buflen
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 242
    functionName: test_ws_data_m1_read
    functionSourceFile: /src/curl/tests/libtest/cli_ws_data.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - memcpy
    - curl_ws_start_frame
    linkageType: ''
    returnType: size_t
    signature: "size_t test_ws_data_m1_read(char *buf, size_t nitems, size_t buflen,\n
      \                                  void *userdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:253,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/cli_ws_data.c:257,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/cli_ws_data.c:261,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:262,1
    - Dst: debug_dump
      Src: /src/curl/tests/libtest/cli_ws_data.c:265,1
    - Dst: debug_dump
      Src: /src/curl/tests/libtest/cli_ws_data.c:267,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - buf
    - nitems
    - buflen
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 280
    functionName: test_ws_data_m1_write
    functionSourceFile: /src/curl/tests/libtest/cli_ws_data.c
    functionUses: 0
    functionsReached:
    - memcmp
    - curl_mfprintf
    - debug_dump
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t test_ws_data_m1_write(char *buf, size_t nitems, size_t buflen,\n
      \                                   void *userdata)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:292,1
    - Dst: memset
      Src: /src/curl/tests/libtest/cli_ws_data.c:294,1
    - Dst: curlx_calloc
      Src: /src/curl/tests/libtest/cli_ws_data.c:295,1
    - Dst: curlx_calloc
      Src: /src/curl/tests/libtest/cli_ws_data.c:296,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/cli_ws_data.c:305,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_ws_data.c:311,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:319,1
    - Dst: memset
      Src: /src/curl/tests/libtest/cli_ws_data.c:330,1
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/cli_ws_data.c:331,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/cli_ws_data.c:333,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:334,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:336,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:337,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:339,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:340,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:341,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:342,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:344,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_ws_data.c:346,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_ws_data.c:350,1
    - Dst: curl_multi_poll
      Src: /src/curl/tests/libtest/cli_ws_data.c:358,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_ws_data.c:366,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:370,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:376,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/cli_ws_data.c:385,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_ws_data.c:387,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_ws_data.c:389,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_ws_data.c:390,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 85
    argCount: 3
    argNames:
    - url
    - plen_min
    - plen_max
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 392
    functionName: test_ws_data_m1_echo
    functionSourceFile: /src/curl/tests/libtest/cli_ws_data.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - curlx_free
    - curlx_calloc
    - curl_easy_reset
    - curl_multi_init
    - curl_easy_setopt
    - memset
    - curl_easy_cleanup
    - curl_multi_cleanup
    - curl_easy_pause
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode test_ws_data_m1_echo(const char *url,\n                                     size_t
      plen_min,\n                                     size_t plen_max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:397,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 403
    functionName: test_ws_data_usage
    functionSourceFile: /src/curl/tests/libtest/cli_ws_data.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void test_ws_data_usage(const char *msg)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cgetopt
      Src: /src/curl/tests/libtest/cli_ws_data.c:417,1
    - Dst: test_ws_data_usage
      Src: /src/curl/tests/libtest/cli_ws_data.c:428,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_ws_data.c:431,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_ws_data.c:435,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_ws_data.c:439,1
    - Dst: test_ws_data_usage
      Src: /src/curl/tests/libtest/cli_ws_data.c:443,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:454,1
    - Dst: test_ws_data_usage
      Src: /src/curl/tests/libtest/cli_ws_data.c:460,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_ws_data.c:465,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:466,1
    - Dst: test_ws_data_m1_echo
      Src: /src/curl/tests/libtest/cli_ws_data.c:471,1
    - Dst: test_ws_data_m2_echo
      Src: /src/curl/tests/libtest/cli_ws_data.c:473,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_ws_data.c:475,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_data.c:481,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 484
    functionName: test_cli_ws_data
    functionSourceFile: /src/curl/tests/libtest/cli_ws_data.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - cgetopt
    - curl_global_cleanup
    - test_ws_data_m1_echo
    - curlx_str_number
    - curl_global_init
    - test_ws_data_usage
    - test_ws_data_m2_echo
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_ws_data(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1526.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: t1526_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1526.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t1526_read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1526.c:53,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1526.c:54,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1526.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1526.c:60,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1526.c:61,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1526.c:65,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1526.c:66,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1526.c:70,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:76,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:77,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:78,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:79,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:80,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:81,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:82,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:83,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:84,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:86,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:87,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:88,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1526.c:89,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1526.c:91,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1526.c:95,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1526.c:97,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1526.c:99,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1526.c:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 104
    functionName: test_lib1526
    functionSourceFile: /src/curl/tests/libtest/lib1526.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1526(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:73,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:79,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - curl
    - data
    - laccess
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - curl_lock_access
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: t506_test_lock
    functionSourceFile: /src/curl/tests/libtest/lib506.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: "void t506_test_lock(CURL *curl, curl_lock_data data,\n                           curl_lock_access
      laccess, void *useptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:112,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:118,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - curl
    - data
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 125
    functionName: t506_test_unlock
    functionSourceFile: /src/curl/tests/libtest/lib506.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void t506_test_unlock(CURL *curl, curl_lock_data data, void *useptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib506.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - headers
    argTypes:
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: sethost
    functionSourceFile: /src/curl/tests/libtest/lib506.c
    functionUses: 0
    functionsReached:
    - curl_slist_append
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *sethost(struct curl_slist *headers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib506.c:142,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:144,1
    - Dst: sethost
      Src: /src/curl/tests/libtest/lib506.c:148,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib506.c:149,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib506.c:150,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib506.c:151,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib506.c:152,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:153,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib506.c:154,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:156,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib506.c:157,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:160,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:164,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib506.c:165,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib506.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 169
    functionName: t506_test_fire
    functionSourceFile: /src/curl/tests/libtest/lib506.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - curl_slist_free_all
    - sethost
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void *t506_test_fire(void *ptr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib506.c:189,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:192,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib506.c:193,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:194,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:199,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/lib506.c:200,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:202,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib506.c:203,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:208,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib506.c:209,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:212,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib506.c:213,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:216,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib506.c:217,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:220,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib506.c:221,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:224,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib506.c:225,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:229,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib506.c:230,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib506.c:231,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib506.c:236,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:238,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib506.c:239,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib506.c:240,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:243,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:244,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:245,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:246,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:249,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:250,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:251,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:252,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:253,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:254,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:257,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:258,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:259,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib506.c:260,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib506.c:266,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:270,1
    - Dst: t506_test_fire
      Src: /src/curl/tests/libtest/lib506.c:271,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib506.c:273,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:277,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib506.c:278,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:280,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib506.c:281,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib506.c:282,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib506.c:286,1
    - Dst: sethost
      Src: /src/curl/tests/libtest/lib506.c:287,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:288,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:289,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:290,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:291,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:292,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:293,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:294,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:295,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:297,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib506.c:298,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:300,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib506.c:301,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib506.c:302,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib506.c:303,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib506.c:306,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:308,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib506.c:309,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib506.c:310,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib506.c:313,1
    - Dst: sethost
      Src: /src/curl/tests/libtest/lib506.c:314,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:315,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:316,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:317,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:318,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:319,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:320,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:321,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:322,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:323,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib506.c:324,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib506.c:328,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:330,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:334,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:336,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:340,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:343,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:346,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib506.c:347,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:350,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib506.c:351,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:353,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:357,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:363,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib506.c:364,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib506.c:365,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib506.c:366,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:369,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib506.c:370,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib506.c:372,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib506.c:374,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib506.c:375,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 156
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 378
    functionName: test_lib506
    functionSourceFile: /src/curl/tests/libtest/lib506.c
    functionUses: 0
    functionsReached:
    - tutil_suburl
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_share_cleanup
    - curl_easy_perform
    - curl_mprintf
    - curl_easy_init
    - curl_slist_free_all
    - sethost
    - test_setopt
    - curl_free
    - t506_test_fire
    - curl_share_init
    - curl_easy_cleanup
    - memset
    - curl_global_init
    - curl_global_cleanup
    - curl_share_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib506(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib598.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib598.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib598.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib598.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib598.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib598.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib598.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib598.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib598.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib598.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib598.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib598.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib598.c:52,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib598.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib598.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib598.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib598.c:60,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib598.c:62,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib598.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib598.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib598.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 72
    functionName: test_lib598
    functionSourceFile: /src/curl/tests/libtest/lib598.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_reset
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib598(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1576.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: t1576_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1576.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t1576_read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - offset
    - origin
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: t1576_seek_callback
    functionSourceFile: /src/curl/tests/libtest/lib1576.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int t1576_seek_callback(void *ptr, curl_off_t offset, int origin)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1576.c:55,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1576.c:56,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1576.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1576.c:62,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1576.c:63,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:67,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:68,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:69,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:70,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:71,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:72,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:73,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:75,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:77,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1576.c:80,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1576.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1576.c:85,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1576.c:86,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1576.c:89,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1576.c:90,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1576.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 94
    functionName: test_lib1576
    functionSourceFile: /src/curl/tests/libtest/lib1576.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1576(const char *URL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1972.c:35,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1972.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1972.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1972.c:42,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1972.c:43,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib1972.c:47,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib1972.c:50,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib1972.c:53,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib1972.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1972.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1972.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1972.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1972.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1972.c:60,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1972.c:61,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1972.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1972.c:65,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1972.c:67,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1972.c:69,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1972.c:71,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1972.c:75,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1972.c:76,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1972.c:77,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib1972.c:78,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1972.c:79,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 82
    functionName: test_lib1972
    functionSourceFile: /src/curl/tests/libtest/lib1972.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mime_free
    - curl_slist_free_all
    - test_setopt
    - curl_mime_addpart
    - curl_slist_append
    - curl_easy_cleanup
    - curl_mime_init
    - curl_mime_data
    - curl_global_init
    - curl_global_cleanup
    - curl_mime_name
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1972(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3104.c:32,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/lib3104.c:34,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib3104.c:35,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib3104.c:37,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3104.c:38,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3104.c:40,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3104.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3104.c:42,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3104.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3104.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3104.c:47,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3104.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3104.c:52,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib3104.c:53,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3104.c:59,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib3104.c:60,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3104.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 64
    functionName: test_lib3104
    functionSourceFile: /src/curl/tests/libtest/lib3104.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_share_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - test_setopt
    - curl_share_init
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    - curl_share_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3104(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1974.c:32,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1974.c:33,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1974.c:37,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1974.c:39,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1974.c:40,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1974.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1974.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1974.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1974.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1974.c:48,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1974.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1974.c:52,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1974.c:54,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1974.c:58,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1974.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1974.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    functionName: test_lib1974
    functionSourceFile: /src/curl/tests/libtest/lib1974.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1974(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib3105.c:34,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib3105.c:36,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib3105.c:38,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib3105.c:40,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib3105.c:42,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib3105.c:44,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib3105.c:46,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3105.c:49,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib3105.c:54,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3105.c:55,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3105.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 62
    functionName: test_lib3105
    functionSourceFile: /src/curl/tests/libtest/lib3105.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - curl_multi_remove_handle
    - curl_easy_cleanup
    - global_init
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3105(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1538.c:36,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/lib1538.c:37,1
    - Dst: curl_share_strerror
      Src: /src/curl/tests/libtest/lib1538.c:38,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1538.c:39,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1538.c:40,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/lib1538.c:41,1
    - Dst: curl_share_strerror
      Src: /src/curl/tests/libtest/lib1538.c:42,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1538.c:43,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1538.c:46,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1538.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1538.c:49,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/lib1538.c:49,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1538.c:52,1
    - Dst: curl_share_strerror
      Src: /src/curl/tests/libtest/lib1538.c:52,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1538.c:55,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1538.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 59
    functionName: test_lib1538
    functionSourceFile: /src/curl/tests/libtest/lib1538.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_share_strerror
    - curl_easy_strerror
    - curl_multi_strerror
    - curl_url_strerror
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1538(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib544.c:40,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib544.c:42,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib544.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib544.c:47,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib544.c:49,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib544.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib544.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib544.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib544.c:60,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib544.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib544.c:63,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/libtest/lib544.c:66,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib544.c:66,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib544.c:70,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib544.c:71,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib544.c:77,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib544.c:82,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib544.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 86
    functionName: test_lib544
    functionSourceFile: /src/curl/tests/libtest/lib544.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - memcpy
    - strlen
    - curl_easy_duphandle
    - curl_easy_init
    - curl_easy_perform
    - curlx_strcopy
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib544(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1501.c:38,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1501.c:40,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1501.c:42,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1501.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1501.c:45,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1501.c:47,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1501.c:49,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1501.c:51,1
    - Dst: abort_on_test_timeout_custom
      Src: /src/curl/tests/libtest/lib1501.c:53,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1501.c:68,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1501.c:69,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1501.c:70,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib1501.c:72,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib1501.c:76,1
    - Dst: abort_on_test_timeout_custom
      Src: /src/curl/tests/libtest/lib1501.c:78,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1501.c:80,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1501.c:81,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1501.c:83,1
    - Dst: abort_on_test_timeout_custom
      Src: /src/curl/tests/libtest/lib1501.c:85,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1501.c:87,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/libtest/lib1501.c:88,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1501.c:89,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1501.c:101,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1501.c:102,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1501.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 106
    functionName: test_lib1501
    functionSourceFile: /src/curl/tests/libtest/lib1501.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - multi_fdset
    - curl_mfprintf
    - easy_init
    - abort_on_test_timeout_custom
    - curlx_now
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curlx_timediff_ms
    - curl_easy_cleanup
    - global_init
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1501(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1553.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - p
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: t1553_xferinfo
    functionSourceFile: /src/curl/tests/libtest/lib1553.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: "int t1553_xferinfo(void *p,\n                          curl_off_t
      dltotal, curl_off_t dlnow,\n                          curl_off_t ultotal, curl_off_t
      ulnow)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1553.c:52,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1553.c:54,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1553.c:56,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1553.c:58,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib1553.c:60,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib1553.c:61,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib1553.c:62,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib1553.c:63,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1553.c:65,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1553.c:66,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1553.c:67,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1553.c:68,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1553.c:69,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1553.c:70,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1553.c:71,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1553.c:75,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1553.c:76,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1553.c:77,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1553.c:79,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1553.c:81,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1553.c:83,1
    - Dst: curl_multi_wait
      Src: /src/curl/tests/libtest/lib1553.c:88,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1553.c:90,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1553.c:95,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1553.c:97,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1553.c:99,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib1553.c:104,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib1553.c:105,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1553.c:106,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1553.c:107,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1553.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 114
    functionName: test_lib1553
    functionSourceFile: /src/curl/tests/libtest/lib1553.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_mime_free
    - curl_multi_remove_handle
    - test_setopt
    - curl_global_cleanup
    - easy_init
    - curl_mprintf
    - curl_mime_addpart
    - curl_multi_wait
    - easy_setopt
    - curl_easy_cleanup
    - curl_mime_init
    - global_init
    - multi_init
    - curl_mime_name
    - start_test_timing
    - multi_perform
    - curl_mime_data
    - abort_on_test_timeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1553(const char *URL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib526.c:54,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib526.c:57,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib526.c:59,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib526.c:62,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib526.c:63,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib526.c:65,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib526.c:67,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib526.c:70,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib526.c:72,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib526.c:74,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib526.c:84,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib526.c:86,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib526.c:93,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib526.c:96,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib526.c:97,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib526.c:100,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib526.c:104,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib526.c:105,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib526.c:107,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib526.c:110,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib526.c:113,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib526.c:121,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib526.c:122,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib526.c:123,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib526.c:125,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib526.c:129,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib526.c:131,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib526.c:139,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib526.c:140,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib526.c:141,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib526.c:143,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib526.c:144,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib526.c:153,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib526.c:154,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib526.c:156,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib526.c:157,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib526.c:162,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib526.c:163,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib526.c:164,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib526.c:165,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 169
    functionName: test_lib526
    functionSourceFile: /src/curl/tests/libtest/lib526.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - curl_mfprintf
    - multi_fdset
    - easy_init
    - CURL_ARRAYSIZE
    - curl_multi_remove_handle
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - curl_easy_reset
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib526(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1905.c:33,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/lib1905.c:35,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1905.c:37,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/lib1905.c:40,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib1905.c:44,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib1905.c:45,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1905.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1905.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1905.c:52,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1905.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1905.c:54,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/lib1905.c:56,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1905.c:65,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1905.c:66,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1905.c:67,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/lib1905.c:68,1
    - Dst: curl_multi_fdset
      Src: /src/curl/tests/libtest/lib1905.c:70,1
    - Dst: curl_multi_timeout
      Src: /src/curl/tests/libtest/lib1905.c:71,1
    - Dst: curlx_mstotv
      Src: /src/curl/tests/libtest/lib1905.c:74,1
    - Dst: select
      Src: /src/curl/tests/libtest/lib1905.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1905.c:84,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1905.c:85,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib1905.c:87,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1905.c:89,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib1905.c:90,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1905.c:91,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1905.c:92,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 95
    functionName: test_lib1905
    functionSourceFile: /src/curl/tests/libtest/lib1905.c
    functionUses: 0
    functionsReached:
    - curl_share_cleanup
    - curl_multi_timeout
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - FD_ZERO
    - select
    - curl_share_init
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curlx_mstotv
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_share_setopt
    - curl_multi_add_handle
    - curl_multi_fdset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1905(const char *URL)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib556.c:32,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib556.c:33,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib556.c:37,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib556.c:39,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib556.c:40,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib556.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib556.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib556.c:46,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib556.c:50,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib556.c:59,1
    - Dst: curl_easy_send
      Src: /src/curl/tests/libtest/lib556.c:67,1
    - Dst: curl_easy_recv
      Src: /src/curl/tests/libtest/lib556.c:77,1
    - Dst: write
      Src: /src/curl/tests/libtest/lib556.c:81,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib556.c:83,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib556.c:84,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib556.c:105,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib556.c:106,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 109
    functionName: test_lib556
    functionSourceFile: /src/curl/tests/libtest/lib556.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - curl_easy_recv
    - curl_easy_perform
    - curl_easy_init
    - curlx_strerror
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - write
    - curl_global_cleanup
    - curl_easy_send
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib556(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1916.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1916.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1916.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1916.c:38,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1916.c:41,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1916.c:44,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1916.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1916.c:48,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1916.c:50,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1916.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 54
    functionName: test_lib1916
    functionSourceFile: /src/curl/tests/libtest/lib1916.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1916(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib536.c:29,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib536.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: proxystat
    functionSourceFile: /src/curl/tests/libtest/lib536.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mprintf
    linkageType: ''
    returnType: void
    signature: void proxystat(CURL *curl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib536.c:43,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib536.c:44,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib536.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib536.c:50,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib536.c:51,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib536.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib536.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib536.c:60,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib536.c:61,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib536.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib536.c:63,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib536.c:65,1
    - Dst: proxystat
      Src: /src/curl/tests/libtest/lib536.c:67,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib536.c:68,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib536.c:69,1
    - Dst: proxystat
      Src: /src/curl/tests/libtest/lib536.c:71,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib536.c:76,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib536.c:77,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib536.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 81
    functionName: test_lib536
    functionSourceFile: /src/curl/tests/libtest/lib536.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - proxystat
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib536(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib502.c:37,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib502.c:39,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib502.c:41,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib502.c:43,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib502.c:45,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib502.c:47,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib502.c:57,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib502.c:59,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib502.c:64,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib502.c:65,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib502.c:66,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib502.c:68,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib502.c:72,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib502.c:74,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib502.c:81,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib502.c:82,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib502.c:83,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib502.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 87
    functionName: test_lib502
    functionSourceFile: /src/curl/tests/libtest/lib502.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - multi_fdset
    - easy_init
    - curl_multi_remove_handle
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib502(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - ud
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: sink2504
    functionSourceFile: /src/curl/tests/libtest/lib2504.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sink2504(char *ptr, size_t size, size_t nmemb, void *ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib2504.c:39,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2504.c:41,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2504.c:43,1
    - Dst: puts
      Src: /src/curl/tests/libtest/lib2504.c:47,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib2504.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - h
    - tag
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: dump_cookies2504
    functionSourceFile: /src/curl/tests/libtest/lib2504.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mprintf
    - curl_slist_free_all
    - puts
    linkageType: ''
    returnType: void
    signature: void dump_cookies2504(CURL *h, const char *tag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib2504.c:57,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2504.c:58,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2504.c:62,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2504.c:64,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2504.c:65,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib2504.c:69,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2504.c:71,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2504.c:72,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2504.c:73,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2504.c:74,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2504.c:76,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2504.c:77,1
    - Dst: dump_cookies2504
      Src: /src/curl/tests/libtest/lib2504.c:78,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2504.c:80,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2504.c:81,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2504.c:83,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2504.c:84,1
    - Dst: dump_cookies2504
      Src: /src/curl/tests/libtest/lib2504.c:85,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib2504.c:88,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2504.c:89,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2504.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 93
    functionName: test_lib2504
    functionSourceFile: /src/curl/tests/libtest/lib2504.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - dump_cookies2504
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2504(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1920.c:31,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1920.c:33,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1920.c:35,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1920.c:36,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1920.c:37,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1920.c:38,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1920.c:40,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib1920.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1920.c:47,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1920.c:52,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1920.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: test_lib1920
    functionSourceFile: /src/curl/tests/libtest/lib1920.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_reset
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1920(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1542.c:42,1
    - Dst: res_easy_init
      Src: /src/curl/tests/libtest/lib1542.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1542.c:46,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1542.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1542.c:51,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1542.c:52,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1542.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1542.c:58,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib1542.c:64,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1542.c:66,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1542.c:70,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1542.c:72,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1542.c:78,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1542.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 82
    functionName: test_lib1542
    functionSourceFile: /src/curl/tests/libtest/lib1542.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - curl_easy_perform
    - curlx_wait_ms
    - res_easy_init
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1542(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 46
    functionName: t508_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib508.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t508_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib508.c:59,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib508.c:61,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib508.c:62,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib508.c:66,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib508.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib508.c:69,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib508.c:74,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib508.c:77,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib508.c:80,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib508.c:83,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib508.c:86,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib508.c:89,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib508.c:92,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib508.c:95,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib508.c:100,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib508.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 104
    functionName: test_lib508
    functionSourceFile: /src/curl/tests/libtest/lib508.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib508(const char *URL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/curl/tests/libtest/lib3102.c:50,1
    - Dst: strncmp
      Src: /src/curl/tests/libtest/lib3102.c:53,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3102.c:59,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3102.c:60,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3102.c:61,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib3102.c:66,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3102.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3102.c:70,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3102.c:79,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - cert_info
    argTypes:
    - struct curl_certinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 81
    functionName: is_chain_in_order
    functionSourceFile: /src/curl/tests/libtest/lib3102.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    - curl_mfprintf
    - curl_mprintf
    linkageType: ''
    returnType: bool
    signature: bool is_chain_in_order(struct curl_certinfo *cert_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: wrfu
    functionSourceFile: /src/curl/tests/libtest/lib3102.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t wrfu(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3102.c:95,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3102.c:96,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib3102.c:100,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3102.c:102,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3102.c:103,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3102.c:108,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3102.c:111,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3102.c:114,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3102.c:117,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3102.c:118,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3102.c:121,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib3102.c:125,1
    - Dst: is_chain_in_order
      Src: /src/curl/tests/libtest/lib3102.c:128,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3102.c:136,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3102.c:137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 140
    functionName: test_lib3102
    functionSourceFile: /src/curl/tests/libtest/lib3102.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - is_chain_in_order
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3102(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1903.c:30,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1903.c:32,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1903.c:34,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1903.c:35,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1903.c:36,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib1903.c:40,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1903.c:42,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1903.c:43,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1903.c:44,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1903.c:45,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1903.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1903.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: test_lib1903
    functionSourceFile: /src/curl/tests/libtest/lib1903.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_reset
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1903(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/testtrace.c:46,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/testtrace.c:51,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/testtrace.c:57,1
    - Dst: fputs
      Src: /src/curl/tests/libtest/testtrace.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/testtrace.c:69,1
    - Dst: fputc
      Src: /src/curl/tests/libtest/testtrace.c:79,1
    - Dst: fflush
      Src: /src/curl/tests/libtest/testtrace.c:81,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 26
    argCount: 6
    argNames:
    - timebuf
    - text
    - stream
    - ptr
    - size
    - nohex
    argTypes:
    - char*
    - char*
    - FILE*
    - unsigned char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 82
    functionName: debug_dump
    functionSourceFile: /src/curl/tests/libtest/testtrace.c
    functionUses: 2
    functionsReached:
    - fflush
    - curl_mfprintf
    - fputs
    - fputc
    linkageType: ''
    returnType: void
    signature: "void debug_dump(const char *timebuf, const char *text,\n                FILE
      *stream, const unsigned char *ptr,\n                size_t size, bool nohex)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/testtrace.c:102,1
    - Dst: time
      Src: /src/curl/tests/libtest/testtrace.c:104,1
    - Dst: toolx_localtime
      Src: /src/curl/tests/libtest/testtrace.c:108,1
    - Dst: memset
      Src: /src/curl/tests/libtest/testtrace.c:110,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/testtrace.c:111,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/testtrace.c:117,1
    - Dst: debug_dump
      Src: /src/curl/tests/libtest/testtrace.c:141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - curl
    - type
    - data
    - size
    - userp
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 144
    functionName: libtest_debug_cb
    functionSourceFile: /src/curl/tests/libtest/testtrace.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - curlx_now
    - time
    - toolx_localtime
    - debug_dump
    - memset
    linkageType: ''
    returnType: int
    signature: "int libtest_debug_cb(CURL *curl, curl_infotype type,\n                     char
      *data, size_t size, void *userp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/testtrace.c:156,1
    - Dst: fputs
      Src: /src/curl/tests/libtest/testtrace.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - log
    - idsbuf
    - type
    argTypes:
    - FILE*
    - char*
    - curl_infotype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: log_line_start
    functionSourceFile: /src/curl/tests/libtest/testtrace.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - fputs
    linkageType: ''
    returnType: void
    signature: void log_line_start(FILE *log, const char *idsbuf, curl_infotype type)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/testtrace.c:174,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/testtrace.c:175,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/testtrace.c:177,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/testtrace.c:182,1
    - Dst: log_line_start
      Src: /src/curl/tests/libtest/testtrace.c:197,1
    - Dst: fwrite
      Src: /src/curl/tests/libtest/testtrace.c:199,1
    - Dst: log_line_start
      Src: /src/curl/tests/libtest/testtrace.c:205,1
    - Dst: fwrite
      Src: /src/curl/tests/libtest/testtrace.c:206,1
    - Dst: log_line_start
      Src: /src/curl/tests/libtest/testtrace.c:214,1
    - Dst: fwrite
      Src: /src/curl/tests/libtest/testtrace.c:215,1
    - Dst: log_line_start
      Src: /src/curl/tests/libtest/testtrace.c:225,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/testtrace.c:226,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 5
    argNames:
    - curl
    - type
    - data
    - size
    - userp
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 238
    functionName: cli_debug_cb
    functionSourceFile: /src/curl/tests/libtest/testtrace.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_msnprintf
    - curl_mfprintf
    - log_line_start
    - fwrite
    linkageType: ''
    returnType: int
    signature: "int cli_debug_cb(CURL *curl, curl_infotype type,\n                 char
      *data, size_t size, void *userp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1935.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1935.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1935.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1935.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1935.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1935.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1935.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1935.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1935.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1935.c:49,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1935.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1935.c:53,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1935.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1935.c:55,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1935.c:57,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1935.c:61,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1935.c:62,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1935.c:63,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1935.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 67
    functionName: test_lib1935
    functionSourceFile: /src/curl/tests/libtest/lib1935.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1935(const char *URL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib678.c:31,1
    - Dst: fseek
      Src: /src/curl/tests/libtest/lib678.c:35,1
    - Dst: ftell
      Src: /src/curl/tests/libtest/lib678.c:37,1
    - Dst: fseek
      Src: /src/curl/tests/libtest/lib678.c:43,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib678.c:45,1
    - Dst: fread
      Src: /src/curl/tests/libtest/lib678.c:46,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib678.c:48,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/libtest/lib678.c:50,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - filename
    - filedata
    - filesize
    argTypes:
    - char*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 58
    functionName: loadfile
    functionSourceFile: /src/curl/tests/libtest/lib678.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_safefree
    - fseek
    - curlx_fopen
    - curlx_malloc
    - fread
    - ftell
    linkageType: ''
    returnType: int
    signature: int loadfile(const char *filename, void **filedata, size_t *filesize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib678.c:68,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib678.c:70,1
    - Dst: loadfile
      Src: /src/curl/tests/libtest/lib678.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib678.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib678.c:76,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib678.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib678.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib678.c:79,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib678.c:84,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib678.c:85,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib678.c:86,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib678.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - url
    - cafile
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 91
    functionName: test_cert_blob
    functionSourceFile: /src/curl/tests/libtest/lib678.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curlx_free
    - curl_easy_cleanup
    - curl_easy_setopt
    - loadfile
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cert_blob(const char *url, const char *cafile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib678.c:96,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib678.c:97,1
    - Dst: CURL_UNCONST
      Src: /src/curl/tests/libtest/lib678.c:99,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib678.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib678.c:102,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib678.c:104,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib678.c:105,1
    - Dst: test_cert_blob
      Src: /src/curl/tests/libtest/lib678.c:110,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib678.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: test_lib678
    functionSourceFile: /src/curl/tests/libtest/lib678.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - curl_mprintf
    - CURL_UNCONST
    - strcmp
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - test_cert_blob
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib678(const char *URL)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib652.c:41,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib652.c:43,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib652.c:44,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib652.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib652.c:50,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib652.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib652.c:58,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib652.c:62,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib652.c:64,1
    - Dst: curl_mime_filename
      Src: /src/curl/tests/libtest/lib652.c:68,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib652.c:70,1
    - Dst: curl_mime_type
      Src: /src/curl/tests/libtest/lib652.c:73,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib652.c:75,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib652.c:78,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib652.c:80,1
    - Dst: curl_mime_encoder
      Src: /src/curl/tests/libtest/lib652.c:83,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib652.c:85,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib652.c:90,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib652.c:92,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib652.c:97,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib652.c:100,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib652.c:103,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib652.c:106,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib652.c:109,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib652.c:112,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib652.c:115,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib652.c:120,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib652.c:123,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib652.c:126,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib652.c:128,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 131
    functionName: test_lib652
    functionSourceFile: /src/curl/tests/libtest/lib652.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_mime_filename
    - curl_easy_init
    - curl_easy_perform
    - curl_mime_free
    - curl_slist_free_all
    - test_setopt
    - curl_mime_addpart
    - curl_slist_append
    - curl_mime_encoder
    - curl_mime_init
    - memset
    - curl_global_init
    - curl_mime_data
    - curl_easy_cleanup
    - curl_global_cleanup
    - curl_mime_type
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib652(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: t1514_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1514.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t1514_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1514.c:62,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1514.c:64,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1514.c:66,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1514.c:67,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1514.c:69,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1514.c:70,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1514.c:74,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1514.c:77,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1514.c:81,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1514.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 85
    functionName: test_lib1514
    functionSourceFile: /src/curl/tests/libtest/lib1514.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1514(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1525.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: t1525_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1525.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t1525_read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1525.c:54,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1525.c:55,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1525.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1525.c:61,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1525.c:62,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1525.c:66,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:72,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:73,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:74,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:75,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:76,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:77,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:78,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:79,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:80,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:81,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:82,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:83,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:84,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1525.c:85,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1525.c:87,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1525.c:91,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1525.c:93,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1525.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 98
    functionName: test_lib1525
    functionSourceFile: /src/curl/tests/libtest/lib1525.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1525(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1933.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1933.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1933.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1933.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1933.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1933.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1933.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1933.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1933.c:48,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1933.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1933.c:52,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1933.c:53,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1933.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1933.c:56,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1933.c:60,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1933.c:61,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1933.c:62,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1933.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 66
    functionName: test_lib1933
    functionSourceFile: /src/curl/tests/libtest/lib1933.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1933(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1532.c:34,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1532.c:36,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1532.c:38,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1532.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1532.c:42,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1532.c:44,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1532.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1532.c:50,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1532.c:52,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1532.c:56,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib1532.c:63,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1532.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1532.c:67,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1532.c:69,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1532.c:73,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1532.c:82,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1532.c:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 85
    functionName: test_lib1532
    functionSourceFile: /src/curl/tests/libtest/lib1532.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - curl_easy_perform
    - curl_easy_strerror
    - curl_easy_reset
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1532(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1900.c:32,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1900.c:34,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1900.c:35,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1900.c:36,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1900.c:37,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib1900.c:39,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1900.c:41,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1900.c:42,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1900.c:43,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1900.c:47,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1900.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1900.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 51
    functionName: test_lib1900
    functionSourceFile: /src/curl/tests/libtest/lib1900.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_duphandle
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1900(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_recv
      Src: /src/curl/tests/libtest/lib2304.c:32,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2304.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: recv_any
    functionSourceFile: /src/curl/tests/libtest/lib2304.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_ws_recv
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode recv_any(CURL *curl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2304.c:44,1
    - Dst: recv_any
      Src: /src/curl/tests/libtest/lib2304.c:46,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2304.c:47,1
    - Dst: ws_send_ping
      Src: /src/curl/tests/libtest/lib2304.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2304.c:50,1
    - Dst: ws_recv_pong
      Src: /src/curl/tests/libtest/lib2304.c:51,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2304.c:52,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib2304.c:55,1
    - Dst: ws_close
      Src: /src/curl/tests/libtest/lib2304.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: t2304_websocket
    functionSourceFile: /src/curl/tests/libtest/lib2304.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - ws_recv_pong
    - curl_mprintf
    - curlx_wait_ms
    - ws_close
    - ws_send_ping
    - recv_any
    linkageType: ''
    returnType: void
    signature: void t2304_websocket(CURL *curl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2304.c:67,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2304.c:69,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2304.c:71,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2304.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2304.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2304.c:76,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2304.c:77,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2304.c:78,1
    - Dst: t2304_websocket
      Src: /src/curl/tests/libtest/lib2304.c:80,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2304.c:83,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2304.c:85,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2304.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 92
    functionName: test_lib2304
    functionSourceFile: /src/curl/tests/libtest/lib2304.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - t2304_websocket
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2304(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: fail_if
    functionSourceFile: /src/curl/tests/libtest/unitcheck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail_if(expr, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: fail_unless
    functionSourceFile: /src/curl/tests/libtest/unitcheck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail_unless(expr, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dynamic
    - ','
    - check
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: verify_memory
    functionSourceFile: /src/curl/tests/libtest/unitcheck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: verify_memory(dynamic, check, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: fail
    functionSourceFile: /src/curl/tests/libtest/unitcheck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: abort_if
    functionSourceFile: /src/curl/tests/libtest/unitcheck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abort_if(expr, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: abort_unless
    functionSourceFile: /src/curl/tests/libtest/unitcheck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abort_unless(expr, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: unittest_abort
    functionSourceFile: /src/curl/tests/libtest/unitcheck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unittest_abort(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - setupfunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: UNITTEST_BEGIN
    functionSourceFile: /src/curl/tests/libtest/unitcheck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNITTEST_BEGIN(setupfunc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1599.c:31,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1599.c:32,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1599.c:34,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1599.c:35,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1599.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1599.c:37,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1599.c:39,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1599.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1599.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: test_lib1599
    functionSourceFile: /src/curl/tests/libtest/lib1599.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1599(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1973.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1973.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1973.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1973.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1973.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1973.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1973.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1973.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1973.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1973.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1973.c:50,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1973.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1973.c:54,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1973.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1973.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1973.c:60,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1973.c:64,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1973.c:65,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1973.c:66,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1973.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 70
    functionName: test_lib1973
    functionSourceFile: /src/curl/tests/libtest/lib1973.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1973(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1571.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1571.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1571.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1571.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1571.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1571.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1571.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1571.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1571.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1571.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1571.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1571.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1571.c:59,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1571.c:62,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1571.c:66,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1571.c:67,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 70
    functionName: test_lib1571
    functionSourceFile: /src/curl/tests/libtest/lib1571.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1571(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib516.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib516.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib516.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib516.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib516.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib516.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib516.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib516.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib516.c:47,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib516.c:50,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib516.c:55,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib516.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 59
    functionName: test_lib516
    functionSourceFile: /src/curl/tests/libtest/lib516.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib516(const char *URL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib751.c:39,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib751.c:41,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/lib751.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib751.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib751.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib751.c:58,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/lib751.c:62,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib751.c:64,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/lib751.c:64,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib751.c:73,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib751.c:73,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/lib751.c:77,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib751.c:78,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib751.c:82,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib751.c:83,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 86
    functionName: test_lib751
    functionSourceFile: /src/curl/tests/libtest/lib751.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - memset
    - curl_multi_strerror
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib751(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1934.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1934.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1934.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1934.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1934.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1934.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1934.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1934.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1934.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1934.c:49,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1934.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1934.c:53,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1934.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1934.c:55,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1934.c:57,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1934.c:61,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1934.c:62,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1934.c:63,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1934.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 67
    functionName: test_lib1934
    functionSourceFile: /src/curl/tests/libtest/lib1934.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1934(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib520.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib520.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib520.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib520.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib520.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib520.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib520.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib520.c:45,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib520.c:47,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib520.c:51,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib520.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: test_lib520
    functionSourceFile: /src/curl/tests/libtest/lib520.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib520(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: get_transfer_for_easy_u
    functionSourceFile: /src/curl/tests/libtest/cli_hx_upload.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct transfer_u
    signature: struct transfer_u *get_transfer_for_easy_u(CURL *curl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:70,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:75,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/cli_hx_upload.c:77,1
    - Dst: fwrite
      Src: /src/curl/tests/libtest/cli_hx_upload.c:82,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - buf
    - nitems
    - buflen
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: my_write_u_cb
    functionSourceFile: /src/curl/tests/libtest/cli_hx_upload.c
    functionUses: 0
    functionsReached:
    - fwrite
    - curl_msnprintf
    - curl_mfprintf
    - curlx_fopen
    linkageType: ''
    returnType: size_t
    signature: "size_t my_write_u_cb(char *buf, size_t nitems, size_t buflen,\n                            void
      *userdata)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:105,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:113,1
    - Dst: memset
      Src: /src/curl/tests/libtest/cli_hx_upload.c:118,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - buf
    - nitems
    - buflen
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 126
    functionName: my_read_cb
    functionSourceFile: /src/curl/tests/libtest/cli_hx_upload.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - memset
    linkageType: ''
    returnType: size_t
    signature: "size_t my_read_cb(char *buf, size_t nitems, size_t buflen,\n                         void
      *userdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - userdata
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: my_progress_u_cb
    functionSourceFile: /src/curl/tests/libtest/cli_hx_upload.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: "int my_progress_u_cb(void *userdata,\n                            curl_off_t
      dltotal, curl_off_t dlnow,\n                            curl_off_t ultotal,
      curl_off_t ulnow)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:149,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:150,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:151,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:152,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:153,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:154,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:155,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:156,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:157,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:159,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_upload.c:161,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/cli_hx_upload.c:163,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/cli_hx_upload.c:164,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/cli_hx_upload.c:165,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/cli_hx_upload.c:166,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:167,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_upload.c:170,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:171,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_upload.c:172,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:173,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:175,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:178,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:179,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:181,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:184,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:185,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:186,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:188,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:190,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:194,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:195,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 8
    argNames:
    - curl
    - url
    - t
    - http_version
    - host
    - share
    - use_earlydata
    - announce_length
    argTypes:
    - CURL*
    - char*
    - struct transfer_u*
    - long
    - struct curl_slist*
    - CURLSH*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 202
    functionName: setup_hx_upload
    functionSourceFile: /src/curl/tests/libtest/cli_hx_upload.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_mime_data_cb
    - strcmp
    - curl_mime_addpart
    - curl_mime_init
    - curl_easy_setopt
    - curl_mime_name
    linkageType: ''
    returnType: int
    signature: "int setup_hx_upload(CURL *curl, const char *url, struct transfer_u
      *t,\n                           long http_version, struct curl_slist *host,\n
      \                          CURLSH *share, int use_earlydata,\n                           int
      announce_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:207,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: usage_hx_upload
    functionSourceFile: /src/curl/tests/libtest/cli_hx_upload.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void usage_hx_upload(const char *msg)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: cgetopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:252,1
    - Dst: usage_hx_upload
      Src: /src/curl/tests/libtest/cli_hx_upload.c:258,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_upload.c:273,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_upload.c:277,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_upload.c:281,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_upload.c:285,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_upload.c:292,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_upload.c:302,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_upload.c:306,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_upload.c:308,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_upload.c:310,1
    - Dst: usage_hx_upload
      Src: /src/curl/tests/libtest/cli_hx_upload.c:313,1
    - Dst: usage_hx_upload
      Src: /src/curl/tests/libtest/cli_hx_upload.c:319,1
    - Dst: usage_hx_upload
      Src: /src/curl/tests/libtest/cli_hx_upload.c:327,1
    - Dst: usage_hx_upload
      Src: /src/curl/tests/libtest/cli_hx_upload.c:332,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_hx_upload.c:337,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:338,1
    - Dst: curl_global_trace
      Src: /src/curl/tests/libtest/cli_hx_upload.c:342,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/cli_hx_upload.c:345,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/cli_hx_upload.c:347,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:349,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:353,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:354,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:355,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:356,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:357,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:358,1
    - Dst: curlx_calloc
      Src: /src/curl/tests/libtest/cli_hx_upload.c:360,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:362,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_hx_upload.c:379,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:381,1
    - Dst: setup_hx_upload
      Src: /src/curl/tests/libtest/cli_hx_upload.c:389,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:391,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:396,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/cli_hx_upload.c:397,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:398,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/cli_hx_upload.c:400,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_hx_upload.c:402,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/cli_hx_upload.c:405,1
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/cli_hx_upload.c:406,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_hx_upload.c:411,1
    - Dst: setup_hx_upload
      Src: /src/curl/tests/libtest/cli_hx_upload.c:412,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:414,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_hx_upload.c:418,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:421,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_hx_upload.c:426,1
    - Dst: curl_multi_poll
      Src: /src/curl/tests/libtest/cli_hx_upload.c:431,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/cli_hx_upload.c:439,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_hx_upload.c:443,1
    - Dst: get_transfer_for_easy_u
      Src: /src/curl/tests/libtest/cli_hx_upload.c:444,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_hx_upload.c:447,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:449,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_hx_upload.c:454,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:455,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_hx_upload.c:460,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:461,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_hx_upload.c:471,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:474,1
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/cli_hx_upload.c:485,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:486,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_hx_upload.c:496,1
    - Dst: setup_hx_upload
      Src: /src/curl/tests/libtest/cli_hx_upload.c:497,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:500,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_hx_upload.c:504,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:507,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_upload.c:519,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/cli_hx_upload.c:520,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/cli_hx_upload.c:529,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_hx_upload.c:533,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/cli_hx_upload.c:537,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_hx_upload.c:540,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/cli_hx_upload.c:543,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/cli_hx_upload.c:544,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_hx_upload.c:545,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 254
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 548
    functionName: test_cli_hx_upload
    functionSourceFile: /src/curl/tests/libtest/cli_hx_upload.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_easy_getinfo
    - cgetopt
    - usage_hx_upload
    - curl_share_cleanup
    - curl_multi_remove_handle
    - curl_mime_free
    - strcmp
    - curl_global_cleanup
    - curl_share_setopt
    - curl_slist_free_all
    - curlx_str_number
    - curl_multi_setopt
    - curl_easy_reset
    - curl_global_init
    - curl_multi_info_read
    - get_transfer_for_easy_u
    - curl_multi_add_handle
    - curl_multi_poll
    - curlx_free
    - curlx_calloc
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_pause
    - curl_global_trace
    - setup_hx_upload
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_multi_perform
    - curl_slist_append
    - curl_share_init
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_hx_upload(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1560.c:64,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:70,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:74,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1560.c:75,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1560.c:79,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1560.c:81,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:84,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:85,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:87,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - u
    - in
    - wanted
    - getflags
    argTypes:
    - CURLU*
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 92
    functionName: checkparts
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - strcmp
    - curl_url_get
    - memset
    - curl_free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int checkparts(CURLU *u, const char *in, const char *wanted,\n                      unsigned
      int getflags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1022,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - org
    - url
    - out
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1031
    functionName: checkurl
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: int checkurl(const char *org, const char *url, const char *out)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1338,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1340,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1342,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1344,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1346,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1348,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1350,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1352,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1354,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1356,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1358,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - part
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1362
    functionName: part2id
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: CURLUPart
    signature: CURLUPart part2id(const char *part)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/tests/libtest/lib1560.c:1371,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1560.c:1378,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1560.c:1379,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1560.c:1380,1
    - Dst: sscanf
      Src: /src/curl/tests/libtest/lib1560.c:1383,1
    - Dst: part2id
      Src: /src/curl/tests/libtest/lib1560.c:1384,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1387,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1390,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1392,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1393,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:1394,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1395,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - u
    - cmd
    - setflags
    argTypes:
    - CURLU*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1407
    functionName: updateurl
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - memcpy
    - curl_mfprintf
    - strcmp
    - sscanf
    - strchr
    - memset
    - part2id
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode updateurl(CURLU *u, const char *cmd, unsigned int setflags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:1602,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1607,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1610,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1613,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1615,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1620,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1622,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1623,1
    - Dst: checkurl
      Src: /src/curl/tests/libtest/lib1560.c:1626,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1629,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1633,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:1637,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1640
    functionName: set_url
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - checkurl
    - curl_url_cleanup
    - curl_url_get
    - curl_url
    - curl_free
    - curl_url_strerror
    linkageType: ''
    returnType: int
    signature: int set_url(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:1652,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1661,1
    - Dst: updateurl
      Src: /src/curl/tests/libtest/lib1560.c:1666,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1670,1
    - Dst: checkparts
      Src: /src/curl/tests/libtest/lib1560.c:1677,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1685,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:1690,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - has_utf8
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1646
    functionDepth: 2
    functionLinenumber: 1646
    functionLinenumberEnd: 1693
    functionName: setget_parts
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - updateurl
    - curl_url_cleanup
    - checkparts
    - curl_url
    linkageType: ''
    returnType: int
    signature: int setget_parts(bool has_utf8)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:1702,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1708,1
    - Dst: updateurl
      Src: /src/curl/tests/libtest/lib1560.c:1714,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1718,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1724,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1726,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1727,1
    - Dst: checkurl
      Src: /src/curl/tests/libtest/lib1560.c:1730,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1734,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1737,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:1741,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1695
    functionDepth: 2
    functionLinenumber: 1695
    functionLinenumberEnd: 1744
    functionName: set_parts
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - curl_url_strerror
    - updateurl
    - checkurl
    - curl_url_cleanup
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: int
    signature: int set_parts(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:1751,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1759,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1763,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1765,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1766,1
    - Dst: checkurl
      Src: /src/curl/tests/libtest/lib1560.c:1770,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1773,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1776,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:1781,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - has_utf8
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1784
    functionName: get_url
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - checkurl
    - curl_url_cleanup
    - curl_url_get
    - curl_url
    - curl_free
    - curl_url_strerror
    linkageType: ''
    returnType: int
    signature: int get_url(bool has_utf8)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:1791,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1799,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1803,1
    - Dst: checkparts
      Src: /src/curl/tests/libtest/lib1560.c:1810,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:1814,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - has_utf8
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1786
    functionDepth: 2
    functionLinenumber: 1786
    functionLinenumberEnd: 1817
    functionName: get_parts
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - curl_url_cleanup
    - checkparts
    - curl_url
    linkageType: ''
    returnType: int
    signature: int get_parts(bool has_utf8)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:1843,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1848,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1854,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1860,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1869,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1871,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1872,1
    - Dst: checkurl
      Src: /src/curl/tests/libtest/lib1560.c:1876,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1879,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:1882,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1837
    functionDepth: 2
    functionLinenumber: 1837
    functionLinenumberEnd: 1885
    functionName: append
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 38
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - checkurl
    - curl_url_cleanup
    - curl_url_get
    - curl_url
    - curl_free
    - curl_url_strerror
    linkageType: ''
    returnType: int
    signature: int append(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:1889,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1896,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1899,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1900,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1904,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1906,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1908,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1912,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1915,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1917,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1919,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1923,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1925,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1927,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1931,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1934,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1936,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1938,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1942,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1944,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1946,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1950,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1953,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1955,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1957,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1961,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1963,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1965,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1969,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1972,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1974,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1976,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1980,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:1983,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1985,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1987,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:1991,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:1994,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:1996,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:1998,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2002,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2004,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1560.c:2006,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2010,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:2013,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1887
    functionDepth: 1
    functionLinenumber: 1887
    functionLinenumberEnd: 2016
    functionName: scopeid
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - curl_url_cleanup
    - curl_url_get
    - curl_url
    - curl_free
    - curl_url_strerror
    linkageType: ''
    returnType: int
    signature: int scopeid(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:2020,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2027,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2029,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2031,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2034,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2036,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2038,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2041,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2043,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2045,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2048,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2050,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2052,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2055,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2057,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2059,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2062,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2064,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2068,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2070,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2072,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2074,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2077,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2079,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2081,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2084,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2086,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2089,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:2092,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2018
    functionDepth: 1
    functionLinenumber: 2018
    functionLinenumberEnd: 2095
    functionName: get_nothing
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_url_cleanup
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: int
    signature: int get_nothing(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:2113,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:2121,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2123,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:2127,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2129,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2133,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:2135,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1560.c:2137,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2141,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:2144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2147
    functionName: clear_url
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - curl_url_cleanup
    - strcmp
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: int
    signature: int clear_url(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:2159,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1560.c:2174,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1560.c:2179,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:2188,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1560.c:2191,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2197,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:2198,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1560.c:2199,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2202,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:2205,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2207
    functionName: huge
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_msnprintf
    - curl_mprintf
    - curl_url_cleanup
    - curl_free
    - strcmp
    - curl_url_get
    - memset
    - curl_url
    linkageType: ''
    returnType: int
    signature: int huge(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:2230,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:2237,1
    - Dst: curl_url_dup
      Src: /src/curl/tests/libtest/lib1560.c:2240,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2242,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2246,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1560.c:2250,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1560.c:2251,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2255,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2256,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:2257,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:2262,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2265,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1560.c:2266,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:2267,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:2268,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2270
    functionName: urldup
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mprintf
    - curl_url_cleanup
    - curl_free
    - strcmp
    - curl_url_get
    - curl_url_dup
    - curl_url
    linkageType: ''
    returnType: int
    signature: int urldup(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1560.c:2274,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2281,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1560.c:2285,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2290,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1560.c:2296,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1560.c:2300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2272
    functionDepth: 1
    functionLinenumber: 2272
    functionLinenumberEnd: 2302
    functionName: test_api_errors
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_url_get
    - curl_url
    - curl_url_cleanup
    linkageType: ''
    returnType: int
    signature: int test_api_errors(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/tests/libtest/lib1560.c:2306,1
    - Dst: test_api_errors
      Src: /src/curl/tests/libtest/lib1560.c:2310,1
    - Dst: urldup
      Src: /src/curl/tests/libtest/lib1560.c:2313,1
    - Dst: setget_parts
      Src: /src/curl/tests/libtest/lib1560.c:2316,1
    - Dst: get_url
      Src: /src/curl/tests/libtest/lib1560.c:2319,1
    - Dst: huge
      Src: /src/curl/tests/libtest/lib1560.c:2322,1
    - Dst: get_nothing
      Src: /src/curl/tests/libtest/lib1560.c:2325,1
    - Dst: scopeid
      Src: /src/curl/tests/libtest/lib1560.c:2328,1
    - Dst: append
      Src: /src/curl/tests/libtest/lib1560.c:2331,1
    - Dst: set_url
      Src: /src/curl/tests/libtest/lib1560.c:2334,1
    - Dst: set_parts
      Src: /src/curl/tests/libtest/lib1560.c:2337,1
    - Dst: get_parts
      Src: /src/curl/tests/libtest/lib1560.c:2340,1
    - Dst: clear_url
      Src: /src/curl/tests/libtest/lib1560.c:2343,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1560.c:2346,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2304
    functionDepth: 3
    functionLinenumber: 2304
    functionLinenumberEnd: 2348
    functionName: test_lib1560
    functionSourceFile: /src/curl/tests/libtest/lib1560.c
    functionUses: 0
    functionsReached:
    - urldup
    - get_nothing
    - get_parts
    - set_parts
    - huge
    - append
    - getenv
    - curl_mprintf
    - scopeid
    - get_url
    - set_url
    - clear_url
    - test_api_errors
    - setget_parts
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1560(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strcopy
      Src: /src/curl/tests/libtest/lib1915.c:65,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1915.c:65,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/libtest/lib1915.c:67,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1915.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1915.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - curl
    - e
    - userp
    argTypes:
    - CURL*
    - struct curl_hstsentry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 73
    functionName: hstsread
    functionSourceFile: /src/curl/tests/libtest/lib1915.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_mfprintf
    - curlx_strcopy
    linkageType: ''
    returnType: CURLSTScode
    signature: CURLSTScode hstsread(CURL *curl, struct curl_hstsentry *e, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - curl
    - e
    - userp
    argTypes:
    - CURL*
    - struct curl_hstsentry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: hstsreadfail
    functionSourceFile: /src/curl/tests/libtest/lib1915.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLSTScode
    signature: "CURLSTScode hstsreadfail(CURL *curl, struct curl_hstsentry *e,\n                                void
      *userp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1915.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - curl
    - e
    - i
    - userp
    argTypes:
    - CURL*
    - struct curl_hstsentry*
    - struct curl_index*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: hstswrite
    functionSourceFile: /src/curl/tests/libtest/lib1915.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: CURLSTScode
    signature: "CURLSTScode hstswrite(CURL *curl, struct curl_hstsentry *e,\n                             struct
      curl_index *i, void *userp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1915.c:106,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1915.c:111,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:112,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:113,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:114,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:115,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:116,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:117,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:118,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:119,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:120,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:121,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1915.c:122,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1915.c:123,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1915.c:127,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1915.c:130,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:131,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:132,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:133,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:134,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:135,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:136,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:137,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:138,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:139,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1915.c:140,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1915.c:141,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1915.c:142,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1915.c:144,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1915.c:147,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1915.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 150
    functionName: test_lib1915
    functionSourceFile: /src/curl/tests/libtest/lib1915.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_mprintf
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1915(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expected_fds
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: test_check
    functionSourceFile: /src/curl/tests/libtest/lib2405.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_check(expected_fds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - option
    - ','
    - expected_fds
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: test_run_check
    functionSourceFile: /src/curl/tests/libtest/lib2405.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_run_check(option, expected_fds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: emptyWriteFunc
    functionSourceFile: /src/curl/tests/libtest/lib2405.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t emptyWriteFunc(char *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:82,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:85,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:90,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:95,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:100,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:101,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:106,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:107,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:110,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2405.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - URL
    - curl
    - option
    argTypes:
    - char*
    - CURL*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 117
    functionName: set_easy
    functionSourceFile: /src/curl/tests/libtest/lib2405.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode set_easy(const char *URL, CURL *curl, long option)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib2405.c:141,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib2405.c:142,1
    - Dst: set_easy
      Src: /src/curl/tests/libtest/lib2405.c:144,1
    - Dst: set_easy
      Src: /src/curl/tests/libtest/lib2405.c:147,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib2405.c:150,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib2405.c:151,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib2405.c:154,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib2405.c:156,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib2405.c:157,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/lib2405.c:164,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:169,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:172,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:178,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:181,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:187,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:190,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:196,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:199,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:210,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:213,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:220,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:228,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:231,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:238,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:247,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:250,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:256,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:259,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:266,1
    - Dst: curl_multi_poll
      Src: /src/curl/tests/libtest/lib2405.c:278,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:281,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib2405.c:288,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib2405.c:296,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib2405.c:297,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2405.c:300,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2405.c:301,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib2405.c:303,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib2405.c:304,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 112
    argCount: 3
    argNames:
    - URL
    - option
    - max_fd_count
    argTypes:
    - char*
    - long
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 310
    functionName: test_run
    functionSourceFile: /src/curl/tests/libtest/lib2405.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_mfprintf
    - easy_init
    - curl_multi_info_read
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_multi_perform
    - set_easy
    - curl_easy_cleanup
    - curl_multi_waitfds
    - multi_init
    - multi_setopt
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode test_run(const char *URL, long option,\n                         unsigned
      int *max_fd_count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib2405.c:323,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:326,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:329,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:334,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib2405.c:341,1
    - Dst: set_easy
      Src: /src/curl/tests/libtest/lib2405.c:343,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib2405.c:346,1
    - Dst: curl_multi_waitfds
      Src: /src/curl/tests/libtest/lib2405.c:348,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:351,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2405.c:356,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib2405.c:362,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2405.c:365,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib2405.c:366,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 368
    functionName: empty_multi_test
    functionSourceFile: /src/curl/tests/libtest/lib2405.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_mfprintf
    - easy_init
    - curl_multi_remove_handle
    - set_easy
    - curl_easy_cleanup
    - curl_multi_waitfds
    - multi_init
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode empty_multi_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2405.c:375,1
    - Dst: empty_multi_test
      Src: /src/curl/tests/libtest/lib2405.c:378,1
    - Dst: test_run_check
      Src: /src/curl/tests/libtest/lib2405.c:384,1
    - Dst: test_run_check
      Src: /src/curl/tests/libtest/lib2405.c:389,1
    - Dst: test_run_check
      Src: /src/curl/tests/libtest/lib2405.c:392,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2405.c:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 399
    functionName: test_lib2405
    functionSourceFile: /src/curl/tests/libtest/lib2405.c
    functionUses: 0
    functionsReached:
    - test_run_check
    - empty_multi_test
    - curl_global_cleanup
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2405(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: write_it
    functionSourceFile: /src/curl/tests/libtest/lib695.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_it(char *ptr, size_t size, size_t nmemb, void *userdata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib695.c:46,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib695.c:47,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib695.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib695.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib695.c:57,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib695.c:60,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib695.c:63,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib695.c:64,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib695.c:65,1
    - Dst: curl_mime_type
      Src: /src/curl/tests/libtest/lib695.c:66,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib695.c:67,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib695.c:70,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib695.c:73,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib695.c:77,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib695.c:78,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib695.c:81,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib695.c:82,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib695.c:85,1
    - Dst: curl_mime_subparts
      Src: /src/curl/tests/libtest/lib695.c:88,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib695.c:91,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib695.c:92,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib695.c:97,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib695.c:101,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib695.c:102,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib695.c:107,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib695.c:108,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib695.c:109,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib695.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 112
    functionName: test_lib695
    functionSourceFile: /src/curl/tests/libtest/lib695.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_mime_subparts
    - curl_easy_perform
    - curl_easy_init
    - curl_mime_free
    - curl_easy_strerror
    - test_setopt
    - curl_mime_addpart
    - curl_easy_cleanup
    - curl_mime_init
    - curl_easy_setopt
    - curl_global_init
    - curl_mime_data
    - curl_global_cleanup
    - curl_mime_name
    - curl_mime_type
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib695(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1551.c:33,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1551.c:34,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1551.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1551.c:37,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1551.c:38,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1551.c:39,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1551.c:43,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1551.c:44,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1551.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1551.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 51
    functionName: test_lib1551
    functionSourceFile: /src/curl/tests/libtest/lib1551.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1551(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1564.c:38,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1564.c:40,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1564.c:42,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:46,1
    - Dst: multi_poll
      Src: /src/curl/tests/libtest/lib1564.c:47,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:48,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/libtest/lib1564.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1564.c:51,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1564.c:57,1
    - Dst: res_multi_wakeup
      Src: /src/curl/tests/libtest/lib1564.c:61,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:63,1
    - Dst: multi_poll
      Src: /src/curl/tests/libtest/lib1564.c:64,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:65,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/libtest/lib1564.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1564.c:68,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1564.c:74,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:78,1
    - Dst: multi_poll
      Src: /src/curl/tests/libtest/lib1564.c:79,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:80,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/libtest/lib1564.c:82,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1564.c:83,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1564.c:89,1
    - Dst: res_multi_wakeup
      Src: /src/curl/tests/libtest/lib1564.c:94,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:96,1
    - Dst: multi_poll
      Src: /src/curl/tests/libtest/lib1564.c:97,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:98,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/libtest/lib1564.c:100,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1564.c:101,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1564.c:107,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:111,1
    - Dst: multi_poll
      Src: /src/curl/tests/libtest/lib1564.c:112,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1564.c:113,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/libtest/lib1564.c:115,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1564.c:116,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1564.c:122,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1564.c:126,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1564.c:127,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 63
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 130
    functionName: test_lib1564
    functionSourceFile: /src/curl/tests/libtest/lib1564.c
    functionUses: 0
    functionsReached:
    - res_multi_wakeup
    - curl_mfprintf
    - curlx_now
    - start_test_timing
    - curlx_timediff_ms
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - multi_poll
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1564(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1965.c:42,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1965.c:45,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1965.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1965.c:48,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1965.c:50,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1965.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: test_lib1965
    functionSourceFile: /src/curl/tests/libtest/lib1965.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mprintf
    - curl_url_cleanup
    - global_init
    - curl_global_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1965(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib504.c:41,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib504.c:43,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib504.c:45,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib504.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib504.c:51,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib504.c:52,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib504.c:54,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib504.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib504.c:65,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib504.c:67,1
    - Dst: curl_multi_wait
      Src: /src/curl/tests/libtest/lib504.c:72,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib504.c:74,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib504.c:79,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib504.c:80,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib504.c:81,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib504.c:84,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib504.c:89,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib504.c:90,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib504.c:97,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib504.c:99,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib504.c:100,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib504.c:101,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib504.c:103,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib504.c:105,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib504.c:109,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib504.c:111,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib504.c:118,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib504.c:119,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib504.c:120,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib504.c:121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 124
    functionName: test_lib504
    functionSourceFile: /src/curl/tests/libtest/lib504.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_multi_remove_handle
    - curl_global_cleanup
    - select_test
    - multi_fdset
    - easy_init
    - curl_mprintf
    - curl_multi_info_read
    - curl_multi_wait
    - easy_setopt
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - multi_init
    - curl_mfprintf
    - start_test_timing
    - multi_perform
    - abort_on_test_timeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib504(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib597.c:44,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib597.c:46,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib597.c:48,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib597.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib597.c:53,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib597.c:56,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib597.c:58,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib597.c:60,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib597.c:70,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib597.c:72,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib597.c:77,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib597.c:78,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib597.c:79,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib597.c:81,1
    - Dst: multi_timeout
      Src: /src/curl/tests/libtest/lib597.c:85,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib597.c:105,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib597.c:107,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib597.c:110,1
    - Dst: multi_remove_handle
      Src: /src/curl/tests/libtest/lib597.c:114,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib597.c:120,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib597.c:121,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib597.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 125
    functionName: test_lib597
    functionSourceFile: /src/curl/tests/libtest/lib597.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - multi_remove_handle
    - easy_setopt
    - multi_fdset
    - easy_init
    - curl_multi_info_read
    - curl_multi_cleanup
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - multi_timeout
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib597(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1597.c:69,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1597.c:71,1
    - Dst: curl_version_info
      Src: /src/curl/tests/libtest/lib1597.c:74,1
    - Dst: fputs
      Src: /src/curl/tests/libtest/lib1597.c:76,1
    - Dst: puts
      Src: /src/curl/tests/libtest/lib1597.c:84,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1597.c:88,1
    - Dst: curl_strequal
      Src: /src/curl/tests/libtest/lib1597.c:89,1
    - Dst: curl_strequal
      Src: /src/curl/tests/libtest/lib1597.c:91,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1597.c:97,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1597.c:99,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1597.c:103,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1597.c:106,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1597.c:107,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 110
    functionName: test_lib1597
    functionSourceFile: /src/curl/tests/libtest/lib1597.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - fputs
    - easy_init
    - curl_mprintf
    - curl_strequal
    - curl_easy_cleanup
    - curl_version_info
    - global_init
    - puts
    - curl_easy_setopt
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1597(const char *URL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib525.c:37,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib525.c:40,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib525.c:44,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib525.c:46,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib525.c:47,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib525.c:48,1
    - Dst: curlx_fstat
      Src: /src/curl/tests/libtest/lib525.c:53,1
    - Dst: fileno
      Src: /src/curl/tests/libtest/lib525.c:53,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib525.c:56,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib525.c:57,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib525.c:58,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib525.c:59,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib525.c:63,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib525.c:65,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib525.c:69,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib525.c:72,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib525.c:75,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib525.c:78,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib525.c:81,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib525.c:84,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib525.c:95,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib525.c:97,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib525.c:99,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib525.c:109,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib525.c:111,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib525.c:116,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib525.c:117,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib525.c:118,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib525.c:120,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib525.c:124,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib525.c:126,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib525.c:133,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib525.c:134,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib525.c:135,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib525.c:136,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib525.c:140,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib525.c:141,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib525.c:142,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib525.c:143,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib525.c:147,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 62
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 150
    functionName: test_lib525
    functionSourceFile: /src/curl/tests/libtest/lib525.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - multi_add_handle
    - curl_multi_remove_handle
    - curlx_fstat
    - curl_global_cleanup
    - select_test
    - multi_fdset
    - easy_init
    - curlx_strerror
    - easy_setopt
    - FD_ZERO
    - curl_easy_cleanup
    - multi_init
    - curl_mfprintf
    - start_test_timing
    - curlx_fopen
    - multi_perform
    - res_global_init
    - abort_on_test_timeout
    - curl_multi_cleanup
    - fileno
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib525(const char *URL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib570.c:35,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib570.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib570.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib570.c:42,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib570.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:53,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib570.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:60,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib570.c:61,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib570.c:64,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib570.c:66,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:71,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:72,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:74,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib570.c:76,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:81,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib570.c:82,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib570.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:89,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib570.c:91,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib570.c:96,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib570.c:97,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib570.c:100,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib570.c:105,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib570.c:110,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib570.c:112,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib570.c:113,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 71
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 116
    functionName: test_lib570
    functionSourceFile: /src/curl/tests/libtest/lib570.c
    functionUses: 0
    functionsReached:
    - tutil_suburl
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_free
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib570(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib549.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib549.c:37,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib549.c:41,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib549.c:43,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib549.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib549.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib549.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib549.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib549.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib549.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib549.c:57,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib549.c:61,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib549.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: test_lib549
    functionSourceFile: /src/curl/tests/libtest/lib549.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib549(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1908.c:30,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1908.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1908.c:34,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1908.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1908.c:37,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1908.c:38,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1908.c:39,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib1908.c:43,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1908.c:45,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1908.c:48,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib1908.c:52,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1908.c:56,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1908.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: test_lib1908
    functionSourceFile: /src/curl/tests/libtest/lib1908.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_duphandle
    - start_test_timing
    - curl_easy_cleanup
    - curl_easy_reset
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1908(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib1509.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: WriteOutput
    functionSourceFile: /src/curl/tests/libtest/lib1509.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t WriteOutput(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: WriteHeader
    functionSourceFile: /src/curl/tests/libtest/lib1509.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t WriteHeader(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1509.c:51,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1509.c:53,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1509.c:55,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1509.c:57,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1509.c:58,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1509.c:60,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1509.c:61,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1509.c:62,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1509.c:63,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1509.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1509.c:67,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1509.c:69,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1509.c:74,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1509.c:76,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1509.c:78,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1509.c:83,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1509.c:84,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1509.c:88,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1509.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 92
    functionName: test_lib1509
    functionSourceFile: /src/curl/tests/libtest/lib1509.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - curl_easy_perform
    - curl_mprintf
    - curl_easy_strerror
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1509(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - data
    - n
    - l
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: t1947_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1947.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t1947_write_cb(char *data, size_t n, size_t l, void *userp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1947.c:42,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1947.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1947.c:47,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1947.c:48,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1947.c:49,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1947.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1947.c:52,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1947.c:53,1
    - Dst: curl_easy_nextheader
      Src: /src/curl/tests/libtest/lib1947.c:62,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1947.c:66,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1947.c:69,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1947.c:70,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1947.c:72,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1947.c:73,1
    - Dst: curl_easy_nextheader
      Src: /src/curl/tests/libtest/lib1947.c:80,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1947.c:84,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1947.c:87,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1947.c:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 90
    functionName: test_lib1947
    functionSourceFile: /src/curl/tests/libtest/lib1947.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - curl_easy_perform
    - curl_mprintf
    - curl_easy_strerror
    - curl_easy_nextheader
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1947(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:40,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:41,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - opaque
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 57
    functionName: write_tse_cb
    functionSourceFile: /src/curl/tests/libtest/cli_tls_session_reuse.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_strerror
    linkageType: ''
    returnType: size_t
    signature: size_t write_tse_cb(char *ptr, size_t size, size_t nmemb, void *opaque)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:66,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:68,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:71,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:72,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:73,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:76,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:79,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:80,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:82,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:84,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:86,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:88,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:89,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 5
    argNames:
    - multi
    - share
    - resolve
    - url
    - http_version
    argTypes:
    - CURLM*
    - CURLSH*
    - struct curl_slist*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 94
    functionName: tse_add_transfer
    functionSourceFile: /src/curl/tests/libtest/cli_tls_session_reuse.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_multi_strerror
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURL
    signature: "CURL *tse_add_transfer(CURLM *multi, CURLSH *share,\n                              struct
      curl_slist *resolve,\n                              const char *url, long http_version)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:113,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:117,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:118,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:122,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:124,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:127,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:129,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:133,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:134,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:137,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:138,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:141,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:142,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:146,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:148,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:150,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:152,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:156,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:158,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:161,1
    - Dst: tse_add_transfer
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:163,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:169,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:171,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:172,1
    - Dst: curl_multi_poll
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:177,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:179,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:180,1
    - Dst: tse_add_transfer
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:190,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:199,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:203,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:204,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:211,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:216,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:221,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:222,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:224,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:229,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:235,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:240,1
    - Dst: curl_multi_get_handles
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:246,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:250,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:251,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:253,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:255,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:257,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:258,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:259,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:260,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:262,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_tls_session_reuse.c:263,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 134
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 266
    functionName: test_cli_tls_session_reuse
    functionSourceFile: /src/curl/tests/libtest/cli_tls_session_reuse.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_easy_getinfo
    - curl_msnprintf
    - curl_share_cleanup
    - curl_multi_remove_handle
    - strcmp
    - curl_free
    - curl_global_cleanup
    - curl_share_setopt
    - tse_add_transfer
    - curl_slist_free_all
    - curl_url_get
    - curl_global_init
    - curl_multi_info_read
    - curl_multi_get_handles
    - curl_multi_poll
    - curl_url_cleanup
    - curl_easy_cleanup
    - curl_multi_init
    - curl_mfprintf
    - curl_multi_perform
    - curl_slist_append
    - curl_share_init
    - curl_multi_strerror
    - curl_multi_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_tls_session_reuse(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib2032.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2032.c:48,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib2032.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2032.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 76
    functionName: callback
    functionSourceFile: /src/curl/tests/libtest/lib2032.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_strerror
    linkageType: ''
    returnType: size_t
    signature: size_t callback(char *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib2032.c:92,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib2032.c:93,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib2032.c:95,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2032.c:98,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib2032.c:107,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib2032.c:109,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib2032.c:113,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib2032.c:126,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib2032.c:129,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:130,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib2032.c:133,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:134,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:136,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:137,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:138,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:139,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:140,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:142,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:143,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2032.c:145,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib2032.c:147,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib2032.c:153,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2032.c:155,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib2032.c:158,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2032.c:163,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2032.c:164,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2032.c:165,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib2032.c:167,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2032.c:173,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2032.c:180,1
    - Dst: multi_timeout
      Src: /src/curl/tests/libtest/lib2032.c:183,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2032.c:187,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib2032.c:212,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib2032.c:214,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2032.c:222,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib2032.c:223,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2032.c:224,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib2032.c:227,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2032.c:228,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib2032.c:230,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 84
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 233
    functionName: test_lib2032
    functionSourceFile: /src/curl/tests/libtest/lib2032.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_msnprintf
    - curl_multi_remove_handle
    - curl_global_cleanup
    - select_test
    - multi_fdset
    - easy_init
    - curl_mprintf
    - multi_timeout
    - easy_setopt
    - FD_ZERO
    - curlx_malloc
    - curlx_free
    - curl_easy_cleanup
    - multi_init
    - curl_mfprintf
    - start_test_timing
    - multi_perform
    - res_global_init
    - abort_on_test_timeout
    - strlen
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2032(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/tests/libtest/testutil.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - i
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: tutil_suburl
    functionSourceFile: /src/curl/tests/libtest/testutil.c
    functionUses: 4
    functionsReached:
    - curl_maprintf
    linkageType: ''
    returnType: char
    signature: char *tutil_suburl(const char *base, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/testutil.c:37,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/testutil.c:42,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/testutil.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - len
    - val
    argTypes:
    - char*
    - size_t
    - rlim_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: tutil_rlim2str
    functionSourceFile: /src/curl/tests/libtest/testutil.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: void tutil_rlim2str(char *buf, size_t len, rlim_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - userp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: free_callback
    functionSourceFile: /src/curl/tests/libtest/lib654.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_callback(void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 58
    functionName: t654_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib654.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t654_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib654.c:77,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib654.c:78,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib654.c:82,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib654.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib654.c:88,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib654.c:91,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib654.c:95,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib654.c:99,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib654.c:100,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib654.c:101,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib654.c:102,1
    - Dst: curl_mime_type
      Src: /src/curl/tests/libtest/lib654.c:103,1
    - Dst: curl_mime_encoder
      Src: /src/curl/tests/libtest/lib654.c:104,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib654.c:105,1
    - Dst: curl_mime_headers
      Src: /src/curl/tests/libtest/lib654.c:106,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib654.c:107,1
    - Dst: curl_mime_filedata
      Src: /src/curl/tests/libtest/lib654.c:108,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib654.c:109,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib654.c:110,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib654.c:114,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib654.c:117,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib654.c:119,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib654.c:126,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib654.c:130,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib654.c:132,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib654.c:138,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib654.c:140,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib654.c:147,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib654.c:151,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib654.c:158,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib654.c:159,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib654.c:160,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib654.c:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 163
    functionName: test_lib654
    functionSourceFile: /src/curl/tests/libtest/lib654.c
    functionUses: 0
    functionsReached:
    - curl_mime_free
    - test_setopt
    - curl_mime_encoder
    - curl_global_cleanup
    - curl_mime_headers
    - curl_mime_data_cb
    - curl_mime_addpart
    - curl_global_init
    - curl_mime_type
    - curl_easy_cleanup
    - curl_mime_init
    - curl_mfprintf
    - curl_easy_duphandle
    - curl_easy_init
    - curl_easy_perform
    - curl_slist_append
    - curl_mime_data
    - strlen
    - curl_mime_name
    - curl_mime_filedata
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib654(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib514.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib514.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib514.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib514.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib514.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib514.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib514.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib514.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib514.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib514.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib514.c:64,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib514.c:65,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib514.c:70,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib514.c:75,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib514.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 79
    functionName: test_lib514
    functionSourceFile: /src/curl/tests/libtest/lib514.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib514(const char *URL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1588.c:38,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1588.c:42,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1588.c:46,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1588.c:50,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1588.c:54,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1588.c:58,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1588.c:63,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 4
    argNames:
    - curl
    - url
    - userpwd
    - proxy
    argTypes:
    - CURL*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 71
    functionName: init1588
    functionSourceFile: /src/curl/tests/libtest/lib1588.c
    functionUses: 0
    functionsReached:
    - res_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init1588(CURL *curl, const char *url,\n                         const
      char *userpwd, const char *proxy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init1588
      Src: /src/curl/tests/libtest/lib1588.c:78,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1588.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - curl
    - url
    - userpwd
    - proxy
    argTypes:
    - CURL*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: run1588
    functionSourceFile: /src/curl/tests/libtest/lib1588.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - init1588
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode run1588(CURL *curl, const char *url, const char *userpwd,\n
      \                       const char *proxy)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1588.c:100,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1588.c:102,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1588.c:106,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1588.c:108,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib1588.c:111,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1588.c:115,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1588.c:117,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1588.c:118,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1588.c:122,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1588.c:125,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1588.c:130,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1588.c:132,1
    - Dst: run1588
      Src: /src/curl/tests/libtest/lib1588.c:134,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1588.c:138,1
    - Dst: run1588
      Src: /src/curl/tests/libtest/lib1588.c:140,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1588.c:146,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1588.c:147,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1588.c:148,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 150
    functionName: test_lib1588
    functionSourceFile: /src/curl/tests/libtest/lib1588.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - easy_setopt
    - curl_easy_init
    - curl_slist_free_all
    - start_test_timing
    - run1588
    - res_global_init
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1588(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: t1301_fail_unless
    functionSourceFile: /src/curl/tests/libtest/lib1301.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: t1301_fail_unless(expr, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/tests/libtest/lib1301.c:40,1
    - Dst: t1301_fail_unless
      Src: /src/curl/tests/libtest/lib1301.c:41,1
    - Dst: curl_strequal
      Src: /src/curl/tests/libtest/lib1301.c:43,1
    - Dst: t1301_fail_unless
      Src: /src/curl/tests/libtest/lib1301.c:44,1
    - Dst: curl_strequal
      Src: /src/curl/tests/libtest/lib1301.c:46,1
    - Dst: t1301_fail_unless
      Src: /src/curl/tests/libtest/lib1301.c:47,1
    - Dst: curl_strequal
      Src: /src/curl/tests/libtest/lib1301.c:49,1
    - Dst: t1301_fail_unless
      Src: /src/curl/tests/libtest/lib1301.c:50,1
    - Dst: curl_strnequal
      Src: /src/curl/tests/libtest/lib1301.c:52,1
    - Dst: t1301_fail_unless
      Src: /src/curl/tests/libtest/lib1301.c:53,1
    - Dst: curl_strnequal
      Src: /src/curl/tests/libtest/lib1301.c:55,1
    - Dst: t1301_fail_unless
      Src: /src/curl/tests/libtest/lib1301.c:56,1
    - Dst: curl_strnequal
      Src: /src/curl/tests/libtest/lib1301.c:58,1
    - Dst: t1301_fail_unless
      Src: /src/curl/tests/libtest/lib1301.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: test_lib1301
    functionSourceFile: /src/curl/tests/libtest/lib1301.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - t1301_fail_unless
    - curl_strnequal
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1301(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/lib521.c:32,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib521.c:35,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib521.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib521.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib521.c:42,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib521.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib521.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib521.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib521.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib521.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib521.c:52,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib521.c:56,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib521.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: test_lib521
    functionSourceFile: /src/curl/tests/libtest/lib521.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curlx_str_number
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib521(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib2404.c:41,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2404.c:42,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib2404.c:43,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2404.c:45,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib2404.c:49,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2404.c:51,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib2404.c:53,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib2404.c:55,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib2404.c:58,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib2404.c:60,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib2404.c:62,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2404.c:65,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2404.c:67,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2404.c:69,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2404.c:70,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2404.c:72,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2404.c:74,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2404.c:76,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2404.c:78,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2404.c:80,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2404.c:83,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib2404.c:85,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib2404.c:87,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib2404.c:97,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib2404.c:99,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2404.c:104,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2404.c:105,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib2404.c:106,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib2404.c:108,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib2404.c:112,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib2404.c:114,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib2404.c:116,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib2404.c:123,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib2404.c:124,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2404.c:125,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib2404.c:128,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib2404.c:130,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2404.c:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 134
    functionName: test_lib2404
    functionSourceFile: /src/curl/tests/libtest/lib2404.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_msnprintf
    - curl_multi_remove_handle
    - multi_setopt
    - curl_global_cleanup
    - select_test
    - multi_fdset
    - easy_init
    - curl_mprintf
    - curl_slist_free_all
    - curlx_wait_ms
    - easy_setopt
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - multi_init
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - start_test_timing
    - multi_perform
    - curl_slist_append
    - abort_on_test_timeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2404(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1591.c:40,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1591.c:44,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1591.c:45,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1591.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: t1591_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1591.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t1591_read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1591.c:62,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1591.c:64,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1591.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - userdata
    argTypes:
    - struct curl_slist**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: t1591_trailers_callback
    functionSourceFile: /src/curl/tests/libtest/lib1591.c
    functionUses: 0
    functionsReached:
    - curl_slist_append
    - curl_slist_free_all
    linkageType: ''
    returnType: int
    signature: int t1591_trailers_callback(struct curl_slist **list, void *userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1591.c:82,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1591.c:83,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1591.c:87,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1591.c:89,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1591.c:90,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1591.c:94,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1591.c:100,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1591.c:101,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1591.c:102,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1591.c:103,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1591.c:104,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1591.c:105,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1591.c:107,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1591.c:111,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1591.c:113,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1591.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 118
    functionName: test_lib1591
    functionSourceFile: /src/curl/tests/libtest/lib1591.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1591(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ws_send_ping
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:35,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:39,1
    - Dst: ws_recv_pong
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:40,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:42,1
    - Dst: ws_close
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:45,1
    - Dst: ws_close
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - curl
    - payload
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: pingpong
    functionSourceFile: /src/curl/tests/libtest/cli_ws_pingpong.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - ws_recv_pong
    - curlx_wait_ms
    - ws_close
    - ws_send_ping
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pingpong(CURL *curl, const char *payload)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:62,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:68,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:72,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:79,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:80,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:81,1
    - Dst: pingpong
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:83,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:86,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:88,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_ws_pingpong.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 96
    functionName: test_cli_ws_pingpong
    functionSourceFile: /src/curl/tests/libtest/cli_ws_pingpong.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - pingpong
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_ws_pingpong(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - a
    - b
    - c
    - d
    - e
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: dload_progress_cb
    functionSourceFile: /src/curl/tests/libtest/lib1523.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dload_progress_cb(void *a, curl_off_t b, curl_off_t c,\n                             curl_off_t
      d, curl_off_t e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - d
    - n
    - l
    - p
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: t1523_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1523.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t1523_write_cb(char *d, size_t n, size_t l, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1523.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1523.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1523.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - curl
    - limit
    - time
    argTypes:
    - CURL*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: run
    functionSourceFile: /src/curl/tests/libtest/lib1523.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode run(CURL *curl, long limit, long time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1523.c:59,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1523.c:60,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1523.c:61,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1523.c:62,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1523.c:63,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1523.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1523.c:65,1
    - Dst: run
      Src: /src/curl/tests/libtest/lib1523.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1523.c:69,1
    - Dst: run
      Src: /src/curl/tests/libtest/lib1523.c:71,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1523.c:73,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1523.c:77,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1523.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 81
    functionName: test_lib1523
    functionSourceFile: /src/curl/tests/libtest/lib1523.c
    functionUses: 0
    functionsReached:
    - run
    - curl_mfprintf
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1523(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib1308.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: print_httppost_callback
    functionSourceFile: /src/curl/tests/libtest/lib1308.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t print_httppost_callback(void *arg, const char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: t1308_fail_unless
    functionSourceFile: /src/curl/tests/libtest/lib1308.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: t1308_fail_unless(expr, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1308.c:53,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib1308.c:55,1
    - Dst: t1308_fail_unless
      Src: /src/curl/tests/libtest/lib1308.c:57,1
    - Dst: t1308_fail_unless
      Src: /src/curl/tests/libtest/lib1308.c:61,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib1308.c:63,1
    - Dst: t1308_fail_unless
      Src: /src/curl/tests/libtest/lib1308.c:66,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib1308.c:68,1
    - Dst: t1308_fail_unless
      Src: /src/curl/tests/libtest/lib1308.c:70,1
    - Dst: curl_formget
      Src: /src/curl/tests/libtest/lib1308.c:72,1
    - Dst: t1308_fail_unless
      Src: /src/curl/tests/libtest/lib1308.c:73,1
    - Dst: t1308_fail_unless
      Src: /src/curl/tests/libtest/lib1308.c:75,1
    - Dst: curl_formfree
      Src: /src/curl/tests/libtest/lib1308.c:77,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib1308.c:82,1
    - Dst: t1308_fail_unless
      Src: /src/curl/tests/libtest/lib1308.c:87,1
    - Dst: curl_formget
      Src: /src/curl/tests/libtest/lib1308.c:89,1
    - Dst: t1308_fail_unless
      Src: /src/curl/tests/libtest/lib1308.c:91,1
    - Dst: t1308_fail_unless
      Src: /src/curl/tests/libtest/lib1308.c:92,1
    - Dst: curl_formfree
      Src: /src/curl/tests/libtest/lib1308.c:94,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1308.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 99
    functionName: test_lib1308
    functionSourceFile: /src/curl/tests/libtest/lib1308.c
    functionUses: 0
    functionsReached:
    - t1308_fail_unless
    - curl_formadd
    - curl_formfree
    - curl_formget
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1308(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/tests/libtest/lib509.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: custom_calloc
    functionSourceFile: /src/curl/tests/libtest/lib509.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void *custom_calloc(size_t nmemb, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/tests/libtest/lib509.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: custom_malloc
    functionSourceFile: /src/curl/tests/libtest/lib509.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *custom_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURLX_STRDUP_LOW
      Src: /src/curl/tests/libtest/lib509.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: custom_strdup
    functionSourceFile: /src/curl/tests/libtest/lib509.c
    functionUses: 0
    functionsReached:
    - CURLX_STRDUP_LOW
    linkageType: ''
    returnType: char
    signature: char *custom_strdup(const char *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/curl/tests/libtest/lib509.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: custom_realloc
    functionSourceFile: /src/curl/tests/libtest/lib509.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *custom_realloc(void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/curl/tests/libtest/lib509.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: custom_free
    functionSourceFile: /src/curl/tests/libtest/lib509.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void custom_free(void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init_mem
      Src: /src/curl/tests/libtest/lib509.c:84,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib509.c:91,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib509.c:95,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib509.c:97,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib509.c:98,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib509.c:102,1
    - Dst: curl_easy_escape
      Src: /src/curl/tests/libtest/lib509.c:106,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib509.c:109,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib509.c:114,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib509.c:116,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib509.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 120
    functionName: test_lib509
    functionSourceFile: /src/curl/tests/libtest/lib509.c
    functionUses: 0
    functionsReached:
    - curl_global_init_mem
    - curl_mfprintf
    - curl_easy_init
    - curl_mprintf
    - test_setopt
    - curl_easy_cleanup
    - curl_free
    - curl_global_cleanup
    - curl_easy_escape
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib509(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2301.c:31,1
    - Dst: ws_send_ping
      Src: /src/curl/tests/libtest/lib2301.c:33,1
    - Dst: ws_recv_pong
      Src: /src/curl/tests/libtest/lib2301.c:35,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib2301.c:37,1
    - Dst: ws_close
      Src: /src/curl/tests/libtest/lib2301.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: t2301_websocket
    functionSourceFile: /src/curl/tests/libtest/lib2301.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - ws_recv_pong
    - curlx_wait_ms
    - ws_close
    - ws_send_ping
    linkageType: ''
    returnType: void
    signature: void t2301_websocket(CURL *curl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2301.c:51,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2301.c:54,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2301.c:55,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2301.c:59,1
    - Dst: curl_ws_send
      Src: /src/curl/tests/libtest/lib2301.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2301.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - b
    - size
    - nitems
    - p
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: t2301_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib2301.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_ws_send
    linkageType: ''
    returnType: size_t
    signature: size_t t2301_write_cb(char *b, size_t size, size_t nitems, void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2301.c:76,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2301.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2301.c:80,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2301.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2301.c:84,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2301.c:85,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2301.c:86,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2301.c:87,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2301.c:88,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2301.c:89,1
    - Dst: t2301_websocket
      Src: /src/curl/tests/libtest/lib2301.c:92,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2301.c:95,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2301.c:97,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2301.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 104
    functionName: test_lib2301
    functionSourceFile: /src/curl/tests/libtest/lib2301.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - t2301_websocket
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2301(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - ud
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: sink2505
    functionSourceFile: /src/curl/tests/libtest/lib2505.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sink2505(char *ptr, size_t size, size_t nmemb, void *ud)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib2505.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2505.c:41,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2505.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2505.c:47,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2505.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2505.c:52,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2505.c:53,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2505.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2505.c:55,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2505.c:57,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2505.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2505.c:60,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2505.c:61,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2505.c:63,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2505.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2505.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2505.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 71
    functionName: test_lib2505
    functionSourceFile: /src/curl/tests/libtest/lib2505.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2505(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib512.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib512.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib512.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib512.c:41,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib512.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib512.c:46,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib512.c:49,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib512.c:58,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib512.c:63,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib512.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 74
    functionName: test_lib512
    functionSourceFile: /src/curl/tests/libtest/lib512.c
    functionUses: 0
    functionsReached:
    - curl_easy_duphandle
    - curl_easy_init
    - curl_easy_perform
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib512(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib530.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: t530_tag
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: char
    signature: char *t530_tag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:52,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: t530_msg
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - t530_tag
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void t530_msg(const char *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:74,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:75,1
    - Dst: memmove
      Src: /src/curl/tests/libtest/lib530.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - sockets
    - fd
    - mention
    argTypes:
    - struct t530_Sockets*
    - curl_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: t530_removeFd
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - t530_tag
    - memmove
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: "void t530_removeFd(struct t530_Sockets *sockets, curl_socket_t fd,\n
      \                         int mention)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:98,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:99,1
    - Dst: t530_removeFd
      Src: /src/curl/tests/libtest/lib530.c:100,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib530.c:105,1
    - Dst: curlx_realloc
      Src: /src/curl/tests/libtest/lib530.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - sockets
    - fd
    - what
    argTypes:
    - struct t530_Sockets*
    - curl_socket_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 126
    functionName: t530_addFd
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - t530_tag
    - curl_mfprintf
    - t530_removeFd
    - curlx_malloc
    - curlx_realloc
    linkageType: ''
    returnType: int
    signature: "int t530_addFd(struct t530_Sockets *sockets, curl_socket_t fd,\n                      const
      char *what)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: t530_msg
      Src: /src/curl/tests/libtest/lib530.c:140,1
    - Dst: t530_msg
      Src: /src/curl/tests/libtest/lib530.c:142,1
    - Dst: t530_addFd
      Src: /src/curl/tests/libtest/lib530.c:147,1
    - Dst: t530_addFd
      Src: /src/curl/tests/libtest/lib530.c:151,1
    - Dst: t530_removeFd
      Src: /src/curl/tests/libtest/lib530.c:155,1
    - Dst: t530_removeFd
      Src: /src/curl/tests/libtest/lib530.c:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - curl
    - s
    - action
    - userp
    - socketp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 160
    functionName: t530_curlSocketCallback
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - t530_addFd
    - t530_msg
    - t530_removeFd
    linkageType: ''
    returnType: int
    signature: "int t530_curlSocketCallback(CURL *curl, curl_socket_t s, int action,\n
      \                                  void *userp, void *socketp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: t530_msg
      Src: /src/curl/tests/libtest/lib530.c:171,1
    - Dst: t530_msg
      Src: /src/curl/tests/libtest/lib530.c:173,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib530.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - userp
    argTypes:
    - CURLM*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: t530_curlTimerCallback
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - curlx_now
    - t530_msg
    linkageType: ''
    returnType: int
    signature: int t530_curlTimerCallback(CURLM *multi, long timeout_ms, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib530.c:195,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:206,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - multi
    - success
    argTypes:
    - CURLM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: t530_checkForCompletion
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - curl_multi_info_read
    - t530_tag
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: int t530_checkForCompletion(CURLM *multi, int *success)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib530.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: t530_getMicroSecondTimeout
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - curlx_now
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t t530_getMicroSecondTimeout(struct curltime *timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FD_SET
      Src: /src/curl/tests/libtest/lib530.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sockets
    - fdset
    - maxFd
    argTypes:
    - struct t530_Sockets*
    - fd_set*
    - curl_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: t530_updateFdSet
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - FD_SET
    linkageType: ''
    returnType: void
    signature: "void t530_updateFdSet(struct t530_Sockets *sockets, fd_set *fdset,\n
      \                            curl_socket_t *maxFd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/tests/libtest/lib530.c:247,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:250,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:251,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/lib530.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - multi
    - s
    - evBitmask
    - info
    argTypes:
    - CURLM*
    - curl_socket_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: socket_action
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 1
    functionsReached:
    - t530_tag
    - curl_multi_strerror
    - curl_mfprintf
    - curl_multi_socket_action
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode socket_action(CURLM *multi, curl_socket_t s, int evBitmask,\n
      \                              const char *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FD_ISSET
      Src: /src/curl/tests/libtest/lib530.c:266,1
    - Dst: socket_action
      Src: /src/curl/tests/libtest/lib530.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - multi
    - sockets
    - fdset
    - evBitmask
    - name
    argTypes:
    - CURLM*
    - struct t530_Sockets*
    - fd_set*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 273
    functionName: t530_checkFdSet
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - socket_action
    - FD_ISSET
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode t530_checkFdSet(CURLM *multi, struct t530_Sockets *sockets,\n
      \                                fd_set *fdset, int evBitmask,\n                                 const
      char *name)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib530.c:286,1
    - Dst: t530_msg
      Src: /src/curl/tests/libtest/lib530.c:290,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib530.c:291,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib530.c:293,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib530.c:297,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib530.c:300,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib530.c:303,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib530.c:305,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib530.c:307,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib530.c:308,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib530.c:310,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib530.c:311,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib530.c:313,1
    - Dst: socket_action
      Src: /src/curl/tests/libtest/lib530.c:315,1
    - Dst: t530_checkForCompletion
      Src: /src/curl/tests/libtest/lib530.c:320,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib530.c:326,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib530.c:327,1
    - Dst: t530_updateFdSet
      Src: /src/curl/tests/libtest/lib530.c:328,1
    - Dst: t530_updateFdSet
      Src: /src/curl/tests/libtest/lib530.c:329,1
    - Dst: curlx_sztosi
      Src: /src/curl/tests/libtest/lib530.c:332,1
    - Dst: t530_getMicroSecondTimeout
      Src: /src/curl/tests/libtest/lib530.c:332,1
    - Dst: assert
      Src: /src/curl/tests/libtest/lib530.c:341,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib530.c:342,1
    - Dst: t530_checkFdSet
      Src: /src/curl/tests/libtest/lib530.c:345,1
    - Dst: t530_checkFdSet
      Src: /src/curl/tests/libtest/lib530.c:350,1
    - Dst: t530_getMicroSecondTimeout
      Src: /src/curl/tests/libtest/lib530.c:357,1
    - Dst: socket_action
      Src: /src/curl/tests/libtest/lib530.c:359,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib530.c:365,1
    - Dst: t530_msg
      Src: /src/curl/tests/libtest/lib530.c:369,1
    - Dst: t530_msg
      Src: /src/curl/tests/libtest/lib530.c:376,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib530.c:377,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib530.c:378,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib530.c:379,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib530.c:380,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib530.c:383,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib530.c:384,1
    - Dst: t530_msg
      Src: /src/curl/tests/libtest/lib530.c:385,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 3
    argNames:
    - URL
    - timer_fail_at
    - socket_fail_at
    argTypes:
    - char*
    - int
    - int
    assertStmts:
    - condition: (maxFd)
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/curl/tests/libtest/lib530.c
    constantsTouched: []
    func_position:
      end: 388
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 388
    functionName: testone
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curlx_sztosi
    - t530_checkFdSet
    - t530_getMicroSecondTimeout
    - curl_multi_remove_handle
    - socket_action
    - multi_setopt
    - curl_global_cleanup
    - select_test
    - t530_msg
    - easy_init
    - easy_setopt
    - t530_checkForCompletion
    - FD_ZERO
    - curlx_free
    - curl_easy_cleanup
    - assert
    - memset
    - multi_init
    - t530_updateFdSet
    - start_test_timing
    - res_global_init
    - abort_on_test_timeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode testone(const char *URL, int timer_fail_at, int socket_fail_at)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: testone
      Src: /src/curl/tests/libtest/lib530.c:395,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:397,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:397,1
    - Dst: testone
      Src: /src/curl/tests/libtest/lib530.c:399,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:401,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:401,1
    - Dst: testone
      Src: /src/curl/tests/libtest/lib530.c:403,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:405,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:405,1
    - Dst: testone
      Src: /src/curl/tests/libtest/lib530.c:407,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:409,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:409,1
    - Dst: testone
      Src: /src/curl/tests/libtest/lib530.c:411,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib530.c:413,1
    - Dst: t530_tag
      Src: /src/curl/tests/libtest/lib530.c:413,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 390
    functionDepth: 5
    functionLinenumber: 390
    functionLinenumberEnd: 416
    functionName: test_lib530
    functionSourceFile: /src/curl/tests/libtest/lib530.c
    functionUses: 0
    functionsReached:
    - t530_tag
    - curl_mfprintf
    - testone
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib530(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1938.c:34,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1938.c:35,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1938.c:39,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1938.c:41,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1938.c:42,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:51,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1938.c:53,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:55,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1938.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1938.c:59,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1938.c:61,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1938.c:65,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1938.c:66,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1938.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1938.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 71
    functionName: test_lib1938
    functionSourceFile: /src/curl/tests/libtest/lib1938.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1938(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib553.c:39,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib553.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 51
    functionName: myreadfunc
    functionSourceFile: /src/curl/tests/libtest/lib553.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: size_t
    signature: size_t myreadfunc(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib553.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib553.c:66,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib553.c:70,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib553.c:72,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib553.c:73,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib553.c:78,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib553.c:79,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib553.c:81,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib553.c:87,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib553.c:92,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib553.c:93,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib553.c:94,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib553.c:95,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib553.c:96,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib553.c:97,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib553.c:98,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib553.c:100,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib553.c:104,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib553.c:106,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib553.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 111
    functionName: test_lib553
    functionSourceFile: /src/curl/tests/libtest/lib553.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - memset
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib553(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib674.c:38,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib674.c:39,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib674.c:41,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib674.c:44,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib674.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib674.c:50,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib674.c:51,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib674.c:57,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib674.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib674.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib674.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib674.c:65,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib674.c:69,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib674.c:70,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib674.c:71,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib674.c:75,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib674.c:76,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib674.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 80
    functionName: test_lib674
    functionSourceFile: /src/curl/tests/libtest/lib674.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - curl_url_strerror
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_duphandle
    - curl_url_cleanup
    - curl_easy_strerror
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib674(const char *URL)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1535.c:34,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1535.c:36,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1535.c:41,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:44,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1535.c:46,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1535.c:57,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1535.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:61,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1535.c:63,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1535.c:70,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:73,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1535.c:75,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:79,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib1535.c:90,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:92,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1535.c:98,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:101,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1535.c:103,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:107,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib1535.c:117,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1535.c:119,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:122,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1535.c:124,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1535.c:128,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1535.c:136,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1535.c:137,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1535.c:138,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 140
    functionName: test_lib1535
    functionSourceFile: /src/curl/tests/libtest/lib1535.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_duphandle
    - curl_easy_strerror
    - curl_easy_reset
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1535(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: get_transfer_for_easy_d
    functionSourceFile: /src/curl/tests/libtest/cli_hx_download.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct transfer_d
    signature: struct transfer_d *get_transfer_for_easy_d(CURL *curl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:91,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:96,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/cli_hx_download.c:98,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:106,1
    - Dst: fwrite
      Src: /src/curl/tests/libtest/cli_hx_download.c:111,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:113,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - buf
    - nitems
    - buflen
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 124
    functionName: my_write_d_cb
    functionSourceFile: /src/curl/tests/libtest/cli_hx_download.c
    functionUses: 0
    functionsReached:
    - fwrite
    - curl_msnprintf
    - curl_mfprintf
    - curlx_fopen
    linkageType: ''
    returnType: size_t
    signature: "size_t my_write_d_cb(char *buf, size_t nitems, size_t buflen,\n                            void
      *userdata)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:135,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_hx_download.c:147,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:149,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:151,1
    - Dst: SSL_get_version
      Src: /src/curl/tests/libtest/cli_hx_download.c:157,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:158,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:159,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_download.c:159,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:160,1
    - Dst: wolfSSL_get_version
      Src: /src/curl/tests/libtest/cli_hx_download.c:167,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:168,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:169,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_download.c:169,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:170,1
    - Dst: gnutls_protocol_get_version
      Src: /src/curl/tests/libtest/cli_hx_download.c:177,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:179,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:180,1
    - Dst: gnutls_protocol_get_name
      Src: /src/curl/tests/libtest/cli_hx_download.c:181,1
    - Dst: mbedtls_ssl_get_version
      Src: /src/curl/tests/libtest/cli_hx_download.c:188,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:189,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:190,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_download.c:190,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:191,1
    - Dst: rustls_connection_get_protocol_version
      Src: /src/curl/tests/libtest/cli_hx_download.c:198,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:200,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:201,1
    - Dst: QueryContextAttributes
      Src: /src/curl/tests/libtest/cli_hx_download.c:211,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:214,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:216,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:222,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 5
    argNames:
    - userdata
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts:
    - condition: (strcmp(version, "unknown"))
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    - condition: (strcmp(version, "unknown"))
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    - condition: (v)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    - condition: (strcmp(version, "unknown"))
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    - condition: (v)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    - condition: (sspi_status == SEC_E_OK)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    - condition: (version)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    - condition: (version)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    - condition: (version)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    - condition: (0)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    constantsTouched: []
    func_position:
      end: 230
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 230
    functionName: my_progress_d_cb
    functionSourceFile: /src/curl/tests/libtest/cli_hx_download.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - wolfSSL_get_version
    - curl_mfprintf
    - SSL_get_version
    - gnutls_protocol_get_name
    - gnutls_protocol_get_version
    - rustls_connection_get_protocol_version
    - strcmp
    - QueryContextAttributes
    - assert
    - mbedtls_ssl_get_version
    linkageType: ''
    returnType: int
    signature: "int my_progress_d_cb(void *userdata,\n                            curl_off_t
      dltotal, curl_off_t dlnow,\n                            curl_off_t ultotal,
      curl_off_t ulnow)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:237,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:238,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:239,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:241,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:242,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:243,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:244,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:245,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:246,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:247,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:248,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:250,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:252,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:254,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:256,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:260,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:261,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:265,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 9
    argNames:
    - curl
    - url
    - t
    - http_version
    - host
    - share
    - use_earlydata
    - fresh_connect
    - cafile
    argTypes:
    - CURL*
    - char*
    - struct transfer_d*
    - long
    - struct curl_slist*
    - CURLSH*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 268
    functionName: setup_hx_download
    functionSourceFile: /src/curl/tests/libtest/cli_hx_download.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: "int setup_hx_download(CURL *curl, const char *url, struct transfer_d
      *t,\n                             long http_version, struct curl_slist *host,\n
      \                            CURLSH *share, int use_earlydata,\n                             int
      fresh_connect, const char *cafile)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:273,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:274,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 292
    functionName: usage_hx_download
    functionSourceFile: /src/curl/tests/libtest/cli_hx_download.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void usage_hx_download(const char *msg)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: cgetopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:323,1
    - Dst: usage_hx_download
      Src: /src/curl/tests/libtest/cli_hx_download.c:329,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_download.c:342,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_download.c:346,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_download.c:353,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_hx_download.c:357,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/libtest/cli_hx_download.c:358,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_download.c:361,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_download.c:365,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_download.c:369,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_hx_download.c:373,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/libtest/cli_hx_download.c:374,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/cli_hx_download.c:377,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_download.c:381,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_download.c:383,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_hx_download.c:385,1
    - Dst: usage_hx_download
      Src: /src/curl/tests/libtest/cli_hx_download.c:388,1
    - Dst: usage_hx_download
      Src: /src/curl/tests/libtest/cli_hx_download.c:398,1
    - Dst: curl_global_trace
      Src: /src/curl/tests/libtest/cli_hx_download.c:406,1
    - Dst: usage_hx_download
      Src: /src/curl/tests/libtest/cli_hx_download.c:409,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_hx_download.c:415,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:416,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/cli_hx_download.c:422,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/cli_hx_download.c:424,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:426,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:430,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:431,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:432,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:434,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:436,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:437,1
    - Dst: curlx_calloc
      Src: /src/curl/tests/libtest/cli_hx_download.c:439,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:441,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/cli_hx_download.c:446,1
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:447,1
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:448,1
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:450,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_hx_download.c:465,1
    - Dst: setup_hx_download
      Src: /src/curl/tests/libtest/cli_hx_download.c:467,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:469,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_hx_download.c:474,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_hx_download.c:475,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:478,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_hx_download.c:483,1
    - Dst: curl_multi_poll
      Src: /src/curl/tests/libtest/cli_hx_download.c:487,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/cli_hx_download.c:495,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_hx_download.c:499,1
    - Dst: get_transfer_for_easy_d
      Src: /src/curl/tests/libtest/cli_hx_download.c:500,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:504,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_hx_download.c:508,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:509,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_hx_download.c:514,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:515,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_hx_download.c:525,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:528,1
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/cli_hx_download.c:539,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:540,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_hx_download.c:550,1
    - Dst: setup_hx_download
      Src: /src/curl/tests/libtest/cli_hx_download.c:552,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:554,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_hx_download.c:558,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_hx_download.c:561,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/cli_hx_download.c:575,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/cli_hx_download.c:581,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_hx_download.c:585,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_hx_download.c:591,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_hx_download.c:593,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/cli_hx_download.c:596,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/cli_hx_download.c:597,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_hx_download.c:599,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_hx_download.c:603,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/cli_hx_download.c:604,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 246
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts:
    - condition: (t->checked_ssl)
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    constantsTouched: []
    func_position:
      end: 607
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 607
    functionName: test_cli_hx_download
    functionSourceFile: /src/curl/tests/libtest/cli_hx_download.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_easy_getinfo
    - cgetopt
    - curl_share_cleanup
    - curl_multi_remove_handle
    - strcmp
    - usage_hx_download
    - curl_global_cleanup
    - setup_hx_download
    - curl_share_setopt
    - get_transfer_for_easy_d
    - curl_slist_free_all
    - curlx_str_number
    - curl_multi_setopt
    - curl_global_init
    - curl_multi_info_read
    - curl_multi_add_handle
    - curl_multi_poll
    - curlx_free
    - curlx_calloc
    - curl_easy_cleanup
    - curl_multi_init
    - assert
    - curl_easy_pause
    - curl_global_trace
    - curl_mfprintf
    - curl_easy_init
    - curl_multi_perform
    - curlx_strdup
    - curl_slist_append
    - curl_share_init
    - curl_easy_setopt
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_hx_download(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib2023.c:35,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib2023.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2023.c:38,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib2023.c:42,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2023.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2023.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2023.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2023.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2023.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2023.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2023.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2023.c:52,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib2023.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 5
    argNames:
    - curl
    - url
    - seq
    - auth_scheme
    - userpwd
    argTypes:
    - CURL*
    - char*
    - int
    - long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 57
    functionName: send_request
    functionSourceFile: /src/curl/tests/libtest/lib2023.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - curl_easy_perform
    - curlx_malloc
    - test_setopt
    - curlx_free
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode send_request(CURL *curl, const char *url, int seq,\n                             long
      auth_scheme, const char *userpwd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_request
      Src: /src/curl/tests/libtest/lib2023.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - curl
    - url
    - seq
    - auth_scheme
    argTypes:
    - CURL*
    - char*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: send_wrong_password
    functionSourceFile: /src/curl/tests/libtest/lib2023.c
    functionUses: 0
    functionsReached:
    - send_request
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode send_wrong_password(CURL *curl, const char *url, int seq,\n
      \                                   long auth_scheme)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_request
      Src: /src/curl/tests/libtest/lib2023.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - curl
    - url
    - seq
    - auth_scheme
    argTypes:
    - CURL*
    - char*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: send_right_password
    functionSourceFile: /src/curl/tests/libtest/lib2023.c
    functionUses: 0
    functionsReached:
    - send_request
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode send_right_password(CURL *curl, const char *url, int seq,\n
      \                                   long auth_scheme)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/tests/libtest/lib2023.c:75,1
    - Dst: curl_strequal
      Src: /src/curl/tests/libtest/lib2023.c:77,1
    - Dst: curl_strequal
      Src: /src/curl/tests/libtest/lib2023.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: parse_auth_name
    functionSourceFile: /src/curl/tests/libtest/lib2023.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    linkageType: ''
    returnType: long
    signature: long parse_auth_name(const char *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: parse_auth_name
      Src: /src/curl/tests/libtest/lib2023.c:89,1
    - Dst: parse_auth_name
      Src: /src/curl/tests/libtest/lib2023.c:90,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2023.c:94,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib2023.c:98,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2023.c:99,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2023.c:105,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2023.c:107,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2023.c:108,1
    - Dst: send_wrong_password
      Src: /src/curl/tests/libtest/lib2023.c:112,1
    - Dst: send_right_password
      Src: /src/curl/tests/libtest/lib2023.c:116,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2023.c:120,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2023.c:123,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2023.c:125,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2023.c:126,1
    - Dst: send_wrong_password
      Src: /src/curl/tests/libtest/lib2023.c:130,1
    - Dst: send_wrong_password
      Src: /src/curl/tests/libtest/lib2023.c:134,1
    - Dst: send_right_password
      Src: /src/curl/tests/libtest/lib2023.c:138,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2023.c:144,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2023.c:145,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 148
    functionName: test_lib2023
    functionSourceFile: /src/curl/tests/libtest/lib2023.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - parse_auth_name
    - curl_easy_init
    - send_wrong_password
    - curl_easy_cleanup
    - send_right_password
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2023(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: usage_h2_pausing
    functionSourceFile: /src/curl/tests/libtest/cli_h2_pausing.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void usage_h2_pausing(const char *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:57,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:65,1
    - Dst: assert
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:72,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - data
    - size
    - nmemb
    - clientp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts:
    - condition: (handle->paused == 1)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/curl/tests/libtest/cli_h2_pausing.c
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: cb
    functionSourceFile: /src/curl/tests/libtest/cli_h2_pausing.c
    functionUses: 5
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t cb(char *data, size_t size, size_t nmemb, void *clientp)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: cgetopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:102,1
    - Dst: usage_h2_pausing
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:105,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:108,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:110,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:112,1
    - Dst: usage_h2_pausing
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:115,1
    - Dst: usage_h2_pausing
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:121,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:129,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:134,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:135,1
    - Dst: curl_global_trace
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:139,1
    - Dst: memset
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:141,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:143,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:145,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:149,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:150,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:154,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:155,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:159,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:160,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:165,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:167,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:169,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:175,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:177,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:179,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:181,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:183,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:184,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:186,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:188,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:190,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:191,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:192,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:196,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:199,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:201,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:206,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:207,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:208,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:215,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:216,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:217,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:224,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:225,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:227,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:231,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:236,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:240,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:246,1
    - Dst: curl_multi_poll
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:253,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:254,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:260,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:262,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:265,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:279,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:284,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:286,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:293,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:294,1
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:296,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:303,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:304,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:305,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:308,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:309,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:310,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:311,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:312,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_h2_pausing.c:313,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 181
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 316
    functionName: test_cli_h2_pausing
    functionSourceFile: /src/curl/tests/libtest/cli_h2_pausing.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_msnprintf
    - cgetopt
    - curl_multi_remove_handle
    - strcmp
    - curl_free
    - curl_global_cleanup
    - curl_slist_free_all
    - curl_url_get
    - curl_global_init
    - curl_multi_info_read
    - curl_multi_add_handle
    - curl_multi_poll
    - curl_url_cleanup
    - curl_easy_cleanup
    - curl_multi_init
    - memset
    - curl_easy_pause
    - curl_global_trace
    - usage_h2_pausing
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - curl_easy_init
    - curl_multi_perform
    - curl_slist_append
    - curl_easy_setopt
    - curl_multi_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_h2_pausing(const char *URL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1589.c:40,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1589.c:44,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1589.c:48,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1589.c:52,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1589.c:56,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1589.c:60,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1589.c:64,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1589.c:69,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 5
    argNames:
    - curl
    - url
    - userpwd
    - proxy
    - port
    argTypes:
    - CURL*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 77
    functionName: init1589
    functionSourceFile: /src/curl/tests/libtest/lib1589.c
    functionUses: 0
    functionsReached:
    - res_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init1589(CURL *curl, const char *url,\n                         const
      char *userpwd, const char *proxy,\n                         int port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init1589
      Src: /src/curl/tests/libtest/lib1589.c:84,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1589.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - curl
    - url
    - userpwd
    - proxy
    - port
    argTypes:
    - CURL*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: run1589
    functionSourceFile: /src/curl/tests/libtest/lib1589.c
    functionUses: 0
    functionsReached:
    - init1589
    - curl_easy_perform
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode run1589(CURL *curl, const char *url, const char *userpwd,\n
      \                       const char *proxy, int port)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/curl/tests/libtest/lib1589.c:97,1
    - Dst: atoi
      Src: /src/curl/tests/libtest/lib1589.c:98,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib1589.c:104,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1589.c:108,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1589.c:110,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1589.c:111,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1589.c:115,1
    - Dst: run1589
      Src: /src/curl/tests/libtest/lib1589.c:117,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1589.c:121,1
    - Dst: run1589
      Src: /src/curl/tests/libtest/lib1589.c:123,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1589.c:129,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1589.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 132
    functionName: test_lib1589
    functionSourceFile: /src/curl/tests/libtest/lib1589.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_init
    - atoi
    - start_test_timing
    - res_global_init
    - curl_easy_cleanup
    - run1589
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1589(const char *URL)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:37,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:39,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:40,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:42,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:44,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:45,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:47,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:49,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:51,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:53,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:54,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:57,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:60,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:63,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:64,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:67,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:72,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib576.c:76,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - f
    - ptr
    - remains
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 81
    functionName: chunk_bgn
    functionSourceFile: /src/curl/tests/libtest/lib576.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_mprintf
    linkageType: ''
    returnType: long
    signature: long chunk_bgn(const void *f, void *ptr, int remains)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:88,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib576.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: chunk_end
    functionSourceFile: /src/curl/tests/libtest/lib576.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: long
    signature: long chunk_end(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib576.c:102,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib576.c:103,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib576.c:109,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib576.c:110,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib576.c:111,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib576.c:112,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib576.c:113,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib576.c:115,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib576.c:119,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib576.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: test_lib576
    functionSourceFile: /src/curl/tests/libtest/lib576.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib576(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib539.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib539.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib539.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib539.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib539.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib539.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib539.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib539.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib539.c:52,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib539.c:62,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib539.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib539.c:65,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib539.c:66,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib539.c:70,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib539.c:71,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib539.c:72,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib539.c:74,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib539.c:78,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib539.c:79,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib539.c:80,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib539.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 84
    functionName: test_lib539
    functionSourceFile: /src/curl/tests/libtest/lib539.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_free
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib539(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib590.c:46,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib590.c:47,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib590.c:51,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib590.c:53,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib590.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib590.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib590.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib590.c:60,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib590.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib590.c:65,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib590.c:66,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib590.c:67,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib590.c:69,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib590.c:73,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib590.c:75,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib590.c:80,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib590.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: test_lib590
    functionSourceFile: /src/curl/tests/libtest/lib590.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib590(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:48,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:51,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib518.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - err
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: t518_store_errmsg
    functionSourceFile: /src/curl/tests/libtest/lib518.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curlx_strerror
    linkageType: ''
    returnType: void
    signature: void t518_store_errmsg(const char *msg, int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_close
      Src: /src/curl/tests/libtest/lib518.c:62,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/libtest/lib518.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: t518_close_file_descriptors
    functionSourceFile: /src/curl/tests/libtest/lib518.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_close
    linkageType: ''
    returnType: void
    signature: void t518_close_file_descriptors(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib518.c:76,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:78,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:79,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib518.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 89
    functionName: t518_fopen_works
    functionSourceFile: /src/curl/tests/libtest/lib518.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - t518_store_errmsg
    - curl_mfprintf
    - curlx_fopen
    linkageType: ''
    returnType: int
    signature: int t518_fopen_works(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/curl/tests/libtest/lib518.c:102,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:103,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:104,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:110,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:111,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:113,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:114,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:118,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:119,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:120,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:136,1
    - Dst: setrlimit
      Src: /src/curl/tests/libtest/lib518.c:138,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:140,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:141,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:147,1
    - Dst: setrlimit
      Src: /src/curl/tests/libtest/lib518.c:149,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:151,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:152,1
    - Dst: getrlimit
      Src: /src/curl/tests/libtest/lib518.c:158,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:159,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:160,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:166,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:167,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:169,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:170,1
    - Dst: RLIM_INFINITY
      Src: /src/curl/tests/libtest/lib518.c:192,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:196,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:197,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:198,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:200,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:201,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:220,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:221,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib518.c:222,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:224,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:229,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:230,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:236,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:248,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:249,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:252,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:253,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib518.c:254,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:260,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:261,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib518.c:263,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:266,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:267,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib518.c:268,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:274,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:281,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:282,1
    - Dst: curlx_open
      Src: /src/curl/tests/libtest/lib518.c:286,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:288,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:289,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:290,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/libtest/lib518.c:291,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib518.c:292,1
    - Dst: dup
      Src: /src/curl/tests/libtest/lib518.c:302,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:308,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:309,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:311,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:313,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:314,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:316,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:320,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:321,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:322,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:324,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:325,1
    - Dst: curlx_close
      Src: /src/curl/tests/libtest/lib518.c:330,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/libtest/lib518.c:331,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib518.c:332,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:337,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:338,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:354,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:356,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:357,1
    - Dst: t518_close_file_descriptors
      Src: /src/curl/tests/libtest/lib518.c:358,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib518.c:359,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:369,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:371,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:372,1
    - Dst: t518_close_file_descriptors
      Src: /src/curl/tests/libtest/lib518.c:373,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib518.c:374,1
    - Dst: t518_fopen_works
      Src: /src/curl/tests/libtest/lib518.c:389,1
    - Dst: tutil_rlim2str
      Src: /src/curl/tests/libtest/lib518.c:390,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:391,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:393,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib518.c:394,1
    - Dst: t518_store_errmsg
      Src: /src/curl/tests/libtest/lib518.c:396,1
    - Dst: t518_close_file_descriptors
      Src: /src/curl/tests/libtest/lib518.c:397,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib518.c:398,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib518.c:405,1
    - Dst: t518_close_file_descriptors
      Src: /src/curl/tests/libtest/lib518.c:410,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 163
    argCount: 1
    argNames:
    - keep_open
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 414
    functionName: t518_test_rlimit
    functionSourceFile: /src/curl/tests/libtest/lib518.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_close
    - t518_store_errmsg
    - curl_mfprintf
    - curl_msnprintf
    - setrlimit
    - curlx_malloc
    - curlx_free
    - curlx_open
    - t518_close_file_descriptors
    - dup
    - getrlimit
    - RLIM_INFINITY
    - t518_fopen_works
    - tutil_rlim2str
    linkageType: ''
    returnType: int
    signature: int t518_test_rlimit(int keep_open)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib518.c:421,1
    - Dst: t518_test_rlimit
      Src: /src/curl/tests/libtest/lib518.c:423,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:424,1
    - Dst: t518_test_rlimit
      Src: /src/curl/tests/libtest/lib518.c:430,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib518.c:438,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:439,1
    - Dst: t518_close_file_descriptors
      Src: /src/curl/tests/libtest/lib518.c:440,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib518.c:444,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib518.c:446,1
    - Dst: t518_close_file_descriptors
      Src: /src/curl/tests/libtest/lib518.c:447,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib518.c:448,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib518.c:452,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib518.c:453,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib518.c:455,1
    - Dst: t518_close_file_descriptors
      Src: /src/curl/tests/libtest/lib518.c:459,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib518.c:460,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib518.c:461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 464
    functionName: test_lib518
    functionSourceFile: /src/curl/tests/libtest/lib518.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - t518_test_rlimit
    - curl_easy_init
    - curl_easy_perform
    - test_setopt
    - strcmp
    - t518_close_file_descriptors
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib518(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib518.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: test_lib518
    functionSourceFile: /src/curl/tests/libtest/lib518.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib518(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib523.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib523.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib523.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib523.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib523.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib523.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib523.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib523.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib523.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib523.c:47,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib523.c:49,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib523.c:53,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib523.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 57
    functionName: test_lib523
    functionSourceFile: /src/curl/tests/libtest/lib523.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib523(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib515.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib515.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib515.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib515.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib515.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib515.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib515.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib515.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib515.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib515.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib515.c:51,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib515.c:56,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib515.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: test_lib515
    functionSourceFile: /src/curl/tests/libtest/lib515.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib515(const char *URL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/lib591.c:39,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib591.c:42,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib591.c:44,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib591.c:47,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib591.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib591.c:49,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib591.c:53,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib591.c:55,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib591.c:59,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib591.c:62,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib591.c:65,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib591.c:68,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib591.c:71,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib591.c:74,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib591.c:77,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib591.c:79,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib591.c:81,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib591.c:91,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib591.c:93,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib591.c:98,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib591.c:99,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib591.c:100,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib591.c:102,1
    - Dst: multi_timeout
      Src: /src/curl/tests/libtest/lib591.c:106,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib591.c:125,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib591.c:127,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib591.c:130,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib591.c:138,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib591.c:139,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib591.c:140,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib591.c:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 146
    functionName: test_lib591
    functionSourceFile: /src/curl/tests/libtest/lib591.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - multi_add_handle
    - curl_global_cleanup
    - select_test
    - multi_fdset
    - easy_init
    - curlx_strerror
    - curlx_str_number
    - curl_multi_info_read
    - multi_timeout
    - easy_setopt
    - FD_ZERO
    - curl_easy_cleanup
    - multi_init
    - curl_mfprintf
    - start_test_timing
    - curlx_fopen
    - multi_perform
    - res_global_init
    - abort_on_test_timeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib591(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1530.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - clientp
    - purpose
    - address
    argTypes:
    - void*
    - curlsocktype
    - struct curl_sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: opensocket
    functionSourceFile: /src/curl/tests/libtest/lib1530.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t opensocket(void *clientp,\n                                curlsocktype
      purpose,\n                                struct curl_sockaddr *address)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1530.c:43,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1530.c:44,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1530.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1530.c:50,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1530.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1530.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1530.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1530.c:57,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1530.c:59,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1530.c:63,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1530.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 67
    functionName: test_lib1530
    functionSourceFile: /src/curl/tests/libtest/lib1530.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1530(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib507.c:35,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib507.c:37,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib507.c:39,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib507.c:41,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib507.c:43,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib507.c:44,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib507.c:46,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib507.c:48,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib507.c:50,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib507.c:59,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib507.c:60,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib507.c:61,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib507.c:65,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib507.c:69,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib507.c:71,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib507.c:73,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib507.c:75,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib507.c:78,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib507.c:88,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib507.c:89,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib507.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 96
    functionName: test_lib507
    functionSourceFile: /src/curl/tests/libtest/lib507.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - multi_fdset
    - easy_init
    - curl_multi_info_read
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib507(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib655.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib655.c:39,1
    - Dst: exit
      Src: /src/curl/tests/libtest/lib655.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - resolver_state
    - reserved
    - userdata
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: resolver_alloc_cb_fail
    functionSourceFile: /src/curl/tests/libtest/lib655.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_mfprintf
    - exit
    linkageType: ''
    returnType: int
    signature: "int resolver_alloc_cb_fail(void *resolver_state, void *reserved,\n
      \                                 void *userdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib655.c:53,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib655.c:54,1
    - Dst: exit
      Src: /src/curl/tests/libtest/lib655.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - resolver_state
    - reserved
    - userdata
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: resolver_alloc_cb_pass
    functionSourceFile: /src/curl/tests/libtest/lib655.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_mfprintf
    - exit
    linkageType: ''
    returnType: int
    signature: "int resolver_alloc_cb_pass(void *resolver_state, void *reserved,\n
      \                                 void *userdata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib655.c:69,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib655.c:70,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib655.c:73,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib655.c:75,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:81,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:82,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:83,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:84,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:86,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:87,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib655.c:90,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib655.c:92,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:101,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:102,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:103,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:104,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib655.c:106,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib655.c:109,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib655.c:111,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib655.c:116,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib655.c:123,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib655.c:124,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 127
    functionName: test_lib655
    functionSourceFile: /src/curl/tests/libtest/lib655.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib655(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1557.c:34,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1557.c:36,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib1557.c:37,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1557.c:39,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1557.c:40,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1557.c:41,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1557.c:43,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1557.c:44,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1557.c:45,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1557.c:47,1
    - Dst: multi_remove_handle
      Src: /src/curl/tests/libtest/lib1557.c:49,1
    - Dst: multi_remove_handle
      Src: /src/curl/tests/libtest/lib1557.c:52,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1557.c:55,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1557.c:56,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1557.c:57,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1557.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: test_lib1557
    functionSourceFile: /src/curl/tests/libtest/lib1557.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - multi_remove_handle
    - easy_setopt
    - curl_global_cleanup
    - easy_init
    - multi_perform
    - curl_easy_cleanup
    - global_init
    - multi_init
    - multi_setopt
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1557(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib1506.c:42,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1506.c:43,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1506.c:45,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1506.c:46,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1506.c:48,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1506.c:54,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1506.c:56,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1506.c:58,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib1506.c:60,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib1506.c:63,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1506.c:65,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1506.c:67,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1506.c:71,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1506.c:73,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1506.c:75,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1506.c:77,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1506.c:80,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib1506.c:82,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1506.c:84,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1506.c:94,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1506.c:96,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1506.c:101,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1506.c:102,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1506.c:103,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib1506.c:105,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib1506.c:109,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1506.c:111,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib1506.c:113,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib1506.c:120,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib1506.c:121,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1506.c:122,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1506.c:125,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1506.c:127,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1506.c:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 131
    functionName: test_lib1506
    functionSourceFile: /src/curl/tests/libtest/lib1506.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_msnprintf
    - curl_multi_remove_handle
    - multi_setopt
    - curl_global_cleanup
    - select_test
    - multi_fdset
    - easy_init
    - curl_mprintf
    - curl_slist_free_all
    - curlx_wait_ms
    - easy_setopt
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - multi_init
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - start_test_timing
    - multi_perform
    - curl_slist_append
    - abort_on_test_timeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1506(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1552.c:36,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1552.c:38,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1552.c:40,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1552.c:42,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1552.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1552.c:45,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1552.c:46,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1552.c:47,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1552.c:49,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1552.c:51,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1552.c:53,1
    - Dst: curl_multi_wait
      Src: /src/curl/tests/libtest/lib1552.c:58,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1552.c:60,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1552.c:65,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1552.c:67,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1552.c:69,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib1552.c:72,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1552.c:82,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1552.c:83,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1552.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 90
    functionName: test_lib1552
    functionSourceFile: /src/curl/tests/libtest/lib1552.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - easy_init
    - curl_multi_info_read
    - curl_mprintf
    - start_test_timing
    - multi_perform
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_wait
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1552(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3100.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3100.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib3100.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3100.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3100.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3100.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3100.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3100.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3100.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3100.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3100.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3100.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3100.c:52,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3100.c:53,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3100.c:55,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3100.c:57,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3100.c:63,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3100.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 67
    functionName: test_lib3100
    functionSourceFile: /src/curl/tests/libtest/lib3100.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3100(const char *URL)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib572.c:43,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib572.c:44,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib572.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib572.c:50,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib572.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:59,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib572.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:67,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib572.c:68,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:71,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:72,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib572.c:73,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib572.c:77,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:82,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib572.c:83,1
    - Dst: curlx_open
      Src: /src/curl/tests/libtest/lib572.c:87,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib572.c:89,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib572.c:90,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib572.c:91,1
    - Dst: curlx_fstat
      Src: /src/curl/tests/libtest/lib572.c:95,1
    - Dst: curlx_close
      Src: /src/curl/tests/libtest/lib572.c:96,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib572.c:98,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib572.c:100,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib572.c:101,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib572.c:102,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:106,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:108,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:109,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:110,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib572.c:112,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:116,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib572.c:117,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib572.c:121,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:126,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib572.c:127,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib572.c:130,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib572.c:136,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:141,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib572.c:142,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:145,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:146,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib572.c:148,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:152,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib572.c:155,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:160,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib572.c:161,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib572.c:164,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib572.c:165,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib572.c:170,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib572.c:172,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib572.c:175,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib572.c:177,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib572.c:178,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 118
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 181
    functionName: test_lib572
    functionSourceFile: /src/curl/tests/libtest/lib572.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - tutil_suburl
    - curlx_close
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curlx_strerror
    - curlx_fopen
    - test_setopt
    - curl_free
    - curlx_open
    - curl_easy_cleanup
    - curlx_fstat
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib572(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1510.c:43,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1510.c:45,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1510.c:46,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1510.c:48,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1510.c:54,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1510.c:56,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1510.c:59,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1510.c:62,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1510.c:64,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1510.c:66,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1510.c:68,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1510.c:73,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1510.c:77,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1510.c:79,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1510.c:83,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1510.c:90,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1510.c:92,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1510.c:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 97
    functionName: test_lib1510
    functionSourceFile: /src/curl/tests/libtest/lib1510.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_mprintf
    - curl_slist_free_all
    - start_test_timing
    - curl_slist_append
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1510(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1593.c:36,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1593.c:38,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1593.c:40,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1593.c:41,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1593.c:43,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1593.c:45,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1593.c:51,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1593.c:53,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1593.c:62,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1593.c:74,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1593.c:75,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1593.c:76,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 79
    functionName: test_lib1593
    functionSourceFile: /src/curl/tests/libtest/lib1593.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1593(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - ud
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: sink2506
    functionSourceFile: /src/curl/tests/libtest/lib2506.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sink2506(char *ptr, size_t size, size_t nmemb, void *ud)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib2506.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2506.c:41,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2506.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2506.c:47,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2506.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2506.c:52,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2506.c:53,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2506.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2506.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2506.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2506.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2506.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib2506.c:62,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2506.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2506.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2506.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 71
    functionName: test_lib2506
    functionSourceFile: /src/curl/tests/libtest/lib2506.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2506(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1978.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1978.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1978.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1978.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1978.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1978.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1978.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1978.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1978.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1978.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1978.c:50,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:64,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:67,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:68,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:69,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:70,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:71,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:72,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:73,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:74,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:75,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:76,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:77,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:78,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:79,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:80,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:81,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:82,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:83,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:84,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1978.c:86,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1978.c:88,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1978.c:90,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1978.c:92,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1978.c:96,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1978.c:97,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1978.c:98,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1978.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 102
    functionName: test_lib1978
    functionSourceFile: /src/curl/tests/libtest/lib1978.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1978(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib555.c:44,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib555.c:50,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib555.c:51,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib555.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - clientp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: t555_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib555.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t555_read_cb(char *ptr, size_t size, size_t nmemb, void *clientp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib555.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - curl
    - cmd
    - clientp
    argTypes:
    - CURL*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: t555_ioctl_callback
    functionSourceFile: /src/curl/tests/libtest/lib555.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: curlioerr
    signature: curlioerr t555_ioctl_callback(CURL *curl, int cmd, void *clientp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib555.c:77,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib555.c:79,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib555.c:81,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:83,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:84,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:85,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:88,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:89,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:91,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:92,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:95,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:97,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:98,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:99,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib555.c:100,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib555.c:103,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib555.c:105,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib555.c:115,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib555.c:117,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib555.c:122,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib555.c:123,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib555.c:124,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib555.c:126,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib555.c:130,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib555.c:132,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib555.c:139,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib555.c:140,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib555.c:141,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib555.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 145
    functionName: test_lib555
    functionSourceFile: /src/curl/tests/libtest/lib555.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - multi_fdset
    - easy_init
    - curl_multi_remove_handle
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib555(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1936.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1936.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1936.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1936.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1936.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1936.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1936.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1936.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1936.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1936.c:49,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1936.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1936.c:53,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1936.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1936.c:55,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1936.c:57,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1936.c:61,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1936.c:62,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1936.c:63,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1936.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 67
    functionName: test_lib1936
    functionSourceFile: /src/curl/tests/libtest/lib1936.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1936(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1527.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: t1527_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1527.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t1527_read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1527.c:53,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1527.c:54,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1527.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1527.c:60,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1527.c:61,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1527.c:65,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1527.c:69,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:75,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:76,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:77,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:78,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:79,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:80,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:81,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:82,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:83,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:84,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:86,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1527.c:87,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1527.c:89,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1527.c:93,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1527.c:95,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1527.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 100
    functionName: test_lib1527
    functionSourceFile: /src/curl/tests/libtest/lib1527.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1527(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1964.c:33,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1964.c:34,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1964.c:36,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1964.c:37,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1964.c:38,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1964.c:40,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1964.c:46,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1964.c:47,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1964.c:48,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1964.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1964.c:56,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1964.c:60,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1964.c:61,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1964.c:62,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1964.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 66
    functionName: test_lib1964
    functionSourceFile: /src/curl/tests/libtest/lib1964.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1964(const char *URL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1647.c:38,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1647.c:42,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1647.c:46,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1647.c:50,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1647.c:54,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1647.c:58,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1647.c:62,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib1647.c:66,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - curl
    - url
    - userpwd
    argTypes:
    - CURL*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 74
    functionName: init1647
    functionSourceFile: /src/curl/tests/libtest/lib1647.c
    functionUses: 0
    functionsReached:
    - res_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode init1647(CURL *curl, const char *url, const char *userpwd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init1647
      Src: /src/curl/tests/libtest/lib1647.c:80,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1647.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - curl
    - url
    - userpwd
    argTypes:
    - CURL*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: run1647
    functionSourceFile: /src/curl/tests/libtest/lib1647.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - init1647
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode run1647(CURL *curl, const char *url, const char *userpwd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib1647.c:92,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1647.c:96,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1647.c:98,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1647.c:99,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1647.c:103,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1647.c:105,1
    - Dst: run1647
      Src: /src/curl/tests/libtest/lib1647.c:106,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1647.c:110,1
    - Dst: run1647
      Src: /src/curl/tests/libtest/lib1647.c:111,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1647.c:117,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1647.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 120
    functionName: test_lib1647
    functionSourceFile: /src/curl/tests/libtest/lib1647.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_init
    - curl_mprintf
    - run1647
    - start_test_timing
    - res_global_init
    - curl_easy_cleanup
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1647(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: t513_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib513.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t513_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib513.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib513.c:41,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib513.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib513.c:47,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib513.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib513.c:53,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib513.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib513.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib513.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib513.c:65,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib513.c:68,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib513.c:71,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib513.c:74,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib513.c:79,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib513.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 83
    functionName: test_lib513
    functionSourceFile: /src/curl/tests/libtest/lib513.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib513(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib3207.c:45,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3207.c:48,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib3207.c:51,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib3207.c:53,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib3207.c:54,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3207.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - contents
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 63
    functionName: write_memory_callback
    functionSourceFile: /src/curl/tests/libtest/lib3207.c
    functionUses: 0
    functionsReached:
    - memcpy
    - curl_mprintf
    - curlx_malloc
    - curlx_free
    - curl_slist_append
    linkageType: ''
    returnType: size_t
    signature: "size_t write_memory_callback(char *contents, size_t size,\n                                    size_t
      nmemb, void *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib3207.c:79,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3207.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3207.c:84,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3207.c:85,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3207.c:87,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3207.c:88,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib3207.c:89,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3207.c:92,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3207.c:95,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3207.c:98,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib3207.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 108
    functionName: test_thread
    functionSourceFile: /src/curl/tests/libtest/lib3207.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int test_thread(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/tests/libtest/lib3207.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - curl
    - data
    - laccess
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - curl_lock_access
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: t3207_test_lock
    functionSourceFile: /src/curl/tests/libtest/lib3207.c
    functionUses: 0
    functionsReached:
    - Curl_mutex_acquire
    linkageType: ''
    returnType: void
    signature: "void t3207_test_lock(CURL *curl, curl_lock_data data,\n                            curl_lock_access
      laccess, void *useptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_release
      Src: /src/curl/tests/libtest/lib3207.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - curl
    - data
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: t3207_test_unlock
    functionSourceFile: /src/curl/tests/libtest/lib3207.c
    functionUses: 0
    functionsReached:
    - Curl_mutex_release
    linkageType: ''
    returnType: void
    signature: void t3207_test_unlock(CURL *curl, curl_lock_data data, void *useptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib3207.c:133,1
    - Dst: Curl_mutex_init
      Src: /src/curl/tests/libtest/lib3207.c:134,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib3207.c:136,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib3207.c:137,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib3207.c:138,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib3207.c:139,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib3207.c:141,1
    - Dst: Curl_thread_create
      Src: /src/curl/tests/libtest/lib3207.c:142,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib3207.c:144,1
    - Dst: Curl_thread_join
      Src: /src/curl/tests/libtest/lib3207.c:146,1
    - Dst: Curl_thread_destroy
      Src: /src/curl/tests/libtest/lib3207.c:147,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib3207.c:150,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib3207.c:151,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib3207.c:152,1
    - Dst: Curl_mutex_destroy
      Src: /src/curl/tests/libtest/lib3207.c:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - share
    - ctx
    argTypes:
    - CURLSH*
    - struct Ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: execute
    functionSourceFile: /src/curl/tests/libtest/lib3207.c
    functionUses: 0
    functionsReached:
    - Curl_thread_create
    - CURL_ARRAYSIZE
    - Curl_thread_join
    - Curl_thread_destroy
    - Curl_mutex_init
    - Curl_mutex_destroy
    - curl_share_setopt
    linkageType: ''
    returnType: void
    signature: void execute(CURLSH *share, struct Ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_thread
      Src: /src/curl/tests/libtest/lib3207.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - share
    - ctx
    argTypes:
    - CURLSH*
    - struct Ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: execute
    functionSourceFile: /src/curl/tests/libtest/lib3207.c
    functionUses: 0
    functionsReached:
    - test_thread
    linkageType: ''
    returnType: void
    signature: void execute(CURLSH *share, struct Ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3207.c:177,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/lib3207.c:179,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3207.c:181,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib3207.c:185,1
    - Dst: execute
      Src: /src/curl/tests/libtest/lib3207.c:193,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib3207.c:195,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib3207.c:202,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib3207.c:206,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib3207.c:211,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3207.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 214
    functionName: test_lib3207
    functionSourceFile: /src/curl/tests/libtest/lib3207.c
    functionUses: 0
    functionsReached:
    - execute
    - curl_mfprintf
    - curl_share_cleanup
    - CURL_ARRAYSIZE
    - curl_mprintf
    - curl_slist_free_all
    - curl_share_init
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3207(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/lib1540.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1540.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - userp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: please_continue
    functionSourceFile: /src/curl/tests/libtest/lib1540.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_pause
    linkageType: ''
    returnType: int
    signature: "int please_continue(void *userp,\n                           curl_off_t
      dltotal,\n                           curl_off_t dlnow,\n                           curl_off_t
      ultotal,\n                           curl_off_t ulnow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib1540.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: t1540_header_callback
    functionSourceFile: /src/curl/tests/libtest/lib1540.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: "size_t t1540_header_callback(char *ptr, size_t size, size_t nmemb,\n
      \                                   void *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib1540.c:74,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1540.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: t1540_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1540.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t t1540_write_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1540.c:89,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1540.c:91,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1540.c:93,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1540.c:95,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:98,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:99,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:100,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:101,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:102,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:104,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:105,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:106,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1540.c:110,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:111,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1540.c:112,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1540.c:114,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1540.c:118,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1540.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 122
    functionName: test_lib1540
    functionSourceFile: /src/curl/tests/libtest/lib1540.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - start_test_timing
    - test_setopt
    - curl_easy_cleanup
    - global_init
    - memset
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1540(const char *URL)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/curl/tests/libtest/lib677.c:34,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib677.c:39,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib677.c:40,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib677.c:41,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib677.c:43,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib677.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib677.c:45,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/lib677.c:46,1
    - Dst: time
      Src: /src/curl/tests/libtest/lib677.c:49,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib677.c:52,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib677.c:55,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib677.c:60,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib677.c:63,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib677.c:70,1
    - Dst: curl_multi_wait
      Src: /src/curl/tests/libtest/lib677.c:73,1
    - Dst: curl_easy_send
      Src: /src/curl/tests/libtest/lib677.c:80,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib677.c:86,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib677.c:87,1
    - Dst: curl_easy_recv
      Src: /src/curl/tests/libtest/lib677.c:102,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib677.c:107,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib677.c:108,1
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib677.c:121,1
    - Dst: putchar
      Src: /src/curl/tests/libtest/lib677.c:122,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib677.c:125,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib677.c:127,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib677.c:128,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib677.c:130,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 79
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 132
    functionName: test_lib677
    functionSourceFile: /src/curl/tests/libtest/lib677.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_multi_remove_handle
    - time
    - curl_global_cleanup
    - easy_init
    - curl_easy_recv
    - curl_mprintf
    - curl_multi_info_read
    - curl_easy_send
    - curl_multi_wait
    - curl_multi_add_handle
    - easy_setopt
    - curl_easy_strerror
    - fwrite
    - curl_easy_cleanup
    - global_init
    - multi_init
    - putchar
    - curl_mfprintf
    - multi_perform
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib677(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1512.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1512.c:46,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1512.c:50,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1512.c:52,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1512.c:53,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib1512.c:56,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1512.c:58,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1512.c:60,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1512.c:64,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1512.c:66,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1512.c:68,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1512.c:70,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1512.c:74,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib1512.c:77,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1512.c:78,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1512.c:85,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1512.c:86,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1512.c:87,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1512.c:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 91
    functionName: test_lib1512
    functionSourceFile: /src/curl/tests/libtest/lib1512.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - easy_setopt
    - easy_init
    - CURL_ARRAYSIZE
    - curl_easy_perform
    - curl_mprintf
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1512(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1958.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1958.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1958.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1958.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1958.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1958.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1958.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1958.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1958.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1958.c:49,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1958.c:50,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1958.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1958.c:56,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1958.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1958.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1958.c:60,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1958.c:64,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1958.c:65,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1958.c:66,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1958.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 70
    functionName: test_lib1958
    functionSourceFile: /src/curl/tests/libtest/lib1958.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1958(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib1485.c:42,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1485.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1485.c:49,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1485.c:52,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1485.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1485.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1485.c:67,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 75
    functionName: t1485_header_callback
    functionSourceFile: /src/curl/tests/libtest/lib1485.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: "size_t t1485_header_callback(char *ptr, size_t size, size_t nmemb,\n
      \                                   void *userp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/tests/libtest/lib1485.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: t1485_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1485.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t t1485_write_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1485.c:92,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1485.c:94,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1485.c:96,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1485.c:98,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1485.c:101,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1485.c:102,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1485.c:103,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1485.c:104,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1485.c:105,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1485.c:107,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1485.c:109,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1485.c:113,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1485.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 117
    functionName: test_lib1485
    functionSourceFile: /src/curl/tests/libtest/lib1485.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - start_test_timing
    - curl_easy_cleanup
    - global_init
    - memset
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1485(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/curl/tests/libtest/lib583.c:39,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib583.c:41,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib583.c:43,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib583.c:45,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib583.c:47,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib583.c:48,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib583.c:49,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib583.c:51,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib583.c:52,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib583.c:54,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib583.c:55,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib583.c:57,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib583.c:62,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib583.c:64,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib583.c:66,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib583.c:68,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib583.c:69,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib583.c:71,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib583.c:76,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib583.c:82,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib583.c:83,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib583.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts:
    - condition: (test_argc >= 4)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/curl/tests/libtest/lib583.c
    constantsTouched: []
    func_position:
      end: 87
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 87
    functionName: test_lib583
    functionSourceFile: /src/curl/tests/libtest/lib583.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - curl_multi_remove_handle
    - multi_perform
    - curl_easy_cleanup
    - global_init
    - assert
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib583(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1582.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1582.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1582.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1582.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1582.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1582.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1582.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1582.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1582.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1582.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1582.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1582.c:49,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1582.c:51,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1582.c:54,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1582.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 58
    functionName: test_lib1582
    functionSourceFile: /src/curl/tests/libtest/lib1582.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1582(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1918.c:31,1
    - Dst: curl_easy_option_next
      Src: /src/curl/tests/libtest/lib1918.c:33,1
    - Dst: curl_easy_option_next
      Src: /src/curl/tests/libtest/lib1918.c:33,1
    - Dst: curl_easy_option_by_name
      Src: /src/curl/tests/libtest/lib1918.c:35,1
    - Dst: curl_easy_option_by_id
      Src: /src/curl/tests/libtest/lib1918.c:37,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1918.c:40,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1918.c:44,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1918.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 50
    functionName: test_lib1918
    functionSourceFile: /src/curl/tests/libtest/lib1918.c
    functionUses: 0
    functionsReached:
    - curl_easy_option_by_name
    - curl_easy_option_by_id
    - curl_mprintf
    - curl_global_init
    - curl_easy_option_next
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1918(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: t1507_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1507.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t1507_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1507.c:46,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1507.c:48,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1507.c:50,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1507.c:52,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1507.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1507.c:57,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1507.c:59,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1507.c:60,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1507.c:62,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1507.c:63,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1507.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1507.c:65,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1507.c:66,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1507.c:67,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1507.c:69,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/lib1507.c:72,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1507.c:85,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1507.c:86,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1507.c:87,1
    - Dst: curl_multi_timeout
      Src: /src/curl/tests/libtest/lib1507.c:93,1
    - Dst: curlx_mstotv
      Src: /src/curl/tests/libtest/lib1507.c:95,1
    - Dst: curl_multi_fdset
      Src: /src/curl/tests/libtest/lib1507.c:103,1
    - Dst: select
      Src: /src/curl/tests/libtest/lib1507.c:111,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/libtest/lib1507.c:113,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib1507.c:113,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1507.c:114,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/lib1507.c:125,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1507.c:132,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib1507.c:133,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1507.c:134,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1507.c:135,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1507.c:136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 54
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 139
    functionName: test_lib1507
    functionSourceFile: /src/curl/tests/libtest/lib1507.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_multi_timeout
    - curl_multi_remove_handle
    - select
    - curl_global_cleanup
    - easy_init
    - curlx_now
    - curl_slist_free_all
    - curl_global_init
    - FD_ZERO
    - curl_easy_cleanup
    - curlx_mstotv
    - multi_init
    - curl_mfprintf
    - curl_multi_perform
    - curlx_timediff_ms
    - curl_slist_append
    - curl_easy_setopt
    - curl_multi_cleanup
    - curl_multi_fdset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1507(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1569.c:30,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1569.c:32,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1569.c:33,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1569.c:34,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1569.c:35,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1569.c:37,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1569.c:41,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1569.c:42,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1569.c:45,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1569.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 48
    functionName: test_lib1569
    functionSourceFile: /src/curl/tests/libtest/lib1569.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1569(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1558.c:32,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1558.c:33,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1558.c:35,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1558.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1558.c:38,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1558.c:39,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1558.c:43,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1558.c:45,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1558.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1558.c:50,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1558.c:52,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1558.c:53,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1558.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1558.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    functionName: test_lib1558
    functionSourceFile: /src/curl/tests/libtest/lib1558.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - curl_easy_perform
    - curl_mprintf
    - curl_easy_strerror
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1558(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib542.c:35,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib542.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib542.c:41,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib542.c:43,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib542.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib542.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib542.c:52,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib542.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib542.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib542.c:61,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib542.c:65,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib542.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 69
    functionName: test_lib542
    functionSourceFile: /src/curl/tests/libtest/lib542.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib542(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1515.c:47,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1515.c:49,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1515.c:51,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1515.c:52,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1515.c:53,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1515.c:57,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1515.c:58,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1515.c:59,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1515.c:61,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1515.c:62,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1515.c:64,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1515.c:71,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1515.c:72,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib1515.c:73,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib1515.c:77,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib1515.c:78,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1515.c:80,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1515.c:81,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1515.c:83,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib1515.c:87,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib1515.c:96,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1515.c:97,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1515.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 3
    argNames:
    - multi
    - URL
    - resolve
    argTypes:
    - CURLM*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 101
    functionName: do_one_request
    functionSourceFile: /src/curl/tests/libtest/lib1515.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - multi_fdset
    - easy_init
    - curl_multi_remove_handle
    - curl_slist_free_all
    - multi_perform
    - FD_ZERO
    - curl_slist_append
    - curl_easy_cleanup
    - abort_on_test_timeout
    - curl_multi_info_read
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode do_one_request(CURLM *multi, const char *URL,\n                               const
      char *resolve)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1515.c:114,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1515.c:117,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1515.c:119,1
    - Dst: curl_global_trace
      Src: /src/curl/tests/libtest/lib1515.c:120,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1515.c:121,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1515.c:125,1
    - Dst: do_one_request
      Src: /src/curl/tests/libtest/lib1515.c:129,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1515.c:131,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib1515.c:136,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1515.c:141,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1515.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 145
    functionName: test_lib1515
    functionSourceFile: /src/curl/tests/libtest/lib1515.c
    functionUses: 0
    functionsReached:
    - curl_global_trace
    - curl_msnprintf
    - curl_mfprintf
    - curl_global_cleanup
    - start_test_timing
    - curlx_wait_ms
    - global_init
    - multi_init
    - do_one_request
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1515(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib501.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib501.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib501.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib501.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib501.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib501.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib501.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib501.c:50,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib501.c:54,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib501.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 58
    functionName: test_lib501
    functionSourceFile: /src/curl/tests/libtest/lib501.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib501(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3101.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3101.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib3101.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3101.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3101.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3101.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3101.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3101.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3101.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3101.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3101.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3101.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3101.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3101.c:52,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3101.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3101.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    functionName: test_lib3101
    functionSourceFile: /src/curl/tests/libtest/lib3101.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3101(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1910.c:30,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1910.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1910.c:34,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1910.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1910.c:37,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1910.c:38,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1910.c:39,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1910.c:40,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1910.c:41,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1910.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: test_lib1910
    functionSourceFile: /src/curl/tests/libtest/lib1910.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - start_test_timing
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1910(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib766.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - clientp
    - curlfd
    - purpose
    argTypes:
    - void*
    - curl_socket_t
    - curlsocktype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: sockopt_766
    functionSourceFile: /src/curl/tests/libtest/lib766.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: "int sockopt_766(void *clientp,\n                       curl_socket_t
      curlfd,\n                       curlsocktype purpose)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib766.c:46,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib766.c:48,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib766.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib766.c:51,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib766.c:52,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib766.c:53,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib766.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib766.c:56,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib766.c:60,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib766.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 64
    functionName: test_lib766
    functionSourceFile: /src/curl/tests/libtest/lib766.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - start_test_timing
    - res_global_init
    - curl_easy_cleanup
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib766(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib578.c:34,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib578.c:42,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib578.c:44,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib578.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - clientp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: t578_progress_callback
    functionSourceFile: /src/curl/tests/libtest/lib578.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_mfprintf
    - curlx_fopen
    linkageType: ''
    returnType: int
    signature: "int t578_progress_callback(void *clientp, double dltotal, double dlnow,\n
      \                                 double ultotal, double ulnow)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib578.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib578.c:57,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib578.c:61,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib578.c:63,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib578.c:64,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib578.c:69,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib578.c:72,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib578.c:75,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib578.c:76,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib578.c:79,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib578.c:80,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib578.c:83,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib578.c:86,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib578.c:89,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib578.c:94,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib578.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 98
    functionName: test_lib578
    functionSourceFile: /src/curl/tests/libtest/lib578.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib578(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib558.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib558.c:37,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib558.c:41,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/libtest/lib558.c:42,1
    - Dst: curl_easy_escape
      Src: /src/curl/tests/libtest/lib558.c:45,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib558.c:47,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib558.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: test_lib558
    functionSourceFile: /src/curl/tests/libtest/lib558.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_mfprintf
    - curlx_malloc
    - curl_free
    - curl_global_init
    - curl_global_cleanup
    - curl_easy_escape
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib558(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1919.c:32,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1919.c:33,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1919.c:34,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1919.c:35,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1919.c:37,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1919.c:39,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1919.c:43,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1919.c:49,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1919.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: test_lib1919
    functionSourceFile: /src/curl/tests/libtest/lib1919.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1919(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_recv
      Src: /src/curl/tests/libtest/lib1555.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1555.c:47,1
    - Dst: curl_easy_send
      Src: /src/curl/tests/libtest/lib1555.c:48,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1555.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - arg
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: progressCallback
    functionSourceFile: /src/curl/tests/libtest/lib1555.c
    functionUses: 0
    functionsReached:
    - curl_easy_recv
    - curl_mprintf
    - curl_easy_send
    linkageType: ''
    returnType: int
    signature: "int progressCallback(void *arg,\n                            double
      dltotal,\n                            double dlnow,\n                            double
      ultotal,\n                            double ulnow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1555.c:58,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1555.c:60,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1555.c:62,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1555.c:63,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1555.c:64,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1555.c:65,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1555.c:66,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1555.c:67,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1555.c:69,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1555.c:75,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1555.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 79
    functionName: test_lib1555
    functionSourceFile: /src/curl/tests/libtest/lib1555.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1555(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1537.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1537.c:39,1
    - Dst: curl_easy_escape
      Src: /src/curl/tests/libtest/lib1537.c:44,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1537.c:45,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1537.c:46,1
    - Dst: curl_escape
      Src: /src/curl/tests/libtest/lib1537.c:49,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1537.c:54,1
    - Dst: curl_easy_unescape
      Src: /src/curl/tests/libtest/lib1537.c:56,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1537.c:56,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1537.c:57,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1537.c:58,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib1537.c:59,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1537.c:60,1
    - Dst: curl_unescape
      Src: /src/curl/tests/libtest/lib1537.c:63,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1537.c:63,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1537.c:68,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1537.c:69,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1537.c:70,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib1537.c:71,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1537.c:72,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1537.c:73,1
    - Dst: curl_easy_escape
      Src: /src/curl/tests/libtest/lib1537.c:76,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1537.c:77,1
    - Dst: curl_easy_unescape
      Src: /src/curl/tests/libtest/lib1537.c:81,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1537.c:82,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1537.c:85,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1537.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 89
    functionName: test_lib1537
    functionSourceFile: /src/curl/tests/libtest/lib1537.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - curl_mprintf
    - memcmp
    - curl_unescape
    - curl_easy_unescape
    - curl_global_init
    - curl_escape
    - curl_free
    - strlen
    - curl_easy_escape
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1537(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib552.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: t552_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib552.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t552_read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib552.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: t552_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib552.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: size_t
    signature: size_t t552_write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib552.c:60,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib552.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - curl
    - cmd
    - clientp
    argTypes:
    - CURL*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: ioctl_callback
    functionSourceFile: /src/curl/tests/libtest/lib552.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: curlioerr
    signature: curlioerr ioctl_callback(CURL *curl, int cmd, void *clientp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib552.c:79,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib552.c:80,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:82,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:83,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:92,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:95,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:96,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:99,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:102,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:104,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:106,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib552.c:110,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib552.c:112,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib552.c:116,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib552.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 119
    functionName: test_lib552
    functionSourceFile: /src/curl/tests/libtest/lib552.c
    functionUses: 0
    functionsReached:
    - easy_init
    - curl_easy_perform
    - test_setopt
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib552(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:45,1
    - Dst: memmove
      Src: /src/curl/tests/libtest/lib582.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - sockets
    - fd
    - mention
    argTypes:
    - struct t582_Sockets*
    - curl_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: t582_removeFd
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - memmove
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: "void t582_removeFd(struct t582_Sockets *sockets, curl_socket_t fd,\n
      \                         int mention)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:67,1
    - Dst: t582_removeFd
      Src: /src/curl/tests/libtest/lib582.c:68,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib582.c:73,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:80,1
    - Dst: exit
      Src: /src/curl/tests/libtest/lib582.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - sockets
    - fd
    - what
    argTypes:
    - struct t582_Sockets*
    - curl_socket_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 88
    functionName: t582_addFd
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - t582_removeFd
    - exit
    - curl_mfprintf
    - curlx_malloc
    linkageType: ''
    returnType: void
    signature: "void t582_addFd(struct t582_Sockets *sockets, curl_socket_t fd,\n
      \                      const char *what)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: t582_addFd
      Src: /src/curl/tests/libtest/lib582.c:102,1
    - Dst: t582_addFd
      Src: /src/curl/tests/libtest/lib582.c:105,1
    - Dst: t582_removeFd
      Src: /src/curl/tests/libtest/lib582.c:108,1
    - Dst: t582_removeFd
      Src: /src/curl/tests/libtest/lib582.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - curl
    - s
    - action
    - userp
    - socketp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: t582_curlSocketCallback
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - t582_removeFd
    - t582_addFd
    linkageType: ''
    returnType: int
    signature: "int t582_curlSocketCallback(CURL *curl, curl_socket_t s, int action,\n
      \                                  void *userp, void *socketp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib582.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - userp
    argTypes:
    - CURLM*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: t582_curlTimerCallback
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - curlx_now
    linkageType: ''
    returnType: int
    signature: int t582_curlTimerCallback(CURLM *multi, long timeout_ms, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib582.c:142,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - multi
    - success
    argTypes:
    - CURLM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 160
    functionName: t582_checkForCompletion
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - curl_multi_info_read
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: int t582_checkForCompletion(CURLM *multi, int *success)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib582.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 173
    functionName: t582_getMicroSecondTimeout
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - curlx_now
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t t582_getMicroSecondTimeout(struct curltime *timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FD_SET
      Src: /src/curl/tests/libtest/lib582.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sockets
    - fdset
    - maxFd
    argTypes:
    - struct t582_Sockets*
    - fd_set*
    - curl_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: t582_updateFdSet
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - FD_SET
    linkageType: ''
    returnType: void
    signature: "void t582_updateFdSet(struct t582_Sockets *sockets, fd_set *fdset,\n
      \                            curl_socket_t *maxFd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/tests/libtest/lib582.c:194,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:197,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/lib582.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - multi
    - s
    - evBitmask
    - info
    argTypes:
    - CURLM*
    - curl_socket_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: notifyCurl
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - curl_multi_strerror
    - curl_mfprintf
    - curl_multi_socket_action
    linkageType: ''
    returnType: void
    signature: "void notifyCurl(CURLM *multi, curl_socket_t s, int evBitmask,\n                       const
      char *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FD_ISSET
      Src: /src/curl/tests/libtest/lib582.c:210,1
    - Dst: notifyCurl
      Src: /src/curl/tests/libtest/lib582.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - multi
    - sockets
    - fdset
    - evBitmask
    - name
    argTypes:
    - CURLM*
    - struct t582_Sockets*
    - fd_set*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: t582_checkFdSet
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - notifyCurl
    - FD_ISSET
    linkageType: ''
    returnType: void
    signature: "void t582_checkFdSet(CURLM *multi, struct t582_Sockets *sockets,\n
      \                           fd_set *fdset, int evBitmask, const char *name)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/curl/tests/libtest/lib582.c:230,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib582.c:232,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:235,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib582.c:239,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:241,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib582.c:242,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:243,1
    - Dst: curlx_fstat
      Src: /src/curl/tests/libtest/lib582.c:248,1
    - Dst: fileno
      Src: /src/curl/tests/libtest/lib582.c:248,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:251,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib582.c:252,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:253,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib582.c:254,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:257,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib582.c:260,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib582.c:262,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib582.c:266,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib582.c:269,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib582.c:272,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib582.c:275,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib582.c:278,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib582.c:280,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib582.c:281,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib582.c:282,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib582.c:283,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib582.c:285,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib582.c:287,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib582.c:289,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib582.c:290,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib582.c:292,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib582.c:293,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib582.c:295,1
    - Dst: t582_checkForCompletion
      Src: /src/curl/tests/libtest/lib582.c:297,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib582.c:303,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib582.c:304,1
    - Dst: t582_updateFdSet
      Src: /src/curl/tests/libtest/lib582.c:305,1
    - Dst: t582_updateFdSet
      Src: /src/curl/tests/libtest/lib582.c:306,1
    - Dst: curlx_sztosi
      Src: /src/curl/tests/libtest/lib582.c:309,1
    - Dst: t582_getMicroSecondTimeout
      Src: /src/curl/tests/libtest/lib582.c:309,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib582.c:318,1
    - Dst: t582_checkFdSet
      Src: /src/curl/tests/libtest/lib582.c:321,1
    - Dst: t582_checkFdSet
      Src: /src/curl/tests/libtest/lib582.c:323,1
    - Dst: t582_getMicroSecondTimeout
      Src: /src/curl/tests/libtest/lib582.c:327,1
    - Dst: notifyCurl
      Src: /src/curl/tests/libtest/lib582.c:329,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib582.c:332,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib582.c:336,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib582.c:344,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib582.c:345,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib582.c:346,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib582.c:347,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib582.c:350,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib582.c:353,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib582.c:354,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts:
    - condition: (test_argc >= 5)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/curl/tests/libtest/lib582.c
    constantsTouched: []
    func_position:
      end: 357
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 357
    functionName: test_lib582
    functionSourceFile: /src/curl/tests/libtest/lib582.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - multi_add_handle
    - curlx_sztosi
    - curl_multi_remove_handle
    - curlx_fstat
    - multi_setopt
    - curl_global_cleanup
    - select_test
    - easy_init
    - t582_updateFdSet
    - curlx_strerror
    - t582_checkFdSet
    - t582_checkForCompletion
    - easy_setopt
    - FD_ZERO
    - curlx_free
    - curl_easy_cleanup
    - assert
    - multi_init
    - curl_mfprintf
    - start_test_timing
    - curlx_fopen
    - notifyCurl
    - t582_getMicroSecondTimeout
    - res_global_init
    - abort_on_test_timeout
    - curl_multi_cleanup
    - fileno
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib582(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1921.c:28,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1921.c:34,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1921.c:36,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1921.c:40,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/lib1921.c:44,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1921.c:46,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib1921.c:47,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1921.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: test_lib1921
    functionSourceFile: /src/curl/tests/libtest/lib1921.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mprintf
    - curl_url_cleanup
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1921(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1529.c:31,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1529.c:34,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1529.c:35,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1529.c:39,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1529.c:41,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1529.c:42,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1529.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1529.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1529.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1529.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1529.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1529.c:52,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1529.c:56,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1529.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: test_lib1529
    functionSourceFile: /src/curl/tests/libtest/lib1529.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1529(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1957.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1957.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1957.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1957.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1957.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1957.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1957.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1957.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1957.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1957.c:49,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1957.c:50,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1957.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1957.c:56,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1957.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1957.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1957.c:60,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1957.c:64,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1957.c:65,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1957.c:66,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1957.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 70
    functionName: test_lib1957
    functionSourceFile: /src/curl/tests/libtest/lib1957.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1957(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/libtest/lib1565.c:48,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1565.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1565.c:52,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1565.c:53,1
    - Dst: pthread_mutex_lock
      Src: /src/curl/tests/libtest/lib1565.c:55,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/tests/libtest/lib1565.c:58,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/tests/libtest/lib1565.c:66,1
    - Dst: res_multi_wakeup
      Src: /src/curl/tests/libtest/lib1565.c:68,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1565.c:73,1
    - Dst: pthread_mutex_lock
      Src: /src/curl/tests/libtest/lib1565.c:75,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/tests/libtest/lib1565.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 83
    functionName: t1565_run_thread
    functionSourceFile: /src/curl/tests/libtest/lib1565.c
    functionUses: 0
    functionsReached:
    - res_multi_wakeup
    - easy_setopt
    - easy_init
    - curlx_wait_ms
    - pthread_mutex_unlock
    - curl_easy_cleanup
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void *t1565_run_thread(void *ptr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1565.c:99,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1565.c:101,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1565.c:103,1
    - Dst: pthread_create
      Src: /src/curl/tests/libtest/lib1565.c:107,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1565.c:111,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1565.c:118,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1565.c:120,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib1565.c:122,1
    - Dst: multi_remove_handle
      Src: /src/curl/tests/libtest/lib1565.c:127,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1565.c:131,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1565.c:138,1
    - Dst: multi_poll
      Src: /src/curl/tests/libtest/lib1565.c:144,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1565.c:146,1
    - Dst: pthread_mutex_lock
      Src: /src/curl/tests/libtest/lib1565.c:148,1
    - Dst: res_multi_add_handle
      Src: /src/curl/tests/libtest/lib1565.c:151,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/tests/libtest/lib1565.c:153,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/tests/libtest/lib1565.c:162,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1565.c:164,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1565.c:168,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1565.c:174,1
    - Dst: pthread_mutex_lock
      Src: /src/curl/tests/libtest/lib1565.c:181,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/tests/libtest/lib1565.c:184,1
    - Dst: pthread_join
      Src: /src/curl/tests/libtest/lib1565.c:187,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1565.c:189,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1565.c:191,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1565.c:193,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1565.c:194,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 197
    functionName: test_lib1565
    functionSourceFile: /src/curl/tests/libtest/lib1565.c
    functionUses: 0
    functionsReached:
    - multi_remove_handle
    - curl_mfprintf
    - curl_global_cleanup
    - pthread_join
    - curl_multi_info_read
    - start_test_timing
    - pthread_create
    - multi_perform
    - pthread_mutex_unlock
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - res_multi_add_handle
    - curl_multi_cleanup
    - multi_poll
    - pthread_mutex_lock
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1565(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: test_lib1565
    functionSourceFile: /src/curl/tests/libtest/lib1565.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1565(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - data
    - n
    - l
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: t1940_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1940.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t1940_write_cb(char *data, size_t n, size_t l, void *userp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_header
      Src: /src/curl/tests/libtest/lib1940.c:54,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1940.c:61,1
    - Dst: curl_easy_header
      Src: /src/curl/tests/libtest/lib1940.c:66,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1940.c:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - curl
    - header_request
    - type
    argTypes:
    - CURL*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 77
    functionName: t1940_showem
    functionSourceFile: /src/curl/tests/libtest/lib1940.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_easy_header
    linkageType: ''
    returnType: void
    signature: void t1940_showem(CURL *curl, int header_request, unsigned int type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1940.c:92,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1940.c:93,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1940.c:94,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1940.c:95,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1940.c:96,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1940.c:98,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1940.c:102,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1940.c:103,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1940.c:105,1
    - Dst: t1940_showem
      Src: /src/curl/tests/libtest/lib1940.c:109,1
    - Dst: t1940_showem
      Src: /src/curl/tests/libtest/lib1940.c:112,1
    - Dst: t1940_showem
      Src: /src/curl/tests/libtest/lib1940.c:114,1
    - Dst: t1940_showem
      Src: /src/curl/tests/libtest/lib1940.c:115,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1940.c:118,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1940.c:119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 121
    functionName: test_lib1940
    functionSourceFile: /src/curl/tests/libtest/lib1940.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - t1940_showem
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1940(const char *URL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:48,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib505.c:52,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:54,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib505.c:55,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:56,1
    - Dst: curlx_fstat
      Src: /src/curl/tests/libtest/lib505.c:61,1
    - Dst: fileno
      Src: /src/curl/tests/libtest/lib505.c:61,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:64,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib505.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:66,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib505.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:72,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib505.c:73,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib505.c:77,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:78,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib505.c:79,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib505.c:84,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:86,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib505.c:87,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib505.c:88,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib505.c:94,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:96,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib505.c:97,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib505.c:98,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib505.c:99,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib505.c:102,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib505.c:104,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib505.c:105,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib505.c:106,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib505.c:107,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib505.c:108,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib505.c:114,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib505.c:117,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib505.c:120,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib505.c:123,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib505.c:126,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib505.c:129,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib505.c:132,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib505.c:137,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib505.c:140,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib505.c:142,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib505.c:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 67
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 146
    functionName: test_lib505
    functionSourceFile: /src/curl/tests/libtest/lib505.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curlx_strerror
    - curlx_fopen
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curlx_fstat
    - curl_global_init
    - curl_global_cleanup
    - fileno
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib505(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1907.c:33,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1907.c:34,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1907.c:35,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1907.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1907.c:37,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1907.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1907.c:40,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1907.c:42,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1907.c:45,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1907.c:46,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1907.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1907.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: test_lib1907
    functionSourceFile: /src/curl/tests/libtest/lib1907.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1907(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1508.c:33,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1508.c:35,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1508.c:41,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1508.c:42,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1508.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 47
    functionName: test_lib1508
    functionSourceFile: /src/curl/tests/libtest/lib1508.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - global_init
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1508(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1554.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - curl
    - data
    - laccess
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - curl_lock_access
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: t1554_test_lock
    functionSourceFile: /src/curl/tests/libtest/lib1554.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: void
    signature: "void t1554_test_lock(CURL *curl, curl_lock_data data,\n                            curl_lock_access
      laccess, void *useptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1554.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - curl
    - data
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: t1554_test_unlock
    functionSourceFile: /src/curl/tests/libtest/lib1554.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: void
    signature: void t1554_test_unlock(CURL *curl, curl_lock_data data, void *useptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1554.c:63,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/lib1554.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1554.c:67,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib1554.c:71,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib1554.c:72,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib1554.c:73,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1554.c:79,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1554.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1554.c:84,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1554.c:87,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1554.c:90,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1554.c:94,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1554.c:95,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib1554.c:102,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1554.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 106
    functionName: test_lib1554
    functionSourceFile: /src/curl/tests/libtest/lib1554.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_share_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_share_init
    - curl_easy_cleanup
    - global_init
    - curl_easy_setopt
    - curl_global_cleanup
    - curl_share_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1554(const char *URL)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: res_easy_init
      Src: /src/curl/tests/libtest/lib540.c:44,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib540.c:48,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib540.c:52,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib540.c:56,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib540.c:60,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib540.c:64,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib540.c:68,1
    - Dst: res_easy_setopt
      Src: /src/curl/tests/libtest/lib540.c:73,1
    - Dst: res_multi_add_handle
      Src: /src/curl/tests/libtest/lib540.c:77,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib540.c:85,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 5
    argNames:
    - num
    - multi
    - url
    - userpwd
    - headers
    argTypes:
    - int
    - CURLM*
    - char*
    - char*
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 89
    functionName: init
    functionSourceFile: /src/curl/tests/libtest/lib540.c
    functionUses: 219
    functionsReached:
    - res_easy_init
    - res_multi_add_handle
    - curl_easy_cleanup
    - res_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init(int num, CURLM *multi, const char *url,\n                     const
      char *userpwd, struct curl_slist *headers)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/curl/tests/libtest/lib540.c:101,1
    - Dst: res_multi_perform
      Src: /src/curl/tests/libtest/lib540.c:109,1
    - Dst: res_test_timedout
      Src: /src/curl/tests/libtest/lib540.c:113,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib540.c:118,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib540.c:119,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib540.c:120,1
    - Dst: res_multi_fdset
      Src: /src/curl/tests/libtest/lib540.c:122,1
    - Dst: res_multi_timeout
      Src: /src/curl/tests/libtest/lib540.c:128,1
    - Dst: res_select_test
      Src: /src/curl/tests/libtest/lib540.c:149,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib540.c:155,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib540.c:161,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib540.c:162,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib540.c:163,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib540.c:164,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib540.c:165,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib540.c:173,1
    - Dst: res_test_timedout
      Src: /src/curl/tests/libtest/lib540.c:176,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 5
    argNames:
    - num
    - multi
    - url
    - userpwd
    - headers
    argTypes:
    - int
    - CURLM*
    - char*
    - char*
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 182
    functionName: loop
    functionSourceFile: /src/curl/tests/libtest/lib540.c
    functionUses: 0
    functionsReached:
    - res_multi_perform
    - res_test_timedout
    - res_select_test
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - curl_multi_remove_handle
    - init
    - curl_easy_strerror
    - FD_ZERO
    - res_multi_fdset
    - curl_easy_cleanup
    - res_multi_timeout
    - curl_multi_info_read
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode loop(int num, CURLM *multi, const char *url,\n                     const
      char *userpwd, struct curl_slist *headers)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib540.c:195,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib540.c:198,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib540.c:204,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib540.c:207,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib540.c:209,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib540.c:213,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib540.c:215,1
    - Dst: res_multi_init
      Src: /src/curl/tests/libtest/lib540.c:219,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib540.c:221,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib540.c:222,1
    - Dst: loop
      Src: /src/curl/tests/libtest/lib540.c:226,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib540.c:230,1
    - Dst: loop
      Src: /src/curl/tests/libtest/lib540.c:232,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib540.c:238,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib540.c:239,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib540.c:240,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib540.c:243,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib540.c:244,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib540.c:246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 249
    functionName: test_lib540
    functionSourceFile: /src/curl/tests/libtest/lib540.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - curl_multi_remove_handle
    - curl_slist_free_all
    - start_test_timing
    - curl_slist_append
    - res_global_init
    - curl_easy_cleanup
    - res_multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - loop
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib540(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1511.c:32,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1511.c:34,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1511.c:36,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1511.c:37,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1511.c:38,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1511.c:41,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1511.c:43,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1511.c:47,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1511.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1511.c:56,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1511.c:60,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1511.c:71,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1511.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: test_lib1511
    functionSourceFile: /src/curl/tests/libtest/lib1511.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1511(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3025.c:32,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3025.c:33,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib3025.c:37,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3025.c:39,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3025.c:40,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib3025.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3025.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3025.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3025.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib3025.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib3025.c:50,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib3025.c:54,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib3025.c:55,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3025.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 59
    functionName: test_lib3025
    functionSourceFile: /src/curl/tests/libtest/lib3025.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3025(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1559.c:36,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1559.c:37,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib1559.c:39,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1559.c:45,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1559.c:48,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1559.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1559.c:52,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1559.c:53,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1559.c:56,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1559.c:58,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1559.c:59,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1559.c:60,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1559.c:61,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1559.c:62,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1559.c:63,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1559.c:64,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1559.c:65,1
    - Dst: curl_url_strerror
      Src: /src/curl/tests/libtest/lib1559.c:66,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1559.c:67,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib1559.c:71,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1559.c:72,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1559.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 76
    functionName: test_lib1559
    functionSourceFile: /src/curl/tests/libtest/lib1559.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_url_strerror
    - easy_init
    - curl_mprintf
    - curl_url_cleanup
    - curlx_malloc
    - curlx_free
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - memset
    - curl_global_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1559(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - opaque
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: write_h2_upg_extreme_cb
    functionSourceFile: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t write_h2_upg_extreme_cb(char *ptr, size_t size, size_t nmemb,\n
      \                                     void *opaque)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:48,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:52,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:53,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:57,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:59,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:66,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:68,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:71,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:72,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:73,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:76,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:79,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:80,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:86,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:88,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:90,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:91,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:92,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:98,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:100,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:101,1
    - Dst: curl_multi_poll
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:106,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:108,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:109,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:116,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:120,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:121,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:128,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:133,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:138,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:139,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:140,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:145,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:150,1
    - Dst: curl_multi_get_handles
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:156,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:160,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:161,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:163,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:165,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c:168,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 98
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 171
    functionName: test_cli_h2_upgrade_extreme
    functionSourceFile: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_msnprintf
    - curl_mfprintf
    - curl_global_cleanup
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - curl_free
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_multi_info_read
    - curl_multi_get_handles
    - curl_multi_strerror
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_h2_upgrade_extreme(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1549.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1549.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1549.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1549.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1549.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1549.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1549.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1549.c:47,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1549.c:49,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1549.c:55,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1549.c:60,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1549.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1549.c:67,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1549.c:71,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1549.c:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 75
    functionName: test_lib1549
    functionSourceFile: /src/curl/tests/libtest/lib1549.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - curl_slist_free_all
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1549(const char *URL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib541.c:40,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib541.c:44,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib541.c:46,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib541.c:47,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib541.c:48,1
    - Dst: curlx_fstat
      Src: /src/curl/tests/libtest/lib541.c:53,1
    - Dst: fileno
      Src: /src/curl/tests/libtest/lib541.c:53,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib541.c:56,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/libtest/lib541.c:57,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib541.c:58,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib541.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib541.c:64,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib541.c:65,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib541.c:69,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib541.c:70,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib541.c:71,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib541.c:76,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib541.c:78,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib541.c:79,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib541.c:80,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib541.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib541.c:88,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib541.c:91,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib541.c:94,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib541.c:97,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib541.c:103,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib541.c:108,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib541.c:110,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib541.c:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 114
    functionName: test_lib541
    functionSourceFile: /src/curl/tests/libtest/lib541.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curlx_strerror
    - curlx_fopen
    - test_setopt
    - curl_easy_cleanup
    - curlx_fstat
    - curl_global_init
    - curl_global_cleanup
    - fileno
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib541(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib533.c:36,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib533.c:38,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib533.c:40,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib533.c:42,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib533.c:43,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib533.c:44,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib533.c:46,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib533.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib533.c:50,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib533.c:60,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib533.c:62,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib533.c:66,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib533.c:68,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib533.c:72,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib533.c:73,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib533.c:74,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib533.c:75,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib533.c:78,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib533.c:84,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib533.c:85,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib533.c:86,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib533.c:88,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib533.c:92,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib533.c:94,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib533.c:101,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib533.c:102,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib533.c:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 106
    functionName: test_lib533
    functionSourceFile: /src/curl/tests/libtest/lib533.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - curl_mfprintf
    - multi_fdset
    - easy_init
    - curl_multi_remove_handle
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_reset
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib533(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib503.c:41,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib503.c:43,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib503.c:45,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib503.c:47,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib503.c:48,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib503.c:49,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib503.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib503.c:51,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib503.c:52,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib503.c:53,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib503.c:54,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib503.c:56,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib503.c:58,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib503.c:68,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib503.c:70,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib503.c:75,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib503.c:76,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib503.c:77,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib503.c:79,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib503.c:83,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib503.c:85,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib503.c:92,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib503.c:93,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib503.c:94,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib503.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 98
    functionName: test_lib503
    functionSourceFile: /src/curl/tests/libtest/lib503.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - multi_fdset
    - easy_init
    - curl_multi_remove_handle
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib503(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib659.c:36,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib659.c:37,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib659.c:39,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib659.c:42,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib659.c:47,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib659.c:48,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib659.c:49,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib659.c:50,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib659.c:54,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib659.c:55,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib659.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib659.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib659.c:61,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib659.c:63,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib659.c:69,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib659.c:70,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib659.c:71,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 74
    functionName: test_lib659
    functionSourceFile: /src/curl/tests/libtest/lib659.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_url_cleanup
    - curl_easy_strerror
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib659(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nitems
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: t1971_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1971.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t1971_read_cb(char *ptr, size_t size, size_t nitems, void *userp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1971.c:42,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1971.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1971.c:47,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1971.c:49,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1971.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1971.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1971.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1971.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1971.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1971.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1971.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1971.c:60,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1971.c:61,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1971.c:64,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1971.c:66,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1971.c:68,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1971.c:70,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1971.c:74,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1971.c:75,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1971.c:76,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1971.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 80
    functionName: test_lib1971
    functionSourceFile: /src/curl/tests/libtest/lib1971.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1971(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1520.c:56,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1520.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: t1520_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1520.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t1520_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1520.c:73,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1520.c:74,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1520.c:78,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1520.c:80,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1520.c:81,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1520.c:85,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1520.c:88,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1520.c:90,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1520.c:91,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1520.c:92,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1520.c:93,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1520.c:94,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1520.c:95,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1520.c:96,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1520.c:98,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1520.c:102,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1520.c:103,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1520.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 107
    functionName: test_lib1520
    functionSourceFile: /src/curl/tests/libtest/lib1520.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1520(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:32,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:37,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:38,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:39,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:41,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:44,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:45,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - curl
    - url
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: setup_h2_serverpush
    functionSourceFile: /src/curl/tests/libtest/cli_h2_serverpush.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - curlx_fopen
    linkageType: ''
    returnType: int
    signature: int setup_h2_serverpush(CURL *curl, const char *url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:71,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:74,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:82,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:84,1
    - Dst: curl_pushheader_bynum
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:88,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:89,1
    - Dst: curl_pushheader_byname
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:92,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - parent
    - curl
    - num_headers
    - headers
    - userp
    argTypes:
    - CURL*
    - CURL*
    - size_t
    - struct curl_pushheaders*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 101
    functionName: server_push_callback
    functionSourceFile: /src/curl/tests/libtest/cli_h2_serverpush.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - curl_pushheader_bynum
    - curlx_fopen
    - curl_pushheader_byname
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: "int server_push_callback(CURL *parent,\n                                CURL
      *curl,\n                                size_t num_headers,\n                                struct
      curl_pushheaders *headers,\n                                void *userp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:117,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:121,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:122,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:126,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:132,1
    - Dst: setup_h2_serverpush
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:138,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:139,1
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:144,1
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:145,1
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:146,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:148,1
    - Dst: curl_multi_perform
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:153,1
    - Dst: curl_multi_poll
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:157,1
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:169,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:173,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:174,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:182,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:185,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:187,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_h2_serverpush.c:189,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 192
    functionName: test_cli_h2_serverpush
    functionSourceFile: /src/curl/tests/libtest/cli_h2_serverpush.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_mfprintf
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - setup_h2_serverpush
    - curl_multi_setopt
    - curl_easy_cleanup
    - curl_multi_init
    - curl_global_init
    - curl_multi_info_read
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_h2_serverpush(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_nextheader
      Src: /src/curl/tests/libtest/lib1945.c:32,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1945.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - curl
    - type
    argTypes:
    - CURL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: t1945_showem
    functionSourceFile: /src/curl/tests/libtest/lib1945.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_easy_nextheader
    linkageType: ''
    returnType: void
    signature: void t1945_showem(CURL *curl, unsigned int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - data
    - n
    - l
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: t1945_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib1945.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t1945_write_cb(char *data, size_t n, size_t l, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1945.c:52,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1945.c:54,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1945.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1945.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1945.c:57,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1945.c:59,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1945.c:63,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1945.c:64,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1945.c:66,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1945.c:68,1
    - Dst: t1945_showem
      Src: /src/curl/tests/libtest/lib1945.c:70,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1945.c:73,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1945.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 76
    functionName: test_lib1945
    functionSourceFile: /src/curl/tests/libtest/lib1945.c
    functionUses: 0
    functionsReached:
    - easy_init
    - curl_easy_perform
    - curl_mprintf
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    - t1945_showem
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1945(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib524.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib524.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib524.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib524.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib524.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib524.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib524.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib524.c:45,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib524.c:47,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib524.c:51,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib524.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: test_lib524
    functionSourceFile: /src/curl/tests/libtest/lib524.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib524(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib519.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib519.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib519.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib519.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib519.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib519.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib519.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib519.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib519.c:46,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib519.c:49,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib519.c:53,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib519.c:56,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib519.c:60,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib519.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 64
    functionName: test_lib519
    functionSourceFile: /src/curl/tests/libtest/lib519.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib519(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:63,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - curl
    - data
    - laccess
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - curl_lock_access
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 68
    functionName: t586_test_lock
    functionSourceFile: /src/curl/tests/libtest/lib586.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: "void t586_test_lock(CURL *curl, curl_lock_data data,\n                           curl_lock_access
      laccess, void *useptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:90,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - curl
    - data
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 95
    functionName: t586_test_unlock
    functionSourceFile: /src/curl/tests/libtest/lib586.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void t586_test_unlock(CURL *curl, curl_lock_data data, void *useptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib586.c:104,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib586.c:110,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib586.c:111,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib586.c:112,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:113,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib586.c:114,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:116,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib586.c:117,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:120,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:124,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib586.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 128
    functionName: t586_test_fire
    functionSourceFile: /src/curl/tests/libtest/lib586.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void *t586_test_fire(void *ptr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:144,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib586.c:145,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:146,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:151,1
    - Dst: curl_share_init
      Src: /src/curl/tests/libtest/lib586.c:152,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:154,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib586.c:155,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:160,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib586.c:161,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:164,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib586.c:165,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:168,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib586.c:169,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:172,1
    - Dst: curl_share_setopt
      Src: /src/curl/tests/libtest/lib586.c:173,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:178,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib586.c:179,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib586.c:180,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:192,1
    - Dst: t586_test_fire
      Src: /src/curl/tests/libtest/lib586.c:193,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:197,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib586.c:198,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:200,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib586.c:201,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib586.c:202,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib586.c:206,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:207,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib586.c:208,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:210,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib586.c:211,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:214,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib586.c:215,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:217,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:221,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:227,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib586.c:228,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:231,1
    - Dst: curl_share_cleanup
      Src: /src/curl/tests/libtest/lib586.c:232,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib586.c:234,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib586.c:236,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib586.c:237,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 75
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 240
    functionName: test_lib586
    functionSourceFile: /src/curl/tests/libtest/lib586.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_share_cleanup
    - curl_easy_perform
    - curl_mprintf
    - curl_easy_init
    - test_setopt
    - t586_test_fire
    - curl_share_init
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    - curl_share_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib586(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3026.c:33,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3026.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: t3026_run_thread
    functionSourceFile: /src/curl/tests/libtest/lib3026.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_global_init
    linkageType: ''
    returnType: DWORD
    signature: DWORD t3026_run_thread(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_version_info
      Src: /src/curl/tests/libtest/lib3026.c:49,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3026.c:51,1
    - Dst: CreateThread
      Src: /src/curl/tests/libtest/lib3026.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3026.c:62,1
    - Dst: GetLastError
      Src: /src/curl/tests/libtest/lib3026.c:64,1
    - Dst: WaitForSingleObject
      Src: /src/curl/tests/libtest/lib3026.c:74,1
    - Dst: CloseHandle
      Src: /src/curl/tests/libtest/lib3026.c:75,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3026.c:77,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib3026.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 85
    functionName: test_lib3026
    functionSourceFile: /src/curl/tests/libtest/lib3026.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - WaitForSingleObject
    - CreateThread
    - curl_easy_strerror
    - CloseHandle
    - curl_version_info
    - GetLastError
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3026(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib3026.c:93,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib3026.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: t3026_run_thread
    functionSourceFile: /src/curl/tests/libtest/lib3026.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_global_init
    linkageType: ''
    returnType: void
    signature: void *t3026_run_thread(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_version_info
      Src: /src/curl/tests/libtest/lib3026.c:109,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3026.c:111,1
    - Dst: pthread_create
      Src: /src/curl/tests/libtest/lib3026.c:120,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3026.c:122,1
    - Dst: pthread_join
      Src: /src/curl/tests/libtest/lib3026.c:132,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3026.c:134,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib3026.c:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 142
    functionName: test_lib3026
    functionSourceFile: /src/curl/tests/libtest/lib3026.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - pthread_join
    - curl_easy_strerror
    - pthread_create
    - curl_version_info
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3026(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_version_info
      Src: /src/curl/tests/libtest/lib3026.c:150,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib3026.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: test_lib3026
    functionSourceFile: /src/curl/tests/libtest/lib3026.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_version_info
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib3026(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 55
    functionName: t643_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib643.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t643_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib643.c:72,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib643.c:75,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib643.c:77,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib643.c:78,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib643.c:82,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib643.c:84,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib643.c:85,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib643.c:86,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib643.c:90,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib643.c:92,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib643.c:93,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib643.c:94,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib643.c:95,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib643.c:101,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib643.c:103,1
    - Dst: curl_mime_filename
      Src: /src/curl/tests/libtest/lib643.c:106,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib643.c:110,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib643.c:112,1
    - Dst: curl_mime_filename
      Src: /src/curl/tests/libtest/lib643.c:115,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib643.c:119,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib643.c:119,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib643.c:126,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib643.c:129,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib643.c:131,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib643.c:132,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib643.c:133,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib643.c:134,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib643.c:138,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib643.c:140,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib643.c:144,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib643.c:144,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib643.c:146,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib643.c:148,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib643.c:149,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib643.c:150,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib643.c:151,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib643.c:156,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib643.c:158,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib643.c:161,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib643.c:161,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib643.c:164,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib643.c:166,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib643.c:167,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib643.c:168,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib643.c:169,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib643.c:172,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib643.c:174,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib643.c:177,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib643.c:177,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib643.c:179,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib643.c:181,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib643.c:182,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib643.c:183,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib643.c:184,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib643.c:187,1
    - Dst: curl_mime_filename
      Src: /src/curl/tests/libtest/lib643.c:189,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib643.c:191,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib643.c:194,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib643.c:194,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib643.c:197,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib643.c:200,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib643.c:203,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib643.c:206,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib643.c:209,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib643.c:214,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib643.c:217,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 109
    argCount: 2
    argNames:
    - URL
    - oldstyle
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 220
    functionName: t643_test_once
    functionSourceFile: /src/curl/tests/libtest/lib643.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - curl_mime_free
    - curl_easy_init
    - curl_mime_filename
    - curl_mprintf
    - curl_easy_perform
    - curl_easy_strerror
    - curl_mime_data_cb
    - curl_mime_addpart
    - test_setopt
    - curl_easy_cleanup
    - curl_mime_init
    - curl_mime_data
    - strlen
    - curl_mime_name
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t643_test_once(const char *URL, bool oldstyle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib643.c:224,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib643.c:225,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib643.c:226,1
    - Dst: curl_mime_subparts
      Src: /src/curl/tests/libtest/lib643.c:227,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib643.c:230,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib643.c:231,1
    - Dst: curl_mime_subparts
      Src: /src/curl/tests/libtest/lib643.c:233,1
    - Dst: curl_mime_subparts
      Src: /src/curl/tests/libtest/lib643.c:234,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib643.c:237,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib643.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 244
    functionName: t643_cyclic_add
    functionSourceFile: /src/curl/tests/libtest/lib643.c
    functionUses: 0
    functionsReached:
    - curl_mime_subparts
    - curl_mime_free
    - curl_easy_init
    - curl_mime_addpart
    - curl_easy_cleanup
    - curl_mime_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t643_cyclic_add(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib643.c:250,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib643.c:251,1
    - Dst: t643_test_once
      Src: /src/curl/tests/libtest/lib643.c:255,1
    - Dst: t643_test_once
      Src: /src/curl/tests/libtest/lib643.c:257,1
    - Dst: t643_cyclic_add
      Src: /src/curl/tests/libtest/lib643.c:260,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib643.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 265
    functionName: test_lib643
    functionSourceFile: /src/curl/tests/libtest/lib643.c
    functionUses: 0
    functionsReached:
    - t643_test_once
    - curl_mfprintf
    - t643_cyclic_add
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib643(const char *URL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib694.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib694.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib694.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib694.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib694.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib694.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib694.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib694.c:47,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib694.c:48,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib694.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib694.c:54,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib694.c:58,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib694.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib694.c:66,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib694.c:71,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib694.c:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: test_lib694
    functionSourceFile: /src/curl/tests/libtest/lib694.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib694(const char *URL)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib666.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib666.c:46,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib666.c:50,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib666.c:52,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib666.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib666.c:60,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib666.c:64,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib666.c:66,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib666.c:70,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib666.c:72,1
    - Dst: curl_mime_filename
      Src: /src/curl/tests/libtest/lib666.c:75,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib666.c:77,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib666.c:80,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib666.c:82,1
    - Dst: curl_mime_encoder
      Src: /src/curl/tests/libtest/lib666.c:85,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib666.c:87,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib666.c:92,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib666.c:95,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib666.c:98,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib666.c:101,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib666.c:104,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib666.c:107,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib666.c:112,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib666.c:115,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib666.c:117,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 120
    functionName: test_lib666
    functionSourceFile: /src/curl/tests/libtest/lib666.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_mime_filename
    - curl_easy_init
    - curl_easy_perform
    - curl_mime_free
    - test_setopt
    - curl_mime_addpart
    - curl_mime_encoder
    - curl_mime_init
    - curl_mime_data
    - curl_global_init
    - curl_easy_cleanup
    - curl_global_cleanup
    - curl_mime_name
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib666(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: write_757
    functionSourceFile: /src/curl/tests/libtest/lib757.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_757(char *ptr, size_t size, size_t nmemb, void *userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib757.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - arg
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: read_757
    functionSourceFile: /src/curl/tests/libtest/lib757.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t read_757(char *buffer, size_t size, size_t nitems, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - arg
    - offset
    - origin
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: seek_757
    functionSourceFile: /src/curl/tests/libtest/lib757.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int seek_757(void *arg, curl_off_t offset, int origin)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib757.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib757.c:68,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib757.c:72,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib757.c:75,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib757.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib757.c:81,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib757.c:84,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib757.c:85,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib757.c:86,1
    - Dst: curl_mime_type
      Src: /src/curl/tests/libtest/lib757.c:87,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib757.c:88,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib757.c:91,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib757.c:94,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib757.c:98,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib757.c:99,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib757.c:102,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib757.c:103,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib757.c:106,1
    - Dst: curl_mime_subparts
      Src: /src/curl/tests/libtest/lib757.c:109,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib757.c:112,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib757.c:113,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib757.c:118,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib757.c:122,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib757.c:123,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib757.c:128,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib757.c:129,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib757.c:130,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib757.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 133
    functionName: test_lib757
    functionSourceFile: /src/curl/tests/libtest/lib757.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_mime_subparts
    - curl_easy_perform
    - curl_easy_init
    - curl_mime_free
    - curl_easy_strerror
    - test_setopt
    - curl_mime_addpart
    - curl_mime_data_cb
    - curl_easy_cleanup
    - curl_mime_init
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_mime_name
    - curl_mime_type
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib757(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib676.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib676.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib676.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib676.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib676.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib676.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib676.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib676.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib676.c:46,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib676.c:47,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib676.c:49,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib676.c:51,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib676.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib676.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib676.c:60,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib676.c:64,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib676.c:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 68
    functionName: test_lib676
    functionSourceFile: /src/curl/tests/libtest/lib676.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib676(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib1948.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: put_callback
    functionSourceFile: /src/curl/tests/libtest/lib1948.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t put_callback(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1948.c:49,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1948.c:51,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1948.c:54,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1948.c:55,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1948.c:56,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1948.c:58,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1948.c:59,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1948.c:60,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1948.c:60,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1948.c:61,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1948.c:62,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1948.c:67,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1948.c:68,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1948.c:69,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1948.c:69,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1948.c:70,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1948.c:73,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1948.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 76
    functionName: test_lib1948
    functionSourceFile: /src/curl/tests/libtest/lib1948.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - curl_global_cleanup
    - easy_init
    - curl_easy_perform
    - curl_easy_cleanup
    - curl_global_init
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1948(const char *URL)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1536.c:34,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1536.c:36,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1536.c:41,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:43,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1536.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:49,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1536.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1536.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:60,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1536.c:62,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1536.c:69,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:71,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1536.c:73,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib1536.c:76,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:77,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib1536.c:88,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:90,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1536.c:96,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:98,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1536.c:100,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:104,1
    - Dst: curl_easy_reset
      Src: /src/curl/tests/libtest/lib1536.c:113,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1536.c:115,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:117,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib1536.c:119,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1536.c:123,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1536.c:130,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1536.c:131,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1536.c:132,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 134
    functionName: test_lib1536
    functionSourceFile: /src/curl/tests/libtest/lib1536.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - memcmp
    - curl_easy_duphandle
    - curl_easy_strerror
    - curl_easy_reset
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1536(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib511.c:31,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib511.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib511.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib511.c:38,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib511.c:39,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib511.c:43,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib511.c:44,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib511.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib511.c:46,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib511.c:48,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib511.c:52,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib511.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 56
    functionName: test_lib511
    functionSourceFile: /src/curl/tests/libtest/lib511.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib511(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib653.c:33,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib653.c:34,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib653.c:36,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib653.c:37,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib653.c:38,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib653.c:39,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib653.c:41,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib653.c:42,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib653.c:43,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib653.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib653.c:45,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib653.c:47,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/libtest/lib653.c:52,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib653.c:53,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib653.c:56,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib653.c:57,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib653.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: test_lib653
    functionSourceFile: /src/curl/tests/libtest/lib653.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_mime_free
    - curl_mime_addpart
    - curl_easy_cleanup
    - curl_mime_init
    - global_init
    - curl_mime_data
    - curl_global_cleanup
    - curl_mime_name
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib653(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 46
    functionName: t554_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib554.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t554_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: t587_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib554.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t587_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib554.c:72,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib554.c:76,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib554.c:86,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib554.c:96,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib554.c:102,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib554.c:105,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib554.c:113,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib554.c:116,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib554.c:122,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib554.c:125,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib554.c:133,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib554.c:135,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib554.c:143,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib554.c:145,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib554.c:147,1
    - Dst: curl_formfree
      Src: /src/curl/tests/libtest/lib554.c:148,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib554.c:149,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib554.c:154,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib554.c:157,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib554.c:160,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib554.c:164,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib554.c:167,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib554.c:171,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib554.c:174,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib554.c:177,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib554.c:180,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib554.c:185,1
    - Dst: curl_formfree
      Src: /src/curl/tests/libtest/lib554.c:188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 2
    argNames:
    - URL
    - oldstyle
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 191
    functionName: t554_test_once
    functionSourceFile: /src/curl/tests/libtest/lib554.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - curl_formadd
    - curl_mprintf
    - curl_easy_init
    - curl_formfree
    - curl_easy_perform
    - test_setopt
    - curl_easy_cleanup
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t554_test_once(const char *URL, bool oldstyle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib554.c:197,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib554.c:198,1
    - Dst: t554_test_once
      Src: /src/curl/tests/libtest/lib554.c:202,1
    - Dst: t554_test_once
      Src: /src/curl/tests/libtest/lib554.c:204,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib554.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 209
    functionName: test_lib554
    functionSourceFile: /src/curl/tests/libtest/lib554.c
    functionUses: 0
    functionsReached:
    - t554_test_once
    - curl_global_cleanup
    - curl_mfprintf
    - curl_global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib554(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_getdate
      Src: /src/curl/tests/libtest/lib517.c:245,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib517.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 256
    functionName: test_lib517
    functionSourceFile: /src/curl/tests/libtest/lib517.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_getdate
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib517(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - data
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: writedata
    functionSourceFile: /src/curl/tests/libtest/lib1156.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t writedata(char *data, size_t size, size_t nmemb, void *userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib1156.c:94,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1156.c:95,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1156.c:96,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1156.c:97,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1156.c:98,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1156.c:100,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1156.c:102,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1156.c:104,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1156.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - curl
    - url
    - p
    - num
    argTypes:
    - CURL*
    - char*
    - struct testparams*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 127
    functionName: onetest
    functionSourceFile: /src/curl/tests/libtest/lib1156.c
    functionUses: 0
    functionsReached:
    - test_setopt
    - curl_easy_perform
    - curl_msnprintf
    - curl_mprintf
    linkageType: ''
    returnType: int
    signature: "int onetest(CURL *curl, const char *url, const struct testparams *p,\n
      \                  size_t num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1156.c:139,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1156.c:140,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/libtest/lib1156.c:144,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1156.c:145,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1156.c:147,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1156.c:148,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1156.c:152,1
    - Dst: onetest
      Src: /src/curl/tests/libtest/lib1156.c:157,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1156.c:158,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1156.c:161,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1156.c:162,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1156.c:167,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1156.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 171
    functionName: test_lib1156
    functionSourceFile: /src/curl/tests/libtest/lib1156.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - onetest
    - curl_easy_init
    - curl_mprintf
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1156(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib1901.c:32,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/libtest/lib1901.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: t1901_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1901.c
    functionUses: 0
    functionsReached:
    - strlen
    - curlx_strcopy
    linkageType: ''
    returnType: size_t
    signature: size_t t1901_read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1901.c:46,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1901.c:48,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1901.c:52,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1901.c:53,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1901.c:54,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1901.c:55,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1901.c:56,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1901.c:57,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1901.c:58,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1901.c:59,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1901.c:61,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1901.c:64,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1901.c:68,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1901.c:71,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1901.c:74,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1901.c:75,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1901.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 79
    functionName: test_lib1901
    functionSourceFile: /src/curl/tests/libtest/lib1901.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1901(const char *URL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_option_next
      Src: /src/curl/tests/libtest/lib1912.c:37,1
    - Dst: curl_easy_option_next
      Src: /src/curl/tests/libtest/lib1912.c:37,1
    - Dst: curlcheck_long_option
      Src: /src/curl/tests/libtest/lib1912.c:39,1
    - Dst: print_err
      Src: /src/curl/tests/libtest/lib1912.c:41,1
    - Dst: curlcheck_off_t_option
      Src: /src/curl/tests/libtest/lib1912.c:44,1
    - Dst: print_err
      Src: /src/curl/tests/libtest/lib1912.c:45,1
    - Dst: curlcheck_string_option
      Src: /src/curl/tests/libtest/lib1912.c:48,1
    - Dst: print_err
      Src: /src/curl/tests/libtest/lib1912.c:49,1
    - Dst: curlcheck_slist_option
      Src: /src/curl/tests/libtest/lib1912.c:52,1
    - Dst: print_err
      Src: /src/curl/tests/libtest/lib1912.c:53,1
    - Dst: curlcheck_cb_data_option
      Src: /src/curl/tests/libtest/lib1912.c:56,1
    - Dst: print_err
      Src: /src/curl/tests/libtest/lib1912.c:57,1
    - Dst: curlcheck_write_cb_option
      Src: /src/curl/tests/libtest/lib1912.c:61,1
    - Dst: print_err
      Src: /src/curl/tests/libtest/lib1912.c:62,1
    - Dst: curlcheck_conv_cb_option
      Src: /src/curl/tests/libtest/lib1912.c:65,1
    - Dst: print_err
      Src: /src/curl/tests/libtest/lib1912.c:66,1
    - Dst: curlcheck_postfields_option
      Src: /src/curl/tests/libtest/lib1912.c:69,1
    - Dst: print_err
      Src: /src/curl/tests/libtest/lib1912.c:70,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 77
    functionName: test_lib1912
    functionSourceFile: /src/curl/tests/libtest/lib1912.c
    functionUses: 0
    functionsReached:
    - curlcheck_conv_cb_option
    - curlcheck_slist_option
    - curlcheck_postfields_option
    - curlcheck_cb_data_option
    - curlcheck_off_t_option
    - curlcheck_string_option
    - print_err
    - curl_easy_option_next
    - curlcheck_write_cb_option
    - curlcheck_long_option
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1912(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: print_err
    functionSourceFile: /src/curl/tests/libtest/lib1912.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: print_err(name, exp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib510.c:49,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib510.c:51,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib510.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 59
    functionName: t510_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib510.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_mfprintf
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t510_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib510.c:69,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib510.c:70,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib510.c:74,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib510.c:76,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib510.c:77,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib510.c:81,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib510.c:83,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib510.c:84,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib510.c:85,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib510.c:90,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib510.c:93,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib510.c:96,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib510.c:99,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib510.c:102,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib510.c:105,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib510.c:108,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib510.c:111,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib510.c:112,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib510.c:116,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib510.c:122,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib510.c:125,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib510.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 129
    functionName: test_lib510
    functionSourceFile: /src/curl/tests/libtest/lib510.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib510(const char *URL)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib569.c:39,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib569.c:41,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib569.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib569.c:46,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib569.c:47,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib569.c:51,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib569.c:53,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib569.c:54,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib569.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:60,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:61,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:63,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:65,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib569.c:66,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib569.c:68,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib569.c:77,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:82,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib569.c:83,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:86,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:87,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib569.c:89,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib569.c:93,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib569.c:94,1
    - Dst: tutil_suburl
      Src: /src/curl/tests/libtest/lib569.c:97,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:102,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib569.c:103,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:106,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib569.c:107,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib569.c:112,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib569.c:118,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/lib569.c:120,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib569.c:121,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib569.c:122,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 72
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 125
    functionName: test_lib569
    functionSourceFile: /src/curl/tests/libtest/lib569.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - tutil_suburl
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curlx_fopen
    - test_setopt
    - curl_free
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib569(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1592.c:50,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib1592.c:52,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1592.c:54,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1592.c:56,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1592.c:57,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1592.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1592.c:79,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1592.c:89,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib1592.c:91,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1592.c:94,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib1592.c:95,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1592.c:96,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1592.c:99,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1592.c:100,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib1592.c:101,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1592.c:103,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1592.c:108,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib1592.c:113,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1592.c:116,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1592.c:117,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1592.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 121
    functionName: test_lib1592
    functionSourceFile: /src/curl/tests/libtest/lib1592.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - curl_mfprintf
    - easy_init
    - curl_multi_remove_handle
    - multi_perform
    - start_test_timing
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - multi_init
    - abort_on_test_timeout
    - curl_global_cleanup
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1592(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib579.c:36,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib579.c:37,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib579.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib579.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: progress_final_report
    functionSourceFile: /src/curl/tests/libtest/lib579.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_mfprintf
    - curlx_fopen
    linkageType: ''
    returnType: void
    signature: void progress_final_report(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: progress_final_report
      Src: /src/curl/tests/libtest/lib579.c:54,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib579.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib579.c:61,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib579.c:64,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib579.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - clientp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 72
    functionName: t579_progress_callback
    functionSourceFile: /src/curl/tests/libtest/lib579.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - progress_final_report
    - curl_mfprintf
    - curlx_fopen
    linkageType: ''
    returnType: int
    signature: "int t579_progress_callback(void *clientp, double dltotal, double dlnow,\n
      \                                 double ultotal, double ulnow)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib579.c:93,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib579.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 99
    functionName: t579_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib579.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t579_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib579.c:109,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib579.c:110,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib579.c:114,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib579.c:116,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib579.c:117,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib579.c:121,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib579.c:123,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib579.c:124,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib579.c:125,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:130,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:133,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:136,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:139,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:142,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:145,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:148,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:150,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:151,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:154,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib579.c:155,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib579.c:158,1
    - Dst: progress_final_report
      Src: /src/curl/tests/libtest/lib579.c:160,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib579.c:166,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib579.c:169,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib579.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 173
    functionName: test_lib579
    functionSourceFile: /src/curl/tests/libtest/lib579.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - progress_final_report
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib579(const char *URL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib566.c:33,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib566.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib566.c:38,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib566.c:40,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib566.c:41,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib566.c:45,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib566.c:46,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib566.c:48,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib566.c:52,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/libtest/lib566.c:55,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib566.c:57,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/libtest/lib566.c:58,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib566.c:64,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib566.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 68
    functionName: test_lib566
    functionSourceFile: /src/curl/tests/libtest/lib566.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_easy_getinfo
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curlx_fopen
    - test_setopt
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib566(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib557.c:95,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - linenumber
    - buf
    - buf2
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: string_check_low
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_mprintf
    linkageType: ''
    returnType: int
    signature: int string_check_low(int linenumber, char *buf, const char *buf2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: string_check
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: string_check(x, y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib557.c:107,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - linenumber
    - buf
    - len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: strlen_check_low
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_mprintf
    linkageType: ''
    returnType: int
    signature: int strlen_check_low(int linenumber, char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: strlen_check
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strlen_check(x, y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msprintf
      Src: /src/curl/tests/libtest/lib557.c:157,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib557.c:159,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib557.c:161,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:162,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:170,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 175
    functionName: test_unsigned_short_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - memcmp
    - curl_msprintf
    - curl_mprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_unsigned_short_formatting(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msprintf
      Src: /src/curl/tests/libtest/lib557.c:230,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib557.c:232,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib557.c:234,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:235,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:242,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 247
    functionName: test_signed_short_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - memcmp
    - curl_msprintf
    - curl_mprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_signed_short_formatting(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msprintf
      Src: /src/curl/tests/libtest/lib557.c:294,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib557.c:296,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib557.c:298,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:299,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:305,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:306,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:309,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 314
    functionName: test_unsigned_int_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_msprintf
    - memcmp
    - curl_mprintf
    - string_check
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_unsigned_int_formatting(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msprintf
      Src: /src/curl/tests/libtest/lib557.c:393,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib557.c:395,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib557.c:397,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:398,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:405,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 175
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 410
    functionName: test_signed_int_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - memcmp
    - curl_msprintf
    - curl_mprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_signed_int_formatting(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msprintf
      Src: /src/curl/tests/libtest/lib557.c:519,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib557.c:521,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib557.c:523,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:524,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:531,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 239
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 536
    functionName: test_unsigned_long_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - memcmp
    - curl_msprintf
    - curl_mprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_unsigned_long_formatting(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msprintf
      Src: /src/curl/tests/libtest/lib557.c:702,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib557.c:704,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib557.c:706,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:707,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:714,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 383
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 719
    functionName: test_signed_long_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - memcmp
    - curl_msprintf
    - curl_mprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_signed_long_formatting(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msprintf
      Src: /src/curl/tests/libtest/lib557.c:815,1
    - Dst: memcmp
      Src: /src/curl/tests/libtest/lib557.c:818,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib557.c:820,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:821,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:828,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 223
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 833
    functionName: test_curl_off_t_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - memcmp
    - curl_msprintf
    - curl_mprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_curl_off_t_formatting(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:843,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:844,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:846,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:847,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:849,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:850,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:852,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:853,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:855,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:856,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:858,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:859,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:861,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:862,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:865,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 870
    functionName: test_string_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mprintf
    - string_check
    linkageType: ''
    returnType: int
    signature: int test_string_formatting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:877,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:878,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:880,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:881,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:885,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 889
    functionName: test_pos_arguments
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - string_check
    linkageType: ''
    returnType: int
    signature: int test_pos_arguments(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:901,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:904,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:906,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:909,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:911,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:914,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:916,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:919,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:922,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 927
    functionName: test_width_precision
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - string_check
    linkageType: ''
    returnType: int
    signature: int test_width_precision(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:936,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:937,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:940,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:944,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:947,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:948,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:950,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:951,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:954,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:984,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:988,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1006,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:1036,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1040,1
    - Dst: test_width_precision
      Src: /src/curl/tests/libtest/lib557.c:1042,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:1045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 929
    functionDepth: 2
    functionLinenumber: 929
    functionLinenumberEnd: 1048
    functionName: test_weird_arguments
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - test_width_precision
    - curl_mprintf
    - string_check
    linkageType: ''
    returnType: int
    signature: int test_weird_arguments(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1057,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1058,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1060,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1061,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1063,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1064,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1066,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1067,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1069,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1070,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1072,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1073,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1075,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1076,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1078,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1079,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1081,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1082,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1084,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1085,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1087,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1088,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1090,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1091,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1093,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1094,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1096,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1097,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1099,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1100,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1102,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1103,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1104,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1105,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1106,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1107,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1108,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1109,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1110,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1111,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1112,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1113,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1114,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1115,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1120,1
    - Dst: strlen_check
      Src: /src/curl/tests/libtest/lib557.c:1121,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1123,1
    - Dst: strlen_check
      Src: /src/curl/tests/libtest/lib557.c:1124,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1126,1
    - Dst: strlen_check
      Src: /src/curl/tests/libtest/lib557.c:1128,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1132,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1133,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1141,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1142,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1147,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1148,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1154,1
    - Dst: strlen_check
      Src: /src/curl/tests/libtest/lib557.c:1155,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1157,1
    - Dst: strlen_check
      Src: /src/curl/tests/libtest/lib557.c:1158,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1159,1
    - Dst: strlen_check
      Src: /src/curl/tests/libtest/lib557.c:1160,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1161,1
    - Dst: strlen_check
      Src: /src/curl/tests/libtest/lib557.c:1162,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1163,1
    - Dst: strlen_check
      Src: /src/curl/tests/libtest/lib557.c:1164,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1165,1
    - Dst: strlen_check
      Src: /src/curl/tests/libtest/lib557.c:1166,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:1169,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1174
    functionName: test_float_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mprintf
    - strlen_check
    - string_check
    linkageType: ''
    returnType: int
    signature: int test_float_formatting(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1181,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1183,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1185,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1187,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1190,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1192,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1194,1
    - Dst: string_check
      Src: /src/curl/tests/libtest/lib557.c:1197,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:1202,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib557.c:1204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1207
    functionName: test_oct_hex_formatting
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mprintf
    - string_check
    linkageType: ''
    returnType: int
    signature: int test_oct_hex_formatting(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1214,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1218,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1223,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1228,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib557.c:1233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1238
    functionName: test_return_codes
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: int
    signature: int test_return_codes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/curl/tests/libtest/lib557.c:1250,1
    - Dst: test_pos_arguments
      Src: /src/curl/tests/libtest/lib557.c:1253,1
    - Dst: test_weird_arguments
      Src: /src/curl/tests/libtest/lib557.c:1254,1
    - Dst: test_unsigned_short_formatting
      Src: /src/curl/tests/libtest/lib557.c:1255,1
    - Dst: test_signed_short_formatting
      Src: /src/curl/tests/libtest/lib557.c:1256,1
    - Dst: test_unsigned_int_formatting
      Src: /src/curl/tests/libtest/lib557.c:1257,1
    - Dst: test_signed_int_formatting
      Src: /src/curl/tests/libtest/lib557.c:1258,1
    - Dst: test_unsigned_long_formatting
      Src: /src/curl/tests/libtest/lib557.c:1259,1
    - Dst: test_signed_long_formatting
      Src: /src/curl/tests/libtest/lib557.c:1260,1
    - Dst: test_curl_off_t_formatting
      Src: /src/curl/tests/libtest/lib557.c:1261,1
    - Dst: test_string_formatting
      Src: /src/curl/tests/libtest/lib557.c:1262,1
    - Dst: test_float_formatting
      Src: /src/curl/tests/libtest/lib557.c:1263,1
    - Dst: test_oct_hex_formatting
      Src: /src/curl/tests/libtest/lib557.c:1264,1
    - Dst: test_return_codes
      Src: /src/curl/tests/libtest/lib557.c:1265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1240
    functionDepth: 3
    functionLinenumber: 1240
    functionLinenumberEnd: 1271
    functionName: test_lib557
    functionSourceFile: /src/curl/tests/libtest/lib557.c
    functionUses: 0
    functionsReached:
    - test_unsigned_long_formatting
    - test_unsigned_short_formatting
    - test_weird_arguments
    - test_signed_long_formatting
    - test_return_codes
    - setlocale
    - test_unsigned_int_formatting
    - test_float_formatting
    - test_signed_int_formatting
    - test_oct_hex_formatting
    - test_curl_off_t_formatting
    - test_pos_arguments
    - test_signed_short_formatting
    - test_string_formatting
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib557(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib1913.c:30,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1913.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1913.c:34,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1913.c:36,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1913.c:37,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1913.c:40,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1913.c:41,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1913.c:42,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1913.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 46
    functionName: test_lib1913
    functionSourceFile: /src/curl/tests/libtest/lib1913.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - start_test_timing
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1913(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib753.c:42,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib753.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: t753_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib753.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: size_t
    signature: size_t t753_write_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib753.c:55,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib753.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: t753_hd_cb
    functionSourceFile: /src/curl/tests/libtest/lib753.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_mfprintf
    linkageType: ''
    returnType: size_t
    signature: size_t t753_hd_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib753.c:71,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib753.c:76,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib753.c:78,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib753.c:79,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib753.c:80,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib753.c:81,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib753.c:82,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib753.c:84,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib753.c:85,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib753.c:86,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib753.c:87,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib753.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 4
    argNames:
    - URL
    - name
    - pcurl
    - st
    argTypes:
    - char*
    - char*
    - CURL**
    - struct t753_transfer_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 96
    functionName: t753_setup
    functionSourceFile: /src/curl/tests/libtest/lib753.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - curl_easy_cleanup
    - easy_init
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool t753_setup(const char *URL, const char *name,\n                       CURL
      **pcurl,\n                       struct t753_transfer_status *st)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib753.c:107,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib753.c:112,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib753.c:114,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/lib753.c:115,1
    - Dst: t753_setup
      Src: /src/curl/tests/libtest/lib753.c:121,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib753.c:124,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib753.c:126,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib753.c:127,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib753.c:128,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib753.c:145,1
    - Dst: t753_setup
      Src: /src/curl/tests/libtest/lib753.c:148,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib753.c:151,1
    - Dst: curl_multi_wait
      Src: /src/curl/tests/libtest/lib753.c:155,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib753.c:157,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib753.c:162,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib753.c:164,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib753.c:165,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib753.c:167,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib753.c:173,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/libtest/lib753.c:173,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib753.c:176,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib753.c:178,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib753.c:179,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib753.c:180,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 183
    functionName: test_lib753
    functionSourceFile: /src/curl/tests/libtest/lib753.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curl_mfprintf
    - t753_setup
    - start_test_timing
    - multi_perform
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_multi_init
    - abort_on_test_timeout
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_wait
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib753(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib575.c:40,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib575.c:42,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib575.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib575.c:46,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib575.c:47,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib575.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib575.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib575.c:54,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib575.c:58,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib575.c:61,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib575.c:64,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib575.c:66,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib575.c:68,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib575.c:70,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib575.c:82,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib575.c:83,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib575.c:84,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib575.c:86,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib575.c:90,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib575.c:92,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib575.c:94,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib575.c:96,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib575.c:103,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib575.c:104,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib575.c:105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 108
    functionName: test_lib575
    functionSourceFile: /src/curl/tests/libtest/lib575.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - multi_fdset
    - easy_init
    - curl_easy_perform
    - curl_easy_duphandle
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib575(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib668.c:34,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib668.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: t668_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib668.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t t668_read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib668.c:61,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib668.c:62,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib668.c:66,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib668.c:69,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib668.c:72,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib668.c:75,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib668.c:79,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/libtest/lib668.c:83,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib668.c:84,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib668.c:85,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib668.c:87,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib668.c:87,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib668.c:89,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib668.c:90,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/tests/libtest/lib668.c:93,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/libtest/lib668.c:95,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/libtest/lib668.c:96,1
    - Dst: curl_mime_filedata
      Src: /src/curl/tests/libtest/lib668.c:99,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib668.c:102,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib668.c:105,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib668.c:107,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib668.c:111,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/libtest/lib668.c:112,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib668.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 115
    functionName: test_lib668
    functionSourceFile: /src/curl/tests/libtest/lib668.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_mime_free
    - test_setopt
    - curl_mime_addpart
    - curl_mime_data_cb
    - curl_easy_cleanup
    - curl_mime_init
    - curl_global_init
    - strlen
    - curl_mime_name
    - curl_mime_filedata
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib668(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - userp
    - buf
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: count_chars
    functionSourceFile: /src/curl/tests/libtest/lib650.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t count_chars(void *userp, const char *buf, size_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib650.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib650.c:57,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib650.c:62,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib650.c:66,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib650.c:71,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib650.c:76,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib650.c:82,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib650.c:86,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib650.c:95,1
    - Dst: strlen
      Src: /src/curl/tests/libtest/lib650.c:98,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib650.c:104,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib650.c:114,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib650.c:124,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib650.c:129,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib650.c:135,1
    - Dst: curl_formget
      Src: /src/curl/tests/libtest/lib650.c:143,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib650.c:146,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib650.c:148,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib650.c:155,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib650.c:160,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib650.c:167,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib650.c:171,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib650.c:173,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib650.c:178,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib650.c:181,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib650.c:184,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib650.c:186,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib650.c:187,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib650.c:190,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib650.c:193,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib650.c:198,1
    - Dst: curl_formfree
      Src: /src/curl/tests/libtest/lib650.c:201,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib650.c:202,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib650.c:204,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 88
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 207
    functionName: test_lib650
    functionSourceFile: /src/curl/tests/libtest/lib650.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - curl_global_cleanup
    - curl_formadd
    - curl_mprintf
    - curl_formget
    - curl_easy_init
    - curl_easy_perform
    - curl_formfree
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib650(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:41,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: read_callback
    functionSourceFile: /src/curl/tests/libtest/cli_upload_pausing.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t read_callback(char *ptr, size_t size, size_t nmemb,\n                            void
      *userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:67,1
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - clientp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: progress_callback
    functionSourceFile: /src/curl/tests/libtest/cli_upload_pausing.c
    functionUses: 0
    functionsReached:
    - curl_easy_pause
    linkageType: ''
    returnType: int
    signature: "int progress_callback(void *clientp,\n                             curl_off_t
      dltotal,\n                             curl_off_t dlnow,\n                             curl_off_t
      ultotal,\n                             curl_off_t ulnow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:79,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: usage_upload_pausing
    functionSourceFile: /src/curl/tests/libtest/cli_upload_pausing.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void usage_upload_pausing(const char *msg)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cgetopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:101,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:104,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:106,1
    - Dst: strcmp
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:108,1
    - Dst: usage_upload_pausing
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:111,1
    - Dst: usage_upload_pausing
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:117,1
    - Dst: usage_upload_pausing
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:125,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:130,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:131,1
    - Dst: curl_global_trace
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:135,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:137,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:139,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:143,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:144,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:148,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:149,1
    - Dst: curl_url_get
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:153,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:154,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:159,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:161,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:163,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:165,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:170,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:173,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:174,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:175,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:178,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:179,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:180,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:181,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:184,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:185,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:187,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:188,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:190,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:191,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:192,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:193,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:198,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:199,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:201,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:206,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:207,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:208,1
    - Dst: curl_free
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:209,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:211,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/cli_upload_pausing.c:212,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 99
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 215
    functionName: test_cli_upload_pausing
    functionSourceFile: /src/curl/tests/libtest/cli_upload_pausing.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_msnprintf
    - cgetopt
    - usage_upload_pausing
    - strcmp
    - curl_free
    - curl_global_cleanup
    - curl_slist_free_all
    - curl_url_get
    - curl_global_init
    - curl_url_cleanup
    - curl_easy_cleanup
    - curl_global_trace
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_append
    - curl_easy_setopt
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_cli_upload_pausing(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib651.c:41,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib651.c:45,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib651.c:46,1
    - Dst: curl_formadd
      Src: /src/curl/tests/libtest/lib651.c:51,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib651.c:56,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib651.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib651.c:60,1
    - Dst: curl_formfree
      Src: /src/curl/tests/libtest/lib651.c:61,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib651.c:62,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib651.c:67,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib651.c:70,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib651.c:73,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib651.c:76,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib651.c:79,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib651.c:84,1
    - Dst: curl_formfree
      Src: /src/curl/tests/libtest/lib651.c:87,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib651.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 92
    functionName: test_lib651
    functionSourceFile: /src/curl/tests/libtest/lib651.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_formadd
    - curl_mprintf
    - curl_easy_init
    - curl_formfree
    - curl_easy_perform
    - test_setopt
    - curl_easy_cleanup
    - memset
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib651(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - clientp
    - item
    argTypes:
    - void*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: closesocket_cb
    functionSourceFile: /src/curl/tests/libtest/lib1960.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int closesocket_cb(void *clientp, curl_socket_t item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - clientp
    - purpose
    - address
    argTypes:
    - void*
    - curlsocktype
    - struct curl_sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: socket_cb
    functionSourceFile: /src/curl/tests/libtest/lib1960.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t socket_cb(void *clientp,\n                               curlsocktype
      purpose,\n                               struct curl_sockaddr *address)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - clientp
    - curlfd
    - purpose
    argTypes:
    - void*
    - curl_socket_t
    - curlsocktype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: sockopt_cb
    functionSourceFile: /src/curl/tests/libtest/lib1960.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sockopt_cb(void *clientp,\n                      curl_socket_t
      curlfd,\n                      curlsocktype purpose)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: my_inet_pton
    functionSourceFile: /src/curl/tests/libtest/lib1960.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_inet_pton(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: my_inet_pton
    functionSourceFile: /src/curl/tests/libtest/lib1960.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_inet_pton(x, y, z)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/libtest/lib1960.c:81,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/libtest/lib1960.c:84,1
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1960.c:87,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1960.c:88,1
    - Dst: CURL_SOCKET
      Src: /src/curl/tests/libtest/lib1960.c:97,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1960.c:99,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1960.c:103,1
    - Dst: htons
      Src: /src/curl/tests/libtest/lib1960.c:105,1
    - Dst: my_inet_pton
      Src: /src/curl/tests/libtest/lib1960.c:107,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1960.c:108,1
    - Dst: connect
      Src: /src/curl/tests/libtest/lib1960.c:112,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1960.c:115,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1960.c:119,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1960.c:121,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:125,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:126,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:127,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:128,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:129,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:130,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:131,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:132,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:133,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1960.c:134,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1960.c:136,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1960.c:139,1
    - Dst: sclose
      Src: /src/curl/tests/libtest/lib1960.c:141,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1960.c:142,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 145
    functionName: test_lib1960
    functionSourceFile: /src/curl/tests/libtest/lib1960.c
    functionUses: 0
    functionsReached:
    - htons
    - curl_mfprintf
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curlx_str_number
    - my_inet_pton
    - CURL_SOCKET
    - strcmp
    - test_setopt
    - curl_easy_cleanup
    - memset
    - curl_global_init
    - connect
    - sclose
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1960(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1960.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: test_lib1960
    functionSourceFile: /src/curl/tests/libtest/lib1960.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1960(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1594.c:36,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib1594.c:38,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib1594.c:40,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1594.c:42,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1594.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1594.c:50,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1594.c:55,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1594.c:56,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1594.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 60
    functionName: test_lib1594
    functionSourceFile: /src/curl/tests/libtest/lib1594.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_mprintf
    - curl_slist_free_all
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1594(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/curl/tests/libtest/lib1522.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - clientp
    - curlfd
    - purpose
    argTypes:
    - void*
    - curl_socket_t
    - curlsocktype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: sockopt_callback
    functionSourceFile: /src/curl/tests/libtest/lib1522.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: "int sockopt_callback(void *clientp, curl_socket_t curlfd,\n                            curlsocktype
      purpose)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1522.c:54,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib1522.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1522.c:57,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1522.c:58,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1522.c:59,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1522.c:60,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1522.c:64,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1522.c:65,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1522.c:66,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1522.c:69,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1522.c:71,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1522.c:73,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/tests/libtest/lib1522.c:77,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1522.c:79,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1522.c:82,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1522.c:85,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib1522.c:90,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1522.c:93,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1522.c:94,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1522.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 98
    functionName: test_lib1522
    functionSourceFile: /src/curl/tests/libtest/lib1522.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - memset
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1522(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/libtest/lib758.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: t758_tag
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: char
    signature: char *t758_tag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib758.c:67,1
    - Dst: t758_tag
      Src: /src/curl/tests/libtest/lib758.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: t758_msg
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - t758_tag
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void t758_msg(const char *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib758.c:89,1
    - Dst: t758_tag
      Src: /src/curl/tests/libtest/lib758.c:90,1
    - Dst: memmove
      Src: /src/curl/tests/libtest/lib758.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - sockets
    - fd
    - mention
    argTypes:
    - struct t758_Sockets*
    - curl_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 100
    functionName: t758_removeFd
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - memmove
    - t758_tag
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: "void t758_removeFd(struct t758_Sockets *sockets, curl_socket_t fd,\n
      \                         int mention)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib758.c:113,1
    - Dst: t758_tag
      Src: /src/curl/tests/libtest/lib758.c:114,1
    - Dst: t758_removeFd
      Src: /src/curl/tests/libtest/lib758.c:115,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/libtest/lib758.c:120,1
    - Dst: curlx_realloc
      Src: /src/curl/tests/libtest/lib758.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - sockets
    - fd
    - what
    argTypes:
    - struct t758_Sockets*
    - curl_socket_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 141
    functionName: t758_addFd
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - t758_removeFd
    - curl_mfprintf
    - t758_tag
    - curlx_malloc
    - curlx_realloc
    linkageType: ''
    returnType: int
    signature: "int t758_addFd(struct t758_Sockets *sockets, curl_socket_t fd,\n                      const
      char *what)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:155,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:157,1
    - Dst: t758_addFd
      Src: /src/curl/tests/libtest/lib758.c:162,1
    - Dst: t758_addFd
      Src: /src/curl/tests/libtest/lib758.c:166,1
    - Dst: t758_removeFd
      Src: /src/curl/tests/libtest/lib758.c:170,1
    - Dst: t758_removeFd
      Src: /src/curl/tests/libtest/lib758.c:171,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - curl
    - s
    - action
    - userp
    - socketp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 175
    functionName: t758_curlSocketCallback
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - t758_removeFd
    - t758_msg
    - t758_addFd
    linkageType: ''
    returnType: int
    signature: "int t758_curlSocketCallback(CURL *curl, curl_socket_t s, int action,\n
      \                                  void *userp, void *socketp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:186,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:188,1
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib758.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - userp
    argTypes:
    - CURLM*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 199
    functionName: t758_curlTimerCallback
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - curlx_now
    - t758_msg
    linkageType: ''
    returnType: int
    signature: int t758_curlTimerCallback(CURLM *multi, long timeout_ms, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_ex_data
      Src: /src/curl/tests/libtest/lib758.c:205,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/curl/tests/libtest/lib758.c:206,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:210,1
    - Dst: SSL_set_retry_verify
      Src: /src/curl/tests/libtest/lib758.c:211,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:214,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:218,1
    - Dst: SSL_set_retry_verify
      Src: /src/curl/tests/libtest/lib758.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 221
    functionName: t758_cert_verify_callback
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - t758_msg
    - SSL_set_retry_verify
    - X509_STORE_CTX_get_ex_data
    - SSL_get_ex_data_X509_STORE_CTX_idx
    linkageType: ''
    returnType: int
    signature: int t758_cert_verify_callback(X509_STORE_CTX *ctx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/curl/tests/libtest/lib758.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - curl
    - ssl_ctx
    - clientp
    argTypes:
    - CURL*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: t758_set_ssl_ctx_callback
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cert_verify_callback
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode t758_set_ssl_ctx_callback(CURL *curl, void *ssl_ctx,\n                                          void
      *clientp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_info_read
      Src: /src/curl/tests/libtest/lib758.c:241,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib758.c:252,1
    - Dst: t758_tag
      Src: /src/curl/tests/libtest/lib758.c:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - multi
    - success
    argTypes:
    - CURLM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: t758_checkForCompletion
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - curl_multi_info_read
    - t758_tag
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: int t758_checkForCompletion(CURLM *multi, int *success)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/tests/libtest/lib758.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: t758_getMicroSecondTimeout
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - curlx_now
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t t758_getMicroSecondTimeout(struct curltime *timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FD_SET
      Src: /src/curl/tests/libtest/lib758.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sockets
    - fdset
    - maxFd
    argTypes:
    - struct t758_Sockets*
    - fd_set*
    - curl_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: t758_updateFdSet
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - FD_SET
    linkageType: ''
    returnType: void
    signature: "void t758_updateFdSet(struct t758_Sockets *sockets, fd_set *fdset,\n
      \                            curl_socket_t *maxFd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/tests/libtest/lib758.c:293,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib758.c:296,1
    - Dst: t758_tag
      Src: /src/curl/tests/libtest/lib758.c:297,1
    - Dst: curl_multi_strerror
      Src: /src/curl/tests/libtest/lib758.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - multi
    - s
    - evBitmask
    - info
    argTypes:
    - CURLM*
    - curl_socket_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: t758_saction
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - t758_tag
    - curl_mfprintf
    - curl_multi_socket_action
    - curl_multi_strerror
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode t758_saction(CURLM *multi, curl_socket_t s,\n                              int
      evBitmask, const char *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FD_ISSET
      Src: /src/curl/tests/libtest/lib758.c:312,1
    - Dst: t758_saction
      Src: /src/curl/tests/libtest/lib758.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - multi
    - sockets
    - fdset
    - evBitmask
    - name
    argTypes:
    - CURLM*
    - struct t758_Sockets*
    - fd_set*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: t758_checkFdSet
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - t758_saction
    - FD_ISSET
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode t758_checkFdSet(CURLM *multi, struct t758_Sockets *sockets,\n
      \                                fd_set *fdset, int evBitmask,\n                                 const
      char *name)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/libtest/lib758.c:333,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:337,1
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib758.c:338,1
    - Dst: curl_global_sslset
      Src: /src/curl/tests/libtest/lib758.c:340,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:341,1
    - Dst: res_global_init
      Src: /src/curl/tests/libtest/lib758.c:346,1
    - Dst: curl_global_trace
      Src: /src/curl/tests/libtest/lib758.c:350,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib758.c:352,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib758.c:355,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib758.c:356,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib758.c:357,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib758.c:360,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib758.c:363,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib758.c:365,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib758.c:367,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib758.c:369,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib758.c:370,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib758.c:372,1
    - Dst: multi_setopt
      Src: /src/curl/tests/libtest/lib758.c:373,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib758.c:375,1
    - Dst: t758_saction
      Src: /src/curl/tests/libtest/lib758.c:377,1
    - Dst: t758_checkForCompletion
      Src: /src/curl/tests/libtest/lib758.c:381,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:391,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:396,1
    - Dst: t758_saction
      Src: /src/curl/tests/libtest/lib758.c:401,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:402,1
    - Dst: curl_easy_pause
      Src: /src/curl/tests/libtest/lib758.c:406,1
    - Dst: t758_saction
      Src: /src/curl/tests/libtest/lib758.c:407,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:408,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:413,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:417,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib758.c:419,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib758.c:420,1
    - Dst: t758_updateFdSet
      Src: /src/curl/tests/libtest/lib758.c:421,1
    - Dst: t758_updateFdSet
      Src: /src/curl/tests/libtest/lib758.c:422,1
    - Dst: curlx_sztosi
      Src: /src/curl/tests/libtest/lib758.c:425,1
    - Dst: t758_getMicroSecondTimeout
      Src: /src/curl/tests/libtest/lib758.c:425,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib758.c:434,1
    - Dst: t758_checkFdSet
      Src: /src/curl/tests/libtest/lib758.c:437,1
    - Dst: t758_checkFdSet
      Src: /src/curl/tests/libtest/lib758.c:442,1
    - Dst: t758_getMicroSecondTimeout
      Src: /src/curl/tests/libtest/lib758.c:449,1
    - Dst: t758_saction
      Src: /src/curl/tests/libtest/lib758.c:451,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib758.c:457,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:460,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:466,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:473,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/tests/libtest/lib758.c:474,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib758.c:475,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib758.c:476,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib758.c:477,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib758.c:480,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib758.c:481,1
    - Dst: t758_msg
      Src: /src/curl/tests/libtest/lib758.c:482,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 126
    argCount: 3
    argNames:
    - URL
    - timer_fail_at
    - socket_fail_at
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 485
    functionName: t758_one
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - curlx_sztosi
    - curl_multi_remove_handle
    - t758_msg
    - t758_checkForCompletion
    - test_setopt
    - multi_setopt
    - curl_global_cleanup
    - select_test
    - t758_checkFdSet
    - easy_init
    - easy_setopt
    - curl_global_sslset
    - FD_ZERO
    - curlx_free
    - curl_easy_cleanup
    - memset
    - multi_init
    - curl_easy_pause
    - curl_global_trace
    - t758_updateFdSet
    - t758_saction
    - start_test_timing
    - res_global_init
    - abort_on_test_timeout
    - t758_getMicroSecondTimeout
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode t758_one(const char *URL, int timer_fail_at,\n                         int
      socket_fail_at)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: t758_one
      Src: /src/curl/tests/libtest/lib758.c:492,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib758.c:494,1
    - Dst: t758_tag
      Src: /src/curl/tests/libtest/lib758.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 487
    functionDepth: 5
    functionLinenumber: 487
    functionLinenumberEnd: 497
    functionName: test_lib758
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached:
    - t758_tag
    - curl_mfprintf
    - t758_one
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib758(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 504
    functionName: test_lib758
    functionSourceFile: /src/curl/tests/libtest/lib758.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib758(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1550.c:37,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/libtest/lib1550.c:38,1
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/lib1550.c:41,1
    - Dst: curl_multi_setopt
      Src: /src/curl/tests/libtest/lib1550.c:42,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib1550.c:43,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1550.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: test_lib1550
    functionSourceFile: /src/curl/tests/libtest/lib1550.c
    functionUses: 0
    functionsReached:
    - curl_multi_setopt
    - curl_multi_init
    - global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1550(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2306.c:32,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib2306.c:34,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2306.c:35,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2306.c:36,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2306.c:37,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib2306.c:42,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2306.c:43,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2306.c:46,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2306.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 49
    functionName: test_lib2306
    functionSourceFile: /src/curl/tests/libtest/lib2306.c
    functionUses: 0
    functionsReached:
    - easy_setopt
    - easy_init
    - curl_easy_perform
    - curl_easy_cleanup
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2306(const char *URL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2302.c:47,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2302.c:49,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2302.c:51,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2302.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - wd
    argTypes:
    - struct ws_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: flush_data
    functionSourceFile: /src/curl/tests/libtest/lib2302.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void flush_data(struct ws_data *wd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flush_data
      Src: /src/curl/tests/libtest/lib2302.c:65,1
    - Dst: memcpy
      Src: /src/curl/tests/libtest/lib2302.c:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - wd
    - buf
    - blen
    - meta
    argTypes:
    - struct ws_data*
    - char*
    - size_t
    - struct curl_ws_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: add_data
    functionSourceFile: /src/curl/tests/libtest/lib2302.c
    functionUses: 0
    functionsReached:
    - flush_data
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t add_data(struct ws_data *wd, const char *buf, size_t blen,\n
      \                      const struct curl_ws_frame *meta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_meta
      Src: /src/curl/tests/libtest/lib2302.c:86,1
    - Dst: add_data
      Src: /src/curl/tests/libtest/lib2302.c:87,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2302.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - p
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: t2302_write_cb
    functionSourceFile: /src/curl/tests/libtest/lib2302.c
    functionUses: 0
    functionsReached:
    - add_data
    - curl_mfprintf
    - curl_ws_meta
    linkageType: ''
    returnType: size_t
    signature: size_t t2302_write_cb(char *buffer, size_t size, size_t nitems, void
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2302.c:102,1
    - Dst: memset
      Src: /src/curl/tests/libtest/lib2302.c:104,1
    - Dst: curlx_calloc
      Src: /src/curl/tests/libtest/lib2302.c:105,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2302.c:107,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2302.c:111,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2302.c:113,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2302.c:114,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2302.c:115,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2302.c:116,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2302.c:117,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2302.c:118,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2302.c:120,1
    - Dst: flush_data
      Src: /src/curl/tests/libtest/lib2302.c:121,1
    - Dst: curlx_free
      Src: /src/curl/tests/libtest/lib2302.c:123,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2302.c:125,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib2302.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 132
    functionName: test_lib2302
    functionSourceFile: /src/curl/tests/libtest/lib2302.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - flush_data
    - curlx_free
    - curlx_calloc
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - memset
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2302(const char *URL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib1567.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1567.c:35,1
    - Dst: curl_url
      Src: /src/curl/tests/libtest/lib1567.c:37,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1567.c:39,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1567.c:40,1
    - Dst: curl_url_set
      Src: /src/curl/tests/libtest/lib1567.c:41,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib1567.c:42,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1567.c:43,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1567.c:47,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1567.c:48,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/libtest/lib1567.c:53,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1567.c:54,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1567.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 57
    functionName: test_lib1567
    functionSourceFile: /src/curl/tests/libtest/lib1567.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_url_cleanup
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1567(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nitems
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: t1975_read_cb
    functionSourceFile: /src/curl/tests/libtest/lib1975.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t1975_read_cb(char *ptr, size_t size, size_t nitems, void *userp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/libtest/lib1975.c:42,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1975.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib1975.c:47,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib1975.c:49,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1975.c:50,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1975.c:54,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1975.c:55,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1975.c:56,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1975.c:57,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1975.c:58,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1975.c:59,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1975.c:60,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1975.c:61,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1975.c:64,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1975.c:66,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/libtest/lib1975.c:68,1
    - Dst: test_setopt
      Src: /src/curl/tests/libtest/lib1975.c:70,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib1975.c:72,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1975.c:76,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/libtest/lib1975.c:77,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib1975.c:78,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib1975.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 82
    functionName: test_lib1975
    functionSourceFile: /src/curl/tests/libtest/lib1975.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - test_setopt
    - curl_slist_append
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib1975(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - buffer
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: cb_curl
    functionSourceFile: /src/curl/tests/libtest/lib2308.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cb_curl(char *buffer, size_t size, size_t nmemb, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2308.c:40,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2308.c:41,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2308.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2308.c:43,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2308.c:44,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2308.c:45,1
    - Dst: fflush
      Src: /src/curl/tests/libtest/lib2308.c:46,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2308.c:47,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2308.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: test_lib2308
    functionSourceFile: /src/curl/tests/libtest/lib2308.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_mprintf
    - fflush
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2308(const char *URL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_test_timing
      Src: /src/curl/tests/libtest/lib564.c:38,1
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib564.c:40,1
    - Dst: easy_init
      Src: /src/curl/tests/libtest/lib564.c:42,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib564.c:44,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib564.c:45,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib564.c:46,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib564.c:47,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib564.c:48,1
    - Dst: easy_setopt
      Src: /src/curl/tests/libtest/lib564.c:49,1
    - Dst: multi_init
      Src: /src/curl/tests/libtest/lib564.c:51,1
    - Dst: multi_add_handle
      Src: /src/curl/tests/libtest/lib564.c:53,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/libtest/lib564.c:55,1
    - Dst: multi_perform
      Src: /src/curl/tests/libtest/lib564.c:65,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib564.c:67,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib564.c:72,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib564.c:73,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/libtest/lib564.c:74,1
    - Dst: multi_fdset
      Src: /src/curl/tests/libtest/lib564.c:76,1
    - Dst: select_test
      Src: /src/curl/tests/libtest/lib564.c:80,1
    - Dst: abort_on_test_timeout
      Src: /src/curl/tests/libtest/lib564.c:82,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib564.c:89,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/libtest/lib564.c:90,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib564.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 94
    functionName: test_lib564
    functionSourceFile: /src/curl/tests/libtest/lib564.c
    functionUses: 0
    functionsReached:
    - multi_add_handle
    - easy_setopt
    - curl_mfprintf
    - multi_fdset
    - easy_init
    - start_test_timing
    - multi_perform
    - FD_ZERO
    - curl_easy_cleanup
    - global_init
    - abort_on_test_timeout
    - multi_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - select_test
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib564(const char *URL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - buffer
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: cb_ignore
    functionSourceFile: /src/curl/tests/libtest/lib2309.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cb_ignore(char *buffer, size_t size, size_t nmemb, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/libtest/lib2309.c:41,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/libtest/lib2309.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2309.c:44,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2309.c:45,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2309.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2309.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2309.c:48,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/libtest/lib2309.c:49,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/libtest/lib2309.c:51,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/libtest/lib2309.c:53,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/libtest/lib2309.c:54,1
    - Dst: fflush
      Src: /src/curl/tests/libtest/lib2309.c:55,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2309.c:56,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/libtest/lib2309.c:58,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/libtest/lib2309.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: test_lib2309
    functionSourceFile: /src/curl/tests/libtest/lib2309.c
    functionUses: 0
    functionsReached:
    - curl_easy_duphandle
    - curl_easy_init
    - curl_easy_perform
    - curl_mprintf
    - fflush
    - curl_easy_cleanup
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_lib2309(const char *URL)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: parse_cert_parameter
      Src: /src/curl/tests/tunit/tool1394.c:76,1
    - Dst: strcmp
      Src: /src/curl/tests/tunit/tool1394.c:79,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1394.c:80,1
    - Dst: fail
      Src: /src/curl/tests/tunit/tool1394.c:82,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1394.c:86,1
    - Dst: fail
      Src: /src/curl/tests/tunit/tool1394.c:88,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1394.c:92,1
    - Dst: fail
      Src: /src/curl/tests/tunit/tool1394.c:94,1
    - Dst: strcmp
      Src: /src/curl/tests/tunit/tool1394.c:98,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1394.c:99,1
    - Dst: fail
      Src: /src/curl/tests/tunit/tool1394.c:101,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1394.c:105,1
    - Dst: fail
      Src: /src/curl/tests/tunit/tool1394.c:107,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1394.c:111,1
    - Dst: fail
      Src: /src/curl/tests/tunit/tool1394.c:113,1
    - Dst: curlx_free
      Src: /src/curl/tests/tunit/tool1394.c:116,1
    - Dst: curlx_free
      Src: /src/curl/tests/tunit/tool1394.c:118,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 122
    functionName: test_tool1394
    functionSourceFile: /src/curl/tests/tunit/tool1394.c
    functionUses: 0
    functionsReached:
    - parse_cert_parameter
    - curl_mprintf
    - curlx_free
    - strcmp
    - fail
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_tool1394(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: struct
    functionSourceFile: /src/curl/tests/tunit/tool1394.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UNITTEST_BEGIN_SIMPLE
    signature: UNITTEST_BEGIN_SIMPLE struct
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetSizeParameter
      Src: /src/curl/tests/tunit/tool1623.c:104,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1623.c:106,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1623.c:109,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1623.c:114,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1623.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 125
    functionName: test_tool1623
    functionSourceFile: /src/curl/tests/tunit/tool1623.c
    functionUses: 0
    functionsReached:
    - GetSizeParameter
    - curl_mprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_tool1623(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/tunit/tool1604.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - len
    - flags
    argTypes:
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: getflagstr
    functionSourceFile: /src/curl/tests/tunit/tool1604.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: void getflagstr(char *buf, size_t len, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/tunit/tool1604.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - len
    - cc
    argTypes:
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: getcurlcodestr
    functionSourceFile: /src/curl/tests/tunit/tool1604.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: void getcurlcodestr(char *buf, size_t len, int cc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/tunit/tool1604.c:180,1
    - Dst: sanitize_file_name
      Src: /src/curl/tests/tunit/tool1604.c:190,1
    - Dst: strcmp
      Src: /src/curl/tests/tunit/tool1604.c:195,1
    - Dst: curlx_free
      Src: /src/curl/tests/tunit/tool1604.c:196,1
    - Dst: getflagstr
      Src: /src/curl/tests/tunit/tool1604.c:200,1
    - Dst: abort_unless
      Src: /src/curl/tests/tunit/tool1604.c:201,1
    - Dst: getcurlcodestr
      Src: /src/curl/tests/tunit/tool1604.c:202,1
    - Dst: abort_unless
      Src: /src/curl/tests/tunit/tool1604.c:203,1
    - Dst: getcurlcodestr
      Src: /src/curl/tests/tunit/tool1604.c:204,1
    - Dst: abort_unless
      Src: /src/curl/tests/tunit/tool1604.c:205,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/tunit/tool1604.c:208,1
    - Dst: curlx_free
      Src: /src/curl/tests/tunit/tool1604.c:224,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/tunit/tool1604.c:228,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 232
    functionName: test_tool1604
    functionSourceFile: /src/curl/tests/tunit/tool1604.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - curlx_free
    - strcmp
    - sanitize_file_name
    - getflagstr
    - abort_unless
    - getcurlcodestr
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_tool1604(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/curl/tests/tunit/tool1622.c:66,1
    - Dst: timebuf
      Src: /src/curl/tests/tunit/tool1622.c:68,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1622.c:69,1
    - Dst: fail_unless
      Src: /src/curl/tests/tunit/tool1622.c:70,1
    - Dst: strlen
      Src: /src/curl/tests/tunit/tool1622.c:70,1
    - Dst: puts
      Src: /src/curl/tests/tunit/tool1622.c:74,1
    - Dst: max5data
      Src: /src/curl/tests/tunit/tool1622.c:76,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1622.c:77,1
    - Dst: fail_unless
      Src: /src/curl/tests/tunit/tool1622.c:78,1
    - Dst: strlen
      Src: /src/curl/tests/tunit/tool1622.c:78,1
    - Dst: max5data
      Src: /src/curl/tests/tunit/tool1622.c:84,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1622.c:85,1
    - Dst: fail_unless
      Src: /src/curl/tests/tunit/tool1622.c:86,1
    - Dst: strlen
      Src: /src/curl/tests/tunit/tool1622.c:86,1
    - Dst: timebuf
      Src: /src/curl/tests/tunit/tool1622.c:89,1
    - Dst: fail_unless
      Src: /src/curl/tests/tunit/tool1622.c:90,1
    - Dst: strcmp
      Src: /src/curl/tests/tunit/tool1622.c:90,1
    - Dst: max5data
      Src: /src/curl/tests/tunit/tool1622.c:93,1
    - Dst: fail_unless
      Src: /src/curl/tests/tunit/tool1622.c:94,1
    - Dst: strcmp
      Src: /src/curl/tests/tunit/tool1622.c:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 98
    functionName: test_tool1622
    functionSourceFile: /src/curl/tests/tunit/tool1622.c
    functionUses: 0
    functionsReached:
    - timebuf
    - curl_mprintf
    - fail_unless
    - strcmp
    - puts
    - strlen
    - max5data
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_tool1622(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/curl/tests/tunit/tool1720.c:42,1
    - Dst: create_dir_hierarchy_trace_dynres
      Src: /src/curl/tests/tunit/tool1720.c:59,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/tunit/tool1720.c:61,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/tunit/tool1720.c:63,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/tests/tunit/tool1720.c:65,1
    - Dst: create_dir_hierarchy
      Src: /src/curl/tests/tunit/tool1720.c:66,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/tunit/tool1720.c:67,1
    - Dst: strcmp
      Src: /src/curl/tests/tunit/tool1720.c:70,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1720.c:71,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/tunit/tool1720.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 79
    functionName: test_tool1720
    functionSourceFile: /src/curl/tests/tunit/tool1720.c
    functionUses: 0
    functionsReached:
    - defined
    - curlx_dyn_init
    - CURL_ARRAYSIZE
    - curl_mprintf
    - curlx_dyn_free
    - create_dir_hierarchy_trace_dynres
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - strcmp
    - create_dir_hierarchy
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_tool1720(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/curl/tests/tunit/tool1621.c:40,1
    - Dst: defined
      Src: /src/curl/tests/tunit/tool1621.c:46,1
    - Dst: stripcredentials
      Src: /src/curl/tests/tunit/tool1621.c:72,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/tunit/tool1621.c:74,1
    - Dst: fail_if
      Src: /src/curl/tests/tunit/tool1621.c:78,1
    - Dst: strcmp
      Src: /src/curl/tests/tunit/tool1621.c:78,1
    - Dst: curl_free
      Src: /src/curl/tests/tunit/tool1621.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 84
    functionName: test_tool1621
    functionSourceFile: /src/curl/tests/tunit/tool1621.c
    functionUses: 0
    functionsReached:
    - defined
    - fail_if
    - curl_mprintf
    - stripcredentials
    - strcmp
    - curl_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_tool1621(const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/tests/server/first.c:35,1
    - Dst: strcmp
      Src: /src/curl/tests/server/first.c:42,1
    - Dst: fprintf
      Src: /src/curl/tests/server/first.c:49,1
    - Dst: win32_init
      Src: /src/curl/tests/server/first.c:54,1
    - Dst: entry_func
      Src: /src/curl/tests/server/first.c:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 59
    functionName: main
    functionSourceFile: /src/curl/tests/server/first.c
    functionUses: 0
    functionsReached:
    - strcmp
    - win32_init
    - entry_func
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p1
    - ','
    - p2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: CURL_STRNICMP
    functionSourceFile: /src/curl/tests/server/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_STRNICMP(p1, p2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p1
    - ','
    - p2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: CURL_STRNICMP
    functionSourceFile: /src/curl/tests/server/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_STRNICMP(p1, p2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p1
    - ','
    - p2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: CURL_STRNICMP
    functionSourceFile: /src/curl/tests/server/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_STRNICMP(p1, p2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p1
    - ','
    - p2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: CURL_STRNICMP
    functionSourceFile: /src/curl/tests/server/first.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_STRNICMP(p1, p2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: EAT_SPACE
    functionSourceFile: /src/curl/tests/server/getpart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EAT_SPACE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: EAT_WORD
    functionSourceFile: /src/curl/tests/server/getpart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EAT_WORD(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: show
    functionSourceFile: /src/curl/tests/server/getpart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: show(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: show
    functionSourceFile: /src/curl/tests/server/getpart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: show(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buffer
    - bytestocheck
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: line_length
    functionSourceFile: /src/curl/tests/server/getpart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t line_length(const char *buffer, int bytestocheck)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/tests/server/getpart.c:87,1
    - Dst: curlx_uztosi
      Src: /src/curl/tests/server/getpart.c:94,1
    - Dst: fgets
      Src: /src/curl/tests/server/getpart.c:96,1
    - Dst: line_length
      Src: /src/curl/tests/server/getpart.c:101,1
    - Dst: realloc
      Src: /src/curl/tests/server/getpart.c:108,1
    - Dst: memset
      Src: /src/curl/tests/server/getpart.c:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - buffer
    - bufsize
    - length
    - stream
    argTypes:
    - char**
    - size_t*
    - size_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 117
    functionName: readline
    functionSourceFile: /src/curl/tests/server/getpart.c
    functionUses: 0
    functionsReached:
    - curlx_uztosi
    - fgets
    - line_length
    - realloc
    - calloc
    - memset
    linkageType: ''
    returnType: int
    signature: "int readline(char **buffer, size_t *bufsize, size_t *length,\n                    FILE
      *stream)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/curl/tests/server/getpart.c:170,1
    - Dst: memcpy
      Src: /src/curl/tests/server/getpart.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - dst_buf
    - dst_len
    - dst_alloc
    - src_buf
    - src_len
    - src_b64
    argTypes:
    - char**
    - size_t*
    - size_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 184
    functionName: appenddata
    functionSourceFile: /src/curl/tests/server/getpart.c
    functionUses: 0
    functionsReached:
    - memcpy
    - realloc
    linkageType: ''
    returnType: int
    signature: "int appenddata(char **dst_buf,      /* dest buffer */\n                      size_t
      *dst_len,     /* dest buffer data length */\n                      size_t *dst_alloc,
      \  /* dest buffer allocated size */\n                      const char *src_buf,
      /* source buffer */\n                      size_t src_len,      /* source buffer
      length */\n                      int src_b64)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_base64_decode
      Src: /src/curl/tests/server/getpart.c:197,1
    - Dst: free
      Src: /src/curl/tests/server/getpart.c:208,1
    - Dst: memcpy
      Src: /src/curl/tests/server/getpart.c:214,1
    - Dst: free
      Src: /src/curl/tests/server/getpart.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 221
    functionName: decodedata
    functionSourceFile: /src/curl/tests/server/getpart.c
    functionUses: 0
    functionsReached:
    - curlx_base64_decode
    - memcpy
    - free
    linkageType: ''
    returnType: int
    signature: "int decodedata(char **buf,  /* dest buffer */\n                      size_t
      *len)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/tests/server/getpart.c:277,1
    - Dst: readline
      Src: /src/curl/tests/server/getpart.c:284,1
    - Dst: EAT_SPACE
      Src: /src/curl/tests/server/getpart.c:287,1
    - Dst: show
      Src: /src/curl/tests/server/getpart.c:291,1
    - Dst: appenddata
      Src: /src/curl/tests/server/getpart.c:292,1
    - Dst: EAT_WORD
      Src: /src/curl/tests/server/getpart.c:308,1
    - Dst: memcpy
      Src: /src/curl/tests/server/getpart.c:314,1
    - Dst: strcmp
      Src: /src/curl/tests/server/getpart.c:317,1
    - Dst: decodedata
      Src: /src/curl/tests/server/getpart.c:324,1
    - Dst: strcmp
      Src: /src/curl/tests/server/getpart.c:333,1
    - Dst: decodedata
      Src: /src/curl/tests/server/getpart.c:340,1
    - Dst: strcmp
      Src: /src/curl/tests/server/getpart.c:349,1
    - Dst: EAT_WORD
      Src: /src/curl/tests/server/getpart.c:364,1
    - Dst: memcpy
      Src: /src/curl/tests/server/getpart.c:370,1
    - Dst: show
      Src: /src/curl/tests/server/getpart.c:375,1
    - Dst: EAT_SPACE
      Src: /src/curl/tests/server/getpart.c:381,1
    - Dst: memcpy
      Src: /src/curl/tests/server/getpart.c:390,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/getpart.c:395,1
    - Dst: strlen
      Src: /src/curl/tests/server/getpart.c:395,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/getpart.c:401,1
    - Dst: strlen
      Src: /src/curl/tests/server/getpart.c:401,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/getpart.c:407,1
    - Dst: strlen
      Src: /src/curl/tests/server/getpart.c:407,1
    - Dst: strcmp
      Src: /src/curl/tests/server/getpart.c:409,1
    - Dst: strcmp
      Src: /src/curl/tests/server/getpart.c:409,1
    - Dst: strstr
      Src: /src/curl/tests/server/getpart.c:412,1
    - Dst: strstr
      Src: /src/curl/tests/server/getpart.c:416,1
    - Dst: show
      Src: /src/curl/tests/server/getpart.c:417,1
    - Dst: show
      Src: /src/curl/tests/server/getpart.c:426,1
    - Dst: appenddata
      Src: /src/curl/tests/server/getpart.c:427,1
    - Dst: free
      Src: /src/curl/tests/server/getpart.c:434,1
    - Dst: free
      Src: /src/curl/tests/server/getpart.c:440,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 134
    argCount: 5
    argNames:
    - outbuf
    - outlen
    - main
    - sub
    - stream
    argTypes:
    - char**
    - size_t*
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 447
    functionName: getpart
    functionSourceFile: /src/curl/tests/server/getpart.c
    functionUses: 0
    functionsReached:
    - EAT_WORD
    - memcpy
    - strstr
    - EAT_SPACE
    - curlx_strcopy
    - free
    - strcmp
    - readline
    - malloc
    - strlen
    - decodedata
    - appenddata
    - show
    linkageType: ''
    returnType: int
    signature: "int getpart(char **outbuf, size_t *outlen,\n            const char
      *main, const char *sub, FILE *stream)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/sws.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 184
    functionName: data_to_hex
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *data_to_hex(const char *data, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: socket_domain_is_ip
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool socket_domain_is_ip(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/sws.c:209,1
    - Dst: fgets
      Src: /src/curl/tests/server/sws.c:213,1
    - Dst: sscanf
      Src: /src/curl/tests/server/sws.c:214,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:215,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/sws.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct sws_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 222
    functionName: parse_cmdfile
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - fgets
    - logmsg
    - curlx_fopen
    - sscanf
    linkageType: ''
    returnType: int
    signature: int parse_cmdfile(struct sws_httprequest *req)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: test2fopen
      Src: /src/curl/tests/server/sws.c:230,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:237,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:238,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:239,1
    - Dst: getpart
      Src: /src/curl/tests/server/sws.c:250,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/sws.c:251,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:253,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:262,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:262,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:263,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:266,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:266,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:267,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:271,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:271,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:272,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:275,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:276,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:277,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:280,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:280,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:281,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:284,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:284,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:285,1
    - Dst: sscanf
      Src: /src/curl/tests/server/sws.c:288,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:289,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:292,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:292,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:293,1
    - Dst: sscanf
      Src: /src/curl/tests/server/sws.c:296,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:297,1
    - Dst: sscanf
      Src: /src/curl/tests/server/sws.c:300,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:301,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:305,1
    - Dst: strchr
      Src: /src/curl/tests/server/sws.c:308,1
    - Dst: strchr
      Src: /src/curl/tests/server/sws.c:310,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:325,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct sws_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 329
    functionName: sws_parse_servercmd
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - strlen
    - logmsg
    - curlx_strerror
    - test2fopen
    - free
    - getpart
    - sscanf
    - strchr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int sws_parse_servercmd(struct sws_httprequest *req)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:338,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:344,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:352,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:353,1
    - Dst: sscanf
      Src: /src/curl/tests/server/sws.c:364,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:365,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:365,1
    - Dst: sscanf
      Src: /src/curl/tests/server/sws.c:367,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:369,1
    - Dst: ISSPACE
      Src: /src/curl/tests/server/sws.c:373,1
    - Dst: ISSPACE
      Src: /src/curl/tests/server/sws.c:378,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:401,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:402,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:405,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:407,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:408,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:413,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:414,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/sws.c:422,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:433,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:436,1
    - Dst: sscanf
      Src: /src/curl/tests/server/sws.c:445,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:449,1
    - Dst: ISXDIGIT
      Src: /src/curl/tests/server/sws.c:462,1
    - Dst: curlx_str_hex
      Src: /src/curl/tests/server/sws.c:464,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:470,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:472,1
    - Dst: strchr
      Src: /src/curl/tests/server/sws.c:479,1
    - Dst: ISDIGIT
      Src: /src/curl/tests/server/sws.c:481,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/sws.c:483,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:485,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:489,1
    - Dst: parse_cmdfile
      Src: /src/curl/tests/server/sws.c:496,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:499,1
    - Dst: sws_parse_servercmd
      Src: /src/curl/tests/server/sws.c:503,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:507,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:514,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:517,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:521,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/sws.c:524,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:526,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:529,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:532,1
    - Dst: sws_parse_servercmd
      Src: /src/curl/tests/server/sws.c:537,1
    - Dst: strrchr
      Src: /src/curl/tests/server/sws.c:545,1
    - Dst: ISDIGIT
      Src: /src/curl/tests/server/sws.c:551,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/sws.c:555,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:565,1
    - Dst: CURL_STRNICMP
      Src: /src/curl/tests/server/sws.c:585,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:591,1
    - Dst: curlx_str_numblanks
      Src: /src/curl/tests/server/sws.c:592,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:594,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:603,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:605,1
    - Dst: CURL_STRNICMP
      Src: /src/curl/tests/server/sws.c:607,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:608,1
    - Dst: CURL_STRNICMP
      Src: /src/curl/tests/server/sws.c:612,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:613,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:617,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:621,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:625,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:626,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:628,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:630,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:633,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:638,1
    - Dst: strchr
      Src: /src/curl/tests/server/sws.c:644,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:650,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:653,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:656,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:660,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:669,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:675,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:678,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:682,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:684,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:688,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:692,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:695,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:700,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:702,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:707,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:709,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:709,1
    - Dst: strncmp
      Src: /src/curl/tests/server/sws.c:710,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:710,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:713,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:721,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:725,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:727,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:733,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 243
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct sws_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 740
    functionName: sws_ProcessRequest
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - strstr
    - CURL_STRNICMP
    - curlx_str_hex
    - ISSPACE
    - logmsg
    - ISXDIGIT
    - parse_cmdfile
    - curlx_str_number
    - sws_parse_servercmd
    - strrchr
    - curlx_str_numblanks
    - sscanf
    - strchr
    - strlen
    - strncmp
    - ISDIGIT
    linkageType: ''
    returnType: int
    signature: int sws_ProcessRequest(struct sws_httprequest *req)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/sws.c:753,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/sws.c:762,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:766,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:767,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:768,1
    - Dst: fwrite
      Src: /src/curl/tests/server/sws.c:774,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:784,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:786,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:787,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:788,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/sws.c:794,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:796,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:797,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - reqbuf
    - totalsize
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 798
    functionName: sws_storerequest
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - logmsg
    - curlx_strerror
    - fwrite
    - curlx_fopen
    - snprintf
    linkageType: ''
    returnType: void
    signature: void sws_storerequest(const char *reqbuf, size_t totalsize)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/sws.c:820,1
    - Dst: swrite
      Src: /src/curl/tests/server/sws.c:830,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:834,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:853,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:858,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sws.c:859,1
    - Dst: our_getpid
      Src: /src/curl/tests/server/sws.c:860,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:861,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sws.c:863,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sws.c:865,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:872,1
    - Dst: strlen
      Src: /src/curl/tests/server/sws.c:877,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sws.c:887,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sws.c:889,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:891,1
    - Dst: test2fopen
      Src: /src/curl/tests/server/sws.c:893,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:896,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:897,1
    - Dst: getpart
      Src: /src/curl/tests/server/sws.c:901,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/sws.c:902,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:904,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:911,1
    - Dst: test2fopen
      Src: /src/curl/tests/server/sws.c:916,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:919,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:920,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:921,1
    - Dst: getpart
      Src: /src/curl/tests/server/sws.c:926,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/sws.c:927,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:929,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:930,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:937,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:938,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:945,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:947,1
    - Dst: strstr
      Src: /src/curl/tests/server/sws.c:949,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:951,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/sws.c:956,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:959,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:960,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:961,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:962,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:963,1
    - Dst: swrite
      Src: /src/curl/tests/server/sws.c:977,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/server/sws.c:980,1
    - Dst: fwrite
      Src: /src/curl/tests/server/sws.c:988,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:998,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/server/sws.c:1004,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/sws.c:1010,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1012,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:1013,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:1016,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:1017,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1022,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:1027,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:1028,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1032,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:1034,1
    - Dst: sscanf
      Src: /src/curl/tests/server/sws.c:1042,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sws.c:1043,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1044,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/server/sws.c:1048,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1052,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:1053,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1058,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1061,1
    - Dst: strchr
      Src: /src/curl/tests/server/sws.c:1063,1
    - Dst: free
      Src: /src/curl/tests/server/sws.c:1070,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 186
    argCount: 2
    argNames:
    - sock
    - req
    argTypes:
    - curl_socket_t
    - struct sws_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 1077
    functionName: sws_send_doc
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - swrite
    - strstr
    - strlen
    - logmsg
    - curlx_strerror
    - test2fopen
    - free
    - curlx_fopen
    - curlx_wait_ms
    - fwrite
    - strcmp
    - our_getpid
    - getpart
    - sscanf
    - strchr
    - snprintf
    linkageType: ''
    returnType: int
    signature: int sws_send_doc(curl_socket_t sock, struct sws_httprequest *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct sws_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1104
    functionName: init_httprequest
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_httprequest(struct sws_httprequest *req)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1117,1
    - Dst: sws_send_doc
      Src: /src/curl/tests/server/sws.c:1118,1
    - Dst: sws_storerequest
      Src: /src/curl/tests/server/sws.c:1122,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1127,1
    - Dst: sread
      Src: /src/curl/tests/server/sws.c:1129,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1133,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1144,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sws.c:1145,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sws.c:1146,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sws.c:1148,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1150,1
    - Dst: select
      Src: /src/curl/tests/server/sws.c:1151,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1153,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1160,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1163,1
    - Dst: sws_storerequest
      Src: /src/curl/tests/server/sws.c:1166,1
    - Dst: init_httprequest
      Src: /src/curl/tests/server/sws.c:1169,1
    - Dst: sread
      Src: /src/curl/tests/server/sws.c:1183,1
    - Dst: sread
      Src: /src/curl/tests/server/sws.c:1185,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1191,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1201,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:1202,1
    - Dst: sws_storerequest
      Src: /src/curl/tests/server/sws.c:1208,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1212,1
    - Dst: sws_ProcessRequest
      Src: /src/curl/tests/server/sws.c:1217,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1223,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1229,1
    - Dst: sws_storerequest
      Src: /src/curl/tests/server/sws.c:1239,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 2
    argNames:
    - sock
    - req
    argTypes:
    - curl_socket_t
    - struct sws_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1108
    functionDepth: 5
    functionLinenumber: 1108
    functionLinenumberEnd: 1244
    functionName: sws_get_request
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - init_httprequest
    - logmsg
    - curlx_strerror
    - FD_ZERO
    - sws_storerequest
    - sread
    - sws_send_doc
    - select
    - FD_SET
    - sws_ProcessRequest
    linkageType: ''
    returnType: int
    signature: int sws_get_request(curl_socket_t sock, struct sws_httprequest *req)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1266,1
    - Dst: socket
      Src: /src/curl/tests/server/sws.c:1268,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1271,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:1272,1
    - Dst: socket_domain_is_ip
      Src: /src/curl/tests/server/sws.c:1277,1
    - Dst: setsockopt
      Src: /src/curl/tests/server/sws.c:1280,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1282,1
    - Dst: curlx_nonblock
      Src: /src/curl/tests/server/sws.c:1289,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1291,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:1292,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1293,1
    - Dst: memset
      Src: /src/curl/tests/server/sws.c:1299,1
    - Dst: htons
      Src: /src/curl/tests/server/sws.c:1301,1
    - Dst: curlx_inet_pton
      Src: /src/curl/tests/server/sws.c:1302,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1303,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1304,1
    - Dst: connect
      Src: /src/curl/tests/server/sws.c:1308,1
    - Dst: memset
      Src: /src/curl/tests/server/sws.c:1312,1
    - Dst: htons
      Src: /src/curl/tests/server/sws.c:1314,1
    - Dst: curlx_inet_pton
      Src: /src/curl/tests/server/sws.c:1315,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1316,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1317,1
    - Dst: connect
      Src: /src/curl/tests/server/sws.c:1321,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1326,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1332,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sws.c:1343,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sws.c:1344,1
    - Dst: select
      Src: /src/curl/tests/server/sws.c:1346,1
    - Dst: getsockopt
      Src: /src/curl/tests/server/sws.c:1351,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1360,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1361,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1367,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:1368,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1369,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1373,1
    - Dst: curlx_nonblock
      Src: /src/curl/tests/server/sws.c:1376,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1378,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sws.c:1379,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1380,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 99
    argCount: 2
    argNames:
    - ipaddr
    - port
    argTypes:
    - char*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1385
    functionName: connect_to
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - curlx_nonblock
    - htons
    - FD_SET
    - logmsg
    - curlx_strerror
    - FD_ZERO
    - select
    - curlx_inet_pton
    - socket_domain_is_ip
    - socket
    - memset
    - connect
    - setsockopt
    - sclose
    - getsockopt
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t connect_to(const char *ipaddr, unsigned short port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1400
    functionName: data_or_ctrl
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data_or_ctrl(x)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/server/sws.c:1434,1
    - Dst: connect_to
      Src: /src/curl/tests/server/sws.c:1438,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sws.c:1459,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sws.c:1460,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sws.c:1469,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sws.c:1479,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sws.c:1486,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sws.c:1495,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sws.c:1502,1
    - Dst: select
      Src: /src/curl/tests/server/sws.c:1512,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sws.c:1527,1
    - Dst: accept
      Src: /src/curl/tests/server/sws.c:1529,1
    - Dst: malloc
      Src: /src/curl/tests/server/sws.c:1534,1
    - Dst: memset
      Src: /src/curl/tests/server/sws.c:1538,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1539,1
    - Dst: socket_domain_is_ip
      Src: /src/curl/tests/server/sws.c:1541,1
    - Dst: setsockopt
      Src: /src/curl/tests/server/sws.c:1544,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1546,1
    - Dst: init_httprequest
      Src: /src/curl/tests/server/sws.c:1549,1
    - Dst: sws_get_request
      Src: /src/curl/tests/server/sws.c:1551,1
    - Dst: sws_send_doc
      Src: /src/curl/tests/server/sws.c:1560,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/server/sws.c:1564,1
    - Dst: connect_to
      Src: /src/curl/tests/server/sws.c:1567,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1587,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1588,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sws.c:1602,1
    - Dst: sread
      Src: /src/curl/tests/server/sws.c:1604,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1606,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1606,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1607,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1611,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1611,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1612,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1612,1
    - Dst: data_to_hex
      Src: /src/curl/tests/server/sws.c:1613,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sws.c:1620,1
    - Dst: sread
      Src: /src/curl/tests/server/sws.c:1622,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1624,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1624,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1625,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1629,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1629,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1630,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1630,1
    - Dst: data_to_hex
      Src: /src/curl/tests/server/sws.c:1631,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sws.c:1637,1
    - Dst: swrite
      Src: /src/curl/tests/server/sws.c:1639,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1641,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1641,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1642,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1647,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1647,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1648,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1648,1
    - Dst: data_to_hex
      Src: /src/curl/tests/server/sws.c:1649,1
    - Dst: memmove
      Src: /src/curl/tests/server/sws.c:1651,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sws.c:1657,1
    - Dst: swrite
      Src: /src/curl/tests/server/sws.c:1659,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1661,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1661,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1662,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1667,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1667,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1668,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1668,1
    - Dst: data_to_hex
      Src: /src/curl/tests/server/sws.c:1669,1
    - Dst: memmove
      Src: /src/curl/tests/server/sws.c:1671,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1689,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1689,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1690,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1694,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1694,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1695,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1702,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1702,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1703,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1707,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1707,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1708,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/server/sws.c:1718,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1725,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1725,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1726,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1729,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1729,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1739,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1739,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1740,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1743,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1743,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1766,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1776,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1776,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1777,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1778,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1781,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1781,1
    - Dst: shutdown
      Src: /src/curl/tests/server/sws.c:1782,1
    - Dst: sclose
      Src: /src/curl/tests/server/sws.c:1783,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1787,1
    - Dst: data_or_ctrl
      Src: /src/curl/tests/server/sws.c:1787,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 266
    argCount: 5
    argNames:
    - infdp
    - rootfd
    - ipaddr
    - ipport
    - keepalive_secs
    argTypes:
    - curl_socket_t*
    - curl_socket_t
    - char*
    - unsigned short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1404
    functionDepth: 6
    functionLinenumber: 1404
    functionLinenumberEnd: 1792
    functionName: http_connect
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - accept
    - memmove
    - logmsg
    - sread
    - select
    - curlx_wait_ms
    - malloc
    - setsockopt
    - FD_ISSET
    - data_or_ctrl
    - FD_ZERO
    - socket_domain_is_ip
    - memset
    - shutdown
    - connect_to
    - init_httprequest
    - sws_get_request
    - sws_send_doc
    - data_to_hex
    - FD_SET
    - swrite
    - sclose
    linkageType: ''
    returnType: void
    signature: "void http_connect(curl_socket_t *infdp,\n                         curl_socket_t
      rootfd,\n                         const char *ipaddr,\n                         unsigned
      short ipport,\n                         int keepalive_secs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct sws_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1794
    functionDepth: 1
    functionLinenumber: 1794
    functionLinenumberEnd: 1799
    functionName: http_upgrade
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - logmsg
    linkageType: ''
    returnType: void
    signature: void http_upgrade(struct sws_httprequest *req)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sws_get_request
      Src: /src/curl/tests/server/sws.c:1899,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1910,1
    - Dst: sws_send_doc
      Src: /src/curl/tests/server/sws.c:1919,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1924,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1928,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1935,1
    - Dst: http_connect
      Src: /src/curl/tests/server/sws.c:1939,1
    - Dst: http_upgrade
      Src: /src/curl/tests/server/sws.c:1947,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1954,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sws.c:1958,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 5
    argNames:
    - msgsock
    - req
    - listensock
    - connecthost
    - keepalive_secs
    argTypes:
    - curl_socket_t*
    - struct sws_httprequest*
    - curl_socket_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1889
    functionDepth: 7
    functionLinenumber: 1889
    functionLinenumberEnd: 1962
    functionName: service_connection
    functionSourceFile: /src/curl/tests/server/sws.c
    functionUses: 0
    functionsReached:
    - http_upgrade
    - logmsg
    - sws_get_request
    - sws_send_doc
    - http_connect
    linkageType: ''
    returnType: int
    signature: "int service_connection(curl_socket_t *msgsock,\n                              struct
      sws_httprequest *req,\n                              curl_socket_t listensock,\n
      \                             const char *connecthost,\n                              int
      keepalive_secs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:113,1
    - Dst: GetStdHandle
      Src: /src/curl/tests/server/sockfilt.c:114,1
    - Dst: read
      Src: /src/curl/tests/server/sockfilt.c:117,1
    - Dst: GetConsoleMode
      Src: /src/curl/tests/server/sockfilt.c:120,1
    - Dst: ReadConsole
      Src: /src/curl/tests/server/sockfilt.c:121,1
    - Dst: curlx_uztoul
      Src: /src/curl/tests/server/sockfilt.c:121,1
    - Dst: ReadFile
      Src: /src/curl/tests/server/sockfilt.c:124,1
    - Dst: curlx_uztoul
      Src: /src/curl/tests/server/sockfilt.c:124,1
    - Dst: GetLastError
      Src: /src/curl/tests/server/sockfilt.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 132
    functionName: read_wincon
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - read
    - GetStdHandle
    - curlx_uztoul
    - ReadConsole
    - GetLastError
    - GetConsoleMode
    - ReadFile
    - fileno
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_wincon(int fd, void *buf, size_t count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:143,1
    - Dst: GetStdHandle
      Src: /src/curl/tests/server/sockfilt.c:144,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:146,1
    - Dst: GetStdHandle
      Src: /src/curl/tests/server/sockfilt.c:147,1
    - Dst: write
      Src: /src/curl/tests/server/sockfilt.c:150,1
    - Dst: GetConsoleMode
      Src: /src/curl/tests/server/sockfilt.c:153,1
    - Dst: WriteConsole
      Src: /src/curl/tests/server/sockfilt.c:154,1
    - Dst: curlx_uztoul
      Src: /src/curl/tests/server/sockfilt.c:154,1
    - Dst: WriteFile
      Src: /src/curl/tests/server/sockfilt.c:157,1
    - Dst: curlx_uztoul
      Src: /src/curl/tests/server/sockfilt.c:157,1
    - Dst: GetLastError
      Src: /src/curl/tests/server/sockfilt.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 165
    functionName: write_wincon
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - curlx_uztoul
    - WriteFile
    - WriteConsole
    - GetLastError
    - write
    - GetConsoleMode
    - fileno
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t write_wincon(int fd, const void *buf, size_t count)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SOCKFILT_read
      Src: /src/curl/tests/server/sockfilt.c:189,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:194,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:205,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:209,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:210,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sockfilt.c:211,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:216,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - filedes
    - buffer
    - nbytes
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 228
    functionName: fullread
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - logmsg
    - SOCKFILT_read
    - curlx_strerror
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fullread(int filedes, void *buffer, size_t nbytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SOCKFILT_write
      Src: /src/curl/tests/server/sockfilt.c:242,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:247,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:257,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:258,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sockfilt.c:259,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:264,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:273,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - filedes
    - buffer
    - nbytes
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 276
    functionName: fullwrite
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - SOCKFILT_write
    - logmsg
    - curlx_strerror
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fullwrite(int filedes, const void *buffer, size_t nbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fullread
      Src: /src/curl/tests/server/sockfilt.c:286,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:286,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: read_stdin
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - fullread
    - logmsg
    - fileno
    linkageType: ''
    returnType: bool
    signature: bool read_stdin(void *buffer, size_t nbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fullwrite
      Src: /src/curl/tests/server/sockfilt.c:303,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:303,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 309
    functionName: write_stdout
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - fileno
    - logmsg
    - fullwrite
    linkageType: ''
    returnType: bool
    signature: bool write_stdout(const void *buffer, size_t nbytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/sockfilt.c:323,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sockfilt.c:329,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sockfilt.c:335,1
    - Dst: ISGRAPH
      Src: /src/curl/tests/server/sockfilt.c:335,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:344,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:351,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - unsigned char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 352
    functionName: lograw
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - snprintf
    - logmsg
    - ISGRAPH
    linkageType: ''
    returnType: void
    signature: void lograw(const unsigned char *buffer, ssize_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_stdin
      Src: /src/curl/tests/server/sockfilt.c:365,1
    - Dst: curlx_str_hex
      Src: /src/curl/tests/server/sockfilt.c:371,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:372,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:377,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:381,1
    - Dst: read_stdin
      Src: /src/curl/tests/server/sockfilt.c:383,1
    - Dst: lograw
      Src: /src/curl/tests/server/sockfilt.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - buffer
    - maxlen
    - buffer_len
    argTypes:
    - unsigned char*
    - ssize_t
    - ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 389
    functionName: read_data_block
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - curlx_str_hex
    - logmsg
    - lograw
    - read_stdin
    linkageType: ''
    returnType: bool
    signature: "bool read_data_block(unsigned char *buffer, ssize_t maxlen,\n                            ssize_t
      *buffer_len)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/curl/tests/server/sockfilt.c:424,1
    - Dst: GetFileType
      Src: /src/curl/tests/server/sockfilt.c:430,1
    - Dst: WaitForMultipleObjectsEx
      Src: /src/curl/tests/server/sockfilt.c:441,1
    - Dst: GetFileSize
      Src: /src/curl/tests/server/sockfilt.c:446,1
    - Dst: GetLastError
      Src: /src/curl/tests/server/sockfilt.c:448,1
    - Dst: SetFilePointer
      Src: /src/curl/tests/server/sockfilt.c:452,1
    - Dst: GetLastError
      Src: /src/curl/tests/server/sockfilt.c:454,1
    - Dst: SleepEx
      Src: /src/curl/tests/server/sockfilt.c:458,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:464,1
    - Dst: SetEvent
      Src: /src/curl/tests/server/sockfilt.c:465,1
    - Dst: WaitForMultipleObjectsEx
      Src: /src/curl/tests/server/sockfilt.c:477,1
    - Dst: GetConsoleMode
      Src: /src/curl/tests/server/sockfilt.c:480,1
    - Dst: PeekConsoleInput
      Src: /src/curl/tests/server/sockfilt.c:483,1
    - Dst: ReadConsoleInput
      Src: /src/curl/tests/server/sockfilt.c:487,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:493,1
    - Dst: SetEvent
      Src: /src/curl/tests/server/sockfilt.c:494,1
    - Dst: WaitForMultipleObjectsEx
      Src: /src/curl/tests/server/sockfilt.c:506,1
    - Dst: PeekNamedPipe
      Src: /src/curl/tests/server/sockfilt.c:510,1
    - Dst: SleepEx
      Src: /src/curl/tests/server/sockfilt.c:513,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:517,1
    - Dst: GetLastError
      Src: /src/curl/tests/server/sockfilt.c:522,1
    - Dst: curlx_winapi_strerror
      Src: /src/curl/tests/server/sockfilt.c:525,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:526,1
    - Dst: SleepEx
      Src: /src/curl/tests/server/sockfilt.c:530,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:534,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:538,1
    - Dst: SetEvent
      Src: /src/curl/tests/server/sockfilt.c:539,1
    - Dst: WaitForMultipleObjectsEx
      Src: /src/curl/tests/server/sockfilt.c:545,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:547,1
    - Dst: SetEvent
      Src: /src/curl/tests/server/sockfilt.c:548,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 82
    argCount: 1
    argNames:
    - lpParameter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 554
    functionName: select_ws_wait_thread
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - WaitForMultipleObjectsEx
    - curlx_winapi_strerror
    - logmsg
    - free
    - SetFilePointer
    - PeekNamedPipe
    - GetFileType
    - PeekConsoleInput
    - ReadConsoleInput
    - GetLastError
    - SleepEx
    - GetConsoleMode
    - GetFileSize
    - SetEvent
    linkageType: ''
    returnType: DWORD
    signature: DWORD select_ws_wait_thread(void *lpParameter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/tests/server/sockfilt.c:561,1
    - Dst: CreateThread
      Src: /src/curl/tests/server/sockfilt.c:570,1
    - Dst: free
      Src: /src/curl/tests/server/sockfilt.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - signal
    - abort
    argTypes:
    - HANDLE
    - HANDLE
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 579
    functionName: select_ws_wait
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - malloc
    - CreateThread
    - free
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE select_ws_wait(HANDLE handle, HANDLE signal, HANDLE abort)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: SET_SOCKERRNO
      Src: /src/curl/tests/server/sockfilt.c:602,1
    - Dst: curlx_tvtoms
      Src: /src/curl/tests/server/sockfilt.c:608,1
    - Dst: SleepEx
      Src: /src/curl/tests/server/sockfilt.c:616,1
    - Dst: CreateEvent
      Src: /src/curl/tests/server/sockfilt.c:621,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/tests/server/sockfilt.c:623,1
    - Dst: calloc
      Src: /src/curl/tests/server/sockfilt.c:628,1
    - Dst: CloseHandle
      Src: /src/curl/tests/server/sockfilt.c:630,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/tests/server/sockfilt.c:631,1
    - Dst: calloc
      Src: /src/curl/tests/server/sockfilt.c:636,1
    - Dst: CloseHandle
      Src: /src/curl/tests/server/sockfilt.c:638,1
    - Dst: free
      Src: /src/curl/tests/server/sockfilt.c:639,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/tests/server/sockfilt.c:640,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sockfilt.c:655,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sockfilt.c:656,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sockfilt.c:657,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:659,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sockfilt.c:660,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:664,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sockfilt.c:665,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:669,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sockfilt.c:670,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:677,1
    - Dst: CreateEvent
      Src: /src/curl/tests/server/sockfilt.c:678,1
    - Dst: GetStdHandle
      Src: /src/curl/tests/server/sockfilt.c:680,1
    - Dst: select_ws_wait
      Src: /src/curl/tests/server/sockfilt.c:681,1
    - Dst: CloseHandle
      Src: /src/curl/tests/server/sockfilt.c:690,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:694,1
    - Dst: GetStdHandle
      Src: /src/curl/tests/server/sockfilt.c:695,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:698,1
    - Dst: GetStdHandle
      Src: /src/curl/tests/server/sockfilt.c:699,1
    - Dst: WSACreateEvent
      Src: /src/curl/tests/server/sockfilt.c:704,1
    - Dst: swrite
      Src: /src/curl/tests/server/sockfilt.c:707,1
    - Dst: WSAEventSelect
      Src: /src/curl/tests/server/sockfilt.c:709,1
    - Dst: select
      Src: /src/curl/tests/server/sockfilt.c:720,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:721,1
    - Dst: WSASetEvent
      Src: /src/curl/tests/server/sockfilt.c:722,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:723,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:725,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:727,1
    - Dst: WSACloseEvent
      Src: /src/curl/tests/server/sockfilt.c:734,1
    - Dst: CreateEvent
      Src: /src/curl/tests/server/sockfilt.c:735,1
    - Dst: select_ws_wait
      Src: /src/curl/tests/server/sockfilt.c:738,1
    - Dst: CloseHandle
      Src: /src/curl/tests/server/sockfilt.c:747,1
    - Dst: WaitForMultipleObjectsEx
      Src: /src/curl/tests/server/sockfilt.c:767,1
    - Dst: SetEvent
      Src: /src/curl/tests/server/sockfilt.c:770,1
    - Dst: WaitForSingleObjectEx
      Src: /src/curl/tests/server/sockfilt.c:772,1
    - Dst: CloseHandle
      Src: /src/curl/tests/server/sockfilt.c:773,1
    - Dst: WaitForSingleObjectEx
      Src: /src/curl/tests/server/sockfilt.c:785,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:787,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:789,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:790,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:792,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:792,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:794,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:795,1
    - Dst: WSAEnumNetworkEvents
      Src: /src/curl/tests/server/sockfilt.c:800,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:806,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:810,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:814,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:819,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:819,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:820,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:826,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:827,1
    - Dst: FD_CLR
      Src: /src/curl/tests/server/sockfilt.c:828,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:833,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:834,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:835,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:836,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:837,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:838,1
    - Dst: WSAEventSelect
      Src: /src/curl/tests/server/sockfilt.c:842,1
    - Dst: WSACloseEvent
      Src: /src/curl/tests/server/sockfilt.c:843,1
    - Dst: CloseHandle
      Src: /src/curl/tests/server/sockfilt.c:847,1
    - Dst: CloseHandle
      Src: /src/curl/tests/server/sockfilt.c:849,1
    - Dst: free
      Src: /src/curl/tests/server/sockfilt.c:851,1
    - Dst: free
      Src: /src/curl/tests/server/sockfilt.c:852,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 191
    argCount: 5
    argNames:
    - nfds
    - readfds
    - writefds
    - exceptfds
    - tv
    argTypes:
    - int
    - fd_set*
    - fd_set*
    - fd_set*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 855
    functionName: select_ws
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - logmsg
    - calloc
    - curlx_tvtoms
    - select
    - SleepEx
    - CreateEvent
    - WaitForSingleObjectEx
    - CloseHandle
    - WSACloseEvent
    - FD_ISSET
    - SetEvent
    - FD_CLR
    - select_ws_wait
    - FD_ZERO
    - SET_SOCKERRNO
    - WSAEventSelect
    - WaitForMultipleObjectsEx
    - free
    - WSAEnumNetworkEvents
    - FD_SET
    - swrite
    - fileno
    - WSASetEvent
    - WSACreateEvent
    linkageType: ''
    returnType: int
    signature: "int select_ws(int nfds, fd_set *readfds, fd_set *writefds,\n                     fd_set
      *exceptfds, struct timeval *tv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 857
    functionName: SOCKFILT_select
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SOCKFILT_select(a, b, c, d, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 859
    functionName: SOCKFILT_select
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SOCKFILT_select(a, b, c, d, e)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:868,1
    - Dst: read_stdin
      Src: /src/curl/tests/server/sockfilt.c:874,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:876,1
    - Dst: memcmp
      Src: /src/curl/tests/server/sockfilt.c:879,1
    - Dst: memcmp
      Src: /src/curl/tests/server/sockfilt.c:883,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:884,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:885,1
    - Dst: memcmp
      Src: /src/curl/tests/server/sockfilt.c:888,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:890,1
    - Dst: read_data_block
      Src: /src/curl/tests/server/sockfilt.c:891,1
    - Dst: memcmp
      Src: /src/curl/tests/server/sockfilt.c:894,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:896,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:900,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 866
    functionDepth: 4
    functionLinenumber: 866
    functionLinenumberEnd: 912
    functionName: disc_handshake
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - read_data_block
    - memcmp
    - logmsg
    - write_stdout
    - read_stdin
    linkageType: ''
    returnType: bool
    signature: bool disc_handshake(void)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:938,1
    - Dst: getppid
      Src: /src/curl/tests/server/sockfilt.c:945,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:946,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sockfilt.c:954,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sockfilt.c:955,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/sockfilt.c:956,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sockfilt.c:958,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:958,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sockfilt.c:967,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:976,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sockfilt.c:981,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/sockfilt.c:991,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:995,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1002,1
    - Dst: SOCKFILT_select
      Src: /src/curl/tests/server/sockfilt.c:1011,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1014,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1020,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sockfilt.c:1021,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:1029,1
    - Dst: fileno
      Src: /src/curl/tests/server/sockfilt.c:1029,1
    - Dst: read_stdin
      Src: /src/curl/tests/server/sockfilt.c:1046,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1049,1
    - Dst: memcmp
      Src: /src/curl/tests/server/sockfilt.c:1052,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1054,1
    - Dst: memcmp
      Src: /src/curl/tests/server/sockfilt.c:1058,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sockfilt.c:1061,1
    - Dst: strlen
      Src: /src/curl/tests/server/sockfilt.c:1063,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sockfilt.c:1064,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1065,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1067,1
    - Dst: memcmp
      Src: /src/curl/tests/server/sockfilt.c:1070,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1072,1
    - Dst: memcmp
      Src: /src/curl/tests/server/sockfilt.c:1075,1
    - Dst: read_data_block
      Src: /src/curl/tests/server/sockfilt.c:1077,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1084,1
    - Dst: disc_handshake
      Src: /src/curl/tests/server/sockfilt.c:1085,1
    - Dst: swrite
      Src: /src/curl/tests/server/sockfilt.c:1090,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1092,1
    - Dst: memcmp
      Src: /src/curl/tests/server/sockfilt.c:1097,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1099,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1102,1
    - Dst: sclose
      Src: /src/curl/tests/server/sockfilt.c:1103,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1111,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/sockfilt.c:1116,1
    - Dst: accept
      Src: /src/curl/tests/server/sockfilt.c:1121,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1124,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sockfilt.c:1125,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1128,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1129,1
    - Dst: sread
      Src: /src/curl/tests/server/sockfilt.c:1138,1
    - Dst: snprintf
      Src: /src/curl/tests/server/sockfilt.c:1141,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1142,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1144,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1147,1
    - Dst: lograw
      Src: /src/curl/tests/server/sockfilt.c:1148,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1152,1
    - Dst: disc_handshake
      Src: /src/curl/tests/server/sockfilt.c:1153,1
    - Dst: sclose
      Src: /src/curl/tests/server/sockfilt.c:1155,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 148
    argCount: 3
    argNames:
    - sockfdp
    - listenfd
    - mode
    argTypes:
    - curl_socket_t*
    - curl_socket_t
    - enum sockmode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 920
    functionDepth: 5
    functionLinenumber: 920
    functionLinenumberEnd: 1166
    functionName: juggle
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - accept
    - memcmp
    - logmsg
    - sread
    - read_data_block
    - write_stdout
    - curlx_strerror
    - read_stdin
    - snprintf
    - FD_ISSET
    - disc_handshake
    - FD_ZERO
    - strlen
    - getppid
    - SOCKFILT_select
    - lograw
    - FD_SET
    - swrite
    - fileno
    - sclose
    linkageType: ''
    returnType: bool
    signature: "bool juggle(curl_socket_t *sockfdp,\n                   curl_socket_t
      listenfd,\n                   enum sockmode *mode)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1190,1
    - Dst: printf
      Src: /src/curl/tests/server/sockfilt.c:1191,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1200,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1204,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1209,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1214,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1219,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1226,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1234,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1238,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/sockfilt.c:1242,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1247,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/sockfilt.c:1253,1
    - Dst: fprintf
      Src: /src/curl/tests/server/sockfilt.c:1254,1
    - Dst: strcmp
      Src: /src/curl/tests/server/sockfilt.c:1262,1
    - Dst: puts
      Src: /src/curl/tests/server/sockfilt.c:1271,1
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/server/sockfilt.c:1287,1
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/server/sockfilt.c:1288,1
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/server/sockfilt.c:1289,1
    - Dst: install_signal_handlers
      Src: /src/curl/tests/server/sockfilt.c:1291,1
    - Dst: socket
      Src: /src/curl/tests/server/sockfilt.c:1293,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1297,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sockfilt.c:1298,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1299,1
    - Dst: memset
      Src: /src/curl/tests/server/sockfilt.c:1308,1
    - Dst: htons
      Src: /src/curl/tests/server/sockfilt.c:1310,1
    - Dst: curlx_inet_pton
      Src: /src/curl/tests/server/sockfilt.c:1314,1
    - Dst: connect
      Src: /src/curl/tests/server/sockfilt.c:1316,1
    - Dst: memset
      Src: /src/curl/tests/server/sockfilt.c:1320,1
    - Dst: htons
      Src: /src/curl/tests/server/sockfilt.c:1322,1
    - Dst: curlx_inet_pton
      Src: /src/curl/tests/server/sockfilt.c:1325,1
    - Dst: connect
      Src: /src/curl/tests/server/sockfilt.c:1327,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1335,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/sockfilt.c:1336,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1337,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1340,1
    - Dst: sockdaemon
      Src: /src/curl/tests/server/sockfilt.c:1345,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1347,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1353,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1356,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1358,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1360,1
    - Dst: write_pidfile
      Src: /src/curl/tests/server/sockfilt.c:1362,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1364,1
    - Dst: write_portfile
      Src: /src/curl/tests/server/sockfilt.c:1368,1
    - Dst: write_stdout
      Src: /src/curl/tests/server/sockfilt.c:1370,1
    - Dst: juggle
      Src: /src/curl/tests/server/sockfilt.c:1376,1
    - Dst: sclose
      Src: /src/curl/tests/server/sockfilt.c:1382,1
    - Dst: sclose
      Src: /src/curl/tests/server/sockfilt.c:1385,1
    - Dst: unlink
      Src: /src/curl/tests/server/sockfilt.c:1388,1
    - Dst: unlink
      Src: /src/curl/tests/server/sockfilt.c:1390,1
    - Dst: restore_signal_handlers
      Src: /src/curl/tests/server/sockfilt.c:1392,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1395,1
    - Dst: raise
      Src: /src/curl/tests/server/sockfilt.c:1401,1
    - Dst: logmsg
      Src: /src/curl/tests/server/sockfilt.c:1404,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 169
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1168
    functionDepth: 6
    functionLinenumber: 1168
    functionLinenumberEnd: 1406
    functionName: test_sockfilt
    functionSourceFile: /src/curl/tests/server/sockfilt.c
    functionUses: 0
    functionsReached:
    - logmsg
    - strcmp
    - unlink
    - write_portfile
    - write_stdout
    - curlx_str_number
    - curlx_strerror
    - socket
    - juggle
    - htons
    - sockdaemon
    - restore_signal_handlers
    - write_pidfile
    - memset
    - connect
    - install_signal_handlers
    - printf
    - raise
    - fprintf
    - CURL_BINMODE
    - curlx_inet_pton
    - sclose
    - puts
    linkageType: ''
    returnType: int
    signature: int test_sockfilt(int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:93,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/socksd.c:102,1
    - Dst: strlen
      Src: /src/curl/tests/server/socksd.c:103,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/socksd.c:104,1
    - Dst: strlen
      Src: /src/curl/tests/server/socksd.c:105,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/socksd.c:106,1
    - Dst: strlen
      Src: /src/curl/tests/server/socksd.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: socksd_resetdefaults
    functionSourceFile: /src/curl/tests/server/socksd.c
    functionUses: 0
    functionsReached:
    - strlen
    - logmsg
    - curlx_strcopy
    linkageType: ''
    returnType: void
    signature: void socksd_resetdefaults(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/socksd.c:112,1
    - Dst: socksd_resetdefaults
      Src: /src/curl/tests/server/socksd.c:113,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:116,1
    - Dst: fgets
      Src: /src/curl/tests/server/socksd.c:117,1
    - Dst: sscanf
      Src: /src/curl/tests/server/socksd.c:122,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:123,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/socksd.c:125,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:127,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:130,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/socksd.c:132,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:134,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:137,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/socksd.c:139,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:141,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:144,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/socksd.c:145,1
    - Dst: strlen
      Src: /src/curl/tests/server/socksd.c:146,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:147,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:149,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/socksd.c:151,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:153,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:156,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/socksd.c:157,1
    - Dst: strlen
      Src: /src/curl/tests/server/socksd.c:158,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:159,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:161,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/socksd.c:162,1
    - Dst: strlen
      Src: /src/curl/tests/server/socksd.c:163,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:164,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:171,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/socksd.c:173,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:175,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:178,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/socksd.c:180,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:182,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/socksd.c:187,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 189
    functionName: socksd_getconfig
    functionSourceFile: /src/curl/tests/server/socksd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - fgets
    - logmsg
    - curlx_str_number
    - curlx_fopen
    - curlx_strcopy
    - strcmp
    - sscanf
    - strlen
    - socksd_resetdefaults
    linkageType: ''
    returnType: void
    signature: void socksd_getconfig(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/curl/tests/server/socksd.c:218,1
    - Dst: memset
      Src: /src/curl/tests/server/socksd.c:221,1
    - Dst: htons
      Src: /src/curl/tests/server/socksd.c:223,1
    - Dst: curlx_inet_pton
      Src: /src/curl/tests/server/socksd.c:225,1
    - Dst: connect
      Src: /src/curl/tests/server/socksd.c:227,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:232,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/socksd.c:233,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - connectport
    - connectaddr
    argTypes:
    - unsigned short
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 238
    functionName: socksconnect
    functionSourceFile: /src/curl/tests/server/socksd.c
    functionUses: 0
    functionsReached:
    - htons
    - logmsg
    - curlx_strerror
    - socket
    - memset
    - curlx_inet_pton
    - connect
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t socksconnect(unsigned short connectport,\n                                  const
      char *connectaddr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:250,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:254,1
    - Dst: socksconnect
      Src: /src/curl/tests/server/socksd.c:263,1
    - Dst: memcpy
      Src: /src/curl/tests/server/socksd.c:275,1
    - Dst: swrite
      Src: /src/curl/tests/server/socksd.c:276,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:278,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:281,1
    - Dst: loghex
      Src: /src/curl/tests/server/socksd.c:282,1
    - Dst: sclose
      Src: /src/curl/tests/server/socksd.c:289,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - fd
    - buffer
    - rc
    argTypes:
    - curl_socket_t
    - unsigned char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 292
    functionName: socks4
    functionSourceFile: /src/curl/tests/server/socksd.c
    functionUses: 0
    functionsReached:
    - memcpy
    - logmsg
    - loghex
    - swrite
    - socksconnect
    - sclose
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t socks4(curl_socket_t fd,\n                            const
      unsigned char *buffer,\n                            ssize_t rc)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: socksd_getconfig
      Src: /src/curl/tests/server/socksd.c:307,1
    - Dst: sread
      Src: /src/curl/tests/server/socksd.c:309,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:311,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:315,1
    - Dst: loghex
      Src: /src/curl/tests/server/socksd.c:316,1
    - Dst: socks4
      Src: /src/curl/tests/server/socksd.c:319,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:322,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:327,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:332,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:339,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:342,1
    - Dst: swrite
      Src: /src/curl/tests/server/socksd.c:347,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:349,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:352,1
    - Dst: loghex
      Src: /src/curl/tests/server/socksd.c:353,1
    - Dst: sread
      Src: /src/curl/tests/server/socksd.c:356,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:358,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:362,1
    - Dst: loghex
      Src: /src/curl/tests/server/socksd.c:363,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:377,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:381,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:386,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:391,1
    - Dst: strlen
      Src: /src/curl/tests/server/socksd.c:394,1
    - Dst: strlen
      Src: /src/curl/tests/server/socksd.c:395,1
    - Dst: memcmp
      Src: /src/curl/tests/server/socksd.c:396,1
    - Dst: memcmp
      Src: /src/curl/tests/server/socksd.c:397,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:399,1
    - Dst: swrite
      Src: /src/curl/tests/server/socksd.c:404,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:406,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:409,1
    - Dst: loghex
      Src: /src/curl/tests/server/socksd.c:410,1
    - Dst: sread
      Src: /src/curl/tests/server/socksd.c:415,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:417,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:421,1
    - Dst: loghex
      Src: /src/curl/tests/server/socksd.c:422,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:425,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:430,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:435,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:440,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:466,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:470,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:473,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/socksd.c:477,1
    - Dst: fprintf
      Src: /src/curl/tests/server/socksd.c:480,1
    - Dst: fprintf
      Src: /src/curl/tests/server/socksd.c:484,1
    - Dst: fprintf
      Src: /src/curl/tests/server/socksd.c:490,1
    - Dst: fprintf
      Src: /src/curl/tests/server/socksd.c:495,1
    - Dst: fprintf
      Src: /src/curl/tests/server/socksd.c:497,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/socksd.c:500,1
    - Dst: socksconnect
      Src: /src/curl/tests/server/socksd.c:512,1
    - Dst: memcpy
      Src: /src/curl/tests/server/socksd.c:544,1
    - Dst: memcpy
      Src: /src/curl/tests/server/socksd.c:547,1
    - Dst: swrite
      Src: /src/curl/tests/server/socksd.c:550,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:552,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:555,1
    - Dst: loghex
      Src: /src/curl/tests/server/socksd.c:556,1
    - Dst: sclose
      Src: /src/curl/tests/server/socksd.c:562,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 173
    argCount: 1
    argNames:
    - fd
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 565
    functionName: sockit
    functionSourceFile: /src/curl/tests/server/socksd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - memcpy
    - socksd_getconfig
    - strlen
    - socks4
    - memcmp
    - logmsg
    - loghex
    - sread
    - curlx_fopen
    - swrite
    - socksconnect
    - sclose
    - fprintf
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t sockit(curl_socket_t fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/socksd.c:581,1
    - Dst: sread
      Src: /src/curl/tests/server/socksd.c:583,1
    - Dst: swrite
      Src: /src/curl/tests/server/socksd.c:585,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/socksd.c:593,1
    - Dst: sread
      Src: /src/curl/tests/server/socksd.c:595,1
    - Dst: swrite
      Src: /src/curl/tests/server/socksd.c:597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - cp
    - fds
    argTypes:
    - struct perclient*
    - fd_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 606
    functionName: tunnel
    functionSourceFile: /src/curl/tests/server/socksd.c
    functionUses: 0
    functionsReached:
    - swrite
    - FD_ISSET
    - sread
    linkageType: ''
    returnType: int
    signature: int tunnel(struct perclient *cp, fd_set *fds)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/server/socksd.c:622,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:624,1
    - Dst: getppid
      Src: /src/curl/tests/server/socksd.c:630,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:631,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/socksd.c:644,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/socksd.c:645,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/socksd.c:646,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/socksd.c:649,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/socksd.c:654,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/socksd.c:658,1
    - Dst: select
      Src: /src/curl/tests/server/socksd.c:666,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:668,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:674,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/socksd.c:675,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/socksd.c:679,1
    - Dst: accept
      Src: /src/curl/tests/server/socksd.c:680,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:683,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/socksd.c:684,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:688,1
    - Dst: sockit
      Src: /src/curl/tests/server/socksd.c:690,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:692,1
    - Dst: sclose
      Src: /src/curl/tests/server/socksd.c:693,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:697,1
    - Dst: tunnel
      Src: /src/curl/tests/server/socksd.c:713,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:714,1
    - Dst: sclose
      Src: /src/curl/tests/server/socksd.c:716,1
    - Dst: sclose
      Src: /src/curl/tests/server/socksd.c:717,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 1
    argNames:
    - listenfd
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 726
    functionName: socksd_incoming
    functionSourceFile: /src/curl/tests/server/socksd.c
    functionUses: 0
    functionsReached:
    - accept
    - getppid
    - logmsg
    - curlx_strerror
    - FD_ZERO
    - select
    - tunnel
    - sclose
    - memset
    - FD_SET
    - sockit
    - FD_ISSET
    linkageType: ''
    returnType: bool
    signature: bool socksd_incoming(curl_socket_t listenfd)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:752,1
    - Dst: printf
      Src: /src/curl/tests/server/socksd.c:753,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:762,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:767,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:772,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:777,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:782,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/socksd.c:786,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:791,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:796,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:801,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:808,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:815,1
    - Dst: strlen
      Src: /src/curl/tests/server/socksd.c:821,1
    - Dst: fprintf
      Src: /src/curl/tests/server/socksd.c:822,1
    - Dst: strcmp
      Src: /src/curl/tests/server/socksd.c:833,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/socksd.c:837,1
    - Dst: puts
      Src: /src/curl/tests/server/socksd.c:843,1
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/server/socksd.c:860,1
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/server/socksd.c:861,1
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/server/socksd.c:862,1
    - Dst: install_signal_handlers
      Src: /src/curl/tests/server/socksd.c:864,1
    - Dst: socket
      Src: /src/curl/tests/server/socksd.c:866,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:870,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/socksd.c:871,1
    - Dst: sockdaemon
      Src: /src/curl/tests/server/socksd.c:877,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:887,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:891,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:894,1
    - Dst: write_pidfile
      Src: /src/curl/tests/server/socksd.c:896,1
    - Dst: write_portfile
      Src: /src/curl/tests/server/socksd.c:902,1
    - Dst: socksd_incoming
      Src: /src/curl/tests/server/socksd.c:909,1
    - Dst: sclose
      Src: /src/curl/tests/server/socksd.c:915,1
    - Dst: sclose
      Src: /src/curl/tests/server/socksd.c:918,1
    - Dst: unlink
      Src: /src/curl/tests/server/socksd.c:922,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:923,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/socksd.c:924,1
    - Dst: unlink
      Src: /src/curl/tests/server/socksd.c:929,1
    - Dst: unlink
      Src: /src/curl/tests/server/socksd.c:931,1
    - Dst: restore_signal_handlers
      Src: /src/curl/tests/server/socksd.c:933,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:936,1
    - Dst: raise
      Src: /src/curl/tests/server/socksd.c:942,1
    - Dst: logmsg
      Src: /src/curl/tests/server/socksd.c:945,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 143
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 728
    functionDepth: 5
    functionLinenumber: 728
    functionLinenumberEnd: 947
    functionName: test_socksd
    functionSourceFile: /src/curl/tests/server/socksd.c
    functionUses: 0
    functionsReached:
    - logmsg
    - strcmp
    - unlink
    - socksd_incoming
    - write_portfile
    - curlx_str_number
    - curlx_strerror
    - socket
    - sockdaemon
    - restore_signal_handlers
    - write_pidfile
    - install_signal_handlers
    - printf
    - raise
    - CURL_BINMODE
    - puts
    - strlen
    - sclose
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_socksd(int argc, const char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/util.c:46,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - unsigned char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 53
    functionName: loghex
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 2
    functionsReached:
    - snprintf
    - logmsg
    linkageType: ''
    returnType: void
    signature: void loghex(const unsigned char *buffer, ssize_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:69,1
    - Dst: curlx_now
      Src: /src/curl/tests/server/util.c:73,1
    - Dst: time
      Src: /src/curl/tests/server/util.c:75,1
    - Dst: toolx_localtime
      Src: /src/curl/tests/server/util.c:79,1
    - Dst: memset
      Src: /src/curl/tests/server/util.c:81,1
    - Dst: snprintf
      Src: /src/curl/tests/server/util.c:83,1
    - Dst: va_start
      Src: /src/curl/tests/server/util.c:86,1
    - Dst: vsnprintf
      Src: /src/curl/tests/server/util.c:92,1
    - Dst: va_end
      Src: /src/curl/tests/server/util.c:96,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/util.c:99,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:103,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/util.c:104,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:109,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:110,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:111,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 114
    functionName: logmsg
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 29
    functionsReached:
    - curlx_fclose
    - curlx_now
    - va_start
    - va_end
    - curlx_fopen
    - time
    - curlx_strerror
    - toolx_localtime
    - vsnprintf
    - memset
    - snprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void logmsg(const char *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSACleanup
      Src: /src/curl/tests/server/util.c:120,1
    - Dst: _flushall
      Src: /src/curl/tests/server/util.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: win32_cleanup
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached:
    - WSACleanup
    - _flushall
    linkageType: ''
    returnType: void
    signature: void win32_cleanup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now_init
      Src: /src/curl/tests/server/util.c:129,1
    - Dst: MAKEWORD
      Src: /src/curl/tests/server/util.c:137,1
    - Dst: WSAStartup
      Src: /src/curl/tests/server/util.c:138,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:140,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:141,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:142,1
    - Dst: LOBYTE
      Src: /src/curl/tests/server/util.c:146,1
    - Dst: LOBYTE
      Src: /src/curl/tests/server/util.c:146,1
    - Dst: HIBYTE
      Src: /src/curl/tests/server/util.c:147,1
    - Dst: HIBYTE
      Src: /src/curl/tests/server/util.c:147,1
    - Dst: WSACleanup
      Src: /src/curl/tests/server/util.c:148,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:149,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:150,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:151,1
    - Dst: atexit
      Src: /src/curl/tests/server/util.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 158
    functionName: win32_init
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 1
    functionsReached:
    - WSAStartup
    - HIBYTE
    - MAKEWORD
    - LOBYTE
    - logmsg
    - curlx_strerror
    - curlx_now_init
    - WSACleanup
    - atexit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int win32_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/util.c:167,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/util.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - testno
    - logdir2
    argTypes:
    - long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: test2fopen
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 2
    functionsReached:
    - snprintf
    - curlx_fopen
    linkageType: ''
    returnType: FILE
    signature: FILE *test2fopen(long testno, const char *logdir2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: t_getpid
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: t_getpid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: t_getpid
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: t_getpid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_getpid
      Src: /src/curl/tests/server/util.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: our_getpid
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 1
    functionsReached:
    - t_getpid
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t our_getpid(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: our_getpid
      Src: /src/curl/tests/server/util.c:198,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/util.c:199,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:202,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:203,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:206,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/util.c:207,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 210
    functionName: write_pidfile
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 2
    functionsReached:
    - curlx_fclose
    - logmsg
    - curlx_strerror
    - curlx_fopen
    - our_getpid
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_pidfile(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/util.c:215,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:218,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:219,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:222,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/util.c:223,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - filename
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: write_portfile
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 2
    functionsReached:
    - curlx_fclose
    - logmsg
    - curlx_strerror
    - curlx_fopen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_portfile(const char *filename, int port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/util.c:236,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:240,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:241,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/util.c:245,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:247,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 249
    functionName: set_advisor_read_lock
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - logmsg
    - curlx_strerror
    - curlx_fopen
    linkageType: ''
    returnType: void
    signature: void set_advisor_read_lock(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/curl/tests/server/util.c:263,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:268,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 271
    functionName: clear_advisor_read_lock
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached:
    - logmsg
    - unlink
    - curlx_strerror
    linkageType: ''
    returnType: void
    signature: void clear_advisor_read_lock(const char *filename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:387,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:408,1
    - Dst: raise
      Src: /src/curl/tests/server/util.c:409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - dwCtrlType
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 412
    functionName: ctrl_event_handler
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached:
    - logmsg
    - raise
    linkageType: ''
    returnType: BOOL
    signature: BOOL ctrl_event_handler(DWORD dwCtrlType)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PostQuitMessage
      Src: /src/curl/tests/server/util.c:435,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:439,1
    - Dst: raise
      Src: /src/curl/tests/server/util.c:440,1
    - Dst: DefWindowProc
      Src: /src/curl/tests/server/util.c:443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - hwnd
    - uMsg
    - wParam
    - lParam
    argTypes:
    - HWND
    - UINT
    - WPARAM
    - LPARAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 444
    functionName: main_window_proc
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached:
    - PostQuitMessage
    - logmsg
    - DefWindowProc
    - raise
    linkageType: ''
    returnType: LRESULT
    signature: "LRESULT main_window_proc(HWND hwnd, UINT uMsg,\n                                         WPARAM
      wParam, LPARAM lParam)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZeroMemory
      Src: /src/curl/tests/server/util.c:455,1
    - Dst: TEXT
      Src: /src/curl/tests/server/util.c:458,1
    - Dst: RegisterClass
      Src: /src/curl/tests/server/util.c:459,1
    - Dst: GetLastError
      Src: /src/curl/tests/server/util.c:460,1
    - Dst: curlx_winapi_strerror
      Src: /src/curl/tests/server/util.c:461,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:462,1
    - Dst: CreateWindowEx
      Src: /src/curl/tests/server/util.c:466,1
    - Dst: TEXT
      Src: /src/curl/tests/server/util.c:466,1
    - Dst: TEXT
      Src: /src/curl/tests/server/util.c:467,1
    - Dst: GetLastError
      Src: /src/curl/tests/server/util.c:474,1
    - Dst: curlx_winapi_strerror
      Src: /src/curl/tests/server/util.c:475,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:476,1
    - Dst: GetMessage
      Src: /src/curl/tests/server/util.c:481,1
    - Dst: GetLastError
      Src: /src/curl/tests/server/util.c:483,1
    - Dst: curlx_winapi_strerror
      Src: /src/curl/tests/server/util.c:484,1
    - Dst: fprintf
      Src: /src/curl/tests/server/util.c:485,1
    - Dst: DestroyWindow
      Src: /src/curl/tests/server/util.c:490,1
    - Dst: TranslateMessage
      Src: /src/curl/tests/server/util.c:492,1
    - Dst: DispatchMessage
      Src: /src/curl/tests/server/util.c:493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - lpParameter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 500
    functionName: main_window_loop
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached:
    - curlx_winapi_strerror
    - ZeroMemory
    - RegisterClass
    - TranslateMessage
    - CreateWindowEx
    - GetMessage
    - DestroyWindow
    - GetLastError
    - TEXT
    - DispatchMessage
    - fprintf
    linkageType: ''
    returnType: DWORD
    signature: DWORD main_window_loop(void *lpParameter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/server/util.c:509,1
    - Dst: sigemptyset
      Src: /src/curl/tests/server/util.c:511,1
    - Dst: sigaddset
      Src: /src/curl/tests/server/util.c:512,1
    - Dst: sigaction
      Src: /src/curl/tests/server/util.c:515,1
    - Dst: signal
      Src: /src/curl/tests/server/util.c:520,1
    - Dst: siginterrupt
      Src: /src/curl/tests/server/util.c:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - signum
    - handler
    - restartable
    argTypes:
    - int
    - SIGHANDLER_T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 531
    functionName: set_signal
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - siginterrupt
    - sigaction
    - sigaddset
    - signal
    - memset
    linkageType: ''
    returnType: SIGHANDLER_T
    signature: "SIGHANDLER_T set_signal(int signum, SIGHANDLER_T handler,\n                               bool
      restartable)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CreateEvent
      Src: /src/curl/tests/server/util.c:539,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:541,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:545,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:547,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:548,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:552,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:554,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:555,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:560,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:562,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:563,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:570,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:572,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:573,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:577,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:579,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:580,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:584,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:586,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:587,1
    - Dst: SetConsoleCtrlHandler
      Src: /src/curl/tests/server/util.c:590,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:591,1
    - Dst: CreateThread
      Src: /src/curl/tests/server/util.c:594,1
    - Dst: GetModuleHandle
      Src: /src/curl/tests/server/util.c:595,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:597,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - keep_sigalrm
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 600
    functionName: install_signal_handlers
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 2
    functionsReached:
    - GetModuleHandle
    - SetConsoleCtrlHandler
    - logmsg
    - set_signal
    - CreateThread
    - curlx_strerror
    - CreateEvent
    linkageType: ''
    returnType: void
    signature: void install_signal_handlers(bool keep_sigalrm)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:606,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:610,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:615,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:622,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:626,1
    - Dst: set_signal
      Src: /src/curl/tests/server/util.c:630,1
    - Dst: SetConsoleCtrlHandler
      Src: /src/curl/tests/server/util.c:633,1
    - Dst: PostThreadMessage
      Src: /src/curl/tests/server/util.c:636,1
    - Dst: WaitForSingleObjectEx
      Src: /src/curl/tests/server/util.c:637,1
    - Dst: CloseHandle
      Src: /src/curl/tests/server/util.c:638,1
    - Dst: CloseHandle
      Src: /src/curl/tests/server/util.c:646,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - keep_sigalrm
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 652
    functionName: restore_signal_handlers
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 2
    functionsReached:
    - SetConsoleCtrlHandler
    - set_signal
    - CloseHandle
    - WaitForSingleObjectEx
    - PostThreadMessage
    linkageType: ''
    returnType: void
    signature: void restore_signal_handlers(bool keep_sigalrm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:665,1
    - Dst: strlen
      Src: /src/curl/tests/server/util.c:669,1
    - Dst: memset
      Src: /src/curl/tests/server/util.c:671,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:674,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/server/util.c:677,1
    - Dst: bind
      Src: /src/curl/tests/server/util.c:678,1
    - Dst: socket
      Src: /src/curl/tests/server/util.c:682,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:684,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:685,1
    - Dst: connect
      Src: /src/curl/tests/server/util.c:689,1
    - Dst: sclose
      Src: /src/curl/tests/server/util.c:691,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:693,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:694,1
    - Dst: curlx_stat
      Src: /src/curl/tests/server/util.c:700,1
    - Dst: lstat
      Src: /src/curl/tests/server/util.c:702,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:705,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:706,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:711,1
    - Dst: unlink
      Src: /src/curl/tests/server/util.c:716,1
    - Dst: logmsg
      Src: /src/curl/tests/server/util.c:718,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/util.c:719,1
    - Dst: bind
      Src: /src/curl/tests/server/util.c:723,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - sock
    - unix_socket
    - sau
    argTypes:
    - curl_socket_t
    - char*
    - struct sockaddr_un*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 726
    functionName: bind_unix_socket
    functionSourceFile: /src/curl/tests/server/util.c
    functionUses: 0
    functionsReached:
    - logmsg
    - lstat
    - bind
    - curlx_strcopy
    - curlx_strerror
    - curlx_stat
    - unlink
    - socket
    - connect
    - memset
    - strlen
    - sclose
    linkageType: ''
    returnType: int
    signature: "int bind_unix_socket(curl_socket_t sock, const char *unix_socket,\n
      \                    struct sockaddr_un *sau)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pkt
    - size
    argTypes:
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: get16bit
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get16bit(const unsigned char **pkt, size_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/server/dnsd.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: blob_reset
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void blob_reset(struct blob *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - struct blob*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: blob_add
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blob_add(struct blob *b, uint8_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/tests/server/dnsd.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - b
    - data
    - n
    argTypes:
    - struct blob*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: blob_addn
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int blob_addn(struct blob *b, const uint8_t *data, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - struct blob*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: blob_add_uint16
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blob_add_uint16(struct blob *b, uint16_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blob_addn
      Src: /src/curl/tests/server/dnsd.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - data
    - n
    argTypes:
    - struct blob*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: blob_addchars
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - blob_addn
    linkageType: ''
    returnType: int
    signature: int blob_addchars(struct blob *b, const char *data, size_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - pkt
    - size
    - name
    - name_max
    argTypes:
    - unsigned char**
    - size_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 116
    functionName: qname2str
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int qname2str(const unsigned char **pkt, size_t *size,\n                     char
      *name, size_t name_max)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: blob_add
      Src: /src/curl/tests/server/dnsd.c:128,1
    - Dst: blob_addchars
      Src: /src/curl/tests/server/dnsd.c:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - struct blob*
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: blob_add_qname_part
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - blob_addchars
    - blob_add
    linkageType: ''
    returnType: int
    signature: int blob_add_qname_part(struct blob *b, struct Curl_str *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blob_add_qname_part
      Src: /src/curl/tests/server/dnsd.c:151,1
    - Dst: blob_add
      Src: /src/curl/tests/server/dnsd.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - struct blob*
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 156
    functionName: blob_add_qname
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - blob_add_qname_part
    - blob_add
    linkageType: ''
    returnType: int
    signature: int blob_add_qname(struct blob *b, const struct Curl_str *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - qtype
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: type2string
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *type2string(uint16_t qtype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/dnsd.c:210,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/dnsd.c:213,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:217,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/dnsd.c:218,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:219,1
    - Dst: get16bit
      Src: /src/curl/tests/server/dnsd.c:240,1
    - Dst: fprintf
      Src: /src/curl/tests/server/dnsd.c:244,1
    - Dst: fprintf
      Src: /src/curl/tests/server/dnsd.c:245,1
    - Dst: fprintf
      Src: /src/curl/tests/server/dnsd.c:246,1
    - Dst: fprintf
      Src: /src/curl/tests/server/dnsd.c:247,1
    - Dst: fprintf
      Src: /src/curl/tests/server/dnsd.c:248,1
    - Dst: fprintf
      Src: /src/curl/tests/server/dnsd.c:249,1
    - Dst: get16bit
      Src: /src/curl/tests/server/dnsd.c:251,1
    - Dst: qname2str
      Src: /src/curl/tests/server/dnsd.c:260,1
    - Dst: get16bit
      Src: /src/curl/tests/server/dnsd.c:261,1
    - Dst: fprintf
      Src: /src/curl/tests/server/dnsd.c:262,1
    - Dst: type2string
      Src: /src/curl/tests/server/dnsd.c:262,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:264,1
    - Dst: type2string
      Src: /src/curl/tests/server/dnsd.c:265,1
    - Dst: get16bit
      Src: /src/curl/tests/server/dnsd.c:267,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:271,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/dnsd.c:273,1
    - Dst: memcpy
      Src: /src/curl/tests/server/dnsd.c:276,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:279,1
    - Dst: fprintf
      Src: /src/curl/tests/server/dnsd.c:282,1
    - Dst: fprintf
      Src: /src/curl/tests/server/dnsd.c:284,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/dnsd.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 8
    argNames:
    - qid
    - data
    - size
    - qbuf
    - qbuflen
    - qlen
    - qtype
    - idp
    argTypes:
    - int
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - size_t*
    - uint16_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 290
    functionName: store_incoming
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - memcpy
    - logmsg
    - curlx_strerror
    - curlx_fopen
    - qname2str
    - snprintf
    - type2string
    - get16bit
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int store_incoming(int qid, const unsigned char *data, size_t size,\n
      \                         unsigned char *qbuf, size_t qbuflen, size_t *qlen,\n
      \                         uint16_t *qtype, uint16_t *idp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blob_addn
      Src: /src/curl/tests/server/dnsd.c:308,1
    - Dst: blob_add_uint16
      Src: /src/curl/tests/server/dnsd.c:310,1
    - Dst: blob_addn
      Src: /src/curl/tests/server/dnsd.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - body
    - a
    - alen
    - qtype
    argTypes:
    - struct blob*
    - unsigned char*
    - size_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 313
    functionName: add_answer
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - blob_addn
    - blob_add_uint16
    linkageType: ''
    returnType: int
    signature: "int add_answer(struct blob *body,\n                      const unsigned
      char *a, size_t alen,\n                      uint16_t qtype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sendto
      Src: /src/curl/tests/server/dnsd.c:353,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:358,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - sock
    - resp
    argTypes:
    - curl_socket_t
    - struct resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 364
    functionName: send_resp
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - logmsg
    - sendto
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode send_resp(curl_socket_t sock, struct resp *resp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/tests/server/dnsd.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - resp
    argTypes:
    - struct resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 377
    functionName: queue_resp
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: void
    signature: void queue_resp(struct resp *resp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/tests/server/dnsd.c:382,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/tests/server/dnsd.c:387,1
    - Dst: send_resp
      Src: /src/curl/tests/server/dnsd.c:394,1
    - Dst: curlx_free
      Src: /src/curl/tests/server/dnsd.c:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - sock
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 398
    functionName: send_resp_queue
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_now
    - curlx_ptimediff_ms
    - send_resp
    linkageType: ''
    returnType: timediff_t
    signature: timediff_t send_resp_queue(curl_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/tests/server/dnsd.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: clear_resp_queue
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void clear_resp_queue(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/tests/server/dnsd.c:461,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:469,1
    - Dst: memcpy
      Src: /src/curl/tests/server/dnsd.c:472,1
    - Dst: CURL_UNCONST
      Src: /src/curl/tests/server/dnsd.c:472,1
    - Dst: blob_addn
      Src: /src/curl/tests/server/dnsd.c:481,1
    - Dst: blob_addn
      Src: /src/curl/tests/server/dnsd.c:484,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:485,1
    - Dst: add_answer
      Src: /src/curl/tests/server/dnsd.c:493,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:495,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/tests/server/dnsd.c:496,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:499,1
    - Dst: add_answer
      Src: /src/curl/tests/server/dnsd.c:504,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:506,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/tests/server/dnsd.c:507,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:510,1
    - Dst: add_answer
      Src: /src/curl/tests/server/dnsd.c:514,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:515,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:519,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:523,1
    - Dst: curlx_now
      Src: /src/curl/tests/server/dnsd.c:527,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:536,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:541,1
    - Dst: curlx_free
      Src: /src/curl/tests/server/dnsd.c:542,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 7
    argNames:
    - qid
    - addr
    - addrlen
    - qbuf
    - qlen
    - qtype
    - id
    argTypes:
    - int
    - struct sockaddr*
    - curl_socklen_t
    - unsigned char*
    - size_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 544
    functionName: create_resp
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - blob_addn
    - curlx_inet_ntop
    - memcpy
    - curlx_now
    - logmsg
    - CURL_UNCONST
    - curlx_free
    - curlx_calloc
    - add_answer
    linkageType: ''
    returnType: struct resp
    signature: "struct resp *\ncreate_resp(int qid, const struct sockaddr *addr, curl_socklen_t
      addrlen,\n            const unsigned char *qbuf, size_t qlen,\n            uint16_t
      qtype, uint16_t id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blob_add
      Src: /src/curl/tests/server/dnsd.c:556,1
    - Dst: blob_addchars
      Src: /src/curl/tests/server/dnsd.c:556,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - struct blob*
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 562
    functionName: read_https_alpn_part
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - blob_addchars
    - blob_add
    linkageType: ''
    returnType: int
    signature: int read_https_alpn_part(struct blob *b, struct Curl_str *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: blob_reset
      Src: /src/curl/tests/server/dnsd.c:569,1
    - Dst: curlx_str_word
      Src: /src/curl/tests/server/dnsd.c:570,1
    - Dst: read_https_alpn_part
      Src: /src/curl/tests/server/dnsd.c:573,1
    - Dst: blob_add_uint16
      Src: /src/curl/tests/server/dnsd.c:580,1
    - Dst: blob_add_uint16
      Src: /src/curl/tests/server/dnsd.c:581,1
    - Dst: blob_addn
      Src: /src/curl/tests/server/dnsd.c:582,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - b
    - ps
    argTypes:
    - struct blob*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 585
    functionName: read_https_alpn
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - blob_addn
    - blob_add_uint16
    - curlx_str_word
    - blob_reset
    - read_https_alpn_part
    linkageType: ''
    returnType: int
    signature: int read_https_alpn(struct blob *b, const char **ps)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: blob_reset
      Src: /src/curl/tests/server/dnsd.c:592,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/tests/server/dnsd.c:594,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/dnsd.c:595,1
    - Dst: blob_add_uint16
      Src: /src/curl/tests/server/dnsd.c:597,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/tests/server/dnsd.c:600,1
    - Dst: curlx_str_word
      Src: /src/curl/tests/server/dnsd.c:601,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:602,1
    - Dst: blob_add_qname
      Src: /src/curl/tests/server/dnsd.c:605,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/tests/server/dnsd.c:609,1
    - Dst: strncmp
      Src: /src/curl/tests/server/dnsd.c:612,1
    - Dst: read_https_alpn
      Src: /src/curl/tests/server/dnsd.c:614,1
    - Dst: strncmp
      Src: /src/curl/tests/server/dnsd.c:617,1
    - Dst: blob_add_uint16
      Src: /src/curl/tests/server/dnsd.c:619,1
    - Dst: blob_add_uint16
      Src: /src/curl/tests/server/dnsd.c:620,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - b
    - s
    argTypes:
    - struct blob*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 587
    functionDepth: 4
    functionLinenumber: 587
    functionLinenumberEnd: 627
    functionName: read_https
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - blob_add_uint16
    - curlx_str_word
    - read_https_alpn
    - blob_add_qname
    - logmsg
    - curlx_str_number
    - curlx_str_passblanks
    - blob_reset
    - strncmp
    linkageType: ''
    returnType: int
    signature: int read_https(struct blob *b, const char *s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/dnsd.c:635,1
    - Dst: curlx_stat
      Src: /src/curl/tests/server/dnsd.c:636,1
    - Dst: blob_reset
      Src: /src/curl/tests/server/dnsd.c:655,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:658,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/dnsd.c:659,1
    - Dst: fgets
      Src: /src/curl/tests/server/dnsd.c:663,1
    - Dst: strchr
      Src: /src/curl/tests/server/dnsd.c:665,1
    - Dst: strncmp
      Src: /src/curl/tests/server/dnsd.c:669,1
    - Dst: curlx_inet_pton
      Src: /src/curl/tests/server/dnsd.c:670,1
    - Dst: strncmp
      Src: /src/curl/tests/server/dnsd.c:674,1
    - Dst: strchr
      Src: /src/curl/tests/server/dnsd.c:677,1
    - Dst: curlx_inet_pton
      Src: /src/curl/tests/server/dnsd.c:682,1
    - Dst: strncmp
      Src: /src/curl/tests/server/dnsd.c:686,1
    - Dst: read_https
      Src: /src/curl/tests/server/dnsd.c:687,1
    - Dst: strncmp
      Src: /src/curl/tests/server/dnsd.c:690,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/dnsd.c:694,1
    - Dst: strncmp
      Src: /src/curl/tests/server/dnsd.c:699,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/dnsd.c:703,1
    - Dst: strncmp
      Src: /src/curl/tests/server/dnsd.c:708,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/dnsd.c:712,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:722,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:725,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:729,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/dnsd.c:732,1
    - Dst: logmsg
      Src: /src/curl/tests/server/dnsd.c:735,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 629
    functionDepth: 5
    functionLinenumber: 629
    functionLinenumberEnd: 736
    functionName: read_instructions
    functionSourceFile: /src/curl/tests/server/dnsd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - fgets
    - logmsg
    - curlx_str_number
    - curlx_fopen
    - read_https
    - curlx_stat
    - blob_reset
    - strchr
    - curlx_inet_pton
    - snprintf
    - strncmp
    linkageType: ''
    returnType: void
    signature: void read_instructions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/server/tftpd.c:221,1
    - Dst: sigaction
      Src: /src/curl/tests/server/tftpd.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: mysignal
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - sigaction
    - memset
    linkageType: ''
    returnType: void
    signature: void mysignal(int sig, void (*handler)(int))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:233,1
    - Dst: unlink
      Src: /src/curl/tests/server/tftpd.c:239,1
    - Dst: unlink
      Src: /src/curl/tests/server/tftpd.c:243,1
    - Dst: clear_advisor_read_lock
      Src: /src/curl/tests/server/tftpd.c:247,1
    - Dst: exit
      Src: /src/curl/tests/server/tftpd.c:249,1
    - Dst: siglongjmp
      Src: /src/curl/tests/server/tftpd.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 254
    functionName: timer
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - logmsg
    - clear_advisor_read_lock
    - unlink
    - siglongjmp
    - exit
    linkageType: ''
    returnType: void
    signature: void timer(int signum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: justtimeout
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void justtimeout(int signum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/curl/tests/server/tftpd.c:274,1
    - Dst: htons
      Src: /src/curl/tests/server/tftpd.c:275,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/tftpd.c:280,1
    - Dst: strlen
      Src: /src/curl/tests/server/tftpd.c:283,1
    - Dst: memcpy
      Src: /src/curl/tests/server/tftpd.c:287,1
    - Dst: swrite
      Src: /src/curl/tests/server/tftpd.c:289,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 291
    functionName: nak
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - htons
    - memcpy
    - swrite
    - logmsg
    - curlx_strerror
    - strlen
    linkageType: ''
    returnType: void
    signature: void nak(int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: rw_init
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct tftphdr
    signature: struct tftphdr *rw_init(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rw_init
      Src: /src/curl/tests/server/tftpd.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: w_init
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 3
    functionsReached:
    - rw_init
    linkageType: ''
    returnType: struct tftphdr
    signature: struct tftphdr *w_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rw_init
      Src: /src/curl/tests/server/tftpd.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: r_init
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - rw_init
    linkageType: ''
    returnType: struct tftphdr
    signature: struct tftphdr *r_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CURLMIN
      Src: /src/curl/tests/server/tftpd.c:341,1
    - Dst: memcpy
      Src: /src/curl/tests/server/tftpd.c:342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - test
    - convert
    argTypes:
    - struct testcase*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 377
    functionName: read_ahead
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void read_ahead(struct testcase *test,\n                       int
      convert /* if true, convert to ASCII */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_ahead
      Src: /src/curl/tests/server/tftpd.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - test
    - dpp
    - convert
    argTypes:
    - struct testcase*
    - struct tftphdr**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 396
    functionName: readit
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - read_ahead
    linkageType: ''
    returnType: int
    signature: "int readit(struct testcase *test, struct tftphdr * volatile *dpp,\n
      \                 int convert /* if true, convert to ASCII */)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/tftpd.c:420,1
    - Dst: curlx_open
      Src: /src/curl/tests/server/tftpd.c:421,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:431,1
    - Dst: write
      Src: /src/curl/tests/server/tftpd.c:449,1
    - Dst: curl_lseek
      Src: /src/curl/tests/server/tftpd.c:457,1
    - Dst: write
      Src: /src/curl/tests/server/tftpd.c:464,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - test
    - convert
    argTypes:
    - struct testcase*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 470
    functionName: write_behind
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - logmsg
    - curlx_open
    - curl_lseek
    - write
    - snprintf
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t write_behind(struct testcase *test, int convert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_behind
      Src: /src/curl/tests/server/tftpd.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - test
    - dpp
    - ct
    - convert
    argTypes:
    - struct testcase*
    - struct tftphdr**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 485
    functionName: writeit
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - write_behind
    linkageType: ''
    returnType: int
    signature: "int writeit(struct testcase *test, struct tftphdr * volatile *dpp,\n
      \                  int ct, int convert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IoctlSocket
      Src: /src/curl/tests/server/tftpd.c:508,1
    - Dst: ioctlsocket
      Src: /src/curl/tests/server/tftpd.c:511,1
    - Dst: ioctl
      Src: /src/curl/tests/server/tftpd.c:514,1
    - Dst: recvfrom
      Src: /src/curl/tests/server/tftpd.c:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - f
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 532
    functionName: synchnet
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - ioctl
    - recvfrom
    - ioctlsocket
    - IoctlSocket
    linkageType: ''
    returnType: int
    signature: int synchnet(curl_socket_t f /* socket to flush */)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: test2fopen
      Src: /src/curl/tests/server/tftpd.c:540,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:544,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/tftpd.c:545,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:546,1
    - Dst: getpart
      Src: /src/curl/tests/server/tftpd.c:556,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/tftpd.c:557,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:559,1
    - Dst: sscanf
      Src: /src/curl/tests/server/tftpd.c:566,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:567,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:571,1
    - Dst: strchr
      Src: /src/curl/tests/server/tftpd.c:574,1
    - Dst: strchr
      Src: /src/curl/tests/server/tftpd.c:576,1
    - Dst: free
      Src: /src/curl/tests/server/tftpd.c:591,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct testcase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 595
    functionName: tftpd_parse_servercmd
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - logmsg
    - curlx_strerror
    - test2fopen
    - free
    - getpart
    - sscanf
    - strchr
    linkageType: ''
    returnType: int
    signature: int tftpd_parse_servercmd(struct testcase *req)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:605,1
    - Dst: strncmp
      Src: /src/curl/tests/server/tftpd.c:607,1
    - Dst: snprintf
      Src: /src/curl/tests/server/tftpd.c:610,1
    - Dst: our_getpid
      Src: /src/curl/tests/server/tftpd.c:610,1
    - Dst: strlen
      Src: /src/curl/tests/server/tftpd.c:611,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:613,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/server/tftpd.c:614,1
    - Dst: strrchr
      Src: /src/curl/tests/server/tftpd.c:622,1
    - Dst: ISDIGIT
      Src: /src/curl/tests/server/tftpd.c:635,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/tftpd.c:640,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:643,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:654,1
    - Dst: tftpd_parse_servercmd
      Src: /src/curl/tests/server/tftpd.c:658,1
    - Dst: test2fopen
      Src: /src/curl/tests/server/tftpd.c:660,1
    - Dst: snprintf
      Src: /src/curl/tests/server/tftpd.c:663,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:668,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/tftpd.c:669,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:670,1
    - Dst: getpart
      Src: /src/curl/tests/server/tftpd.c:675,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/tftpd.c:676,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:678,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:691,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:695,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 3
    argNames:
    - test
    - filename
    - mode
    argTypes:
    - struct testcase*
    - char*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 697
    functionName: validate_access
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - strlen
    - logmsg
    - tftpd_parse_servercmd
    - curlx_strdup
    - strrchr
    - curlx_str_number
    - test2fopen
    - curlx_strerror
    - our_getpid
    - getpart
    - ISDIGIT
    - snprintf
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int validate_access(struct testcase *test,\n                           const
      char *filename, unsigned short mode)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: r_init
      Src: /src/curl/tests/server/tftpd.c:708,1
    - Dst: mysignal
      Src: /src/curl/tests/server/tftpd.c:713,1
    - Dst: readit
      Src: /src/curl/tests/server/tftpd.c:716,1
    - Dst: nak
      Src: /src/curl/tests/server/tftpd.c:718,1
    - Dst: htons
      Src: /src/curl/tests/server/tftpd.c:721,1
    - Dst: htons
      Src: /src/curl/tests/server/tftpd.c:722,1
    - Dst: sigsetjmp
      Src: /src/curl/tests/server/tftpd.c:725,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:728,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/server/tftpd.c:729,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:733,1
    - Dst: swrite
      Src: /src/curl/tests/server/tftpd.c:734,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:735,1
    - Dst: read_ahead
      Src: /src/curl/tests/server/tftpd.c:738,1
    - Dst: alarm
      Src: /src/curl/tests/server/tftpd.c:741,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:743,1
    - Dst: sread
      Src: /src/curl/tests/server/tftpd.c:744,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:745,1
    - Dst: alarm
      Src: /src/curl/tests/server/tftpd.c:747,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:752,1
    - Dst: ntohs
      Src: /src/curl/tests/server/tftpd.c:755,1
    - Dst: ntohs
      Src: /src/curl/tests/server/tftpd.c:756,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:759,1
    - Dst: synchnet
      Src: /src/curl/tests/server/tftpd.c:768,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - test
    - pf
    argTypes:
    - struct testcase*
    - struct formats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 776
    functionName: sendtftp
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - htons
    - readit
    - ntohs
    - synchnet
    - logmsg
    - r_init
    - nak
    - curlx_wait_ms
    - sread
    - read_ahead
    - sigsetjmp
    - swrite
    - alarm
    - mysignal
    linkageType: ''
    returnType: void
    signature: void sendtftp(struct testcase *test, const struct formats *pf)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: w_init
      Src: /src/curl/tests/server/tftpd.c:790,1
    - Dst: mysignal
      Src: /src/curl/tests/server/tftpd.c:792,1
    - Dst: htons
      Src: /src/curl/tests/server/tftpd.c:797,1
    - Dst: htons
      Src: /src/curl/tests/server/tftpd.c:798,1
    - Dst: sigsetjmp
      Src: /src/curl/tests/server/tftpd.c:801,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:804,1
    - Dst: swrite
      Src: /src/curl/tests/server/tftpd.c:805,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:806,1
    - Dst: write_behind
      Src: /src/curl/tests/server/tftpd.c:809,1
    - Dst: alarm
      Src: /src/curl/tests/server/tftpd.c:812,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:814,1
    - Dst: sread
      Src: /src/curl/tests/server/tftpd.c:815,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:816,1
    - Dst: alarm
      Src: /src/curl/tests/server/tftpd.c:818,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:823,1
    - Dst: ntohs
      Src: /src/curl/tests/server/tftpd.c:826,1
    - Dst: ntohs
      Src: /src/curl/tests/server/tftpd.c:827,1
    - Dst: synchnet
      Src: /src/curl/tests/server/tftpd.c:835,1
    - Dst: writeit
      Src: /src/curl/tests/server/tftpd.c:841,1
    - Dst: nak
      Src: /src/curl/tests/server/tftpd.c:844,1
    - Dst: nak
      Src: /src/curl/tests/server/tftpd.c:846,1
    - Dst: write_behind
      Src: /src/curl/tests/server/tftpd.c:850,1
    - Dst: curlx_close
      Src: /src/curl/tests/server/tftpd.c:853,1
    - Dst: htons
      Src: /src/curl/tests/server/tftpd.c:857,1
    - Dst: htons
      Src: /src/curl/tests/server/tftpd.c:858,1
    - Dst: swrite
      Src: /src/curl/tests/server/tftpd.c:859,1
    - Dst: mysignal
      Src: /src/curl/tests/server/tftpd.c:861,1
    - Dst: alarm
      Src: /src/curl/tests/server/tftpd.c:862,1
    - Dst: sread
      Src: /src/curl/tests/server/tftpd.c:865,1
    - Dst: alarm
      Src: /src/curl/tests/server/tftpd.c:867,1
    - Dst: swrite
      Src: /src/curl/tests/server/tftpd.c:874,1
    - Dst: curlx_close
      Src: /src/curl/tests/server/tftpd.c:879,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 82
    argCount: 2
    argNames:
    - test
    - pf
    argTypes:
    - struct testcase*
    - struct formats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 781
    functionDepth: 4
    functionLinenumber: 781
    functionLinenumberEnd: 882
    functionName: recvtftp
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - curlx_close
    - htons
    - ntohs
    - synchnet
    - logmsg
    - nak
    - sread
    - write_behind
    - w_init
    - writeit
    - sigsetjmp
    - swrite
    - alarm
    - mysignal
    linkageType: ''
    returnType: void
    signature: void recvtftp(struct testcase *test, const struct formats *pf)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/tftpd.c:902,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/tftpd.c:905,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:909,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/tftpd.c:910,1
    - Dst: logmsg
      Src: /src/curl/tests/server/tftpd.c:911,1
    - Dst: fprintf
      Src: /src/curl/tests/server/tftpd.c:916,1
    - Dst: fprintf
      Src: /src/curl/tests/server/tftpd.c:944,1
    - Dst: nak
      Src: /src/curl/tests/server/tftpd.c:957,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/tftpd.c:958,1
    - Dst: fprintf
      Src: /src/curl/tests/server/tftpd.c:963,1
    - Dst: ISUPPER
      Src: /src/curl/tests/server/tftpd.c:966,1
    - Dst: tolower
      Src: /src/curl/tests/server/tftpd.c:967,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/tftpd.c:970,1
    - Dst: strcmp
      Src: /src/curl/tests/server/tftpd.c:973,1
    - Dst: nak
      Src: /src/curl/tests/server/tftpd.c:976,1
    - Dst: validate_access
      Src: /src/curl/tests/server/tftpd.c:979,1
    - Dst: nak
      Src: /src/curl/tests/server/tftpd.c:981,1
    - Dst: getsockopt
      Src: /src/curl/tests/server/tftpd.c:987,1
    - Dst: setsockopt
      Src: /src/curl/tests/server/tftpd.c:990,1
    - Dst: recvtftp
      Src: /src/curl/tests/server/tftpd.c:995,1
    - Dst: sendtftp
      Src: /src/curl/tests/server/tftpd.c:997,1
    - Dst: setsockopt
      Src: /src/curl/tests/server/tftpd.c:1001,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 3
    argNames:
    - test
    - tp
    - size
    argTypes:
    - struct testcase*
    - struct tftphdr*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 887
    functionDepth: 5
    functionLinenumber: 887
    functionLinenumberEnd: 1006
    functionName: do_tftp
    functionSourceFile: /src/curl/tests/server/tftpd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - sendtftp
    - recvtftp
    - logmsg
    - nak
    - ISUPPER
    - curlx_strerror
    - curlx_fopen
    - validate_access
    - strcmp
    - tolower
    - snprintf
    - setsockopt
    - getsockopt
    - fprintf
    linkageType: ''
    returnType: int
    signature: int do_tftp(struct testcase *test, struct tftphdr *tp, ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: SET_RTP_PKT_CHN
    functionSourceFile: /src/curl/tests/server/rtspd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_RTP_PKT_CHN(p, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: SET_RTP_PKT_LEN
    functionSourceFile: /src/curl/tests/server/rtspd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_RTP_PKT_LEN(p, l)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:152,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:154,1
    - Dst: sscanf
      Src: /src/curl/tests/server/rtspd.c:160,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:171,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:174,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:179,1
    - Dst: strrchr
      Src: /src/curl/tests/server/rtspd.c:186,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:191,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:191,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:192,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:195,1
    - Dst: strncmp
      Src: /src/curl/tests/server/rtspd.c:198,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:199,1
    - Dst: strncmp
      Src: /src/curl/tests/server/rtspd.c:204,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:205,1
    - Dst: ISDIGIT
      Src: /src/curl/tests/server/rtspd.c:213,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/rtspd.c:217,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:221,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:232,1
    - Dst: test2fopen
      Src: /src/curl/tests/server/rtspd.c:234,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:239,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:240,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:241,1
    - Dst: getpart
      Src: /src/curl/tests/server/rtspd.c:257,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/rtspd.c:258,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:260,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:267,1
    - Dst: strncmp
      Src: /src/curl/tests/server/rtspd.c:270,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:270,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:271,1
    - Dst: strncmp
      Src: /src/curl/tests/server/rtspd.c:274,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:274,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:275,1
    - Dst: strncmp
      Src: /src/curl/tests/server/rtspd.c:279,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:279,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:280,1
    - Dst: sscanf
      Src: /src/curl/tests/server/rtspd.c:283,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:284,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:286,1
    - Dst: sscanf
      Src: /src/curl/tests/server/rtspd.c:291,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:292,1
    - Dst: sscanf
      Src: /src/curl/tests/server/rtspd.c:295,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:302,1
    - Dst: malloc
      Src: /src/curl/tests/server/rtspd.c:307,1
    - Dst: SET_RTP_PKT_CHN
      Src: /src/curl/tests/server/rtspd.c:313,1
    - Dst: SET_RTP_PKT_LEN
      Src: /src/curl/tests/server/rtspd.c:316,1
    - Dst: memcpy
      Src: /src/curl/tests/server/rtspd.c:321,1
    - Dst: realloc
      Src: /src/curl/tests/server/rtspd.c:329,1
    - Dst: memcpy
      Src: /src/curl/tests/server/rtspd.c:334,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:339,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:340,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:342,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:347,1
    - Dst: strchr
      Src: /src/curl/tests/server/rtspd.c:350,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:356,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:358,1
    - Dst: sscanf
      Src: /src/curl/tests/server/rtspd.c:362,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:364,1
    - Dst: strncmp
      Src: /src/curl/tests/server/rtspd.c:370,1
    - Dst: strncmp
      Src: /src/curl/tests/server/rtspd.c:373,1
    - Dst: strchr
      Src: /src/curl/tests/server/rtspd.c:376,1
    - Dst: ISDIGIT
      Src: /src/curl/tests/server/rtspd.c:377,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/rtspd.c:379,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:391,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:399,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:402,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:407,1
    - Dst: CURL_STRNICMP
      Src: /src/curl/tests/server/rtspd.c:424,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:430,1
    - Dst: curlx_str_numblanks
      Src: /src/curl/tests/server/rtspd.c:431,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:433,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:439,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:441,1
    - Dst: CURL_STRNICMP
      Src: /src/curl/tests/server/rtspd.c:444,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:445,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:451,1
    - Dst: strchr
      Src: /src/curl/tests/server/rtspd.c:458,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:464,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:467,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:470,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:476,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:479,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:483,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:485,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:489,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:493,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:496,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:501,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:503,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:509,1
    - Dst: strncmp
      Src: /src/curl/tests/server/rtspd.c:510,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:510,1
    - Dst: strncmp
      Src: /src/curl/tests/server/rtspd.c:511,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:511,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:514,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:523,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:526,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:538,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 231
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct rtspd_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 545
    functionName: rtspd_ProcessRequest
    functionSourceFile: /src/curl/tests/server/rtspd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - CURL_STRNICMP
    - logmsg
    - strrchr
    - strcmp
    - ISDIGIT
    - strncmp
    - memcpy
    - SET_RTP_PKT_LEN
    - realloc
    - curlx_str_number
    - test2fopen
    - curlx_strerror
    - curlx_str_numblanks
    - malloc
    - getpart
    - sscanf
    - strstr
    - SET_RTP_PKT_CHN
    - free
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int rtspd_ProcessRequest(struct rtspd_httprequest *req)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/rtspd.c:558,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/rtspd.c:566,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:570,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:571,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:572,1
    - Dst: fwrite
      Src: /src/curl/tests/server/rtspd.c:578,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:588,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:590,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:591,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:592,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/rtspd.c:598,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:600,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:601,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - reqbuf
    - totalsize
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 602
    functionName: rtspd_storerequest
    functionSourceFile: /src/curl/tests/server/rtspd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - logmsg
    - curlx_strerror
    - fwrite
    - curlx_fopen
    - snprintf
    linkageType: ''
    returnType: void
    signature: void rtspd_storerequest(const char *reqbuf, size_t totalsize)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/curl/tests/server/rtspd.c:647,1
    - Dst: curlx_uztosz
      Src: /src/curl/tests/server/rtspd.c:648,1
    - Dst: sread
      Src: /src/curl/tests/server/rtspd.c:656,1
    - Dst: sread
      Src: /src/curl/tests/server/rtspd.c:658,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:664,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:669,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:670,1
    - Dst: rtspd_storerequest
      Src: /src/curl/tests/server/rtspd.c:676,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:680,1
    - Dst: rtspd_ProcessRequest
      Src: /src/curl/tests/server/rtspd.c:685,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:689,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:696,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:702,1
    - Dst: rtspd_storerequest
      Src: /src/curl/tests/server/rtspd.c:711,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 76
    argCount: 2
    argNames:
    - sock
    - req
    argTypes:
    - curl_socket_t
    - struct rtspd_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 716
    functionName: rtspd_get_request
    functionSourceFile: /src/curl/tests/server/rtspd.c
    functionUses: 0
    functionsReached:
    - curlx_uztosz
    - memmove
    - logmsg
    - curlx_strerror
    - sread
    - rtspd_storerequest
    - rtspd_ProcessRequest
    linkageType: ''
    returnType: int
    signature: int rtspd_get_request(curl_socket_t sock, struct rtspd_httprequest
      *req)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/rtspd.c:737,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:739,1
    - Dst: swrite
      Src: /src/curl/tests/server/rtspd.c:748,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:752,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:771,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:776,1
    - Dst: snprintf
      Src: /src/curl/tests/server/rtspd.c:777,1
    - Dst: our_getpid
      Src: /src/curl/tests/server/rtspd.c:778,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:779,1
    - Dst: snprintf
      Src: /src/curl/tests/server/rtspd.c:780,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:786,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:789,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:793,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:798,1
    - Dst: strlen
      Src: /src/curl/tests/server/rtspd.c:808,1
    - Dst: test2fopen
      Src: /src/curl/tests/server/rtspd.c:811,1
    - Dst: snprintf
      Src: /src/curl/tests/server/rtspd.c:814,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:817,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:818,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:819,1
    - Dst: getpart
      Src: /src/curl/tests/server/rtspd.c:823,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/rtspd.c:824,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:826,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:833,1
    - Dst: test2fopen
      Src: /src/curl/tests/server/rtspd.c:838,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:841,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:842,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:843,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:844,1
    - Dst: getpart
      Src: /src/curl/tests/server/rtspd.c:849,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/rtspd.c:850,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:852,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:853,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:860,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:861,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:868,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:870,1
    - Dst: strstr
      Src: /src/curl/tests/server/rtspd.c:872,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:874,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/rtspd.c:879,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:882,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:883,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:884,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:885,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:886,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:887,1
    - Dst: swrite
      Src: /src/curl/tests/server/rtspd.c:899,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:905,1
    - Dst: fwrite
      Src: /src/curl/tests/server/rtspd.c:908,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:918,1
    - Dst: swrite
      Src: /src/curl/tests/server/rtspd.c:924,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:933,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/rtspd.c:937,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:939,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:940,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:943,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:944,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:949,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:952,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:953,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:957,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:959,1
    - Dst: sscanf
      Src: /src/curl/tests/server/rtspd.c:967,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:968,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:969,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/server/rtspd.c:973,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:979,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:980,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:985,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:988,1
    - Dst: strchr
      Src: /src/curl/tests/server/rtspd.c:990,1
    - Dst: free
      Src: /src/curl/tests/server/rtspd.c:997,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 203
    argCount: 2
    argNames:
    - sock
    - req
    argTypes:
    - curl_socket_t
    - struct rtspd_httprequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 1004
    functionName: rtspd_send_doc
    functionSourceFile: /src/curl/tests/server/rtspd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - swrite
    - strstr
    - strlen
    - logmsg
    - curlx_strerror
    - test2fopen
    - free
    - curlx_fopen
    - fwrite
    - strcmp
    - curlx_wait_ms
    - our_getpid
    - getpart
    - sscanf
    - strchr
    - snprintf
    linkageType: ''
    returnType: int
    signature: int rtspd_send_doc(curl_socket_t sock, struct rtspd_httprequest *req)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/server/rtspd.c:1021,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:1030,1
    - Dst: printf
      Src: /src/curl/tests/server/rtspd.c:1031,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:1041,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:1046,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:1051,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:1056,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:1061,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:1068,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:1075,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/rtspd.c:1079,1
    - Dst: strcmp
      Src: /src/curl/tests/server/rtspd.c:1084,1
    - Dst: puts
      Src: /src/curl/tests/server/rtspd.c:1092,1
    - Dst: snprintf
      Src: /src/curl/tests/server/rtspd.c:1106,1
    - Dst: install_signal_handlers
      Src: /src/curl/tests/server/rtspd.c:1109,1
    - Dst: socket
      Src: /src/curl/tests/server/rtspd.c:1114,1
    - Dst: socket
      Src: /src/curl/tests/server/rtspd.c:1117,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1122,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:1123,1
    - Dst: setsockopt
      Src: /src/curl/tests/server/rtspd.c:1128,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1130,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:1131,1
    - Dst: memset
      Src: /src/curl/tests/server/rtspd.c:1138,1
    - Dst: htons
      Src: /src/curl/tests/server/rtspd.c:1141,1
    - Dst: bind
      Src: /src/curl/tests/server/rtspd.c:1142,1
    - Dst: memset
      Src: /src/curl/tests/server/rtspd.c:1146,1
    - Dst: htons
      Src: /src/curl/tests/server/rtspd.c:1149,1
    - Dst: bind
      Src: /src/curl/tests/server/rtspd.c:1150,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1155,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:1156,1
    - Dst: memset
      Src: /src/curl/tests/server/rtspd.c:1165,1
    - Dst: getsockname
      Src: /src/curl/tests/server/rtspd.c:1174,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1176,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:1177,1
    - Dst: sclose
      Src: /src/curl/tests/server/rtspd.c:1178,1
    - Dst: ntohs
      Src: /src/curl/tests/server/rtspd.c:1183,1
    - Dst: ntohs
      Src: /src/curl/tests/server/rtspd.c:1187,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1195,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1196,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1197,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1198,1
    - Dst: sclose
      Src: /src/curl/tests/server/rtspd.c:1199,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1203,1
    - Dst: listen
      Src: /src/curl/tests/server/rtspd.c:1206,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1209,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:1210,1
    - Dst: write_pidfile
      Src: /src/curl/tests/server/rtspd.c:1219,1
    - Dst: write_portfile
      Src: /src/curl/tests/server/rtspd.c:1224,1
    - Dst: accept
      Src: /src/curl/tests/server/rtspd.c:1230,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1236,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/rtspd.c:1237,1
    - Dst: set_advisor_read_lock
      Src: /src/curl/tests/server/rtspd.c:1247,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1250,1
    - Dst: setsockopt
      Src: /src/curl/tests/server/rtspd.c:1258,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1260,1
    - Dst: rtspd_get_request
      Src: /src/curl/tests/server/rtspd.c:1274,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1282,1
    - Dst: rtspd_send_doc
      Src: /src/curl/tests/server/rtspd.c:1291,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1296,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1300,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1305,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1312,1
    - Dst: sclose
      Src: /src/curl/tests/server/rtspd.c:1313,1
    - Dst: clear_advisor_read_lock
      Src: /src/curl/tests/server/rtspd.c:1318,1
    - Dst: sclose
      Src: /src/curl/tests/server/rtspd.c:1328,1
    - Dst: sclose
      Src: /src/curl/tests/server/rtspd.c:1331,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1334,1
    - Dst: unlink
      Src: /src/curl/tests/server/rtspd.c:1337,1
    - Dst: unlink
      Src: /src/curl/tests/server/rtspd.c:1339,1
    - Dst: clear_advisor_read_lock
      Src: /src/curl/tests/server/rtspd.c:1343,1
    - Dst: restore_signal_handlers
      Src: /src/curl/tests/server/rtspd.c:1346,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1349,1
    - Dst: our_getpid
      Src: /src/curl/tests/server/rtspd.c:1350,1
    - Dst: raise
      Src: /src/curl/tests/server/rtspd.c:1356,1
    - Dst: logmsg
      Src: /src/curl/tests/server/rtspd.c:1359,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 227
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1006
    functionDepth: 5
    functionLinenumber: 1006
    functionLinenumberEnd: 1361
    functionName: test_rtspd
    functionSourceFile: /src/curl/tests/server/rtspd.c
    functionUses: 0
    functionsReached:
    - accept
    - rtspd_get_request
    - getsockname
    - ntohs
    - logmsg
    - strcmp
    - unlink
    - rtspd_send_doc
    - write_portfile
    - curlx_str_number
    - curlx_strerror
    - socket
    - snprintf
    - setsockopt
    - htons
    - restore_signal_handlers
    - write_pidfile
    - bind
    - memset
    - set_advisor_read_lock
    - install_signal_handlers
    - printf
    - raise
    - clear_advisor_read_lock
    - listen
    - our_getpid
    - puts
    - sclose
    linkageType: ''
    returnType: int
    signature: int test_rtspd(int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: mqttd_resetdefaults
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - logmsg
    linkageType: ''
    returnType: void
    signature: void mqttd_resetdefaults(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/mqttd.c:80,1
    - Dst: mqttd_resetdefaults
      Src: /src/curl/tests/server/mqttd.c:81,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:84,1
    - Dst: fgets
      Src: /src/curl/tests/server/mqttd.c:85,1
    - Dst: sscanf
      Src: /src/curl/tests/server/mqttd.c:90,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:91,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/mqttd.c:93,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:95,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:98,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:99,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:102,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:103,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:106,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:107,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:110,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:111,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:114,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/mqttd.c:116,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:118,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:121,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/mqttd.c:123,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:125,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:128,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/mqttd.c:130,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:132,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:135,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:136,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/mqttd.c:141,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:144,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 146
    functionName: mqttd_getconfig
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - fgets
    - mqttd_resetdefaults
    - logmsg
    - curlx_str_number
    - curlx_fopen
    - strcmp
    - sscanf
    linkageType: ''
    returnType: void
    signature: void mqttd_getconfig(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/mqttd.c:165,1
    - Dst: fprintf
      Src: /src/curl/tests/server/mqttd.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - dir
    - prefix
    - remlen
    - output
    - buffer
    - len
    argTypes:
    - mqttdir
    - char*
    - size_t
    - FILE*
    - unsigned char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 172
    functionName: logprotocol
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void logprotocol(mqttdir dir,\n                        const char
      *prefix, size_t remlen,\n                        FILE *output,\n                        const
      unsigned char *buffer, ssize_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:190,1
    - Dst: swrite
      Src: /src/curl/tests/server/mqttd.c:197,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:199,1
    - Dst: loghex
      Src: /src/curl/tests/server/mqttd.c:200,1
    - Dst: logprotocol
      Src: /src/curl/tests/server/mqttd.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - dump
    - fd
    argTypes:
    - FILE*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 208
    functionName: connack
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - swrite
    - logmsg
    - loghex
    - logprotocol
    linkageType: ''
    returnType: int
    signature: int connack(FILE *dump, curl_socket_t fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swrite
      Src: /src/curl/tests/server/mqttd.c:222,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:224,1
    - Dst: loghex
      Src: /src/curl/tests/server/mqttd.c:225,1
    - Dst: logprotocol
      Src: /src/curl/tests/server/mqttd.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - dump
    - fd
    - packetid
    argTypes:
    - FILE*
    - curl_socket_t
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 230
    functionName: suback
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - swrite
    - logmsg
    - loghex
    - logprotocol
    linkageType: ''
    returnType: int
    signature: int suback(FILE *dump, curl_socket_t fd, unsigned short packetid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swrite
      Src: /src/curl/tests/server/mqttd.c:244,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:246,1
    - Dst: loghex
      Src: /src/curl/tests/server/mqttd.c:247,1
    - Dst: logprotocol
      Src: /src/curl/tests/server/mqttd.c:248,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - dump
    - fd
    - packetid
    argTypes:
    - FILE*
    - curl_socket_t
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 253
    functionName: puback
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - swrite
    - logmsg
    - loghex
    - logprotocol
    linkageType: ''
    returnType: int
    signature: int puback(FILE *dump, curl_socket_t fd, unsigned short packetid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:272,1
    - Dst: swrite
      Src: /src/curl/tests/server/mqttd.c:275,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:277,1
    - Dst: loghex
      Src: /src/curl/tests/server/mqttd.c:278,1
    - Dst: logprotocol
      Src: /src/curl/tests/server/mqttd.c:279,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - dump
    - fd
    argTypes:
    - FILE*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 286
    functionName: disconnect
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - swrite
    - logmsg
    - loghex
    - logprotocol
    linkageType: ''
    returnType: int
    signature: int disconnect(FILE *dump, curl_socket_t fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - packetlen
    - remlength
    argTypes:
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 330
    functionName: encode_length
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - logmsg
    linkageType: ''
    returnType: size_t
    signature: "size_t encode_length(size_t packetlen,\n                            unsigned
      char *remlength)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - buffer
    - buflen
    - lenbytes
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 350
    functionName: decode_length
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t decode_length(const unsigned char *buffer,\n                            size_t
      buflen, size_t *lenbytes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/tests/server/mqttd.c:357,1
    - Dst: encode_length
      Src: /src/curl/tests/server/mqttd.c:376,1
    - Dst: malloc
      Src: /src/curl/tests/server/mqttd.c:380,1
    - Dst: memcpy
      Src: /src/curl/tests/server/mqttd.c:385,1
    - Dst: memcpy
      Src: /src/curl/tests/server/mqttd.c:393,1
    - Dst: memcpy
      Src: /src/curl/tests/server/mqttd.c:396,1
    - Dst: swrite
      Src: /src/curl/tests/server/mqttd.c:402,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:404,1
    - Dst: loghex
      Src: /src/curl/tests/server/mqttd.c:405,1
    - Dst: logprotocol
      Src: /src/curl/tests/server/mqttd.c:406,1
    - Dst: free
      Src: /src/curl/tests/server/mqttd.c:408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 6
    argNames:
    - dump
    - fd
    - packetid
    - topic
    - payload
    - payloadlen
    argTypes:
    - FILE*
    - curl_socket_t
    - unsigned short
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 412
    functionName: publish
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - memcpy
    - swrite
    - logprotocol
    - encode_length
    - logmsg
    - loghex
    - free
    - malloc
    - strlen
    linkageType: ''
    returnType: int
    signature: "int publish(FILE *dump,\n                   curl_socket_t fd, unsigned
      short packetid,\n                   char *topic, const char *payload, size_t
      payloadlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sread
      Src: /src/curl/tests/server/mqttd.c:428,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:431,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:434,1
    - Dst: loghex
      Src: /src/curl/tests/server/mqttd.c:435,1
    - Dst: sread
      Src: /src/curl/tests/server/mqttd.c:442,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:444,1
    - Dst: decode_length
      Src: /src/curl/tests/server/mqttd.c:448,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - fd
    - bytep
    - remaining_lengthp
    - remaining_length_bytesp
    argTypes:
    - curl_socket_t
    - unsigned char*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 452
    functionName: fixedheader
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - decode_length
    - logmsg
    - loghex
    - sread
    linkageType: ''
    returnType: int
    signature: "int fixedheader(curl_socket_t fd,\n                       unsigned
      char *bytep,\n                       size_t *remaining_lengthp,\n                       size_t
      *remaining_length_bytesp)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/tests/server/mqttd.c:477,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/server/mqttd.c:478,1
    - Dst: mqttd_getconfig
      Src: /src/curl/tests/server/mqttd.c:482,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:487,1
    - Dst: malloc
      Src: /src/curl/tests/server/mqttd.c:489,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:491,1
    - Dst: memset
      Src: /src/curl/tests/server/mqttd.c:494,1
    - Dst: fixedheader
      Src: /src/curl/tests/server/mqttd.c:505,1
    - Dst: realloc
      Src: /src/curl/tests/server/mqttd.c:512,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:514,1
    - Dst: sread
      Src: /src/curl/tests/server/mqttd.c:522,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:524,1
    - Dst: loghex
      Src: /src/curl/tests/server/mqttd.c:525,1
    - Dst: logprotocol
      Src: /src/curl/tests/server/mqttd.c:530,1
    - Dst: memcmp
      Src: /src/curl/tests/server/mqttd.c:532,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:533,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:546,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:554,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:562,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:568,1
    - Dst: memcpy
      Src: /src/curl/tests/server/mqttd.c:571,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:574,1
    - Dst: connack
      Src: /src/curl/tests/server/mqttd.c:579,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:580,1
    - Dst: logprotocol
      Src: /src/curl/tests/server/mqttd.c:588,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:590,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:593,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:603,1
    - Dst: memcpy
      Src: /src/curl/tests/server/mqttd.c:607,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:612,1
    - Dst: test2fopen
      Src: /src/curl/tests/server/mqttd.c:613,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:617,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/mqttd.c:618,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:619,1
    - Dst: getpart
      Src: /src/curl/tests/server/mqttd.c:622,1
    - Dst: suback
      Src: /src/curl/tests/server/mqttd.c:625,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:626,1
    - Dst: free
      Src: /src/curl/tests/server/mqttd.c:627,1
    - Dst: publish
      Src: /src/curl/tests/server/mqttd.c:631,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:632,1
    - Dst: free
      Src: /src/curl/tests/server/mqttd.c:633,1
    - Dst: free
      Src: /src/curl/tests/server/mqttd.c:636,1
    - Dst: suback
      Src: /src/curl/tests/server/mqttd.c:638,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:639,1
    - Dst: publish
      Src: /src/curl/tests/server/mqttd.c:646,1
    - Dst: strlen
      Src: /src/curl/tests/server/mqttd.c:646,1
    - Dst: disconnect
      Src: /src/curl/tests/server/mqttd.c:648,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:653,1
    - Dst: logprotocol
      Src: /src/curl/tests/server/mqttd.c:654,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:657,1
    - Dst: puback
      Src: /src/curl/tests/server/mqttd.c:661,1
    - Dst: sread
      Src: /src/curl/tests/server/mqttd.c:665,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:667,1
    - Dst: loghex
      Src: /src/curl/tests/server/mqttd.c:668,1
    - Dst: logprotocol
      Src: /src/curl/tests/server/mqttd.c:669,1
    - Dst: free
      Src: /src/curl/tests/server/mqttd.c:680,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/mqttd.c:682,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/server/mqttd.c:684,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 160
    argCount: 1
    argNames:
    - fd
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 686
    functionName: mqttit
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - memcmp
    - logmsg
    - sread
    - mqttd_getconfig
    - suback
    - memcpy
    - logprotocol
    - realloc
    - publish
    - curlx_strerror
    - test2fopen
    - malloc
    - snprintf
    - loghex
    - fixedheader
    - getpart
    - memset
    - puback
    - disconnect
    - connack
    - free
    - curlx_fopen
    - strlen
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t mqttit(curl_socket_t fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:702,1
    - Dst: getppid
      Src: /src/curl/tests/server/mqttd.c:708,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:709,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/mqttd.c:721,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/mqttd.c:722,1
    - Dst: FD_ZERO
      Src: /src/curl/tests/server/mqttd.c:723,1
    - Dst: FD_SET
      Src: /src/curl/tests/server/mqttd.c:726,1
    - Dst: select
      Src: /src/curl/tests/server/mqttd.c:730,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:732,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:738,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/mqttd.c:739,1
    - Dst: FD_ISSET
      Src: /src/curl/tests/server/mqttd.c:743,1
    - Dst: accept
      Src: /src/curl/tests/server/mqttd.c:744,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:747,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/mqttd.c:748,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:751,1
    - Dst: set_advisor_read_lock
      Src: /src/curl/tests/server/mqttd.c:753,1
    - Dst: mqttit
      Src: /src/curl/tests/server/mqttd.c:754,1
    - Dst: clear_advisor_read_lock
      Src: /src/curl/tests/server/mqttd.c:755,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:757,1
    - Dst: sclose
      Src: /src/curl/tests/server/mqttd.c:758,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - listenfd
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 694
    functionDepth: 5
    functionLinenumber: 694
    functionLinenumberEnd: 764
    functionName: mqttd_incoming
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - accept
    - logmsg
    - getppid
    - clear_advisor_read_lock
    - curlx_strerror
    - FD_ZERO
    - mqttit
    - select
    - sclose
    - FD_SET
    - FD_ISSET
    - set_advisor_read_lock
    linkageType: ''
    returnType: bool
    signature: bool mqttd_incoming(curl_socket_t listenfd)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:786,1
    - Dst: printf
      Src: /src/curl/tests/server/mqttd.c:787,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:796,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:801,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:806,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:811,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:816,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:821,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:828,1
    - Dst: strcmp
      Src: /src/curl/tests/server/mqttd.c:836,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/server/mqttd.c:840,1
    - Dst: fprintf
      Src: /src/curl/tests/server/mqttd.c:841,1
    - Dst: puts
      Src: /src/curl/tests/server/mqttd.c:849,1
    - Dst: snprintf
      Src: /src/curl/tests/server/mqttd.c:863,1
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/server/mqttd.c:866,1
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/server/mqttd.c:867,1
    - Dst: CURL_BINMODE
      Src: /src/curl/tests/server/mqttd.c:868,1
    - Dst: install_signal_handlers
      Src: /src/curl/tests/server/mqttd.c:870,1
    - Dst: socket
      Src: /src/curl/tests/server/mqttd.c:872,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:876,1
    - Dst: curlx_strerror
      Src: /src/curl/tests/server/mqttd.c:877,1
    - Dst: sockdaemon
      Src: /src/curl/tests/server/mqttd.c:883,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:890,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:891,1
    - Dst: write_pidfile
      Src: /src/curl/tests/server/mqttd.c:893,1
    - Dst: write_portfile
      Src: /src/curl/tests/server/mqttd.c:898,1
    - Dst: mqttd_incoming
      Src: /src/curl/tests/server/mqttd.c:904,1
    - Dst: sclose
      Src: /src/curl/tests/server/mqttd.c:910,1
    - Dst: sclose
      Src: /src/curl/tests/server/mqttd.c:913,1
    - Dst: unlink
      Src: /src/curl/tests/server/mqttd.c:916,1
    - Dst: unlink
      Src: /src/curl/tests/server/mqttd.c:918,1
    - Dst: restore_signal_handlers
      Src: /src/curl/tests/server/mqttd.c:920,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:923,1
    - Dst: raise
      Src: /src/curl/tests/server/mqttd.c:929,1
    - Dst: logmsg
      Src: /src/curl/tests/server/mqttd.c:932,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 113
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 766
    functionDepth: 6
    functionLinenumber: 766
    functionLinenumberEnd: 934
    functionName: test_mqttd
    functionSourceFile: /src/curl/tests/server/mqttd.c
    functionUses: 0
    functionsReached:
    - logmsg
    - strcmp
    - unlink
    - write_portfile
    - curlx_str_number
    - curlx_strerror
    - socket
    - snprintf
    - sockdaemon
    - restore_signal_handlers
    - write_pidfile
    - install_signal_handlers
    - printf
    - raise
    - CURL_BINMODE
    - mqttd_incoming
    - puts
    - sclose
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_mqttd(int argc, const char *argv[])
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/server/resolve.c:43,1
    - Dst: printf
      Src: /src/curl/tests/server/resolve.c:44,1
    - Dst: strcmp
      Src: /src/curl/tests/server/resolve.c:53,1
    - Dst: puts
      Src: /src/curl/tests/server/resolve.c:59,1
    - Dst: strcmp
      Src: /src/curl/tests/server/resolve.c:63,1
    - Dst: puts
      Src: /src/curl/tests/server/resolve.c:76,1
    - Dst: socket
      Src: /src/curl/tests/server/resolve.c:89,1
    - Dst: sclose
      Src: /src/curl/tests/server/resolve.c:94,1
    - Dst: memset
      Src: /src/curl/tests/server/resolve.c:103,1
    - Dst: getaddrinfo
      Src: /src/curl/tests/server/resolve.c:107,1
    - Dst: freeaddrinfo
      Src: /src/curl/tests/server/resolve.c:109,1
    - Dst: gethostbyname
      Src: /src/curl/tests/server/resolve.c:116,1
    - Dst: CURL_UNCONST
      Src: /src/curl/tests/server/resolve.c:116,1
    - Dst: gethostbyname
      Src: /src/curl/tests/server/resolve.c:118,1
    - Dst: printf
      Src: /src/curl/tests/server/resolve.c:126,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 129
    functionName: test_resolve
    functionSourceFile: /src/curl/tests/server/resolve.c
    functionUses: 0
    functionsReached:
    - printf
    - freeaddrinfo
    - CURL_UNCONST
    - strcmp
    - socket
    - memset
    - puts
    - getaddrinfo
    - gethostbyname
    - sclose
    linkageType: ''
    returnType: int
    signature: int test_resolve(int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1403.c:12,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1403.c:13,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1403.c:14,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1403.c:15,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1403.c:16,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1403.c:17,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1403.c:18,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1403.c:39,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1403.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 45
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1403.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1420.c:12,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1420.c:13,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1420.c:14,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1420.c:15,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1420.c:16,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1420.c:17,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1420.c:18,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1420.c:39,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1420.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 45
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1420.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1404.c:20,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1404.c:21,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1404.c:23,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1404.c:24,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1404.c:25,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1404.c:26,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/data/data1404.c:27,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/data/data1404.c:28,1
    - Dst: curl_mime_data
      Src: /src/curl/tests/data/data1404.c:29,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/data/data1404.c:30,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/data/data1404.c:31,1
    - Dst: curl_mime_init
      Src: /src/curl/tests/data/data1404.c:32,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/data/data1404.c:33,1
    - Dst: curl_mime_filedata
      Src: /src/curl/tests/data/data1404.c:34,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/data/data1404.c:35,1
    - Dst: curl_mime_filedata
      Src: /src/curl/tests/data/data1404.c:36,1
    - Dst: curl_mime_encoder
      Src: /src/curl/tests/data/data1404.c:37,1
    - Dst: curl_mime_type
      Src: /src/curl/tests/data/data1404.c:38,1
    - Dst: curl_mime_addpart
      Src: /src/curl/tests/data/data1404.c:39,1
    - Dst: curl_mime_filedata
      Src: /src/curl/tests/data/data1404.c:40,1
    - Dst: curl_mime_headers
      Src: /src/curl/tests/data/data1404.c:41,1
    - Dst: curl_mime_subparts
      Src: /src/curl/tests/data/data1404.c:43,1
    - Dst: curl_mime_name
      Src: /src/curl/tests/data/data1404.c:45,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1404.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1404.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1404.c:48,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1404.c:49,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1404.c:70,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1404.c:72,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/data/data1404.c:74,1
    - Dst: curl_mime_free
      Src: /src/curl/tests/data/data1404.c:76,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/data/data1404.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 82
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1404.c
    functionUses: 0
    functionsReached:
    - curl_mime_headers
    - curl_mime_subparts
    - curl_easy_perform
    - curl_easy_init
    - curl_mime_free
    - curl_slist_free_all
    - curl_mime_addpart
    - curl_slist_append
    - curl_mime_encoder
    - curl_mime_init
    - curl_easy_setopt
    - curl_mime_data
    - curl_easy_cleanup
    - curl_mime_name
    - curl_mime_type
    - curl_mime_filedata
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1481.c:12,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1481.c:13,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1481.c:14,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1481.c:15,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1481.c:16,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1481.c:17,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1481.c:18,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1481.c:19,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1481.c:20,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1481.c:21,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1481.c:42,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1481.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 48
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1481.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1406.c:14,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1406.c:15,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1406.c:17,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1406.c:18,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1406.c:19,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1406.c:20,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1406.c:21,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1406.c:22,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1406.c:23,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1406.c:24,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1406.c:25,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1406.c:26,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1406.c:47,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1406.c:49,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/data/data1406.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 55
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1406.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1405.c:16,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1405.c:17,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1405.c:19,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1405.c:21,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1405.c:22,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1405.c:24,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1405.c:25,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1405.c:26,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1405.c:27,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1405.c:28,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1405.c:29,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1405.c:30,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1405.c:31,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1405.c:32,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1405.c:53,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1405.c:55,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/data/data1405.c:57,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/data/data1405.c:59,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/data/data1405.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 65
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1405.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1402.c:12,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1402.c:13,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1402.c:14,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1402.c:15,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1402.c:16,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1402.c:17,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1402.c:18,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1402.c:19,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1402.c:20,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1402.c:41,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1402.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 47
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1402.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1465.c:12,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1465.c:13,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1465.c:14,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1465.c:15,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1465.c:16,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1465.c:17,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1465.c:18,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1465.c:19,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1465.c:20,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1465.c:41,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1465.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 47
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1465.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1401.c:14,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/data/data1401.c:15,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1401.c:17,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:18,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:19,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:20,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:21,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:22,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:23,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:24,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:25,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:26,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:27,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1401.c:28,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1401.c:49,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1401.c:51,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/data/data1401.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 57
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1401.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1400.c:12,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1400.c:13,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1400.c:14,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1400.c:15,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1400.c:16,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1400.c:17,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1400.c:18,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1400.c:39,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1400.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 45
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1400.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/data/data1407.c:12,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1407.c:13,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1407.c:14,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1407.c:15,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1407.c:16,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1407.c:17,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/data/data1407.c:18,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/data/data1407.c:39,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/data/data1407.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 45
    functionName: main
    functionSourceFile: /src/curl/tests/data/data1407.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit3200.c:79,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit3200.c:85,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/unit/unit3200.c:87,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit3200.c:88,1
    - Dst: fwrite
      Src: /src/curl/tests/unit/unit3200.c:89,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit3200.c:89,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/unit/unit3200.c:90,1
    - Dst: curlx_fopen
      Src: /src/curl/tests/unit/unit3200.c:92,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit3200.c:93,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3200.c:95,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:98,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit3200.c:99,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:100,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3200.c:100,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:102,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit3200.c:103,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:104,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3200.c:104,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:106,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit3200.c:107,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:110,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit3200.c:111,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:112,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3200.c:112,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:114,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit3200.c:115,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:116,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3200.c:116,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:118,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit3200.c:119,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:122,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit3200.c:123,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:124,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3200.c:124,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:126,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:127,1
    - Dst: curlx_dyn_len
      Src: /src/curl/tests/unit/unit3200.c:127,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:131,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit3200.c:132,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:133,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3200.c:133,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:135,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:136,1
    - Dst: curlx_dyn_len
      Src: /src/curl/tests/unit/unit3200.c:136,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:140,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit3200.c:141,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:142,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3200.c:142,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:144,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:145,1
    - Dst: curlx_dyn_len
      Src: /src/curl/tests/unit/unit3200.c:145,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:149,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit3200.c:150,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3200.c:151,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3200.c:151,1
    - Dst: Curl_get_line
      Src: /src/curl/tests/unit/unit3200.c:153,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit3200.c:154,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit3200.c:157,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit3200.c:160,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/unit/unit3200.c:161,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3200.c:162,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 169
    functionName: test_unit3200
    functionSourceFile: /src/curl/tests/unit/unit3200.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - curlx_dyn_free
    - curlx_dyn_len
    - fail_unless
    - curlx_fopen
    - fwrite
    - curlx_dyn_ptr
    - strcmp
    - abort_unless
    - strlen
    - Curl_get_line
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3200(const char *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1627.c:70,1
    - Dst: Curl_get_scheme
      Src: /src/curl/tests/unit/unit1627.c:72,1
    - Dst: curl_strequal
      Src: /src/curl/tests/unit/unit1627.c:75,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1627.c:79,1
    - Dst: Curl_strntolower
      Src: /src/curl/tests/unit/unit1627.c:82,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1627.c:82,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1627.c:83,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1627.c:84,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1627.c:85,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1627.c:89,1
    - Dst: Curl_get_scheme
      Src: /src/curl/tests/unit/unit1627.c:90,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1627.c:92,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1627.c:97,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1627.c:99,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1627.c:100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 104
    functionName: test_unit1627
    functionSourceFile: /src/curl/tests/unit/unit1627.c
    functionUses: 0
    functionsReached:
    - Curl_strntolower
    - CURL_ARRAYSIZE
    - Curl_get_scheme
    - curl_mprintf
    - curl_strequal
    - strcmp
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1627(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1600.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1600.c:33,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1600.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: t1600_setup
    functionSourceFile: /src/curl/tests/unit/unit1600.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - curl_global_cleanup
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1600_setup(CURL **easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1600.c:43,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1600.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: t1600_stop
    functionSourceFile: /src/curl/tests/unit/unit1600.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void t1600_stop(CURL *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1600.c:51,1
    - Dst: t1600_setup
      Src: /src/curl/tests/unit/unit1600.c:51,1
    - Dst: Curl_ntlm_core_mk_nt_hash
      Src: /src/curl/tests/unit/unit1600.c:57,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1600.c:59,1
    - Dst: Curl_ntlm_core_mk_nt_hash
      Src: /src/curl/tests/unit/unit1600.c:64,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1600.c:66,1
    - Dst: Curl_ntlm_core_mk_nt_hash
      Src: /src/curl/tests/unit/unit1600.c:71,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1600.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 86
    functionName: test_unit1600
    functionSourceFile: /src/curl/tests/unit/unit1600.c
    functionUses: 0
    functionsReached:
    - verify_memory
    - Curl_ntlm_core_mk_nt_hash
    - t1600_setup
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1600(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/tests/unit/unit3301.c:44,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3301.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: unit3301_item_create
    functionSourceFile: /src/curl/tests/unit/unit3301.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    - curl_mfprintf
    linkageType: ''
    returnType: struct unit3301_item
    signature: struct unit3301_item *unit3301_item_create(int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3301.c:55,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit3301.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: unit3301_item_free
    functionSourceFile: /src/curl/tests/unit/unit3301.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void unit3301_item_free(void *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - tqueue
    - ev
    - user_data
    argTypes:
    - struct curl_thrdq*
    - Curl_thrdq_event
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: unit3301_event
    functionSourceFile: /src/curl/tests/unit/unit3301.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void unit3301_event(const struct curl_thrdq *tqueue,\n                           Curl_thrdq_event
      ev,\n                           void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/unit/unit3301.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: unit3301_process
    functionSourceFile: /src/curl/tests/unit/unit3301.c
    functionUses: 0
    functionsReached:
    - curlx_wait_ms
    linkageType: ''
    returnType: void
    signature: void unit3301_process(void *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/unit/unit3301.c:90,1
    - Dst: Curl_thrdq_create
      Src: /src/curl/tests/unit/unit3301.c:91,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3301.c:94,1
    - Dst: Curl_thrdq_destroy
      Src: /src/curl/tests/unit/unit3301.c:95,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3301.c:97,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit3301.c:101,1
    - Dst: Curl_thrdq_create
      Src: /src/curl/tests/unit/unit3301.c:102,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3301.c:105,1
    - Dst: unit3301_item_create
      Src: /src/curl/tests/unit/unit3301.c:107,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3301.c:108,1
    - Dst: Curl_thrdq_send
      Src: /src/curl/tests/unit/unit3301.c:109,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3301.c:110,1
    - Dst: thrdq_await_done
      Src: /src/curl/tests/unit/unit3301.c:113,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3301.c:114,1
    - Dst: Curl_thrdq_recv
      Src: /src/curl/tests/unit/unit3301.c:119,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3301.c:120,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3301.c:123,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3301.c:125,1
    - Dst: unit3301_item_free
      Src: /src/curl/tests/unit/unit3301.c:126,1
    - Dst: Curl_thrdq_destroy
      Src: /src/curl/tests/unit/unit3301.c:129,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3301.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 134
    functionName: test_unit3301
    functionSourceFile: /src/curl/tests/unit/unit3301.c
    functionUses: 0
    functionsReached:
    - Curl_thrdq_destroy
    - curl_mfprintf
    - unit3301_item_free
    - unit3301_item_create
    - fail_unless
    - Curl_thrdq_send
    - thrdq_await_done
    - Curl_thrdq_recv
    - memset
    - Curl_thrdq_create
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3301(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: test_unit3301
    functionSourceFile: /src/curl/tests/unit/unit3301.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3301(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1303.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1303.c:33,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1303.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: t1303_setup
    functionSourceFile: /src/curl/tests/unit/unit1303.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - curl_global_cleanup
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1303_setup(struct Curl_easy **easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1303.c:43,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1303.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: t1303_stop
    functionSourceFile: /src/curl/tests/unit/unit1303.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void t1303_stop(struct Curl_easy *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: NOW
    functionSourceFile: /src/curl/tests/unit/unit1303.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOW(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: TIMEOUTS
    functionSourceFile: /src/curl/tests/unit/unit1303.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMEOUTS(x, y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1303.c:73,1
    - Dst: t1303_setup
      Src: /src/curl/tests/unit/unit1303.c:73,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1303.c:147,1
    - Dst: NOW
      Src: /src/curl/tests/unit/unit1303.c:149,1
    - Dst: TIMEOUTS
      Src: /src/curl/tests/unit/unit1303.c:150,1
    - Dst: timeleft_now_ms
      Src: /src/curl/tests/unit/unit1303.c:153,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit1303.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 159
    functionName: test_unit1303
    functionSourceFile: /src/curl/tests/unit/unit1303.c
    functionUses: 0
    functionsReached:
    - timeleft_now_ms
    - CURL_ARRAYSIZE
    - fail
    - t1303_setup
    - NOW
    - TIMEOUTS
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1303(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1664.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: t1664_setup
    functionSourceFile: /src/curl/tests/unit/unit1664.c
    functionUses: 0
    functionsReached:
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1664_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:58,1
    - Dst: curlx_str_word
      Src: /src/curl/tests/unit/unit1664.c:63,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:64,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:69,1
    - Dst: curlx_str_until
      Src: /src/curl/tests/unit/unit1664.c:74,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:75,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:102,1
    - Dst: curlx_str_quotedword
      Src: /src/curl/tests/unit/unit1664.c:107,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:108,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:125,1
    - Dst: curlx_str_single
      Src: /src/curl/tests/unit/unit1664.c:129,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:130,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:148,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/tests/unit/unit1664.c:152,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:153,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:169,1
    - Dst: curlx_str_single
      Src: /src/curl/tests/unit/unit1664.c:173,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:174,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:195,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/unit/unit1664.c:200,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:201,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:227,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/unit/unit1664.c:232,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:233,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:267,1
    - Dst: curlx_str_hex
      Src: /src/curl/tests/unit/unit1664.c:272,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:273,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:302,1
    - Dst: curlx_str_octal
      Src: /src/curl/tests/unit/unit1664.c:307,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:308,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:338,1
    - Dst: curlx_str_number
      Src: /src/curl/tests/unit/unit1664.c:343,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:344,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:364,1
    - Dst: curlx_str_newline
      Src: /src/curl/tests/unit/unit1664.c:368,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:369,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:390,1
    - Dst: curlx_str_hex
      Src: /src/curl/tests/unit/unit1664.c:395,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:396,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:417,1
    - Dst: curlx_str_octal
      Src: /src/curl/tests/unit/unit1664.c:422,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:423,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:441,1
    - Dst: curlx_str_octal
      Src: /src/curl/tests/unit/unit1664.c:446,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:447,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:477,1
    - Dst: curlx_str_hex
      Src: /src/curl/tests/unit/unit1664.c:482,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1664.c:483,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 489
    functionName: test_unit1664
    functionSourceFile: /src/curl/tests/unit/unit1664.c
    functionUses: 0
    functionsReached:
    - curlx_str_word
    - curlx_str_single
    - curlx_str_until
    - curl_mprintf
    - curlx_str_quotedword
    - curlx_str_singlespace
    - curlx_str_newline
    - curlx_str_number
    - curlx_str_octal
    - curlx_str_hex
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1664(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit3302.c:35,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit3302.c:36,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit3302.c:38,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3302.c:43,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:45,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3302.c:51,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:53,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3302.c:59,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:62,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3302.c:69,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:71,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:73,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3302.c:77,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:78,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3302.c:80,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit3302.c:84,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit3302.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 89
    functionName: test_unit3302
    functionSourceFile: /src/curl/tests/unit/unit3302.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - fail_unless
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3302(const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: ret2name
    functionSourceFile: /src/curl/tests/unit/unit1307.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ret2name(int i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1307.c:284,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1307.c:287,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1307.c:291,1
    - Dst: Curl_fnmatch
      Src: /src/curl/tests/unit/unit1307.c:293,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1307.c:302,1
    - Dst: ret2name
      Src: /src/curl/tests/unit/unit1307.c:304,1
    - Dst: ret2name
      Src: /src/curl/tests/unit/unit1307.c:305,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit1307.c:306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 311
    functionName: test_unit1307
    functionSourceFile: /src/curl/tests/unit/unit1307.c
    functionUses: 0
    functionsReached:
    - Curl_fnmatch
    - CURL_ARRAYSIZE
    - curl_mprintf
    - ret2name
    - fail
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1307(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: testcase
    functionSourceFile: /src/curl/tests/unit/unit1307.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UNITTEST_BEGIN_SIMPLE
    signature: UNITTEST_BEGIN_SIMPLE testcase
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: test_unit1307
    functionSourceFile: /src/curl/tests/unit/unit1307.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1307(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cert_hostcheck
      Src: /src/curl/tests/unit/unit1397.c:97,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1397.c:98,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1397.c:100,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1397.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 114
    functionName: test_unit1397
    functionSourceFile: /src/curl/tests/unit/unit1397.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_cert_hostcheck
    - curl_mfprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1397(const char *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: splayprint
      Src: /src/curl/tests/unit/unit1309.c:35,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1309.c:38,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1309.c:41,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1309.c:49,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1309.c:51,1
    - Dst: splayprint
      Src: /src/curl/tests/unit/unit1309.c:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - t
    - d
    - output
    argTypes:
    - struct Curl_tree*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 55
    functionName: splayprint
    functionSourceFile: /src/curl/tests/unit/unit1309.c
    functionUses: 1
    functionsReached:
    - curl_mprintf
    - splayprint
    linkageType: ''
    returnType: void
    signature: void splayprint(struct Curl_tree *t, int d, char output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_splayset
      Src: /src/curl/tests/unit/unit1309.c:79,1
    - Dst: Curl_splayinsert
      Src: /src/curl/tests/unit/unit1309.c:80,1
    - Dst: puts
      Src: /src/curl/tests/unit/unit1309.c:83,1
    - Dst: splayprint
      Src: /src/curl/tests/unit/unit1309.c:84,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1309.c:88,1
    - Dst: splayprint
      Src: /src/curl/tests/unit/unit1309.c:89,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1309.c:90,1
    - Dst: Curl_splayget
      Src: /src/curl/tests/unit/unit1309.c:91,1
    - Dst: Curl_splayremove
      Src: /src/curl/tests/unit/unit1309.c:92,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1309.c:95,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit1309.c:96,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1309.c:100,1
    - Dst: Curl_splayset
      Src: /src/curl/tests/unit/unit1309.c:112,1
    - Dst: Curl_splayinsert
      Src: /src/curl/tests/unit/unit1309.c:113,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1309.c:119,1
    - Dst: Curl_splaygetbest
      Src: /src/curl/tests/unit/unit1309.c:121,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1309.c:123,1
    - Dst: Curl_splayget
      Src: /src/curl/tests/unit/unit1309.c:124,1
    - Dst: Curl_splayget
      Src: /src/curl/tests/unit/unit1309.c:125,1
    - Dst: Curl_splaygetbest
      Src: /src/curl/tests/unit/unit1309.c:126,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1309.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 133
    functionName: test_unit1309
    functionSourceFile: /src/curl/tests/unit/unit1309.c
    functionUses: 0
    functionsReached:
    - Curl_splayremove
    - curl_mprintf
    - Curl_splayset
    - fail
    - Curl_splayinsert
    - fail_unless
    - splayprint
    - Curl_splayget
    - Curl_splaygetbest
    - puts
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1309(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3219.c:33,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3219.c:35,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3219.c:37,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3219.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: test_unit3219
    functionSourceFile: /src/curl/tests/unit/unit3219.c
    functionUses: 0
    functionsReached:
    - fail_unless
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3219(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ftp_213_date
      Src: /src/curl/tests/unit/unit1668.c:40,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1668.c:44,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1668.c:50,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1668.c:53,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1668.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - spec
    - i
    argTypes:
    - struct test_1668*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 62
    functionName: test1668
    functionSourceFile: /src/curl/tests/unit/unit1668.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_msnprintf
    - curl_mfprintf
    - ftp_213_date
    linkageType: ''
    returnType: bool
    signature: bool test1668(const struct test_1668 *spec, size_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1668.c:153,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1668.c:154,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1668.c:158,1
    - Dst: test1668
      Src: /src/curl/tests/unit/unit1668.c:159,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1668.c:162,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1668.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 166
    functionName: test_unit1668
    functionSourceFile: /src/curl/tests/unit/unit1668.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_global_cleanup
    - CURL_ARRAYSIZE
    - fail_unless
    - curl_global_init
    - test1668
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1668(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: test_unit1668
    functionSourceFile: /src/curl/tests/unit/unit1668.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1668(const char *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1302.c:126,1
    - Dst: curlx_base64_encode
      Src: /src/curl/tests/unit/unit1302.c:134,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1302.c:136,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1302.c:137,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit1302.c:138,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1302.c:139,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1302.c:142,1
    - Dst: curlx_base64_decode
      Src: /src/curl/tests/unit/unit1302.c:145,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1302.c:147,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1302.c:152,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit1302.c:156,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1302.c:157,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1302.c:162,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1302.c:165,1
    - Dst: curlx_base64url_encode
      Src: /src/curl/tests/unit/unit1302.c:169,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1302.c:171,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1302.c:173,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit1302.c:176,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1302.c:177,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1302.c:181,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1302.c:184,1
    - Dst: curlx_base64_decode
      Src: /src/curl/tests/unit/unit1302.c:190,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1302.c:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 200
    functionName: test_unit1302
    functionSourceFile: /src/curl/tests/unit/unit1302.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - memcmp
    - curlx_base64_encode
    - abort_unless
    - curlx_base64url_encode
    - curlx_base64_decode
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1302(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/tests/unit/unit1330.c:30,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1330.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: test_unit1330
    functionSourceFile: /src/curl/tests/unit/unit1330.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - curlx_safefree
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1330(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1607.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: t1607_setup
    functionSourceFile: /src/curl/tests/unit/unit1607.c
    functionUses: 0
    functionsReached:
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1607_setup(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: IPV6ONLY
      Src: /src/curl/tests/unit/unit1607.c:71,1
    - Dst: IPV6ONLY
      Src: /src/curl/tests/unit/unit1607.c:74,1
    - Dst: IPV6ONLY
      Src: /src/curl/tests/unit/unit1607.c:77,1
    - Dst: IPV6ONLY
      Src: /src/curl/tests/unit/unit1607.c:80,1
    - Dst: IPV6ONLY
      Src: /src/curl/tests/unit/unit1607.c:83,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1607.c:107,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1607.c:109,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1607.c:114,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/unit/unit1607.c:120,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/unit/unit1607.c:121,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/unit/unit1607.c:123,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit1607.c:126,1
    - Dst: Curl_loadhostpairs
      Src: /src/curl/tests/unit/unit1607.c:128,1
    - Dst: curl_maprintf
      Src: /src/curl/tests/unit/unit1607.c:130,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1607.c:133,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1607.c:134,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1607.c:135,1
    - Dst: Curl_addr2string
      Src: /src/curl/tests/unit/unit1607.c:149,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1607.c:151,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1607.c:159,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1607.c:167,1
    - Dst: curl_strequal
      Src: /src/curl/tests/unit/unit1607.c:174,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1607.c:175,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1607.c:184,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1607.c:193,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1607.c:202,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1607.c:215,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/unit/unit1607.c:217,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/unit/unit1607.c:219,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1607.c:228,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/unit/unit1607.c:229,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/unit/unit1607.c:230,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 81
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 233
    functionName: test_unit1607
    functionSourceFile: /src/curl/tests/unit/unit1607.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_maprintf
    - curl_mfprintf
    - Curl_hash_pick
    - CURL_ARRAYSIZE
    - curl_easy_init
    - IPV6ONLY
    - Curl_addr2string
    - curl_slist_free_all
    - curl_strequal
    - curl_slist_append
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - strlen
    - curl_multi_cleanup
    - Curl_loadhostpairs
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1607(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: IPV6ONLY
    functionSourceFile: /src/curl/tests/unit/unit1607.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPV6ONLY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: IPV6ONLY
    functionSourceFile: /src/curl/tests/unit/unit1607.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPV6ONLY(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1651.c:373,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1651.c:374,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1651.c:378,1
    - Dst: Curl_extract_certinfo
      Src: /src/curl/tests/unit/unit1651.c:380,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1651.c:382,1
    - Dst: Curl_extract_certinfo
      Src: /src/curl/tests/unit/unit1651.c:390,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1651.c:395,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1651.c:397,1
    - Dst: puts
      Src: /src/curl/tests/unit/unit1651.c:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 403
    functionName: test_unit1651
    functionSourceFile: /src/curl/tests/unit/unit1651.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - Curl_extract_certinfo
    - curl_easy_init
    - fail_unless
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    - puts
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1651(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1608.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: t1608_setup
    functionSourceFile: /src/curl/tests/unit/unit1608.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1608_setup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1608.c:50,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1608.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit1608.c:53,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1608.c:54,1
    - Dst: dns_shuffle_addr
      Src: /src/curl/tests/unit/unit1608.c:58,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1608.c:64,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1608.c:65,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1608.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: test_unit1608
    functionSourceFile: /src/curl/tests/unit/unit1608.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - dns_shuffle_addr
    - abort_unless
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1608(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: test_unit1608
    functionSourceFile: /src/curl/tests/unit/unit1608.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1608(const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit2603.c:34,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2603.c:35,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2603.c:37,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2603.c:41,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2603.c:42,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2603.c:45,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2603.c:46,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - s
    - exp_s
    - name
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: check_eq
    functionSourceFile: /src/curl/tests/unit/unit2603.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_mfprintf
    - fail
    linkageType: ''
    returnType: void
    signature: void check_eq(const char *s, const char *exp_s, const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_h1_req_parse_init
      Src: /src/curl/tests/unit/unit2603.c:70,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit2603.c:74,1
    - Dst: Curl_h1_req_parse_read
      Src: /src/curl/tests/unit/unit2603.c:76,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2603.c:79,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2603.c:80,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2603.c:85,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2603.c:87,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2603.c:92,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2603.c:93,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2603.c:95,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2603.c:97,1
    - Dst: check_eq
      Src: /src/curl/tests/unit/unit2603.c:100,1
    - Dst: check_eq
      Src: /src/curl/tests/unit/unit2603.c:101,1
    - Dst: check_eq
      Src: /src/curl/tests/unit/unit2603.c:102,1
    - Dst: check_eq
      Src: /src/curl/tests/unit/unit2603.c:103,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/tests/unit/unit2603.c:104,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2603.c:105,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/tests/unit/unit2603.c:106,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2603.c:107,1
    - Dst: Curl_h1_req_parse_free
      Src: /src/curl/tests/unit/unit2603.c:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tcase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 112
    functionName: parse_success
    functionSourceFile: /src/curl/tests/unit/unit2603.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - Curl_h1_req_parse_init
    - fail_if
    - Curl_h1_req_parse_free
    - Curl_h1_req_parse_read
    - Curl_dynhds_count
    - check_eq
    - fail
    - strlen
    linkageType: ''
    returnType: void
    signature: void parse_success(const struct tcase *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_success
      Src: /src/curl/tests/unit/unit2603.c:181,1
    - Dst: parse_success
      Src: /src/curl/tests/unit/unit2603.c:182,1
    - Dst: parse_success
      Src: /src/curl/tests/unit/unit2603.c:183,1
    - Dst: parse_success
      Src: /src/curl/tests/unit/unit2603.c:184,1
    - Dst: parse_success
      Src: /src/curl/tests/unit/unit2603.c:185,1
    - Dst: parse_success
      Src: /src/curl/tests/unit/unit2603.c:186,1
    - Dst: parse_success
      Src: /src/curl/tests/unit/unit2603.c:187,1
    - Dst: parse_success
      Src: /src/curl/tests/unit/unit2603.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 192
    functionName: test_unit2603
    functionSourceFile: /src/curl/tests/unit/unit2603.c
    functionUses: 0
    functionsReached:
    - parse_success
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit2603(const char *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit2605.c:72,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit2605.c:73,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit2605.c:75,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit2605.c:81,1
    - Dst: Curl_ssh_range
      Src: /src/curl/tests/unit/unit2605.c:83,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit2605.c:86,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit2605.c:91,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit2605.c:96,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit2605.c:102,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit2605.c:104,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit2605.c:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 112
    functionName: test_unit2605
    functionSourceFile: /src/curl/tests/unit/unit2605.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - curl_mprintf
    - curl_easy_cleanup
    - curl_global_init
    - Curl_ssh_range
    - curl_easy_setopt
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit2605(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1655.c:91,1
    - Dst: doh_req_encode
      Src: /src/curl/tests/unit/unit1655.c:100,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:104,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1655.c:108,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:112,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:115,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:117,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:121,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:123,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1655.c:123,1
    - Dst: doh_req_encode
      Src: /src/curl/tests/unit/unit1655.c:142,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:143,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1655.c:144,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:145,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1655.c:145,1
    - Dst: doh_req_encode
      Src: /src/curl/tests/unit/unit1655.c:149,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:150,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1655.c:151,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:152,1
    - Dst: doh_req_encode
      Src: /src/curl/tests/unit/unit1655.c:156,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:157,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1655.c:158,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:159,1
    - Dst: doh_req_encode
      Src: /src/curl/tests/unit/unit1655.c:162,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1655.c:163,1
    - Dst: doh_req_encode
      Src: /src/curl/tests/unit/unit1655.c:166,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:167,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1655.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 174
    functionName: test_unit1655
    functionSourceFile: /src/curl/tests/unit/unit1655.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    - fail_if
    - doh_req_encode
    - fail_unless
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1655(const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/tests/unit/unit2604.c:81,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2604.c:82,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit2604.c:83,1
    - Dst: Curl_get_pathname
      Src: /src/curl/tests/unit/unit2604.c:88,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit2604.c:89,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit2604.c:92,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit2604.c:96,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit2604.c:97,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit2604.c:101,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit2604.c:102,1
    - Dst: curl_free
      Src: /src/curl/tests/unit/unit2604.c:106,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit2604.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 115
    functionName: test_unit2604
    functionSourceFile: /src/curl/tests/unit/unit2604.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - Curl_get_pathname
    - fail_unless
    - curl_free
    - strcmp
    - curlx_free
    - curlx_calloc
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit2604(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1605.c:31,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1605.c:32,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1605.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: t1605_setup
    functionSourceFile: /src/curl/tests/unit/unit1605.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - curl_global_cleanup
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1605_setup(CURL **easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1605.c:42,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1605.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: t1605_stop
    functionSourceFile: /src/curl/tests/unit/unit1605.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void t1605_stop(CURL *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1605.c:50,1
    - Dst: t1605_setup
      Src: /src/curl/tests/unit/unit1605.c:50,1
    - Dst: curl_easy_escape
      Src: /src/curl/tests/unit/unit1605.c:55,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1605.c:56,1
    - Dst: curl_easy_unescape
      Src: /src/curl/tests/unit/unit1605.c:58,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1605.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: test_unit1605
    functionSourceFile: /src/curl/tests/unit/unit1605.c
    functionUses: 0
    functionsReached:
    - fail_unless
    - curl_easy_unescape
    - t1605_setup
    - curl_easy_escape
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1605(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3214.c:30,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit3214.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - name
    - size
    - allowed
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: checksize
    functionSourceFile: /src/curl/tests/unit/unit3214.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void checksize(const char *name, size_t size, size_t allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:64,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:65,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:69,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:70,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:71,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:72,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:74,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:75,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:76,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:77,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:78,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:80,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:81,1
    - Dst: checksize
      Src: /src/curl/tests/unit/unit3214.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 85
    functionName: test_unit3214
    functionSourceFile: /src/curl/tests/unit/unit3214.c
    functionUses: 0
    functionsReached:
    - checksize
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3214(const char *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1676.c:71,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1676.c:72,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1676.c:76,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1676.c:78,1
    - Dst: Curl_ssl_init_certinfo
      Src: /src/curl/tests/unit/unit1676.c:83,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1676.c:85,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1676.c:86,1
    - Dst: Curl_extract_certinfo
      Src: /src/curl/tests/unit/unit1676.c:90,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1676.c:91,1
    - Dst: strncmp
      Src: /src/curl/tests/unit/unit1676.c:95,1
    - Dst: strncmp
      Src: /src/curl/tests/unit/unit1676.c:97,1
    - Dst: strncmp
      Src: /src/curl/tests/unit/unit1676.c:99,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1676.c:103,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1676.c:104,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1676.c:105,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1676.c:106,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1676.c:106,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1676.c:108,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1676.c:108,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1676.c:109,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1676.c:109,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1676.c:110,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1676.c:110,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1676.c:114,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1676.c:115,1
    - Dst: puts
      Src: /src/curl/tests/unit/unit1676.c:117,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 120
    functionName: test_unit1676
    functionSourceFile: /src/curl/tests/unit/unit1676.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - Curl_extract_certinfo
    - fail_if
    - curl_easy_init
    - fail_unless
    - strcmp
    - abort_unless
    - curl_easy_cleanup
    - curl_global_init
    - Curl_ssl_init_certinfo
    - curl_global_cleanup
    - strncmp
    - puts
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1676(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1980.c:90,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit1980.c:98,1
    - Dst: canon_query
      Src: /src/curl/tests/unit/unit1980.c:100,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1980.c:101,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1980.c:102,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1980.c:108,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1980.c:109,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1980.c:110,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit1980.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 117
    functionName: test_unit1980
    functionSourceFile: /src/curl/tests/unit/unit1980.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_msnprintf
    - CURL_ARRAYSIZE
    - curlx_dyn_free
    - fail_unless
    - curlx_dyn_ptr
    - strcmp
    - canon_query
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1980(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1626.c:99,1
    - Dst: Curl_copy_header_value
      Src: /src/curl/tests/unit/unit1626.c:101,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1626.c:103,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1626.c:105,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1626.c:110,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1626.c:115,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1626.c:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 121
    functionName: test_unit1626
    functionSourceFile: /src/curl/tests/unit/unit1626.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    - curl_mprintf
    - Curl_copy_header_value
    - curlx_free
    - strcmp
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1626(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: test_unit1626
    functionSourceFile: /src/curl/tests/unit/unit1626.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1626(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:31,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1661.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: test_free
    functionSourceFile: /src/curl/tests/unit/unit1661.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - fail_unless
    linkageType: ''
    returnType: void
    signature: void test_free(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_init
      Src: /src/curl/tests/unit/unit1661.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bufref
    argTypes:
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: t1661_setup
    functionSourceFile: /src/curl/tests/unit/unit1661.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1661_setup(struct bufref *bufref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_free
      Src: /src/curl/tests/unit/unit1661.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufref
    argTypes:
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: t1661_stop
    functionSourceFile: /src/curl/tests/unit/unit1661.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_free
    linkageType: ''
    returnType: void
    signature: void t1661_stop(struct bufref *bufref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:63,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:64,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:65,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/unit/unit1661.c:70,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1661.c:71,1
    - Dst: Curl_bufref_set
      Src: /src/curl/tests/unit/unit1661.c:72,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:74,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:75,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:76,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:81,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/tests/unit/unit1661.c:81,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:87,1
    - Dst: Curl_bufref_len
      Src: /src/curl/tests/unit/unit1661.c:87,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/tests/unit/unit1661.c:92,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1661.c:93,1
    - Dst: curl_easy_strerror
      Src: /src/curl/tests/unit/unit1661.c:93,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:94,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:95,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/tests/unit/unit1661.c:96,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:97,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:98,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:100,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:101,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1661.c:101,1
    - Dst: Curl_bufref_free
      Src: /src/curl/tests/unit/unit1661.c:107,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:108,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:109,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:110,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1661.c:111,1
    - Dst: UNITTEST_END
      Src: /src/curl/tests/unit/unit1661.c:113,1
    - Dst: t1661_stop
      Src: /src/curl/tests/unit/unit1661.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 114
    functionName: test_unit1661
    functionSourceFile: /src/curl/tests/unit/unit1661.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_free
    - Curl_bufref_set
    - UNITTEST_END
    - fail_unless
    - Curl_bufref_len
    - curlx_malloc
    - curl_easy_strerror
    - Curl_bufref_ptr
    - abort_unless
    - Curl_bufref_memdup0
    - strcmp
    - t1661_stop
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1661(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: test_Curl_llist_dtor
    functionSourceFile: /src/curl/tests/unit/unit1300.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_Curl_llist_dtor(void *key, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_init
      Src: /src/curl/tests/unit/unit1300.c:54,1
    - Dst: Curl_llist_init
      Src: /src/curl/tests/unit/unit1300.c:55,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:68,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1300.c:68,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:70,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:70,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:72,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:72,1
    - Dst: Curl_llist_insert_next
      Src: /src/curl/tests/unit/unit1300.c:85,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:85,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:88,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1300.c:88,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:91,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:91,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:91,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:94,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:94,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:94,1
    - Dst: Curl_llist_insert_next
      Src: /src/curl/tests/unit/unit1300.c:106,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:106,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:108,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:108,1
    - Dst: Curl_node_next
      Src: /src/curl/tests/unit/unit1300.c:108,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:108,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:111,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:111,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:111,1
    - Dst: Curl_llist_insert_next
      Src: /src/curl/tests/unit/unit1300.c:123,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:123,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:125,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:125,1
    - Dst: Curl_node_next
      Src: /src/curl/tests/unit/unit1300.c:125,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:125,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:129,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:129,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:129,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:143,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1300.c:144,1
    - Dst: Curl_node_next
      Src: /src/curl/tests/unit/unit1300.c:145,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1300.c:146,1
    - Dst: Curl_node_remove
      Src: /src/curl/tests/unit/unit1300.c:148,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:148,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:150,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1300.c:150,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:152,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:152,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1300.c:154,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:154,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:155,1
    - Dst: llist_node_prev
      Src: /src/curl/tests/unit/unit1300.c:155,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:155,1
    - Dst: Curl_llist_insert_next
      Src: /src/curl/tests/unit/unit1300.c:168,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:168,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1300.c:170,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:171,1
    - Dst: Curl_node_next
      Src: /src/curl/tests/unit/unit1300.c:173,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:173,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1300.c:174,1
    - Dst: Curl_node_next
      Src: /src/curl/tests/unit/unit1300.c:175,1
    - Dst: llist_node_prev
      Src: /src/curl/tests/unit/unit1300.c:176,1
    - Dst: Curl_node_remove
      Src: /src/curl/tests/unit/unit1300.c:177,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:178,1
    - Dst: Curl_node_next
      Src: /src/curl/tests/unit/unit1300.c:178,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1300.c:180,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:181,1
    - Dst: llist_node_prev
      Src: /src/curl/tests/unit/unit1300.c:181,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:194,1
    - Dst: llist_node_prev
      Src: /src/curl/tests/unit/unit1300.c:195,1
    - Dst: Curl_node_remove
      Src: /src/curl/tests/unit/unit1300.c:196,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:197,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:197,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:209,1
    - Dst: Curl_node_remove
      Src: /src/curl/tests/unit/unit1300.c:210,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:211,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:211,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:213,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:213,1
    - Dst: Curl_llist_append
      Src: /src/curl/tests/unit/unit1300.c:224,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:225,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1300.c:225,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:228,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:228,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:228,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:231,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:231,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:231,1
    - Dst: Curl_llist_append
      Src: /src/curl/tests/unit/unit1300.c:242,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:243,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:243,1
    - Dst: Curl_node_next
      Src: /src/curl/tests/unit/unit1300.c:243,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:243,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:246,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:246,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:246,1
    - Dst: Curl_llist_append
      Src: /src/curl/tests/unit/unit1300.c:257,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:258,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:258,1
    - Dst: Curl_node_next
      Src: /src/curl/tests/unit/unit1300.c:258,1
    - Dst: Curl_llist_head
      Src: /src/curl/tests/unit/unit1300.c:258,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1300.c:261,1
    - Dst: Curl_node_elem
      Src: /src/curl/tests/unit/unit1300.c:261,1
    - Dst: llist_tail
      Src: /src/curl/tests/unit/unit1300.c:261,1
    - Dst: Curl_llist_destroy
      Src: /src/curl/tests/unit/unit1300.c:264,1
    - Dst: Curl_llist_destroy
      Src: /src/curl/tests/unit/unit1300.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 268
    functionName: test_unit1300
    functionSourceFile: /src/curl/tests/unit/unit1300.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_llist_insert_next
    - llist_tail
    - Curl_node_elem
    - llist_node_prev
    - fail_unless
    - Curl_node_next
    - Curl_llist_init
    - Curl_llist_head
    - Curl_llist_append
    - abort_unless
    - Curl_node_remove
    - Curl_llist_destroy
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1300(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_md4it
      Src: /src/curl/tests/unit/unit1611.c:36,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1611.c:36,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1611.c:38,1
    - Dst: Curl_md4it
      Src: /src/curl/tests/unit/unit1611.c:43,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1611.c:43,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1611.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: test_unit1611
    functionSourceFile: /src/curl/tests/unit/unit1611.c
    functionUses: 0
    functionsReached:
    - verify_memory
    - Curl_md4it
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1611(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1660.c:33,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1660.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - e
    - chost
    argTypes:
    - struct stsentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: showsts
    functionSourceFile: /src/curl/tests/unit/unit1660.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    linkageType: ''
    returnType: void
    signature: void showsts(struct stsentry *e, const char *chost)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hsts_init
      Src: /src/curl/tests/unit/unit1660.c:106,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1660.c:112,1
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1660.c:114,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1660.c:115,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/tests/unit/unit1660.c:117,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1660.c:118,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1660.c:119,1
    - Dst: Curl_hsts_loadfile
      Src: /src/curl/tests/unit/unit1660.c:122,1
    - Dst: Curl_hsts_parse
      Src: /src/curl/tests/unit/unit1660.c:126,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1660.c:129,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1660.c:135,1
    - Dst: hsts_check
      Src: /src/curl/tests/unit/unit1660.c:141,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1660.c:141,1
    - Dst: showsts
      Src: /src/curl/tests/unit/unit1660.c:142,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1660.c:145,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1660.c:145,1
    - Dst: hsts_check
      Src: /src/curl/tests/unit/unit1660.c:150,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1660.c:150,1
    - Dst: showsts
      Src: /src/curl/tests/unit/unit1660.c:151,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1660.c:155,1
    - Dst: Curl_hsts_save
      Src: /src/curl/tests/unit/unit1660.c:156,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/tests/unit/unit1660.c:157,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1660.c:158,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1660.c:159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 162
    functionName: test_unit1660
    functionSourceFile: /src/curl/tests/unit/unit1660.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - curl_msnprintf
    - curl_mfprintf
    - Curl_hsts_parse
    - showsts
    - strlen
    - Curl_hsts_save
    - curl_easy_init
    - curl_mprintf
    - Curl_hsts_init
    - abort_unless
    - Curl_hsts_loadfile
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    - hsts_check
    - Curl_hsts_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1660(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: struct
    functionSourceFile: /src/curl/tests/unit/unit1660.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UNITTEST_BEGIN_SIMPLE
    signature: UNITTEST_BEGIN_SIMPLE struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: test_unit1660
    functionSourceFile: /src/curl/tests/unit/unit1660.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1660(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_md5it
      Src: /src/curl/tests/unit/unit1601.c:38,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1601.c:38,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1601.c:40,1
    - Dst: Curl_md5it
      Src: /src/curl/tests/unit/unit1601.c:43,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1601.c:43,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1601.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: test_unit1601
    functionSourceFile: /src/curl/tests/unit/unit1601.c
    functionUses: 0
    functionsReached:
    - verify_memory
    - strlen
    - Curl_md5it
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1601(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: t1603_mydtor
    functionSourceFile: /src/curl/tests/unit/unit1603.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void t1603_mydtor(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - key_len
    - p
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: my_elem_dtor
    functionSourceFile: /src/curl/tests/unit/unit1603.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void my_elem_dtor(void *key, size_t key_len, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_init
      Src: /src/curl/tests/unit/unit1603.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash_static
    argTypes:
    - struct Curl_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: t1603_setup
    functionSourceFile: /src/curl/tests/unit/unit1603.c
    functionUses: 0
    functionsReached:
    - Curl_hash_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1603_setup(struct Curl_hash *hash_static)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_destroy
      Src: /src/curl/tests/unit/unit1603.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash_static
    argTypes:
    - struct Curl_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: t1603_stop
    functionSourceFile: /src/curl/tests/unit/unit1603.c
    functionUses: 0
    functionsReached:
    - Curl_hash_destroy
    linkageType: ''
    returnType: void
    signature: void t1603_stop(struct Curl_hash *hash_static)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1603.c:61,1
    - Dst: t1603_setup
      Src: /src/curl/tests/unit/unit1603.c:61,1
    - Dst: Curl_hash_str
      Src: /src/curl/tests/unit/unit1603.c:74,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:74,1
    - Dst: Curl_hash_str
      Src: /src/curl/tests/unit/unit1603.c:75,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:75,1
    - Dst: Curl_hash_str
      Src: /src/curl/tests/unit/unit1603.c:76,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:76,1
    - Dst: Curl_hash_str
      Src: /src/curl/tests/unit/unit1603.c:77,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:77,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1603.c:78,1
    - Dst: Curl_hash_add
      Src: /src/curl/tests/unit/unit1603.c:82,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:82,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:83,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:84,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:84,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:85,1
    - Dst: Curl_hash_add
      Src: /src/curl/tests/unit/unit1603.c:87,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:87,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:88,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:89,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:89,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:90,1
    - Dst: Curl_hash_add
      Src: /src/curl/tests/unit/unit1603.c:92,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:92,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:93,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:94,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:94,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:95,1
    - Dst: Curl_hash_add
      Src: /src/curl/tests/unit/unit1603.c:98,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:98,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:99,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:100,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:100,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:101,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:104,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:104,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:105,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:106,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:106,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:107,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:108,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:108,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:109,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:110,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:110,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:111,1
    - Dst: Curl_hash_delete
      Src: /src/curl/tests/unit/unit1603.c:114,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:114,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:115,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:116,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:116,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:117,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:118,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:118,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:119,1
    - Dst: Curl_hash_add
      Src: /src/curl/tests/unit/unit1603.c:122,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:122,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:123,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:124,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:124,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:125,1
    - Dst: Curl_hash_delete
      Src: /src/curl/tests/unit/unit1603.c:128,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:128,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:129,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:130,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:130,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:131,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:132,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:132,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:133,1
    - Dst: Curl_hash_delete
      Src: /src/curl/tests/unit/unit1603.c:136,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:136,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:137,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:138,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:138,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:139,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:140,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:140,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:141,1
    - Dst: Curl_hash_delete
      Src: /src/curl/tests/unit/unit1603.c:144,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:144,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:145,1
    - Dst: Curl_hash_add
      Src: /src/curl/tests/unit/unit1603.c:148,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:148,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:149,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:150,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:150,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:151,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:154,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:154,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:155,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1603.c:156,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:156,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:157,1
    - Dst: Curl_hash_add2
      Src: /src/curl/tests/unit/unit1603.c:160,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:160,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:162,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:163,1
    - Dst: Curl_hash_add2
      Src: /src/curl/tests/unit/unit1603.c:165,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:165,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:167,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:168,1
    - Dst: Curl_hash_delete
      Src: /src/curl/tests/unit/unit1603.c:170,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1603.c:170,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:171,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1603.c:172,1
    - Dst: Curl_hash_clean
      Src: /src/curl/tests/unit/unit1603.c:175,1
    - Dst: UNITTEST_END
      Src: /src/curl/tests/unit/unit1603.c:177,1
    - Dst: t1603_stop
      Src: /src/curl/tests/unit/unit1603.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 71
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 178
    functionName: test_unit1603
    functionSourceFile: /src/curl/tests/unit/unit1603.c
    functionUses: 0
    functionsReached:
    - Curl_hash_add
    - t1603_stop
    - curl_mfprintf
    - Curl_hash_pick
    - UNITTEST_END
    - Curl_hash_str
    - fail_unless
    - Curl_hash_delete
    - Curl_hash_clean
    - strlen
    - Curl_hash_add2
    - t1603_setup
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1603(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1396.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: t1396_setup
    functionSourceFile: /src/curl/tests/unit/unit1396.c
    functionUses: 0
    functionsReached:
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1396_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1396.c:36,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1396.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: t1396_stop
    functionSourceFile: /src/curl/tests/unit/unit1396.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void t1396_stop(CURL *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1396.c:85,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1396.c:86,1
    - Dst: curl_easy_unescape
      Src: /src/curl/tests/unit/unit1396.c:89,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1396.c:91,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1396.c:92,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1396.c:93,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit1396.c:93,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1396.c:96,1
    - Dst: curl_free
      Src: /src/curl/tests/unit/unit1396.c:98,1
    - Dst: curl_easy_escape
      Src: /src/curl/tests/unit/unit1396.c:103,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1396.c:104,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1396.c:106,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1396.c:107,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1396.c:108,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit1396.c:108,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1396.c:111,1
    - Dst: curl_free
      Src: /src/curl/tests/unit/unit1396.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 117
    functionName: test_unit1396
    functionSourceFile: /src/curl/tests/unit/unit1396.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - memcmp
    - curl_mprintf
    - fail_unless
    - curl_easy_unescape
    - abort_unless
    - curl_free
    - strlen
    - curl_easy_escape
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1396(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_tbl_init
      Src: /src/curl/tests/unit/unit3212.c:33,1
    - Dst: Curl_uint32_tbl_resize
      Src: /src/curl/tests/unit/unit3212.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tbl
    argTypes:
    - struct uint32_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: t3212_setup
    functionSourceFile: /src/curl/tests/unit/unit3212.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_tbl_resize
    - Curl_uint32_tbl_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t3212_setup(struct uint32_tbl *tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_tbl_destroy
      Src: /src/curl/tests/unit/unit3212.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tbl
    argTypes:
    - struct uint32_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: t3212_stop
    functionSourceFile: /src/curl/tests/unit/unit3212.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_tbl_destroy
    linkageType: ''
    returnType: void
    signature: void t3212_stop(struct uint32_tbl *tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit3212.c:47,1
    - Dst: t3212_setup
      Src: /src/curl/tests/unit/unit3212.c:47,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:52,1
    - Dst: Curl_uint32_tbl_capacity
      Src: /src/curl/tests/unit/unit3212.c:52,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:55,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/tests/unit/unit3212.c:55,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:56,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:59,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/tests/unit/unit3212.c:59,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:60,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/tests/unit/unit3212.c:60,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/tests/unit/unit3212.c:64,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:66,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/tests/unit/unit3212.c:66,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/tests/unit/unit3212.c:70,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:71,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/tests/unit/unit3212.c:71,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:75,1
    - Dst: Curl_uint32_tbl_contains
      Src: /src/curl/tests/unit/unit3212.c:75,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:76,1
    - Dst: Curl_uint32_tbl_get
      Src: /src/curl/tests/unit/unit3212.c:76,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:80,1
    - Dst: Curl_uint32_tbl_first
      Src: /src/curl/tests/unit/unit3212.c:80,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:81,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:82,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:84,1
    - Dst: Curl_uint32_tbl_next
      Src: /src/curl/tests/unit/unit3212.c:84,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:85,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:86,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:88,1
    - Dst: Curl_uint32_tbl_next
      Src: /src/curl/tests/unit/unit3212.c:88,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:89,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:90,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/tests/unit/unit3212.c:93,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:94,1
    - Dst: Curl_uint32_tbl_resize
      Src: /src/curl/tests/unit/unit3212.c:94,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:96,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/tests/unit/unit3212.c:96,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:98,1
    - Dst: Curl_uint32_tbl_resize
      Src: /src/curl/tests/unit/unit3212.c:98,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:100,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/tests/unit/unit3212.c:100,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:102,1
    - Dst: Curl_uint32_tbl_contains
      Src: /src/curl/tests/unit/unit3212.c:102,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:103,1
    - Dst: Curl_uint32_tbl_get
      Src: /src/curl/tests/unit/unit3212.c:103,1
    - Dst: uint32_tbl_clear
      Src: /src/curl/tests/unit/unit3212.c:107,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:108,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/tests/unit/unit3212.c:108,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:110,1
    - Dst: Curl_uint32_tbl_contains
      Src: /src/curl/tests/unit/unit3212.c:110,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:114,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/tests/unit/unit3212.c:114,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:115,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/tests/unit/unit3212.c:117,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:118,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/tests/unit/unit3212.c:118,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:119,1
    - Dst: uint32_tbl_clear
      Src: /src/curl/tests/unit/unit3212.c:121,1
    - Dst: Curl_uint32_tbl_capacity
      Src: /src/curl/tests/unit/unit3212.c:122,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:123,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/tests/unit/unit3212.c:123,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:124,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/tests/unit/unit3212.c:124,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/tests/unit/unit3212.c:125,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:126,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/tests/unit/unit3212.c:126,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:127,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/tests/unit/unit3212.c:129,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:130,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/tests/unit/unit3212.c:130,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3212.c:131,1
    - Dst: UNITTEST_END
      Src: /src/curl/tests/unit/unit3212.c:133,1
    - Dst: t3212_stop
      Src: /src/curl/tests/unit/unit3212.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 62
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 134
    functionName: test_unit3212
    functionSourceFile: /src/curl/tests/unit/unit3212.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_tbl_add
    - Curl_uint32_tbl_first
    - UNITTEST_END
    - t3212_stop
    - Curl_uint32_tbl_remove
    - Curl_uint32_tbl_next
    - fail_unless
    - Curl_uint32_tbl_resize
    - Curl_uint32_tbl_count
    - Curl_uint32_tbl_contains
    - Curl_uint32_tbl_get
    - t3212_setup
    - uint32_tbl_clear
    - Curl_uint32_tbl_capacity
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3212(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1609.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: t1609_setup
    functionSourceFile: /src/curl/tests/unit/unit1609.c
    functionUses: 0
    functionsReached:
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1609_setup(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1609.c:103,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1609.c:105,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1609.c:110,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1609.c:112,1
    - Dst: curl_multi_init
      Src: /src/curl/tests/unit/unit1609.c:117,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/tests/unit/unit1609.c:120,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/unit/unit1609.c:122,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit1609.c:126,1
    - Dst: Curl_loadhostpairs
      Src: /src/curl/tests/unit/unit1609.c:128,1
    - Dst: curl_maprintf
      Src: /src/curl/tests/unit/unit1609.c:131,1
    - Dst: Curl_hash_pick
      Src: /src/curl/tests/unit/unit1609.c:135,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1609.c:136,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1609.c:137,1
    - Dst: Curl_addr2string
      Src: /src/curl/tests/unit/unit1609.c:148,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1609.c:150,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1609.c:158,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1609.c:166,1
    - Dst: curl_strequal
      Src: /src/curl/tests/unit/unit1609.c:173,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1609.c:174,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1609.c:183,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1609.c:197,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/unit/unit1609.c:199,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/unit/unit1609.c:201,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1609.c:211,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/tests/unit/unit1609.c:212,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/unit/unit1609.c:213,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 77
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 216
    functionName: test_unit1609
    functionSourceFile: /src/curl/tests/unit/unit1609.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_maprintf
    - curl_mfprintf
    - Curl_hash_pick
    - CURL_ARRAYSIZE
    - strlen
    - curl_easy_init
    - Curl_addr2string
    - curl_slist_free_all
    - curl_strequal
    - curl_slist_append
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_cleanup
    - curl_multi_cleanup
    - Curl_loadhostpairs
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1609(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_altsvc_init
      Src: /src/curl/tests/unit/unit1654.c:36,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1654.c:37,1
    - Dst: Curl_altsvc_load
      Src: /src/curl/tests/unit/unit1654.c:38,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:39,1
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1654.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1654.c:43,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:44,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:47,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:47,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1654.c:48,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:50,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:52,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:53,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:53,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:55,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:57,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:58,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:58,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:60,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:64,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:66,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:66,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:68,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:71,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:72,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:72,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:75,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:78,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:79,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:79,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:81,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:85,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:86,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:86,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:89,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:91,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:92,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:92,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:94,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:98,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:99,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:99,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:102,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:104,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1654.c:105,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1654.c:105,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:108,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:111,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:114,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:117,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:120,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:123,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:126,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:129,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/tests/unit/unit1654.c:131,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1654.c:135,1
    - Dst: Curl_altsvc_save
      Src: /src/curl/tests/unit/unit1654.c:137,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1654.c:139,1
    - Dst: Curl_altsvc_cleanup
      Src: /src/curl/tests/unit/unit1654.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 57
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 145
    functionName: test_unit1654
    functionSourceFile: /src/curl/tests/unit/unit1654.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - curl_msnprintf
    - Curl_altsvc_cleanup
    - Curl_altsvc_save
    - fail_if
    - abort_if
    - curl_easy_init
    - fail_unless
    - curl_easy_cleanup
    - curl_global_init
    - Curl_altsvc_init
    - Curl_altsvc_load
    - Curl_altsvc_parse
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1654(const char *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit3303.c:47,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit3303.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit3303.c:50,1
    - Dst: Curl_peer_create
      Src: /src/curl/tests/unit/unit3303.c:54,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit3303.c:58,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit3303.c:59,1
    - Dst: Curl_peer_link
      Src: /src/curl/tests/unit/unit3303.c:62,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3303.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3303.c:65,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3303.c:66,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3303.c:67,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit3303.c:68,1
    - Dst: Curl_ssl_easy_config_complete
      Src: /src/curl/tests/unit/unit3303.c:70,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/tests/unit/unit3303.c:71,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit3303.c:72,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit3303.c:73,1
    - Dst: curlx_calloc
      Src: /src/curl/tests/unit/unit3303.c:77,1
    - Dst: Curl_ssl_conn_config_init
      Src: /src/curl/tests/unit/unit3303.c:78,1
    - Dst: Curl_ssl_conn_config_cleanup
      Src: /src/curl/tests/unit/unit3303.c:80,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit3303.c:81,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/tests/unit/unit3303.c:82,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit3303.c:83,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit3303.c:84,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3303.c:89,1
    - Dst: Curl_ssl_conn_config_match
      Src: /src/curl/tests/unit/unit3303.c:89,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3303.c:98,1
    - Dst: Curl_ssl_conn_config_match
      Src: /src/curl/tests/unit/unit3303.c:98,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3303.c:106,1
    - Dst: Curl_ssl_conn_config_match
      Src: /src/curl/tests/unit/unit3303.c:106,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3303.c:114,1
    - Dst: Curl_ssl_conn_config_match
      Src: /src/curl/tests/unit/unit3303.c:114,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3303.c:122,1
    - Dst: Curl_ssl_conn_config_match
      Src: /src/curl/tests/unit/unit3303.c:122,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3303.c:128,1
    - Dst: Curl_ssl_conn_config_match
      Src: /src/curl/tests/unit/unit3303.c:128,1
    - Dst: Curl_ssl_conn_config_cleanup
      Src: /src/curl/tests/unit/unit3303.c:132,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit3303.c:133,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit3303.c:134,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/tests/unit/unit3303.c:135,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit3303.c:136,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 140
    functionName: test_unit3303
    functionSourceFile: /src/curl/tests/unit/unit3303.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_conn_config_init
    - Curl_ssl_conn_config_cleanup
    - curl_easy_init
    - Curl_peer_link
    - fail_unless
    - curlx_free
    - Curl_peer_create
    - Curl_peer_unlink
    - curl_easy_cleanup
    - curlx_calloc
    - curl_easy_setopt
    - curl_global_init
    - Curl_ssl_conn_config_match
    - curl_global_cleanup
    - Curl_ssl_easy_config_complete
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3303(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_altsvc_init
      Src: /src/curl/tests/unit/unit1669.c:37,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1669.c:38,1
    - Dst: Curl_altsvc_load
      Src: /src/curl/tests/unit/unit1669.c:39,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1669.c:40,1
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1669.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1669.c:44,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1669.c:45,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1669.c:48,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1669.c:48,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1669.c:50,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1669.c:52,1
    - Dst: Curl_altsvc_cleanup
      Src: /src/curl/tests/unit/unit1669.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: test_unit1669
    functionSourceFile: /src/curl/tests/unit/unit1669.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - curl_msnprintf
    - Curl_altsvc_cleanup
    - fail_if
    - abort_if
    - curl_easy_init
    - fail_unless
    - curl_easy_cleanup
    - curl_global_init
    - Curl_altsvc_init
    - Curl_altsvc_load
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1669(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1979.c:113,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit1979.c:121,1
    - Dst: canon_path
      Src: /src/curl/tests/unit/unit1979.c:123,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1979.c:123,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1979.c:125,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1979.c:126,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1979.c:130,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1979.c:133,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1979.c:134,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1979.c:135,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit1979.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 142
    functionName: test_unit1979
    functionSourceFile: /src/curl/tests/unit/unit1979.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_msnprintf
    - CURL_ARRAYSIZE
    - curlx_dyn_free
    - fail_unless
    - curlx_dyn_ptr
    - strcmp
    - canon_path
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1979(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1625.c:107,1
    - Dst: Curl_compareheader
      Src: /src/curl/tests/unit/unit1625.c:108,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1625.c:109,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1625.c:110,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1625.c:112,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1625.c:122,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1625.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 128
    functionName: test_unit1625
    functionSourceFile: /src/curl/tests/unit/unit1625.c
    functionUses: 0
    functionsReached:
    - Curl_compareheader
    - strlen
    - curl_mprintf
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1625(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: test_unit1625
    functionSourceFile: /src/curl/tests/unit/unit1625.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1625(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:44,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:45,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:46,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:46,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:48,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:49,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:50,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:50,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:52,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:53,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:54,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:54,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:56,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:57,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:58,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:58,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:60,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:61,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:62,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:62,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:64,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:65,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:66,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:66,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:69,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:70,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:71,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:71,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:74,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:75,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:76,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:76,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:80,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:81,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:82,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:82,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:85,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:86,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:87,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:87,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:90,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:91,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:92,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:92,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:95,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:96,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:97,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:97,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:100,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:101,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:102,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:102,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:105,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:106,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:107,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:107,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:110,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:111,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:112,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:112,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:115,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:116,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:117,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1398.c:117,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:125,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:126,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:133,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:162,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:165,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:194,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:197,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:206,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1398.c:209,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1398.c:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 221
    functionName: test_unit1398
    functionSourceFile: /src/curl/tests/unit/unit1398.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_msnprintf
    - fail_unless
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1398(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sha512_256it
      Src: /src/curl/tests/unit/unit1615.c:112,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1615.c:113,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1615.c:114,1
    - Dst: Curl_sha512_256it
      Src: /src/curl/tests/unit/unit1615.c:116,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1615.c:117,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1615.c:118,1
    - Dst: Curl_sha512_256it
      Src: /src/curl/tests/unit/unit1615.c:120,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1615.c:121,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1615.c:122,1
    - Dst: Curl_sha512_256it
      Src: /src/curl/tests/unit/unit1615.c:124,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1615.c:125,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1615.c:126,1
    - Dst: Curl_sha512_256it
      Src: /src/curl/tests/unit/unit1615.c:128,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1615.c:129,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1615.c:130,1
    - Dst: Curl_sha512_256it
      Src: /src/curl/tests/unit/unit1615.c:132,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1615.c:133,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1615.c:134,1
    - Dst: Curl_sha512_256it
      Src: /src/curl/tests/unit/unit1615.c:136,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1615.c:137,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1615.c:138,1
    - Dst: Curl_sha512_256it
      Src: /src/curl/tests/unit/unit1615.c:140,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1615.c:141,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1615.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 147
    functionName: test_unit1615
    functionSourceFile: /src/curl/tests/unit/unit1615.c
    functionUses: 0
    functionsReached:
    - verify_memory
    - Curl_sha512_256it
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1615(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_write
      Src: /src/curl/tests/unit/unit3400.c:35,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:36,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - q
    - src
    - len
    argTypes:
    - struct bufq*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: queue_bytes
    functionSourceFile: /src/curl/tests/unit/unit3400.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_write
    - fail_unless
    linkageType: ''
    returnType: void
    signature: void queue_bytes(struct bufq *q, const unsigned char *src, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/unit/unit3400.c:50,1
    - Dst: capsule_encap_udp_hdr
      Src: /src/curl/tests/unit/unit3400.c:51,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:52,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:53,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit3400.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - payload_len
    - expected
    - expected_len
    argTypes:
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: check_capsule_hdr
    functionSourceFile: /src/curl/tests/unit/unit3400.c
    functionUses: 0
    functionsReached:
    - memcmp
    - capsule_encap_udp_hdr
    - fail_unless
    - memset
    linkageType: ''
    returnType: void
    signature: "void check_capsule_hdr(size_t payload_len,\n                              const
      unsigned char *expected,\n                              size_t expected_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_capsule_hdr
      Src: /src/curl/tests/unit/unit3400.c:67,1
    - Dst: check_capsule_hdr
      Src: /src/curl/tests/unit/unit3400.c:68,1
    - Dst: check_capsule_hdr
      Src: /src/curl/tests/unit/unit3400.c:69,1
    - Dst: check_capsule_hdr
      Src: /src/curl/tests/unit/unit3400.c:70,1
    - Dst: check_capsule_hdr
      Src: /src/curl/tests/unit/unit3400.c:71,1
    - Dst: check_capsule_hdr
      Src: /src/curl/tests/unit/unit3400.c:72,1
    - Dst: check_capsule_hdr
      Src: /src/curl/tests/unit/unit3400.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: test_capsule_encap_udp_hdr_boundaries
    functionSourceFile: /src/curl/tests/unit/unit3400.c
    functionUses: 0
    functionsReached:
    - check_capsule_hdr
    linkageType: ''
    returnType: void
    signature: void test_capsule_encap_udp_hdr_boundaries(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/unit/unit3400.c:89,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/tests/unit/unit3400.c:90,1
    - Dst: queue_bytes
      Src: /src/curl/tests/unit/unit3400.c:92,1
    - Dst: Curl_capsule_process_udp_raw
      Src: /src/curl/tests/unit/unit3400.c:94,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:95,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - q
    - capsule
    - capslen
    - outlen
    - expect_err
    - expect_nread
    argTypes:
    - struct bufq*
    - unsigned char*
    - size_t
    - size_t
    - CURLcode
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 97
    functionName: check_capsule_result
    functionSourceFile: /src/curl/tests/unit/unit3400.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_reset
    - fail_unless
    - Curl_capsule_process_udp_raw
    - memset
    - queue_bytes
    linkageType: ''
    returnType: void
    signature: "void check_capsule_result(struct bufq *q,\n                                 const
      unsigned char *capsule, size_t capslen,\n                                 size_t
      outlen, CURLcode expect_err,\n                                 size_t expect_nread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/unit/unit3400.c:114,1
    - Dst: Curl_capsule_encap_udp_datagram
      Src: /src/curl/tests/unit/unit3400.c:116,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:117,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/tests/unit/unit3400.c:119,1
    - Dst: queue_bytes
      Src: /src/curl/tests/unit/unit3400.c:120,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit3400.c:120,1
    - Dst: curlx_dyn_len
      Src: /src/curl/tests/unit/unit3400.c:121,1
    - Dst: Curl_capsule_process_udp_raw
      Src: /src/curl/tests/unit/unit3400.c:124,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:126,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:127,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:128,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit3400.c:128,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:130,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/tests/unit/unit3400.c:130,1
    - Dst: Curl_bufq_free
      Src: /src/curl/tests/unit/unit3400.c:132,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit3400.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 135
    functionName: test_capsule_encode_decode_roundtrip
    functionSourceFile: /src/curl/tests/unit/unit3400.c
    functionUses: 0
    functionsReached:
    - memcmp
    - curlx_dyn_free
    - curlx_dyn_len
    - fail_unless
    - curlx_dyn_ptr
    - Curl_capsule_process_udp_raw
    - Curl_capsule_encap_udp_datagram
    - memset
    - queue_bytes
    - Curl_bufq_is_empty
    - Curl_bufq_free
    - Curl_bufq_init2
    linkageType: ''
    returnType: void
    signature: void test_capsule_encode_decode_roundtrip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init2
      Src: /src/curl/tests/unit/unit3400.c:151,1
    - Dst: queue_bytes
      Src: /src/curl/tests/unit/unit3400.c:153,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit3400.c:156,1
    - Dst: Curl_capsule_process_udp_raw
      Src: /src/curl/tests/unit/unit3400.c:158,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:159,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:160,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:161,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit3400.c:165,1
    - Dst: Curl_capsule_process_udp_raw
      Src: /src/curl/tests/unit/unit3400.c:167,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:168,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:169,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:170,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:174,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/tests/unit/unit3400.c:174,1
    - Dst: Curl_capsule_process_udp_raw
      Src: /src/curl/tests/unit/unit3400.c:179,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:180,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:182,1
    - Dst: Curl_bufq_free
      Src: /src/curl/tests/unit/unit3400.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 185
    functionName: test_capsule_sequential_decode
    functionSourceFile: /src/curl/tests/unit/unit3400.c
    functionUses: 0
    functionsReached:
    - fail_unless
    - queue_bytes
    - Curl_capsule_process_udp_raw
    - Curl_bufq_is_empty
    - memset
    - Curl_bufq_free
    - Curl_bufq_init2
    linkageType: ''
    returnType: void
    signature: void test_capsule_sequential_decode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init2
      Src: /src/curl/tests/unit/unit3400.c:201,1
    - Dst: check_capsule_result
      Src: /src/curl/tests/unit/unit3400.c:203,1
    - Dst: check_capsule_result
      Src: /src/curl/tests/unit/unit3400.c:204,1
    - Dst: check_capsule_result
      Src: /src/curl/tests/unit/unit3400.c:205,1
    - Dst: check_capsule_result
      Src: /src/curl/tests/unit/unit3400.c:207,1
    - Dst: check_capsule_result
      Src: /src/curl/tests/unit/unit3400.c:209,1
    - Dst: check_capsule_result
      Src: /src/curl/tests/unit/unit3400.c:211,1
    - Dst: check_capsule_result
      Src: /src/curl/tests/unit/unit3400.c:213,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/tests/unit/unit3400.c:217,1
    - Dst: queue_bytes
      Src: /src/curl/tests/unit/unit3400.c:218,1
    - Dst: Curl_capsule_process_udp_raw
      Src: /src/curl/tests/unit/unit3400.c:219,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:220,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:222,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:223,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/tests/unit/unit3400.c:223,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/tests/unit/unit3400.c:226,1
    - Dst: queue_bytes
      Src: /src/curl/tests/unit/unit3400.c:227,1
    - Dst: Curl_capsule_process_udp_raw
      Src: /src/curl/tests/unit/unit3400.c:228,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:229,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:230,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:231,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/tests/unit/unit3400.c:231,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/tests/unit/unit3400.c:234,1
    - Dst: queue_bytes
      Src: /src/curl/tests/unit/unit3400.c:235,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit3400.c:236,1
    - Dst: Curl_capsule_process_udp_raw
      Src: /src/curl/tests/unit/unit3400.c:237,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:238,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:239,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:240,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3400.c:242,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/tests/unit/unit3400.c:242,1
    - Dst: Curl_bufq_free
      Src: /src/curl/tests/unit/unit3400.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 245
    functionName: test_capsule_decode_paths
    functionSourceFile: /src/curl/tests/unit/unit3400.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_reset
    - fail_unless
    - Curl_capsule_process_udp_raw
    - check_capsule_result
    - Curl_bufq_is_empty
    - queue_bytes
    - memset
    - Curl_bufq_free
    - Curl_bufq_init2
    linkageType: ''
    returnType: void
    signature: void test_capsule_decode_paths(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_capsule_encap_udp_hdr_boundaries
      Src: /src/curl/tests/unit/unit3400.c:254,1
    - Dst: test_capsule_encode_decode_roundtrip
      Src: /src/curl/tests/unit/unit3400.c:259,1
    - Dst: test_capsule_decode_paths
      Src: /src/curl/tests/unit/unit3400.c:260,1
    - Dst: test_capsule_sequential_decode
      Src: /src/curl/tests/unit/unit3400.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 265
    functionName: test_unit3400
    functionSourceFile: /src/curl/tests/unit/unit3400.c
    functionUses: 0
    functionsReached:
    - test_capsule_decode_paths
    - test_capsule_encap_udp_hdr_boundaries
    - test_capsule_encode_decode_roundtrip
    - test_capsule_sequential_decode
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3400(const char *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1650.c:153,1
    - Dst: doh_req_encode
      Src: /src/curl/tests/unit/unit1650.c:154,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:157,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1650.c:159,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:162,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:164,1
    - Dst: hexdump
      Src: /src/curl/tests/unit/unit1650.c:164,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1650.c:165,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit1650.c:167,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:168,1
    - Dst: hexdump
      Src: /src/curl/tests/unit/unit1650.c:168,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:169,1
    - Dst: hexdump
      Src: /src/curl/tests/unit/unit1650.c:170,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1650.c:171,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit1650.c:171,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1650.c:176,1
    - Dst: de_init
      Src: /src/curl/tests/unit/unit1650.c:182,1
    - Dst: doh_resp_decode
      Src: /src/curl/tests/unit/unit1650.c:183,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:186,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1650.c:188,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1650.c:198,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1650.c:199,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1650.c:207,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1650.c:209,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1650.c:213,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1650.c:220,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1650.c:220,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1650.c:221,1
    - Dst: de_cleanup
      Src: /src/curl/tests/unit/unit1650.c:225,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1650.c:226,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:227,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1650.c:229,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1650.c:229,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1650.c:238,1
    - Dst: doh_resp_decode
      Src: /src/curl/tests/unit/unit1650.c:239,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:243,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1650.c:244,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1650.c:252,1
    - Dst: doh_resp_decode
      Src: /src/curl/tests/unit/unit1650.c:253,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:257,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1650.c:258,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1650.c:266,1
    - Dst: doh_resp_decode
      Src: /src/curl/tests/unit/unit1650.c:267,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1650.c:269,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1650.c:272,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1650.c:274,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1650.c:275,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1650.c:276,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1650.c:276,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1650.c:278,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 283
    functionName: test_unit1650
    functionSourceFile: /src/curl/tests/unit/unit1650.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - fail_if
    - abort_if
    - memcmp
    - de_cleanup
    - doh_req_encode
    - hexdump
    - curlx_dyn_ptr
    - strcmp
    - memset
    - strlen
    - de_init
    - doh_resp_decode
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1650(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/tests/unit/unit1657.c:44,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/tests/unit/unit1657.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - spec
    - buf
    argTypes:
    - struct test1657_spec*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: make1657_nested
    functionSourceFile: /src/curl/tests/unit/unit1657.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode make1657_nested(const struct test1657_spec *spec,\n                                struct
      dynbuf *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/unit/unit1657.c:71,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/tests/unit/unit1657.c:72,1
    - Dst: struct test1657_spec*::setbuf
      Src: /src/curl/tests/unit/unit1657.c:73,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1657.c:75,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1657.c:78,1
    - Dst: getASN1Element
      Src: /src/curl/tests/unit/unit1657.c:79,1
    - Dst: curlx_dyn_len
      Src: /src/curl/tests/unit/unit1657.c:79,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1657.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - spec
    - i
    - buf
    argTypes:
    - struct test1657_spec*
    - size_t
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: do_test1657
    functionSourceFile: /src/curl/tests/unit/unit1657.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - getASN1Element
    - struct test1657_spec*::setbuf
    - curlx_dyn_len
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool do_test1657(const struct test1657_spec *spec, size_t i,\n                        struct
      dynbuf *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1657.c:97,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1657.c:98,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit1657.c:102,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1657.c:104,1
    - Dst: do_test1657
      Src: /src/curl/tests/unit/unit1657.c:105,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1657.c:108,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit1657.c:110,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1657.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 114
    functionName: test_unit1657
    functionSourceFile: /src/curl/tests/unit/unit1657.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - curlx_dyn_free
    - fail_unless
    - curl_global_init
    - curl_global_cleanup
    - do_test1657
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1657(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: test_unit1657
    functionSourceFile: /src/curl/tests/unit/unit1657.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1657(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1616.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - elem
    argTypes:
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: t1616_mydtor
    functionSourceFile: /src/curl/tests/unit/unit1616.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void t1616_mydtor(uint32_t id, void *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_hash_init
      Src: /src/curl/tests/unit/unit1616.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - struct uint_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: t1616_setup
    functionSourceFile: /src/curl/tests/unit/unit1616.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_hash_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1616_setup(struct uint_hash *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_hash_destroy
      Src: /src/curl/tests/unit/unit1616.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - struct uint_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: t1616_stop
    functionSourceFile: /src/curl/tests/unit/unit1616.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_hash_destroy
    linkageType: ''
    returnType: void
    signature: void t1616_stop(struct uint_hash *hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1616.c:49,1
    - Dst: t1616_setup
      Src: /src/curl/tests/unit/unit1616.c:49,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/unit/unit1616.c:58,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1616.c:59,1
    - Dst: Curl_uint32_hash_set
      Src: /src/curl/tests/unit/unit1616.c:61,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1616.c:63,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1616.c:64,1
    - Dst: Curl_uint32_hash_get
      Src: /src/curl/tests/unit/unit1616.c:65,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1616.c:66,1
    - Dst: Curl_uint32_hash_get
      Src: /src/curl/tests/unit/unit1616.c:67,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1616.c:68,1
    - Dst: uint_hash_clear
      Src: /src/curl/tests/unit/unit1616.c:69,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/unit/unit1616.c:72,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1616.c:73,1
    - Dst: Curl_uint32_hash_set
      Src: /src/curl/tests/unit/unit1616.c:75,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1616.c:77,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1616.c:78,1
    - Dst: Curl_uint32_hash_get
      Src: /src/curl/tests/unit/unit1616.c:79,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1616.c:80,1
    - Dst: Curl_uint32_hash_get
      Src: /src/curl/tests/unit/unit1616.c:81,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1616.c:82,1
    - Dst: UNITTEST_END
      Src: /src/curl/tests/unit/unit1616.c:84,1
    - Dst: t1616_stop
      Src: /src/curl/tests/unit/unit1616.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 85
    functionName: test_unit1616
    functionSourceFile: /src/curl/tests/unit/unit1616.c
    functionUses: 0
    functionsReached:
    - UNITTEST_END
    - t1616_setup
    - uint_hash_clear
    - curlx_malloc
    - curlx_free
    - Curl_uint32_hash_get
    - abort_unless
    - t1616_stop
    - Curl_uint32_hash_set
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1616(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1610.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: t1610_setup
    functionSourceFile: /src/curl/tests/unit/unit1610.c
    functionUses: 0
    functionsReached:
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1610_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sha256it
      Src: /src/curl/tests/unit/unit1610.c:45,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1610.c:45,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1610.c:47,1
    - Dst: Curl_sha256it
      Src: /src/curl/tests/unit/unit1610.c:53,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1610.c:53,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1610.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 63
    functionName: test_unit1610
    functionSourceFile: /src/curl/tests/unit/unit1610.c
    functionUses: 0
    functionsReached:
    - verify_memory
    - strlen
    - Curl_sha256it
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1610(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1304.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1304.c:35,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1304.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: t1304_setup
    functionSourceFile: /src/curl/tests/unit/unit1304.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - curl_global_cleanup
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1304_setup(struct Curl_easy **easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1304.c:45,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1304.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: t1304_stop
    functionSourceFile: /src/curl/tests/unit/unit1304.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void t1304_stop(struct Curl_easy *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - creds
    argTypes:
    - struct Curl_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: t1304_no_user
    functionSourceFile: /src/curl/tests/unit/unit1304.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool t1304_no_user(struct Curl_creds *creds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - creds
    argTypes:
    - struct Curl_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: t1304_no_passwd
    functionSourceFile: /src/curl/tests/unit/unit1304.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool t1304_no_passwd(struct Curl_creds *creds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1304.c:66,1
    - Dst: t1304_setup
      Src: /src/curl/tests/unit/unit1304.c:66,1
    - Dst: Curl_netrc_init
      Src: /src/curl/tests/unit/unit1304.c:71,1
    - Dst: Curl_netrc_scan
      Src: /src/curl/tests/unit/unit1304.c:72,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:73,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:74,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/tests/unit/unit1304.c:75,1
    - Dst: Curl_netrc_init
      Src: /src/curl/tests/unit/unit1304.c:80,1
    - Dst: Curl_netrc_scan
      Src: /src/curl/tests/unit/unit1304.c:81,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:82,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:83,1
    - Dst: t1304_no_passwd
      Src: /src/curl/tests/unit/unit1304.c:83,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/tests/unit/unit1304.c:84,1
    - Dst: Curl_netrc_init
      Src: /src/curl/tests/unit/unit1304.c:89,1
    - Dst: Curl_netrc_scan
      Src: /src/curl/tests/unit/unit1304.c:90,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:91,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:92,1
    - Dst: t1304_no_passwd
      Src: /src/curl/tests/unit/unit1304.c:92,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/tests/unit/unit1304.c:93,1
    - Dst: Curl_netrc_init
      Src: /src/curl/tests/unit/unit1304.c:99,1
    - Dst: Curl_netrc_scan
      Src: /src/curl/tests/unit/unit1304.c:100,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:101,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:102,1
    - Dst: t1304_no_passwd
      Src: /src/curl/tests/unit/unit1304.c:102,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/tests/unit/unit1304.c:103,1
    - Dst: Curl_netrc_init
      Src: /src/curl/tests/unit/unit1304.c:109,1
    - Dst: Curl_netrc_scan
      Src: /src/curl/tests/unit/unit1304.c:110,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:112,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:113,1
    - Dst: t1304_no_passwd
      Src: /src/curl/tests/unit/unit1304.c:113,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/tests/unit/unit1304.c:114,1
    - Dst: Curl_netrc_init
      Src: /src/curl/tests/unit/unit1304.c:119,1
    - Dst: Curl_netrc_scan
      Src: /src/curl/tests/unit/unit1304.c:120,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:121,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:122,1
    - Dst: strncmp
      Src: /src/curl/tests/unit/unit1304.c:122,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/tests/unit/unit1304.c:122,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:124,1
    - Dst: t1304_no_user
      Src: /src/curl/tests/unit/unit1304.c:124,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:125,1
    - Dst: strncmp
      Src: /src/curl/tests/unit/unit1304.c:125,1
    - Dst: Curl_creds_user
      Src: /src/curl/tests/unit/unit1304.c:125,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/tests/unit/unit1304.c:127,1
    - Dst: Curl_netrc_init
      Src: /src/curl/tests/unit/unit1304.c:132,1
    - Dst: Curl_netrc_scan
      Src: /src/curl/tests/unit/unit1304.c:133,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:134,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:135,1
    - Dst: strncmp
      Src: /src/curl/tests/unit/unit1304.c:135,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/tests/unit/unit1304.c:135,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:137,1
    - Dst: t1304_no_user
      Src: /src/curl/tests/unit/unit1304.c:137,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:138,1
    - Dst: strncmp
      Src: /src/curl/tests/unit/unit1304.c:138,1
    - Dst: Curl_creds_user
      Src: /src/curl/tests/unit/unit1304.c:138,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/tests/unit/unit1304.c:140,1
    - Dst: Curl_netrc_init
      Src: /src/curl/tests/unit/unit1304.c:146,1
    - Dst: Curl_netrc_scan
      Src: /src/curl/tests/unit/unit1304.c:147,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:149,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1304.c:150,1
    - Dst: Curl_creds_has_passwd
      Src: /src/curl/tests/unit/unit1304.c:150,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/tests/unit/unit1304.c:151,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/tests/unit/unit1304.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 156
    functionName: test_unit1304
    functionSourceFile: /src/curl/tests/unit/unit1304.c
    functionUses: 0
    functionsReached:
    - Curl_creds_passwd
    - Curl_creds_has_passwd
    - Curl_netrc_cleanup
    - Curl_netrc_scan
    - Curl_creds_unlink
    - fail_unless
    - t1304_no_passwd
    - Curl_netrc_init
    - Curl_creds_user
    - strncmp
    - t1304_setup
    - t1304_no_user
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1304(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: test_unit1304
    functionSourceFile: /src/curl/tests/unit/unit1304.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1304(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit1653.c:33,1
    - Dst: curlx_dyn_add
      Src: /src/curl/tests/unit/unit1653.c:34,1
    - Dst: parse_port
      Src: /src/curl/tests/unit/unit1653.c:36,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit1653.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - url
    - h
    - has_scheme
    argTypes:
    - CURLU*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: my_parse_port
    functionSourceFile: /src/curl/tests/unit/unit1653.c
    functionUses: 0
    functionsReached:
    - parse_port
    - curlx_dyn_init
    - curlx_dyn_free
    - curlx_dyn_add
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode my_parse_port(CURLU *url, const char *h, bool has_scheme)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:52,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:55,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:58,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:59,1
    - Dst: curl_url_get
      Src: /src/curl/tests/unit/unit1653.c:60,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:61,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:62,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:63,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:66,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:69,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:72,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:73,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:74,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:75,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:77,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:80,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:83,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:84,1
    - Dst: curl_url_get
      Src: /src/curl/tests/unit/unit1653.c:85,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:86,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:87,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1653.c:87,1
    - Dst: curl_free
      Src: /src/curl/tests/unit/unit1653.c:89,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:90,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:91,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:94,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:97,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:100,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:101,1
    - Dst: curl_url_get
      Src: /src/curl/tests/unit/unit1653.c:102,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:103,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:104,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1653.c:104,1
    - Dst: curl_free
      Src: /src/curl/tests/unit/unit1653.c:105,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:106,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:107,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:110,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:113,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:116,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:117,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:118,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:119,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:122,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:125,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:128,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:129,1
    - Dst: curl_url_get
      Src: /src/curl/tests/unit/unit1653.c:130,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:131,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:132,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1653.c:132,1
    - Dst: curl_free
      Src: /src/curl/tests/unit/unit1653.c:133,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:134,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:135,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:138,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:141,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:144,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:145,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:146,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:147,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:149,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:152,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:155,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:156,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:157,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:158,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:162,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:165,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:168,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:169,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:170,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:171,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:174,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:177,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:180,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:181,1
    - Dst: curl_url_get
      Src: /src/curl/tests/unit/unit1653.c:182,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:183,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:184,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1653.c:184,1
    - Dst: curl_free
      Src: /src/curl/tests/unit/unit1653.c:185,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:186,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:187,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:190,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:193,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:196,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:197,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit1653.c:198,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:199,1
    - Dst: curl_url
      Src: /src/curl/tests/unit/unit1653.c:203,1
    - Dst: curlx_strdup
      Src: /src/curl/tests/unit/unit1653.c:206,1
    - Dst: my_parse_port
      Src: /src/curl/tests/unit/unit1653.c:210,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1653.c:211,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1653.c:213,1
    - Dst: curl_url_cleanup
      Src: /src/curl/tests/unit/unit1653.c:214,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 165
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 217
    functionName: test_unit1653
    functionSourceFile: /src/curl/tests/unit/unit1653.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - my_parse_port
    - curl_url_cleanup
    - curlx_strdup
    - fail_unless
    - strcmp
    - curlx_free
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1653(const char *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dynhds_init
      Src: /src/curl/tests/unit/unit2602.c:39,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:40,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/tests/unit/unit2602.c:40,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:41,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/tests/unit/unit2602.c:41,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:42,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/tests/unit/unit2602.c:42,1
    - Dst: dynhds_remove
      Src: /src/curl/tests/unit/unit2602.c:45,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:46,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/tests/unit/unit2602.c:49,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:50,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:54,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/tests/unit/unit2602.c:54,1
    - Dst: dynhds_set
      Src: /src/curl/tests/unit/unit2602.c:57,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:58,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:62,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/tests/unit/unit2602.c:62,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/tests/unit/unit2602.c:64,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:65,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:67,1
    - Dst: dynhds_count_name
      Src: /src/curl/tests/unit/unit2602.c:67,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:68,1
    - Dst: dynhds_count_name
      Src: /src/curl/tests/unit/unit2602.c:68,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:69,1
    - Dst: Curl_dynhds_get
      Src: /src/curl/tests/unit/unit2602.c:69,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:70,1
    - Dst: Curl_dynhds_get
      Src: /src/curl/tests/unit/unit2602.c:70,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:71,1
    - Dst: dynhds_count_name
      Src: /src/curl/tests/unit/unit2602.c:71,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:72,1
    - Dst: dynhds_ccount_name
      Src: /src/curl/tests/unit/unit2602.c:72,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:73,1
    - Dst: Curl_dynhds_cget
      Src: /src/curl/tests/unit/unit2602.c:73,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:74,1
    - Dst: dynhds_ccount_name
      Src: /src/curl/tests/unit/unit2602.c:74,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:75,1
    - Dst: dynhds_ccontains
      Src: /src/curl/tests/unit/unit2602.c:75,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:76,1
    - Dst: dynhds_contains
      Src: /src/curl/tests/unit/unit2602.c:76,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/tests/unit/unit2602.c:77,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/tests/unit/unit2602.c:80,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:81,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/tests/unit/unit2602.c:81,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:82,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/tests/unit/unit2602.c:82,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:83,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/tests/unit/unit2602.c:83,1
    - Dst: Curl_dynhds_reset
      Src: /src/curl/tests/unit/unit2602.c:84,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/tests/unit/unit2602.c:85,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/tests/unit/unit2602.c:87,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:88,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/tests/unit/unit2602.c:88,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:89,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/tests/unit/unit2602.c:89,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:90,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/tests/unit/unit2602.c:90,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:91,1
    - Dst: Curl_dynhds_h1_cadd_line
      Src: /src/curl/tests/unit/unit2602.c:91,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:92,1
    - Dst: dynhds_ccount_name
      Src: /src/curl/tests/unit/unit2602.c:92,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:93,1
    - Dst: dynhds_cremove
      Src: /src/curl/tests/unit/unit2602.c:93,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:94,1
    - Dst: dynhds_ccontains
      Src: /src/curl/tests/unit/unit2602.c:94,1
    - Dst: Curl_dynhds_h1_cadd_line
      Src: /src/curl/tests/unit/unit2602.c:96,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:97,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2602.c:99,1
    - Dst: dynhds_ccount_name
      Src: /src/curl/tests/unit/unit2602.c:99,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:100,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/tests/unit/unit2602.c:100,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit2602.c:102,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:103,1
    - Dst: Curl_dynhds_h1_dprint
      Src: /src/curl/tests/unit/unit2602.c:103,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit2602.c:104,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:105,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit2602.c:105,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit2602.c:105,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit2602.c:109,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/tests/unit/unit2602.c:112,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit2602.c:114,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:115,1
    - Dst: Curl_dynhds_h1_dprint
      Src: /src/curl/tests/unit/unit2602.c:115,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit2602.c:116,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2602.c:117,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit2602.c:117,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2602.c:118,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit2602.c:118,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit2602.c:118,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit2602.c:122,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/tests/unit/unit2602.c:124,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 71
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 127
    functionName: test_unit2602
    functionSourceFile: /src/curl/tests/unit/unit2602.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - Curl_dynhds_reset
    - curlx_dyn_ptr
    - strcmp
    - Curl_dynhds_cget
    - dynhds_set
    - Curl_dynhds_h1_dprint
    - Curl_dynhds_cadd
    - dynhds_ccontains
    - curlx_dyn_free
    - dynhds_cremove
    - Curl_dynhds_count
    - fail_unless
    - Curl_dynhds_free
    - Curl_dynhds_add
    - dynhds_ccount_name
    - Curl_dynhds_get
    - dynhds_remove
    - Curl_dynhds_h1_cadd_line
    - curl_mfprintf
    - fail_if
    - dynhds_contains
    - dynhds_count_name
    - Curl_dynhds_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit2602(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/tests/unit/unit1656.c:41,1
    - Dst: GTime2str
      Src: /src/curl/tests/unit/unit1656.c:42,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1656.c:42,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1656.c:44,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1656.c:48,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1656.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1656.c:49,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1656.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - spec
    - i
    - dbuf
    argTypes:
    - struct test_spec*
    - size_t
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: do_test
    functionSourceFile: /src/curl/tests/unit/unit1656.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - GTime2str
    - curlx_dyn_reset
    - strcmp
    - curlx_dyn_ptr
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool do_test(const struct test_spec *spec, size_t i,\n                    struct
      dynbuf *dbuf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1656.c:97,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1656.c:98,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit1656.c:102,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1656.c:104,1
    - Dst: do_test
      Src: /src/curl/tests/unit/unit1656.c:105,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1656.c:108,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit1656.c:110,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1656.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 114
    functionName: test_unit1656
    functionSourceFile: /src/curl/tests/unit/unit1656.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - curlx_dyn_free
    - fail_unless
    - curl_global_init
    - do_test
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1656(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: test_unit1656
    functionSourceFile: /src/curl/tests/unit/unit1656.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1656(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1399.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1399.c:33,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1399.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: t1399_setup
    functionSourceFile: /src/curl/tests/unit/unit1399.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - curl_global_cleanup
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1399_setup(struct Curl_easy **easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1399.c:43,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1399.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: t1399_stop
    functionSourceFile: /src/curl/tests/unit/unit1399.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void t1399_stop(struct Curl_easy *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - fake_now
    - seconds_offset
    argTypes:
    - struct Curl_easy*
    - struct curltime
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: fake_t_startsingle_time
    functionSourceFile: /src/curl/tests/unit/unit1399.c
    functionUses: 0
    functionsReached:
    - Curl_pgrsTime
    linkageType: ''
    returnType: void
    signature: "void fake_t_startsingle_time(struct Curl_easy *data,\n                                    struct
      curltime fake_now,\n                                    int seconds_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1399.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - time_usec
    - expected_seconds
    argTypes:
    - timediff_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: usec_matches_seconds
    functionSourceFile: /src/curl/tests/unit/unit1399.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: bool
    signature: bool usec_matches_seconds(timediff_t time_usec, int expected_seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1399.c:76,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1399.c:78,1
    - Dst: usec_matches_seconds
      Src: /src/curl/tests/unit/unit1399.c:78,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1399.c:79,1
    - Dst: usec_matches_seconds
      Src: /src/curl/tests/unit/unit1399.c:79,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1399.c:80,1
    - Dst: usec_matches_seconds
      Src: /src/curl/tests/unit/unit1399.c:80,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1399.c:81,1
    - Dst: usec_matches_seconds
      Src: /src/curl/tests/unit/unit1399.c:81,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1399.c:83,1
    - Dst: usec_matches_seconds
      Src: /src/curl/tests/unit/unit1399.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - data
    - seconds
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: expect_timer_seconds
    functionSourceFile: /src/curl/tests/unit/unit1399.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - fail_unless
    - usec_matches_seconds
    linkageType: ''
    returnType: void
    signature: void expect_timer_seconds(struct Curl_easy *data, int seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit1399.c:95,1
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1399.c:97,1
    - Dst: t1399_setup
      Src: /src/curl/tests/unit/unit1399.c:97,1
    - Dst: fake_t_startsingle_time
      Src: /src/curl/tests/unit/unit1399.c:109,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:111,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:112,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:113,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:114,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:115,1
    - Dst: expect_timer_seconds
      Src: /src/curl/tests/unit/unit1399.c:117,1
    - Dst: fake_t_startsingle_time
      Src: /src/curl/tests/unit/unit1399.c:121,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:123,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:124,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:125,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:126,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:129,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/tests/unit/unit1399.c:130,1
    - Dst: expect_timer_seconds
      Src: /src/curl/tests/unit/unit1399.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 135
    functionName: test_unit1399
    functionSourceFile: /src/curl/tests/unit/unit1399.c
    functionUses: 0
    functionsReached:
    - curlx_now
    - t1399_setup
    - expect_timer_seconds
    - Curl_pgrsTime
    - fake_t_startsingle_time
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1399(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 48
    functionName: tail_err
    functionSourceFile: /src/curl/tests/unit/unit2601.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *tail_err(struct bufq *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:56,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:58,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:61,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:65,1
    - Dst: tail_err
      Src: /src/curl/tests/unit/unit2601.c:66,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:67,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:74,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - q
    - msg
    argTypes:
    - struct bufq*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 76
    functionName: dump_bufq
    functionSourceFile: /src/curl/tests/unit/unit2601.c
    functionUses: 0
    functionsReached:
    - tail_err
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void dump_bufq(struct bufq *q, const char *msg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufcp_init
      Src: /src/curl/tests/unit/unit2601.c:93,1
    - Dst: Curl_bufq_initp
      Src: /src/curl/tests/unit/unit2601.c:94,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/tests/unit/unit2601.c:97,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:100,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:101,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:102,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:103,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:104,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:105,1
    - Dst: Curl_bufq_len
      Src: /src/curl/tests/unit/unit2601.c:105,1
    - Dst: Curl_bufq_write
      Src: /src/curl/tests/unit/unit2601.c:107,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:108,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:109,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/tests/unit/unit2601.c:113,1
    - Dst: Curl_bufq_is_full
      Src: /src/curl/tests/unit/unit2601.c:114,1
    - Dst: Curl_bufq_write
      Src: /src/curl/tests/unit/unit2601.c:115,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:120,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:125,1
    - Dst: dump_bufq
      Src: /src/curl/tests/unit/unit2601.c:127,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2601.c:128,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/tests/unit/unit2601.c:133,1
    - Dst: Curl_bufq_read
      Src: /src/curl/tests/unit/unit2601.c:134,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:139,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:144,1
    - Dst: dump_bufq
      Src: /src/curl/tests/unit/unit2601.c:146,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2601.c:147,1
    - Dst: dump_bufq
      Src: /src/curl/tests/unit/unit2601.c:150,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2601.c:151,1
    - Dst: Curl_bufq_write
      Src: /src/curl/tests/unit/unit2601.c:155,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:157,1
    - Dst: Curl_bufq_read
      Src: /src/curl/tests/unit/unit2601.c:160,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:162,1
    - Dst: Curl_bufq_free
      Src: /src/curl/tests/unit/unit2601.c:168,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/tests/unit/unit2601.c:169,1
    - Dst: Curl_bufq_is_full
      Src: /src/curl/tests/unit/unit2601.c:171,1
    - Dst: Curl_bufq_write
      Src: /src/curl/tests/unit/unit2601.c:172,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:174,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2601.c:180,1
    - Dst: dump_bufq
      Src: /src/curl/tests/unit/unit2601.c:182,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit2601.c:183,1
    - Dst: Curl_bufq_write
      Src: /src/curl/tests/unit/unit2601.c:186,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:187,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/tests/unit/unit2601.c:191,1
    - Dst: Curl_bufq_read
      Src: /src/curl/tests/unit/unit2601.c:192,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:194,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:199,1
    - Dst: dump_bufq
      Src: /src/curl/tests/unit/unit2601.c:201,1
    - Dst: Curl_bufq_free
      Src: /src/curl/tests/unit/unit2601.c:202,1
    - Dst: Curl_bufcp_free
      Src: /src/curl/tests/unit/unit2601.c:204,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 98
    argCount: 6
    argNames:
    - pool_spares
    - chunk_size
    - max_chunks
    - wsize
    - rsize
    - opts
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 205
    functionName: check_bufq
    functionSourceFile: /src/curl/tests/unit/unit2601.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - Curl_bufq_reset
    - curl_mfprintf
    - Curl_bufcp_free
    - Curl_bufq_initp
    - fail_if
    - Curl_bufq_is_full
    - fail_unless
    - Curl_bufq_write
    - dump_bufq
    - Curl_bufq_free
    - Curl_bufq_is_empty
    - Curl_bufq_read
    - Curl_bufcp_init
    - Curl_bufq_init2
    linkageType: ''
    returnType: void
    signature: "void check_bufq(size_t pool_spares,\n                       size_t
      chunk_size, size_t max_chunks,\n                       size_t wsize, size_t
      rsize, int opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init
      Src: /src/curl/tests/unit/unit2601.c:216,1
    - Dst: Curl_bufq_read
      Src: /src/curl/tests/unit/unit2601.c:217,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2601.c:218,1
    - Dst: Curl_bufq_free
      Src: /src/curl/tests/unit/unit2601.c:219,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:221,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:222,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:223,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:224,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:226,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:227,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:229,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:230,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:231,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:232,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:234,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:235,1
    - Dst: check_bufq
      Src: /src/curl/tests/unit/unit2601.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 239
    functionName: test_unit2601
    functionSourceFile: /src/curl/tests/unit/unit2601.c
    functionUses: 0
    functionsReached:
    - check_bufq
    - fail_unless
    - Curl_bufq_init
    - Curl_bufq_read
    - Curl_bufq_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit2601(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1602.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: t1602_mydtor
    functionSourceFile: /src/curl/tests/unit/unit1602.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void t1602_mydtor(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_init
      Src: /src/curl/tests/unit/unit1602.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - struct Curl_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: t1602_setup
    functionSourceFile: /src/curl/tests/unit/unit1602.c
    functionUses: 0
    functionsReached:
    - Curl_hash_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1602_setup(struct Curl_hash *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_destroy
      Src: /src/curl/tests/unit/unit1602.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - struct Curl_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: t1602_stop
    functionSourceFile: /src/curl/tests/unit/unit1602.c
    functionUses: 0
    functionsReached:
    - Curl_hash_destroy
    linkageType: ''
    returnType: void
    signature: void t1602_stop(struct Curl_hash *hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1602.c:49,1
    - Dst: t1602_setup
      Src: /src/curl/tests/unit/unit1602.c:49,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/unit/unit1602.c:59,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1602.c:60,1
    - Dst: Curl_hash_add
      Src: /src/curl/tests/unit/unit1602.c:62,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1602.c:64,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1602.c:65,1
    - Dst: Curl_hash_clean
      Src: /src/curl/tests/unit/unit1602.c:66,1
    - Dst: curlx_malloc
      Src: /src/curl/tests/unit/unit1602.c:69,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1602.c:70,1
    - Dst: Curl_hash_add
      Src: /src/curl/tests/unit/unit1602.c:72,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1602.c:74,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1602.c:75,1
    - Dst: UNITTEST_END
      Src: /src/curl/tests/unit/unit1602.c:77,1
    - Dst: t1602_stop
      Src: /src/curl/tests/unit/unit1602.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 78
    functionName: test_unit1602
    functionSourceFile: /src/curl/tests/unit/unit1602.c
    functionUses: 0
    functionsReached:
    - Curl_hash_add
    - UNITTEST_END
    - curlx_malloc
    - curlx_free
    - t1602_stop
    - abort_unless
    - t1602_setup
    - Curl_hash_clean
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1602(const char *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/tests/unit/unit1667.c:47,1
    - Dst: ASN1tostr
      Src: /src/curl/tests/unit/unit1667.c:57,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1667.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1667.c:62,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1667.c:71,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1667.c:71,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1667.c:72,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1667.c:73,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1667.c:76,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1667.c:79,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1667.c:79,1
    - Dst: curlx_dyn_uptr
      Src: /src/curl/tests/unit/unit1667.c:81,1
    - Dst: curlx_dyn_len
      Src: /src/curl/tests/unit/unit1667.c:82,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1667.c:83,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1667.c:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - spec
    - i
    - dbuf
    argTypes:
    - struct test_1667*
    - size_t
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 95
    functionName: test1667
    functionSourceFile: /src/curl/tests/unit/unit1667.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - ASN1tostr
    - curlx_dyn_len
    - curlx_dyn_uptr
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - strcmp
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool test1667(const struct test_1667 *spec, size_t i,\n                     struct
      dynbuf *dbuf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1667.c:304,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1667.c:305,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit1667.c:312,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1667.c:314,1
    - Dst: test1667
      Src: /src/curl/tests/unit/unit1667.c:315,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1667.c:318,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit1667.c:320,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1667.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 324
    functionName: test_unit1667
    functionSourceFile: /src/curl/tests/unit/unit1667.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - test1667
    - curlx_dyn_free
    - fail_unless
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1667(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: test_unit1667
    functionSourceFile: /src/curl/tests/unit/unit1667.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1667(const char *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit3205.c:512,1
    - Dst: Curl_cipher_suite_lookup_id
      Src: /src/curl/tests/unit/unit3205.c:521,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit3205.c:521,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3205.c:523,1
    - Dst: Curl_cipher_suite_lookup_id
      Src: /src/curl/tests/unit/unit3205.c:532,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit3205.c:532,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3205.c:534,1
    - Dst: Curl_cipher_suite_get_str
      Src: /src/curl/tests/unit/unit3205.c:545,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3205.c:547,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3205.c:548,1
    - Dst: Curl_cipher_suite_get_str
      Src: /src/curl/tests/unit/unit3205.c:558,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit3205.c:562,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/unit/unit3205.c:563,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit3205.c:563,1
    - Dst: memcpy
      Src: /src/curl/tests/unit/unit3205.c:564,1
    - Dst: memcmp
      Src: /src/curl/tests/unit/unit3205.c:566,1
    - Dst: curlx_strcopy
      Src: /src/curl/tests/unit/unit3205.c:567,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit3205.c:567,1
    - Dst: memcpy
      Src: /src/curl/tests/unit/unit3205.c:568,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3205.c:572,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3205.c:573,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit3205.c:589,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit3205.c:589,1
    - Dst: Curl_cipher_suite_walk_str
      Src: /src/curl/tests/unit/unit3205.c:591,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3205.c:595,1
    - Dst: strncmp
      Src: /src/curl/tests/unit/unit3205.c:601,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3205.c:602,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 614
    functionName: test_unit3205
    functionSourceFile: /src/curl/tests/unit/unit3205.c
    functionUses: 0
    functionsReached:
    - Curl_cipher_suite_lookup_id
    - curl_mfprintf
    - memcpy
    - CURL_ARRAYSIZE
    - abort_if
    - memcmp
    - curlx_strcopy
    - strcmp
    - strlen
    - strncmp
    - Curl_cipher_suite_get_str
    - Curl_cipher_suite_walk_str
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3205(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/unit/unit1652.c:49,1
    - Dst: memcpy
      Src: /src/curl/tests/unit/unit1652.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - handle
    - type
    - buf
    - size
    - userptr
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: debugf_cb
    functionSourceFile: /src/curl/tests/unit/unit1652.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: int
    signature: "int debugf_cb(CURL *handle, curl_infotype type, char *buf, size_t
      size,\n                     void *userptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1652.c:58,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1652.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1652.c:61,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit1652.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit1652.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: t1652_setup
    functionSourceFile: /src/curl/tests/unit/unit1652.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - curl_easy_init
    - curl_global_cleanup
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1652_setup(struct Curl_easy **easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1652.c:71,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1652.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: t1652_stop
    functionSourceFile: /src/curl/tests/unit/unit1652.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void t1652_stop(struct Curl_easy *easy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/tests/unit/unit1652.c:78,1
    - Dst: strncmp
      Src: /src/curl/tests/unit/unit1652.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - info
    - two
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: verify
    functionSourceFile: /src/curl/tests/unit/unit1652.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strchr
    linkageType: ''
    returnType: int
    signature: int verify(const char *info, const char *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1652.c:88,1
    - Dst: t1652_setup
      Src: /src/curl/tests/unit/unit1652.c:88,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1652.c:100,1
    - Dst: Curl_infof
      Src: /src/curl/tests/unit/unit1652.c:101,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:102,1
    - Dst: verify
      Src: /src/curl/tests/unit/unit1652.c:102,1
    - Dst: Curl_infof
      Src: /src/curl/tests/unit/unit1652.c:105,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:106,1
    - Dst: verify
      Src: /src/curl/tests/unit/unit1652.c:106,1
    - Dst: Curl_infof
      Src: /src/curl/tests/unit/unit1652.c:110,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:111,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1652.c:111,1
    - Dst: Curl_infof
      Src: /src/curl/tests/unit/unit1652.c:112,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:113,1
    - Dst: verify
      Src: /src/curl/tests/unit/unit1652.c:113,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1652.c:123,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1652.c:124,1
    - Dst: Curl_infof
      Src: /src/curl/tests/unit/unit1652.c:125,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1652.c:126,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1652.c:126,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:128,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1652.c:128,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:129,1
    - Dst: verify
      Src: /src/curl/tests/unit/unit1652.c:129,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:130,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1652.c:134,1
    - Dst: Curl_infof
      Src: /src/curl/tests/unit/unit1652.c:135,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1652.c:136,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1652.c:136,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:137,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1652.c:137,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:138,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1652.c:142,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1652.c:143,1
    - Dst: Curl_infof
      Src: /src/curl/tests/unit/unit1652.c:144,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1652.c:145,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1652.c:145,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:146,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1652.c:146,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:147,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1652.c:151,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit1652.c:152,1
    - Dst: Curl_infof
      Src: /src/curl/tests/unit/unit1652.c:153,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1652.c:154,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1652.c:154,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:155,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1652.c:155,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1652.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 164
    functionName: test_unit1652
    functionSourceFile: /src/curl/tests/unit/unit1652.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - verify
    - curl_mfprintf
    - Curl_infof
    - fail_unless
    - UNITTEST_BEGIN
    - memset
    - strlen
    - t1652_setup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1652(const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit1675.c:109,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1675.c:110,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/tests/unit/unit1675.c:112,1
    - Dst: curlx_dyn_add
      Src: /src/curl/tests/unit/unit1675.c:113,1
    - Dst: ipv4_normalize
      Src: /src/curl/tests/unit/unit1675.c:116,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1675.c:119,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1675.c:119,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1675.c:120,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1675.c:122,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1675.c:127,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1675.c:129,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit1675.c:133,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1675.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 135
    functionName: test_unit1675
    functionSourceFile: /src/curl/tests/unit/unit1675.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_mfprintf
    - curlx_dyn_add
    - CURL_ARRAYSIZE
    - abort_if
    - curlx_dyn_free
    - curlx_dyn_reset
    - strcmp
    - curlx_dyn_ptr
    - ipv4_normalize
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1675(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: OID
    functionSourceFile: /src/curl/tests/unit/unit1666.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OID(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/tests/unit/unit1666.c:48,1
    - Dst: encodeOID
      Src: /src/curl/tests/unit/unit1666.c:49,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1666.c:51,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1666.c:54,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1666.c:59,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1666.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1666.c:60,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/tests/unit/unit1666.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - spec
    - i
    - dbuf
    argTypes:
    - struct test_1666*
    - size_t
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 67
    functionName: test1666
    functionSourceFile: /src/curl/tests/unit/unit1666.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - encodeOID
    - curlx_dyn_reset
    - strcmp
    - curlx_dyn_ptr
    linkageType: ''
    returnType: bool
    signature: "bool test1666(const struct test_1666 *spec, size_t i,\n                     struct
      dynbuf *dbuf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:76,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:77,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:78,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:79,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:80,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:81,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:82,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:84,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:85,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:86,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:87,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:88,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:89,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:91,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:93,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:94,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:95,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:96,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:97,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:98,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:99,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:100,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:101,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:102,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:103,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:104,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:105,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:106,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:107,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:108,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:109,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:110,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:111,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:112,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:113,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:114,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:115,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:116,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:117,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:118,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:119,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:120,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:121,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:122,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:123,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:124,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:125,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:126,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:127,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:128,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:129,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:130,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:135,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:138,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:141,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:144,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:150,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:156,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:157,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:158,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:159,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:160,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:161,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:162,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:163,1
    - Dst: OID
      Src: /src/curl/tests/unit/unit1666.c:164,1
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1666.c:171,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1666.c:172,1
    - Dst: curlx_dyn_init
      Src: /src/curl/tests/unit/unit1666.c:179,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1666.c:181,1
    - Dst: test1666
      Src: /src/curl/tests/unit/unit1666.c:182,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1666.c:185,1
    - Dst: curlx_dyn_free
      Src: /src/curl/tests/unit/unit1666.c:187,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1666.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 191
    functionName: test_unit1666
    functionSourceFile: /src/curl/tests/unit/unit1666.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_mfprintf
    - OID
    - CURL_ARRAYSIZE
    - curlx_dyn_free
    - fail_unless
    - test1666
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1666(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: test_unit1666
    functionSourceFile: /src/curl/tests/unit/unit1666.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1666(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cidr4_match
      Src: /src/curl/tests/unit/unit1614.c:159,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1614.c:161,1
    - Dst: cidr6_match
      Src: /src/curl/tests/unit/unit1614.c:169,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1614.c:171,1
    - Dst: Curl_check_noproxy
      Src: /src/curl/tests/unit/unit1614.c:179,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1614.c:181,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1614.c:187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 191
    functionName: test_unit1614
    functionSourceFile: /src/curl/tests/unit/unit1614.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - cidr6_match
    - Curl_check_noproxy
    - fail_if
    - cidr4_match
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1614(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/unit/unit3300.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - total
    - delay_ms
    argTypes:
    - struct unit3300_ctx*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: unit3300_ctx_init
    functionSourceFile: /src/curl/tests/unit/unit3300.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void unit3300_ctx_init(struct unit3300_ctx *ctx,\n                              uint32_t
      total,\n                              uint32_t delay_ms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - user_data
    - pdescription
    - ptimeout_ms
    argTypes:
    - void*
    - char**
    - timediff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: unit3300_take
    functionSourceFile: /src/curl/tests/unit/unit3300.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void *unit3300_take(void *user_data, const char **pdescription,\n
      \                          timediff_t *ptimeout_ms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:64,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/unit/unit3300.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: unit3300_process
    functionSourceFile: /src/curl/tests/unit/unit3300.c
    functionUses: 0
    functionsReached:
    - fail_unless
    - curlx_wait_ms
    linkageType: ''
    returnType: void
    signature: void unit3300_process(void *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - item
    - user_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: unit3300_return
    functionSourceFile: /src/curl/tests/unit/unit3300.c
    functionUses: 0
    functionsReached:
    - fail_unless
    linkageType: ''
    returnType: void
    signature: void unit3300_return(void *item, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit3300_ctx_init
      Src: /src/curl/tests/unit/unit3300.c:88,1
    - Dst: Curl_thrdpool_create
      Src: /src/curl/tests/unit/unit3300.c:89,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:92,1
    - Dst: Curl_thrdpool_destroy
      Src: /src/curl/tests/unit/unit3300.c:93,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:94,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:95,1
    - Dst: unit3300_ctx_init
      Src: /src/curl/tests/unit/unit3300.c:98,1
    - Dst: Curl_thrdpool_create
      Src: /src/curl/tests/unit/unit3300.c:99,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:102,1
    - Dst: Curl_thrdpool_signal
      Src: /src/curl/tests/unit/unit3300.c:103,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:104,1
    - Dst: Curl_thrdpool_await_idle
      Src: /src/curl/tests/unit/unit3300.c:105,1
    - Dst: Curl_thrdpool_destroy
      Src: /src/curl/tests/unit/unit3300.c:106,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:107,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:108,1
    - Dst: unit3300_ctx_init
      Src: /src/curl/tests/unit/unit3300.c:111,1
    - Dst: Curl_thrdpool_create
      Src: /src/curl/tests/unit/unit3300.c:112,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:115,1
    - Dst: Curl_thrdpool_await_idle
      Src: /src/curl/tests/unit/unit3300.c:116,1
    - Dst: Curl_thrdpool_destroy
      Src: /src/curl/tests/unit/unit3300.c:117,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:118,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:119,1
    - Dst: unit3300_ctx_init
      Src: /src/curl/tests/unit/unit3300.c:122,1
    - Dst: Curl_thrdpool_create
      Src: /src/curl/tests/unit/unit3300.c:123,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:126,1
    - Dst: Curl_thrdpool_signal
      Src: /src/curl/tests/unit/unit3300.c:127,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:128,1
    - Dst: Curl_thrdpool_await_idle
      Src: /src/curl/tests/unit/unit3300.c:129,1
    - Dst: Curl_thrdpool_destroy
      Src: /src/curl/tests/unit/unit3300.c:130,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:131,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:132,1
    - Dst: unit3300_ctx_init
      Src: /src/curl/tests/unit/unit3300.c:135,1
    - Dst: Curl_thrdpool_create
      Src: /src/curl/tests/unit/unit3300.c:136,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:139,1
    - Dst: Curl_thrdpool_signal
      Src: /src/curl/tests/unit/unit3300.c:140,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:141,1
    - Dst: Curl_thrdpool_destroy
      Src: /src/curl/tests/unit/unit3300.c:142,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:143,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3300.c:144,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/unit/unit3300.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 154
    functionName: test_unit3300
    functionSourceFile: /src/curl/tests/unit/unit3300.c
    functionUses: 0
    functionsReached:
    - Curl_thrdpool_create
    - Curl_thrdpool_await_idle
    - unit3300_ctx_init
    - Curl_thrdpool_signal
    - fail_unless
    - curlx_wait_ms
    - Curl_thrdpool_destroy
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3300(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: test_unit3300
    functionSourceFile: /src/curl/tests/unit/unit3300.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3300(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/tests/unit/unit1674.c:35,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1674.c:40,1
    - Dst: curlx_fclose
      Src: /src/curl/tests/unit/unit1674.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: render_unit1674
    functionSourceFile: /src/curl/tests/unit/unit1674.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_mfprintf
    - curlx_fopen
    linkageType: ''
    returnType: void
    signature: void render_unit1674(const char *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hsts_init
      Src: /src/curl/tests/unit/unit1674.c:49,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1674.c:53,1
    - Dst: render_unit1674
      Src: /src/curl/tests/unit/unit1674.c:55,1
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1674.c:57,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1674.c:58,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/tests/unit/unit1674.c:60,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1674.c:61,1
    - Dst: Curl_hsts_loadfile
      Src: /src/curl/tests/unit/unit1674.c:64,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1674.c:66,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1674.c:67,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1674.c:69,1
    - Dst: Curl_llist_count
      Src: /src/curl/tests/unit/unit1674.c:69,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1674.c:71,1
    - Dst: Curl_hsts_save
      Src: /src/curl/tests/unit/unit1674.c:72,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/tests/unit/unit1674.c:73,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1674.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 77
    functionName: test_unit1674
    functionSourceFile: /src/curl/tests/unit/unit1674.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - curl_msnprintf
    - Curl_hsts_save
    - curl_easy_init
    - curl_mprintf
    - Curl_hsts_init
    - abort_unless
    - Curl_hsts_loadfile
    - curl_easy_cleanup
    - curl_global_init
    - render_unit1674
    - Curl_hsts_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1674(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: test_unit1674
    functionSourceFile: /src/curl/tests/unit/unit1674.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1674(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1395.c:147,1
    - Dst: dedotdotify
      Src: /src/curl/tests/unit/unit1395.c:149,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1395.c:149,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1395.c:150,1
    - Dst: abort_if
      Src: /src/curl/tests/unit/unit1395.c:151,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1395.c:153,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1395.c:154,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit1395.c:156,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1395.c:161,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit1395.c:164,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1395.c:168,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1395.c:169,1
    - Dst: fail_if
      Src: /src/curl/tests/unit/unit1395.c:172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 175
    functionName: test_unit1395
    functionSourceFile: /src/curl/tests/unit/unit1395.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - dedotdotify
    - CURL_ARRAYSIZE
    - fail_if
    - abort_if
    - strcmp
    - curlx_free
    - abort_unless
    - fail
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1395(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dnscache_init
      Src: /src/curl/tests/unit/unit1305.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: t1305_setup
    functionSourceFile: /src/curl/tests/unit/unit1305.c
    functionUses: 0
    functionsReached:
    - Curl_dnscache_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1305_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/tests/unit/unit1305.c:53,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1305.c:54,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1305.c:56,1
    - Dst: Curl_dnscache_destroy
      Src: /src/curl/tests/unit/unit1305.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: t1305_stop
    functionSourceFile: /src/curl/tests/unit/unit1305.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_dnscache_destroy
    - Curl_freeaddrinfo
    linkageType: ''
    returnType: void
    signature: void t1305_stop(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/tests/unit/unit1305.c:66,1
    - Dst: memcpy
      Src: /src/curl/tests/unit/unit1305.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: fake_ai
    functionSourceFile: /src/curl/tests/unit/unit1305.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    - memcpy
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: struct Curl_addrinfo *fake_ai(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/tests/unit/unit1305.c:85,1
    - Dst: curlx_calloc
      Src: /src/curl/tests/unit/unit1305.c:89,1
    - Dst: fake_ai
      Src: /src/curl/tests/unit/unit1305.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 98
    functionName: create_node
    functionSourceFile: /src/curl/tests/unit/unit1305.c
    functionUses: 0
    functionsReached:
    - fake_ai
    - curlx_calloc
    - curl_maprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode create_node(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_node
      Src: /src/curl/tests/unit/unit1305.c:109,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1305.c:110,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1305.c:111,1
    - Dst: Curl_hash_add
      Src: /src/curl/tests/unit/unit1305.c:114,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1305.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 121
    functionName: test_unit1305
    functionSourceFile: /src/curl/tests/unit/unit1305.c
    functionUses: 0
    functionsReached:
    - Curl_hash_add
    - create_node
    - strlen
    - abort_unless
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1305(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1620.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: t1620_setup
    functionSourceFile: /src/curl/tests/unit/unit1620.c
    functionUses: 0
    functionsReached:
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1620_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_parse_login_details
      Src: /src/curl/tests/unit/unit1620.c:43,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1620.c:43,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:45,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:47,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:48,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:49,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:52,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1620.c:53,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:55,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1620.c:56,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:58,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1620.c:59,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1620.c:63,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1620.c:64,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1620.c:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - input
    - exp_username
    - exp_password
    - exp_options
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 66
    functionName: t1620_parse
    functionSourceFile: /src/curl/tests/unit/unit1620.c
    functionUses: 0
    functionsReached:
    - fail_unless
    - strcmp
    - Curl_parse_login_details
    - curlx_free
    - strlen
    linkageType: ''
    returnType: void
    signature: "void t1620_parse(const char *input,\n                        const
      char *exp_username,\n                        const char *exp_password,\n                        const
      char *exp_options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_open
      Src: /src/curl/tests/unit/unit1620.c:78,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:81,1
    - Dst: Curl_connect
      Src: /src/curl/tests/unit/unit1620.c:83,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:84,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:87,1
    - Dst: Curl_connect
      Src: /src/curl/tests/unit/unit1620.c:91,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:92,1
    - Dst: Curl_init_do
      Src: /src/curl/tests/unit/unit1620.c:95,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:96,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit1620.c:98,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:99,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/tests/unit/unit1620.c:101,1
    - Dst: Curl_close
      Src: /src/curl/tests/unit/unit1620.c:103,1
    - Dst: abort_unless
      Src: /src/curl/tests/unit/unit1620.c:104,1
    - Dst: Curl_init_do
      Src: /src/curl/tests/unit/unit1620.c:106,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:107,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:108,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:109,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:112,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:113,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:114,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:115,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:117,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:118,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:119,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:120,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:121,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:122,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:123,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:124,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:125,1
    - Dst: t1620_parse
      Src: /src/curl/tests/unit/unit1620.c:126,1
    - Dst: Curl_freeset
      Src: /src/curl/tests/unit/unit1620.c:128,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:130,1
    - Dst: Curl_close
      Src: /src/curl/tests/unit/unit1620.c:133,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:134,1
    - Dst: Curl_close
      Src: /src/curl/tests/unit/unit1620.c:136,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1620.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 140
    functionName: test_unit1620
    functionSourceFile: /src/curl/tests/unit/unit1620.c
    functionUses: 0
    functionsReached:
    - t1620_parse
    - Curl_open
    - Curl_connect
    - curl_easy_duphandle
    - Curl_init_do
    - fail_unless
    - Curl_freeset
    - Curl_close
    - abort_unless
    - curl_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1620(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3213.c:35,1
    - Dst: Curl_uint32_spbset_init
      Src: /src/curl/tests/unit/unit3213.c:37,1
    - Dst: uint32_spbset_clear
      Src: /src/curl/tests/unit/unit3213.c:39,1
    - Dst: Curl_uint32_spbset_count
      Src: /src/curl/tests/unit/unit3213.c:40,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:41,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:44,1
    - Dst: Curl_uint32_spbset_add
      Src: /src/curl/tests/unit/unit3213.c:44,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:46,1
    - Dst: Curl_uint32_spbset_contains
      Src: /src/curl/tests/unit/unit3213.c:46,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:51,1
    - Dst: Curl_uint32_spbset_contains
      Src: /src/curl/tests/unit/unit3213.c:51,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:56,1
    - Dst: Curl_uint32_spbset_first
      Src: /src/curl/tests/unit/unit3213.c:56,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:57,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:59,1
    - Dst: Curl_uint32_spbset_next
      Src: /src/curl/tests/unit/unit3213.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3213.c:61,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:62,1
    - Dst: Curl_uint32_spbset_remove
      Src: /src/curl/tests/unit/unit3213.c:67,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:68,1
    - Dst: Curl_uint32_spbset_contains
      Src: /src/curl/tests/unit/unit3213.c:68,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:72,1
    - Dst: Curl_uint32_spbset_contains
      Src: /src/curl/tests/unit/unit3213.c:72,1
    - Dst: Curl_uint32_spbset_count
      Src: /src/curl/tests/unit/unit3213.c:75,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:76,1
    - Dst: uint32_spbset_clear
      Src: /src/curl/tests/unit/unit3213.c:78,1
    - Dst: Curl_uint32_spbset_count
      Src: /src/curl/tests/unit/unit3213.c:79,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:80,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:82,1
    - Dst: Curl_uint32_spbset_contains
      Src: /src/curl/tests/unit/unit3213.c:82,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3213.c:87,1
    - Dst: Curl_uint32_spbset_add
      Src: /src/curl/tests/unit/unit3213.c:87,1
    - Dst: Curl_uint32_spbset_destroy
      Src: /src/curl/tests/unit/unit3213.c:90,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - name
    - s
    - slen
    argTypes:
    - char*
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 91
    functionName: check_spbset
    functionSourceFile: /src/curl/tests/unit/unit3213.c
    functionUses: 0
    functionsReached:
    - uint32_spbset_clear
    - curl_mfprintf
    - Curl_uint32_spbset_destroy
    - Curl_uint32_spbset_first
    - Curl_uint32_spbset_remove
    - Curl_uint32_spbset_init
    - fail_unless
    - Curl_uint32_spbset_next
    - Curl_uint32_spbset_add
    - Curl_uint32_spbset_contains
    - Curl_uint32_spbset_count
    linkageType: ''
    returnType: void
    signature: void check_spbset(const char *name, const uint32_t *s, size_t slen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_spbset
      Src: /src/curl/tests/unit/unit3213.c:118,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit3213.c:118,1
    - Dst: check_spbset
      Src: /src/curl/tests/unit/unit3213.c:119,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit3213.c:119,1
    - Dst: check_spbset
      Src: /src/curl/tests/unit/unit3213.c:120,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit3213.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 123
    functionName: test_unit3213
    functionSourceFile: /src/curl/tests/unit/unit3213.c
    functionUses: 0
    functionsReached:
    - check_spbset
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3213(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/tests/unit/unit1658.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: t1658_setup
    functionSourceFile: /src/curl/tests/unit/unit1658.c
    functionUses: 0
    functionsReached:
    - curl_global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1658_setup(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:49,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:50,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:54,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:55,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:57,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:58,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:61,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:62,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:65,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:66,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:69,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:70,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:74,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:79,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:83,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:84,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:86,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:87,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:89,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:90,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:95,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:96,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:98,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:102,1
    - Dst: curl_msnprintf
      Src: /src/curl/tests/unit/unit1658.c:104,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1658.c:105,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 2
    argNames:
    - rr
    - result
    argTypes:
    - struct Curl_https_rrinfo*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 109
    functionName: rrresults
    functionSourceFile: /src/curl/tests/unit/unit1658.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void rrresults(struct Curl_https_rrinfo *rr, CURLcode result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1658.c:502,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit1658.c:504,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1658.c:508,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1658.c:511,1
    - Dst: doh_resp_decode_httpsrr
      Src: /src/curl/tests/unit/unit1658.c:513,1
    - Dst: rrresults
      Src: /src/curl/tests/unit/unit1658.c:516,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1658.c:519,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit1658.c:520,1
    - Dst: Curl_httpsrr_cleanup
      Src: /src/curl/tests/unit/unit1658.c:528,1
    - Dst: curl_free
      Src: /src/curl/tests/unit/unit1658.c:529,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1658.c:532,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 536
    functionName: test_unit1658
    functionSourceFile: /src/curl/tests/unit/unit1658.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - CURL_ARRAYSIZE
    - curl_easy_init
    - curl_mprintf
    - Curl_httpsrr_cleanup
    - strcmp
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_free
    - rrresults
    - doh_resp_decode_httpsrr
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1658(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: test_unit1658
    functionSourceFile: /src/curl/tests/unit/unit1658.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1658(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit1323.c:45,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/unit/unit1323.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1323.c:48,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit1323.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 61
    functionName: test_unit1323
    functionSourceFile: /src/curl/tests/unit/unit1323.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - fail
    - curlx_timediff_ms
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1323(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: struct
    functionSourceFile: /src/curl/tests/unit/unit1323.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UNITTEST_BEGIN_SIMPLE
    signature: UNITTEST_BEGIN_SIMPLE struct
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit3216.c:34,1
    - Dst: Curl_rlimit_init
      Src: /src/curl/tests/unit/unit3216.c:35,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:36,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:36,1
    - Dst: Curl_rlimit_drain
      Src: /src/curl/tests/unit/unit3216.c:37,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:38,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:38,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:39,1
    - Dst: Curl_rlimit_wait_ms
      Src: /src/curl/tests/unit/unit3216.c:39,1
    - Dst: Curl_rlimit_block
      Src: /src/curl/tests/unit/unit3216.c:41,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:42,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:42,1
    - Dst: Curl_rlimit_drain
      Src: /src/curl/tests/unit/unit3216.c:43,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:44,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:44,1
    - Dst: Curl_rlimit_block
      Src: /src/curl/tests/unit/unit3216.c:45,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:46,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:46,1
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit3216.c:50,1
    - Dst: Curl_rlimit_init
      Src: /src/curl/tests/unit/unit3216.c:51,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:52,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:52,1
    - Dst: Curl_rlimit_drain
      Src: /src/curl/tests/unit/unit3216.c:53,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:54,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:54,1
    - Dst: Curl_rlimit_drain
      Src: /src/curl/tests/unit/unit3216.c:55,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:56,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:56,1
    - Dst: Curl_rlimit_drain
      Src: /src/curl/tests/unit/unit3216.c:58,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:59,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:59,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:60,1
    - Dst: Curl_rlimit_wait_ms
      Src: /src/curl/tests/unit/unit3216.c:60,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:62,1
    - Dst: Curl_rlimit_wait_ms
      Src: /src/curl/tests/unit/unit3216.c:62,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:64,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:64,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:66,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:66,1
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit3216.c:68,1
    - Dst: Curl_rlimit_block
      Src: /src/curl/tests/unit/unit3216.c:69,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:70,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:70,1
    - Dst: Curl_rlimit_block
      Src: /src/curl/tests/unit/unit3216.c:71,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:72,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:72,1
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit3216.c:75,1
    - Dst: Curl_rlimit_init
      Src: /src/curl/tests/unit/unit3216.c:76,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:77,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:77,1
    - Dst: Curl_rlimit_drain
      Src: /src/curl/tests/unit/unit3216.c:78,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:79,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:79,1
    - Dst: Curl_rlimit_drain
      Src: /src/curl/tests/unit/unit3216.c:80,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:81,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:81,1
    - Dst: Curl_rlimit_drain
      Src: /src/curl/tests/unit/unit3216.c:82,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:83,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:83,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:85,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:85,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:87,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:87,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:89,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:89,1
    - Dst: Curl_rlimit_drain
      Src: /src/curl/tests/unit/unit3216.c:90,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:91,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:91,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:92,1
    - Dst: Curl_rlimit_wait_ms
      Src: /src/curl/tests/unit/unit3216.c:92,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:94,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:94,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:95,1
    - Dst: Curl_rlimit_wait_ms
      Src: /src/curl/tests/unit/unit3216.c:95,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:97,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:97,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:98,1
    - Dst: Curl_rlimit_wait_ms
      Src: /src/curl/tests/unit/unit3216.c:98,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3216.c:100,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/tests/unit/unit3216.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 103
    functionName: test_unit3216
    functionSourceFile: /src/curl/tests/unit/unit3216.c
    functionUses: 0
    functionsReached:
    - Curl_rlimit_wait_ms
    - Curl_rlimit_drain
    - Curl_rlimit_avail
    - curlx_now
    - fail_unless
    - Curl_rlimit_init
    - Curl_rlimit_block
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3216(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/curl/tests/unit/unit1636.c:44,1
    - Dst: time2str
      Src: /src/curl/tests/unit/unit1636.c:46,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1636.c:47,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1636.c:48,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1636.c:49,1
    - Dst: puts
      Src: /src/curl/tests/unit/unit1636.c:54,1
    - Dst: max6out
      Src: /src/curl/tests/unit/unit1636.c:56,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1636.c:57,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1636.c:58,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1636.c:59,1
    - Dst: max6out
      Src: /src/curl/tests/unit/unit1636.c:66,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1636.c:67,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1636.c:68,1
    - Dst: curl_mprintf
      Src: /src/curl/tests/unit/unit1636.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 74
    functionName: test_unit1636
    functionSourceFile: /src/curl/tests/unit/unit1636.c
    functionUses: 0
    functionsReached:
    - time2str
    - curl_mprintf
    - puts
    - strlen
    - max6out
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1636(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: test_unit1636
    functionSourceFile: /src/curl/tests/unit/unit1636.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1636(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit2600.c:56,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit2600.c:57,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit2600.c:59,1
    - Dst: curl_global_trace
      Src: /src/curl/tests/unit/unit2600.c:62,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit2600.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: t2600_setup
    functionSourceFile: /src/curl/tests/unit/unit2600.c
    functionUses: 0
    functionsReached:
    - curl_global_trace
    - curl_easy_init
    - curl_easy_setopt
    - global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t2600_setup(CURL **easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit2600.c:69,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit2600.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: t2600_stop
    functionSourceFile: /src/curl/tests/unit/unit2600.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void t2600_stop(CURL *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/tests/unit/unit2600.c:128,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/unit/unit2600.c:129,1
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit2600.c:129,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit2600.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: cf_test_destroy
    functionSourceFile: /src/curl/tests/unit/unit2600.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_now
    - curlx_timediff_ms
    - infof
    linkageType: ''
    returnType: void
    signature: void cf_test_destroy(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/unit/unit2600.c:144,1
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit2600.c:144,1
    - Dst: infof
      Src: /src/curl/tests/unit/unit2600.c:146,1
    - Dst: infof
      Src: /src/curl/tests/unit/unit2600.c:151,1
    - Dst: curlx_wait_ms
      Src: /src/curl/tests/unit/unit2600.c:152,1
    - Dst: Curl_expire
      Src: /src/curl/tests/unit/unit2600.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 156
    functionName: cf_test_connect
    functionSourceFile: /src/curl/tests/unit/unit2600.c
    functionUses: 0
    functionsReached:
    - curlx_now
    - infof
    - curlx_wait_ms
    - curlx_timediff_ms
    - Curl_expire
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_test_connect(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_set
      Src: /src/curl/tests/unit/unit2600.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: cf_test_adjust_pollset
    functionSourceFile: /src/curl/tests/unit/unit2600.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_test_adjust_pollset(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       struct easy_pollset
      *ps)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/tests/unit/unit2600.c:198,1
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit2600.c:207,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:215,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:223,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/unit/unit2600.c:227,1
    - Dst: infof
      Src: /src/curl/tests/unit/unit2600.c:231,1
    - Dst: Curl_cf_create
      Src: /src/curl/tests/unit/unit2600.c:234,1
    - Dst: Curl_expire
      Src: /src/curl/tests/unit/unit2600.c:238,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit2600.c:243,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit2600.c:244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 6
    argNames:
    - pcf
    - data
    - conn
    - addr
    - transport_in
    - transport_out
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_ex*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 247
    functionName: cf_test_create
    functionSourceFile: /src/curl/tests/unit/unit2600.c
    functionUses: 0
    functionsReached:
    - curl_msprintf
    - Curl_cf_create
    - curlx_now
    - infof
    - curlx_timediff_ms
    - curlx_free
    - Curl_expire
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_test_create(struct Curl_cfilter **pcf,\n                               struct
      Curl_easy *data,\n                               struct connectdata *conn,\n
      \                              struct Curl_sockaddr_ex *addr,\n                               uint8_t
      transport_in,\n                               uint8_t transport_out)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/unit/unit2600.c:254,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit2600.c:255,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:260,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2600.c:262,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:265,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2600.c:267,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:270,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2600.c:272,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/tests/unit/unit2600.c:275,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:277,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2600.c:279,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:282,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2600.c:284,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit2600.c:289,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit2600.c:291,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:295,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2600.c:298,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:301,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2600.c:305,1
    - Dst: curl_msprintf
      Src: /src/curl/tests/unit/unit2600.c:309,1
    - Dst: fail
      Src: /src/curl/tests/unit/unit2600.c:311,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - tc
    - tr
    argTypes:
    - struct test_case*
    - struct test_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 313
    functionName: check_result
    functionSourceFile: /src/curl/tests/unit/unit2600.c
    functionUses: 0
    functionsReached:
    - curl_msprintf
    - curl_mfprintf
    - curlx_timediff_ms
    - strcmp
    - fail
    linkageType: ''
    returnType: void
    signature: void check_result(const struct test_case *tc, struct test_result *tr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: debug_set_transport_provider
      Src: /src/curl/tests/unit/unit2600.c:320,1
    - Dst: curl_slist_append
      Src: /src/curl/tests/unit/unit2600.c:324,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit2600.c:325,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit2600.c:326,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit2600.c:327,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit2600.c:328,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit2600.c:330,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit2600.c:333,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit2600.c:334,1
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit2600.c:338,1
    - Dst: curl_easy_perform
      Src: /src/curl/tests/unit/unit2600.c:339,1
    - Dst: curlx_now
      Src: /src/curl/tests/unit/unit2600.c:340,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit2600.c:342,1
    - Dst: curl_slist_free_all
      Src: /src/curl/tests/unit/unit2600.c:343,1
    - Dst: check_result
      Src: /src/curl/tests/unit/unit2600.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - easy
    - tc
    argTypes:
    - CURL*
    - struct test_case*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 349
    functionName: test_connect
    functionSourceFile: /src/curl/tests/unit/unit2600.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curlx_now
    - debug_set_transport_provider
    - curl_slist_free_all
    - fail_unless
    - curl_slist_append
    - check_result
    - curl_easy_setopt
    - memset
    linkageType: ''
    returnType: void
    signature: void test_connect(CURL *easy, const struct test_case *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit2600.c:373,1
    - Dst: t2600_setup
      Src: /src/curl/tests/unit/unit2600.c:373,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit2600.c:428,1
    - Dst: test_connect
      Src: /src/curl/tests/unit/unit2600.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 433
    functionName: test_unit2600
    functionSourceFile: /src/curl/tests/unit/unit2600.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    - t2600_setup
    - test_connect
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit2600(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/tests/unit/unit3304.c:63,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit3304.c:67,1
    - Dst: memset
      Src: /src/curl/tests/unit/unit3304.c:71,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:81,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:81,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:83,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:83,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:85,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3304.c:85,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:87,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:88,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:92,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:92,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:95,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:95,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:97,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3304.c:97,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:99,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:100,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:104,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:104,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:107,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:107,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:109,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3304.c:109,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:111,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:112,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:116,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:116,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:119,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:119,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:121,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3304.c:121,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:123,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:124,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:128,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:128,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:131,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:131,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:133,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3304.c:133,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:135,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:136,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:141,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:141,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:144,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:144,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:146,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3304.c:146,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:148,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:149,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:154,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:154,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:157,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/tests/unit/unit3304.c:157,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3304.c:159,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit3304.c:159,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:161,1
    - Dst: curlx_safefree
      Src: /src/curl/tests/unit/unit3304.c:162,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 166
    functionName: test_unit3304
    functionSourceFile: /src/curl/tests/unit/unit3304.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_ssl_peer_key_build
    - fail_unless
    - strcmp
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3304(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3211.c:36,1
    - Dst: Curl_uint32_bset_init
      Src: /src/curl/tests/unit/unit3211.c:38,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:39,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/tests/unit/unit3211.c:39,1
    - Dst: uint32_bset_capacity
      Src: /src/curl/tests/unit/unit3211.c:40,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:41,1
    - Dst: Curl_uint32_bset_clear
      Src: /src/curl/tests/unit/unit3211.c:43,1
    - Dst: Curl_uint32_bset_count
      Src: /src/curl/tests/unit/unit3211.c:44,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:45,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:48,1
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/tests/unit/unit3211.c:48,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:50,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/tests/unit/unit3211.c:50,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:55,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/tests/unit/unit3211.c:55,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:60,1
    - Dst: Curl_uint32_bset_first
      Src: /src/curl/tests/unit/unit3211.c:60,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:61,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:63,1
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/tests/unit/unit3211.c:63,1
    - Dst: curl_mfprintf
      Src: /src/curl/tests/unit/unit3211.c:65,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:66,1
    - Dst: uint32_bset_capacity
      Src: /src/curl/tests/unit/unit3211.c:71,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:72,1
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/tests/unit/unit3211.c:72,1
    - Dst: Curl_uint32_bset_count
      Src: /src/curl/tests/unit/unit3211.c:74,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:75,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/tests/unit/unit3211.c:78,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:79,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/tests/unit/unit3211.c:79,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:82,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/tests/unit/unit3211.c:82,1
    - Dst: Curl_uint32_bset_count
      Src: /src/curl/tests/unit/unit3211.c:85,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:86,1
    - Dst: Curl_uint32_bset_clear
      Src: /src/curl/tests/unit/unit3211.c:88,1
    - Dst: Curl_uint32_bset_count
      Src: /src/curl/tests/unit/unit3211.c:89,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:90,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:92,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/tests/unit/unit3211.c:92,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:96,1
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/tests/unit/unit3211.c:96,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:99,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/tests/unit/unit3211.c:99,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:102,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/tests/unit/unit3211.c:102,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:105,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/tests/unit/unit3211.c:105,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:107,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/tests/unit/unit3211.c:107,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:109,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/tests/unit/unit3211.c:109,1
    - Dst: uint32_bset_capacity
      Src: /src/curl/tests/unit/unit3211.c:112,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:118,1
    - Dst: Curl_uint32_bset_count
      Src: /src/curl/tests/unit/unit3211.c:118,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit3211.c:120,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/tests/unit/unit3211.c:120,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/tests/unit/unit3211.c:122,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 4
    argNames:
    - name
    - capacity
    - s
    - slen
    argTypes:
    - char*
    - uint32_t
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 123
    functionName: check_set
    functionSourceFile: /src/curl/tests/unit/unit3211.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - Curl_uint32_bset_count
    - Curl_uint32_bset_next
    - Curl_uint32_bset_resize
    - Curl_uint32_bset_init
    - uint32_bset_capacity
    - Curl_uint32_bset_first
    - fail_unless
    - Curl_uint32_bset_destroy
    - Curl_uint32_bset_clear
    - Curl_uint32_bset_add
    - Curl_uint32_bset_contains
    - Curl_uint32_bset_remove
    linkageType: ''
    returnType: void
    signature: "void check_set(const char *name, uint32_t capacity,\n                      const
      uint32_t *s, size_t slen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_set
      Src: /src/curl/tests/unit/unit3211.c:145,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit3211.c:145,1
    - Dst: check_set
      Src: /src/curl/tests/unit/unit3211.c:146,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/tests/unit/unit3211.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: test_unit3211
    functionSourceFile: /src/curl/tests/unit/unit3211.c
    functionUses: 0
    functionsReached:
    - check_set
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit3211(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hmacit
      Src: /src/curl/tests/unit/unit1612.c:40,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1612.c:41,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1612.c:42,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1612.c:45,1
    - Dst: Curl_hmacit
      Src: /src/curl/tests/unit/unit1612.c:50,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1612.c:51,1
    - Dst: strlen
      Src: /src/curl/tests/unit/unit1612.c:52,1
    - Dst: verify_memory
      Src: /src/curl/tests/unit/unit1612.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 62
    functionName: test_unit1612
    functionSourceFile: /src/curl/tests/unit/unit1612.c
    functionUses: 0
    functionsReached:
    - verify_memory
    - strlen
    - Curl_hmacit
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1612(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1606.c:32,1
    - Dst: curl_easy_init
      Src: /src/curl/tests/unit/unit1606.c:33,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1606.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: t1606_setup
    functionSourceFile: /src/curl/tests/unit/unit1606.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - curl_global_cleanup
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1606_setup(struct Curl_easy **easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/curl/tests/unit/unit1606.c:43,1
    - Dst: curl_global_cleanup
      Src: /src/curl/tests/unit/unit1606.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: t1606_stop
    functionSourceFile: /src/curl/tests/unit/unit1606.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void t1606_stop(struct Curl_easy *easy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit1606.c:58,1
    - Dst: curl_easy_setopt
      Src: /src/curl/tests/unit/unit1606.c:59,1
    - Dst: Curl_pgrsReset
      Src: /src/curl/tests/unit/unit1606.c:60,1
    - Dst: pgrs_speedcheck
      Src: /src/curl/tests/unit/unit1606.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - easy
    - time_limit
    - speed_limit
    - speed
    - dec
    argTypes:
    - struct Curl_easy*
    - long
    - long
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 76
    functionName: runawhile
    functionSourceFile: /src/curl/tests/unit/unit1606.c
    functionUses: 0
    functionsReached:
    - pgrs_speedcheck
    - Curl_pgrsReset
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: "int runawhile(struct Curl_easy *easy,\n                     long time_limit,\n
      \                    long speed_limit,\n                     curl_off_t speed,\n
      \                    int dec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNITTEST_BEGIN
      Src: /src/curl/tests/unit/unit1606.c:82,1
    - Dst: t1606_setup
      Src: /src/curl/tests/unit/unit1606.c:82,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1606.c:84,1
    - Dst: runawhile
      Src: /src/curl/tests/unit/unit1606.c:84,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1606.c:85,1
    - Dst: runawhile
      Src: /src/curl/tests/unit/unit1606.c:85,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1606.c:86,1
    - Dst: runawhile
      Src: /src/curl/tests/unit/unit1606.c:86,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1606.c:87,1
    - Dst: runawhile
      Src: /src/curl/tests/unit/unit1606.c:87,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1606.c:88,1
    - Dst: runawhile
      Src: /src/curl/tests/unit/unit1606.c:88,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1606.c:89,1
    - Dst: runawhile
      Src: /src/curl/tests/unit/unit1606.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: test_unit1606
    functionSourceFile: /src/curl/tests/unit/unit1606.c
    functionUses: 0
    functionsReached:
    - t1606_setup
    - runawhile
    - fail_unless
    - UNITTEST_BEGIN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1606(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init
      Src: /src/curl/tests/unit/unit1663.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: t1663_setup
    functionSourceFile: /src/curl/tests/unit/unit1663.c
    functionUses: 0
    functionsReached:
    - global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode t1663_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_parse_interface
      Src: /src/curl/tests/unit/unit1663.c:51,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1663.c:52,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1663.c:54,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1663.c:55,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1663.c:56,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1663.c:59,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1663.c:59,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1663.c:61,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1663.c:61,1
    - Dst: fail_unless
      Src: /src/curl/tests/unit/unit1663.c:63,1
    - Dst: strcmp
      Src: /src/curl/tests/unit/unit1663.c:63,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1663.c:67,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1663.c:68,1
    - Dst: curlx_free
      Src: /src/curl/tests/unit/unit1663.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 5
    argNames:
    - input_data
    - exp_dev
    - exp_iface
    - exp_host
    - result_exp
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: t1663_parse
    functionSourceFile: /src/curl/tests/unit/unit1663.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - strcmp
    - fail_unless
    - Curl_parse_interface
    linkageType: ''
    returnType: void
    signature: "void t1663_parse(const char *input_data,\n                        const
      char *exp_dev,\n                        const char *exp_iface,\n                        const
      char *exp_host,\n                        CURLcode result_exp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:76,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:77,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:78,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:79,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:80,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:81,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:82,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:83,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:84,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:85,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:86,1
    - Dst: t1663_parse
      Src: /src/curl/tests/unit/unit1663.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: test_unit1663
    functionSourceFile: /src/curl/tests/unit/unit1663.c
    functionUses: 0
    functionsReached:
    - t1663_parse
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode test_unit1663(const char *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_CreateFile
      Src: /src/curl/src/tool_filetime.c:44,1
    - Dst: GetFileTime
      Src: /src/curl/src/tool_filetime.c:49,1
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:54,1
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:61,1
    - Dst: GetLastError
      Src: /src/curl/src/tool_filetime.c:62,1
    - Dst: CloseHandle
      Src: /src/curl/src/tool_filetime.c:64,1
    - Dst: GetLastError
      Src: /src/curl/src/tool_filetime.c:66,1
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:67,1
    - Dst: GetLastError
      Src: /src/curl/src/tool_filetime.c:68,1
    - Dst: curlx_stat
      Src: /src/curl/src/tool_filetime.c:72,1
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:78,1
    - Dst: curlx_strerror
      Src: /src/curl/src/tool_filetime.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - filename
    - stamp
    argTypes:
    - char*
    - curl_off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 83
    functionName: getfiletime
    functionSourceFile: /src/curl/src/tool_filetime.c
    functionUses: 0
    functionsReached:
    - GetFileTime
    - curlx_strerror
    - CloseHandle
    - curlx_stat
    - warnf
    - GetLastError
    - curlx_CreateFile
    linkageType: ''
    returnType: int
    signature: int getfiletime(const char *filename, curl_off_t *stamp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:98,1
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:104,1
    - Dst: curlx_CreateFile
      Src: /src/curl/src/tool_filetime.c:107,1
    - Dst: SetFileTime
      Src: /src/curl/src/tool_filetime.c:115,1
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:116,1
    - Dst: GetLastError
      Src: /src/curl/src/tool_filetime.c:118,1
    - Dst: CloseHandle
      Src: /src/curl/src/tool_filetime.c:120,1
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:123,1
    - Dst: GetLastError
      Src: /src/curl/src/tool_filetime.c:125,1
    - Dst: utimes
      Src: /src/curl/src/tool_filetime.c:132,1
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:134,1
    - Dst: curlx_strerror
      Src: /src/curl/src/tool_filetime.c:136,1
    - Dst: utime
      Src: /src/curl/src/tool_filetime.c:143,1
    - Dst: warnf
      Src: /src/curl/src/tool_filetime.c:145,1
    - Dst: curlx_strerror
      Src: /src/curl/src/tool_filetime.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - filetime
    - filename
    argTypes:
    - curl_off_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 150
    functionName: setfiletime
    functionSourceFile: /src/curl/src/tool_filetime.c
    functionUses: 0
    functionsReached:
    - utime
    - curlx_strerror
    - CloseHandle
    - warnf
    - GetLastError
    - curlx_CreateFile
    - utimes
    - SetFileTime
    linkageType: ''
    returnType: void
    signature: void setfiletime(curl_off_t filetime, const char *filename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_writeout.c:53,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_writeout.c:56,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_writeout.c:60,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:68,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:70,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - stream
    - wovar
    - per
    - per_result
    - use_json
    argTypes:
    - FILE*
    - struct writeoutvar*
    - struct per_transfer*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 79
    functionName: writeTime
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int writeTime(FILE *stream, const struct writeoutvar *wovar,\n                     struct
      per_transfer *per, CURLcode per_result,\n                     bool use_json)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/src/tool_writeout.c:84,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_writeout.c:92,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_writeout.c:146,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_writeout.c:150,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_writeout.c:155,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 3
    argNames:
    - per
    - vid
    - contentp
    argTypes:
    - struct per_transfer*
    - writeoutid
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 160
    functionName: urlpart
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_easy_getinfo
    - curl_url_cleanup
    - curl_url_get
    - curl_url
    linkageType: ''
    returnType: int
    signature: "int urlpart(struct per_transfer *per, writeoutid vid,\n                   const
      char **contentp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_writeout.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - per
    argTypes:
    - struct per_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: certinfo
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 2
    functionsReached:
    - curl_easy_getinfo
    linkageType: ''
    returnType: void
    signature: void certinfo(struct per_transfer *per)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_writeout.c:180,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_writeout.c:182,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_writeout.c:187,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_writeout.c:200,1
    - Dst: certinfo
      Src: /src/curl/src/tool_writeout.c:207,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_writeout.c:216,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/tool_writeout.c:217,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/tool_writeout.c:223,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_writeout.c:228,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_writeout.c:230,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout.c:233,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_writeout.c:242,1
    - Dst: curl_easy_strerror
      Src: /src/curl/src/tool_writeout.c:255,1
    - Dst: urlpart
      Src: /src/curl/src/tool_writeout.c:292,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_writeout.c:299,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_writeout.c:304,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:307,1
    - Dst: jsonWriteString
      Src: /src/curl/src/tool_writeout.c:308,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout.c:311,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:315,1
    - Dst: curl_free
      Src: /src/curl/src/tool_writeout.c:317,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/tool_writeout.c:317,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_writeout.c:319,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 121
    argCount: 5
    argNames:
    - stream
    - wovar
    - per
    - per_result
    - use_json
    argTypes:
    - FILE*
    - struct writeoutvar*
    - struct per_transfer*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 321
    functionName: writeString
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_easy_getinfo
    - curl_mfprintf
    - fputs
    - DEBUGASSERT
    - curlx_dyn_add
    - curlx_dyn_addn
    - urlpart
    - curlx_dyn_free
    - curlx_dyn_len
    - curl_easy_strerror
    - curl_strnequal
    - curlx_dyn_ptr
    - curl_free
    - CURL_UNCONST
    - certinfo
    - jsonWriteString
    linkageType: ''
    returnType: int
    signature: "int writeString(FILE *stream, const struct writeoutvar *wovar,\n                       struct
      per_transfer *per, CURLcode per_result,\n                       bool use_json)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_writeout.c:330,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_writeout.c:333,1
    - Dst: certinfo
      Src: /src/curl/src/tool_writeout.c:343,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_writeout.c:356,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:363,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:366,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:368,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:373,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 5
    argNames:
    - stream
    - wovar
    - per
    - per_result
    - use_json
    argTypes:
    - FILE*
    - struct writeoutvar*
    - struct per_transfer*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 377
    functionName: writeLong
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - certinfo
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int writeLong(FILE *stream, const struct writeoutvar *wovar,\n                     struct
      per_transfer *per, CURLcode per_result,\n                     bool use_json)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_writeout.c:388,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_writeout.c:391,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_writeout.c:403,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:409,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:411,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:415,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - stream
    - wovar
    - per
    - per_result
    - use_json
    argTypes:
    - FILE*
    - struct writeoutvar*
    - struct per_transfer*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 419
    functionName: writeOffset
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int writeOffset(FILE *stream, const struct writeoutvar *wovar,\n                       struct
      per_transfer *per, CURLcode per_result,\n                       bool use_json)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/src/tool_writeout.c:528,1
    - Dst: gettimeofday
      Src: /src/curl/src/tool_writeout.c:544,1
    - Dst: time
      Src: /src/curl/src/tool_writeout.c:546,1
    - Dst: getenv
      Src: /src/curl/src/tool_writeout.c:553,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_writeout.c:556,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_writeout.c:563,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/tool_writeout.c:572,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout.c:574,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout.c:576,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout.c:580,1
    - Dst: curlx_gmtime
      Src: /src/curl/src/tool_writeout.c:584,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_writeout.c:589,1
    - Dst: strftime
      Src: /src/curl/src/tool_writeout.c:590,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_writeout.c:590,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout.c:591,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_writeout.c:595,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout.c:600,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - ptr
    - stream
    argTypes:
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 602
    functionName: outtime
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - fputs
    - gettimeofday
    - curlx_dyn_addn
    - curlx_gmtime
    - getenv
    - strftime
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_str_number
    - time
    - curlx_dyn_ptr
    - strchr
    - curlx_dyn_addf
    linkageType: ''
    returnType: char
    signature: "char *outtime(const char *ptr, /* %time{ ... */\n                           FILE
      *stream)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:610,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:613,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:616,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:619,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:625,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:626,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:633,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - sep
    - seplen
    - stream
    argTypes:
    - char*
    - size_t
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 638
    functionName: separator
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - fputc
    linkageType: ''
    returnType: void
    signature: void separator(const char *sep, size_t seplen, FILE *stream)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/src/tool_writeout.c:646,1
    - Dst: strchr
      Src: /src/curl/src/tool_writeout.c:650,1
    - Dst: memchr
      Src: /src/curl/src/tool_writeout.c:659,1
    - Dst: strncmp
      Src: /src/curl/src/tool_writeout.c:662,1
    - Dst: memcpy
      Src: /src/curl/src/tool_writeout.c:669,1
    - Dst: curl_easy_header
      Src: /src/curl/src/tool_writeout.c:677,1
    - Dst: separator
      Src: /src/curl/src/tool_writeout.c:682,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout.c:683,1
    - Dst: curl_easy_header
      Src: /src/curl/src/tool_writeout.c:697,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout.c:699,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout.c:705,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - per
    - stream
    - pptr
    argTypes:
    - struct per_transfer*
    - FILE*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 707
    functionName: output_header
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - memcpy
    - curl_easy_header
    - fputs
    - memchr
    - strchr
    - strncmp
    - separator
    linkageType: ''
    returnType: void
    signature: "void output_header(struct per_transfer *per,\n                          FILE
      *stream,\n                          const char **pptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_writeout.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m1
    - m2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: matchvar
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int matchvar(const void *m1, const void *m2)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_writeout.c:730,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:735,1
    - Dst: strchr
      Src: /src/curl/src/tool_writeout.c:745,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout.c:748,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/tool_writeout.c:753,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout.c:754,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_writeout.c:755,1
    - Dst: bsearch
      Src: /src/curl/src/tool_writeout.c:756,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_writeout.c:757,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_writeout.c:771,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_writeout.c:777,1
    - Dst: ourWriteOutJSON
      Src: /src/curl/src/tool_writeout.c:782,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_writeout.c:783,1
    - Dst: headerJSON
      Src: /src/curl/src/tool_writeout.c:787,1
    - Dst: struct writeoutvar*::writefunc
      Src: /src/curl/src/tool_writeout.c:790,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout.c:795,1
    - Dst: strncmp
      Src: /src/curl/src/tool_writeout.c:801,1
    - Dst: output_header
      Src: /src/curl/src/tool_writeout.c:803,1
    - Dst: strncmp
      Src: /src/curl/src/tool_writeout.c:805,1
    - Dst: outtime
      Src: /src/curl/src/tool_writeout.c:806,1
    - Dst: strncmp
      Src: /src/curl/src/tool_writeout.c:808,1
    - Dst: strchr
      Src: /src/curl/src/tool_writeout.c:815,1
    - Dst: memcpy
      Src: /src/curl/src/tool_writeout.c:821,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_writeout.c:823,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_writeout.c:828,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout.c:836,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:840,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:841,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:849,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:852,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:855,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:859,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:860,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout.c:866,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_writeout.c:871,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_writeout.c:872,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 118
    argCount: 3
    argNames:
    - config
    - per
    - per_result
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 873
    functionName: ourWriteOut
    functionSourceFile: /src/curl/src/tool_writeout.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - curlx_dyn_ptr
    - outtime
    - strncmp
    - memcpy
    - curlx_dyn_addn
    - curlx_dyn_free
    - ourWriteOutJSON
    - headerJSON
    - bsearch
    - struct writeoutvar*::writefunc
    - output_header
    - curl_mfprintf
    - fputs
    - CURL_ARRAYSIZE
    - curlx_fopen
    - curlx_dyn_reset
    - strchr
    - fputc
    linkageType: ''
    returnType: void
    signature: "void ourWriteOut(struct OperationConfig *config, struct per_transfer
      *per,\n                 CURLcode per_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/curl/src/tool_util.c:33,1
    - Dst: GetSystemTime
      Src: /src/curl/src/tool_util.c:39,1
    - Dst: SystemTimeToFileTime
      Src: /src/curl/src/tool_util.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: tvrealnow
    functionSourceFile: /src/curl/src/tool_util.c
    functionUses: 0
    functionsReached:
    - GetSystemTime
    - SystemTimeToFileTime
    - UINT64_C
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval tvrealnow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/curl/src/tool_util.c:55,1
    - Dst: time
      Src: /src/curl/src/tool_util.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: tvrealnow
    functionSourceFile: /src/curl/src/tool_util.c
    functionUses: 0
    functionsReached:
    - time
    - gettimeofday
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval tvrealnow(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_STRICMP
      Src: /src/curl/src/tool_util.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: struplocompare
    functionSourceFile: /src/curl/src/tool_util.c
    functionUses: 0
    functionsReached:
    - CURL_STRICMP
    linkageType: ''
    returnType: int
    signature: int struplocompare(const char *p1, const char *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struplocompare
      Src: /src/curl/src/tool_util.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: struplocompare4sort
    functionSourceFile: /src/curl/src/tool_util.c
    functionUses: 0
    functionsReached:
    - struplocompare
    linkageType: ''
    returnType: int
    signature: int struplocompare4sort(const void *p1, const void *p2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/curl/src/tool_util.c:87,1
    - Dst: curl_lseek
      Src: /src/curl/src/tool_util.c:89,1
    - Dst: SetEndOfFile
      Src: /src/curl/src/tool_util.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - where
    argTypes:
    - int
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: toolx_ftruncate_win32
    functionSourceFile: /src/curl/src/tool_util.c
    functionUses: 0
    functionsReached:
    - SetEndOfFile
    - curl_lseek
    - _get_osfhandle
    linkageType: ''
    returnType: int
    signature: int toolx_ftruncate_win32(int fd, curl_off_t where)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ftruncate
      Src: /src/curl/src/tool_util.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - where
    argTypes:
    - int
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: toolx_ftruncate_djgpp
    functionSourceFile: /src/curl/src/tool_util.c
    functionUses: 0
    functionsReached:
    - ftruncate
    linkageType: ''
    returnType: int
    signature: int toolx_ftruncate_djgpp(int fd, curl_off_t where)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileNameA
      Src: /src/curl/src/tool_util.c:119,1
    - Dst: strrchr
      Src: /src/curl/src/tool_util.c:122,1
    - Dst: strlen
      Src: /src/curl/src/tool_util.c:127,1
    - Dst: strlen
      Src: /src/curl/src/tool_util.c:128,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_util.c:129,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_util.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - filename
    - pathp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 137
    functionName: tool_execpath
    functionSourceFile: /src/curl/src/tool_util.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - strrchr
    - curlx_fopen
    - GetModuleFileNameA
    - strlen
    linkageType: ''
    returnType: FILE
    signature: FILE *tool_execpath(const char *filename, char **pathp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/src/tool_cfgable.c:41,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_cfgable.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: config_alloc
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_calloc
    linkageType: ''
    returnType: struct OperationConfig
    signature: struct OperationConfig *config_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:65,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:66,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:67,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:68,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:69,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:70,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:71,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_cfgable.c:73,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:74,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:75,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:77,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:78,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:79,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:81,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:83,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:84,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:85,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:86,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:87,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:88,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:89,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:90,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:91,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:93,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:94,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:95,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:96,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:98,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:100,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:101,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:102,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:104,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:105,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:106,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:107,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:112,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:113,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:114,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:115,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:124,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:126,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:127,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:128,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:129,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:130,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:131,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:132,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:133,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:134,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:135,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:136,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:137,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:138,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:139,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:140,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:141,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:142,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:143,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:144,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:145,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:146,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:147,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:148,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:149,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:150,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:151,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:152,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:153,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:154,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:155,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:156,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:157,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:158,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:159,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:160,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:161,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:162,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:163,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:164,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:165,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:167,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:168,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:169,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:171,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:172,1
    - Dst: curl_mime_free
      Src: /src/curl/src/tool_cfgable.c:174,1
    - Dst: tool_mime_free
      Src: /src/curl/src/tool_cfgable.c:176,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:180,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:181,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cfgable.c:182,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:184,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:185,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:186,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:187,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:188,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:189,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:190,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:191,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:192,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 112
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 194
    functionName: free_config_fields
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - tool_mime_free
    - curl_mime_free
    - curlx_dyn_free
    - curl_slist_free_all
    linkageType: ''
    returnType: void
    signature: void free_config_fields(struct OperationConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_config_fields
      Src: /src/curl/src/tool_cfgable.c:204,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cfgable.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: config_free
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - free_config_fields
    linkageType: ''
    returnType: void
    signature: void config_free(struct OperationConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/src/tool_cfgable.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - wanted_nmemb
    - wanted_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: custom_calloc
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    linkageType: ''
    returnType: void
    signature: void *custom_calloc(size_t wanted_nmemb, size_t wanted_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_cfgable.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - wanted_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: custom_malloc
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    linkageType: ''
    returnType: void
    signature: void *custom_malloc(size_t wanted_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_cfgable.c:267,1
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_cfgable.c:269,1
    - Dst: memcpy
      Src: /src/curl/src/tool_cfgable.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: custom_strdup
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - strlen
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *custom_strdup(const char *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_realloc
      Src: /src/curl/src/tool_cfgable.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: custom_realloc
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curlx_realloc
    linkageType: ''
    returnType: void
    signature: void *custom_realloc(void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/src/tool_cfgable.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: custom_free
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void custom_free(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: config_alloc
      Src: /src/curl/src/tool_cfgable.c:325,1
    - Dst: curl_global_init_mem
      Src: /src/curl/src/tool_cfgable.c:329,1
    - Dst: curl_global_init
      Src: /src/curl/src/tool_cfgable.c:333,1
    - Dst: get_libcurl_info
      Src: /src/curl/src/tool_cfgable.c:337,1
    - Dst: errorf
      Src: /src/curl/src/tool_cfgable.c:340,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cfgable.c:341,1
    - Dst: errorf
      Src: /src/curl/src/tool_cfgable.c:345,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cfgable.c:346,1
    - Dst: errorf
      Src: /src/curl/src/tool_cfgable.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 355
    functionName: globalconf_init
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curl_global_init_mem
    - config_alloc
    - errorf
    - get_libcurl_info
    - curlx_free
    - curl_global_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode globalconf_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:359,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_cfgable.c:362,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:365,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cfgable.c:366,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cfgable.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: free_globalconfig
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_fclose
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void free_globalconfig(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_cleanup
      Src: /src/curl/src/tool_cfgable.c:380,1
    - Dst: free_globalconfig
      Src: /src/curl/src/tool_cfgable.c:381,1
    - Dst: config_free
      Src: /src/curl/src/tool_cfgable.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 387
    functionName: globalconf_free
    functionSourceFile: /src/curl/src/tool_cfgable.c
    functionUses: 0
    functionsReached:
    - config_free
    - curl_global_cleanup
    - free_globalconfig
    linkageType: ''
    returnType: void
    signature: void globalconf_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: $DESCRIPTOR
      Src: /src/curl/src/tool_getpass.c:68,1
    - Dst: sys$assign
      Src: /src/curl/src/tool_getpass.c:71,1
    - Dst: sys$qiow
      Src: /src/curl/src/tool_getpass.c:73,1
    - Dst: strlen
      Src: /src/curl/src/tool_getpass.c:76,1
    - Dst: sys$dassgn
      Src: /src/curl/src/tool_getpass.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - prompt
    - buffer
    - buflen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: getpass_r
    functionSourceFile: /src/curl/src/tool_getpass.c
    functionUses: 0
    functionsReached:
    - sys$qiow
    - sys$dassgn
    - sys$assign
    - $DESCRIPTOR
    - strlen
    linkageType: ''
    returnType: char
    signature: char *getpass_r(const char *prompt, char *buffer, size_t buflen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/curl/src/tool_getpass.c:92,1
    - Dst: _getch
      Src: /src/curl/src/tool_getpass.c:95,1
    - Dst: fputs
      Src: /src/curl/src/tool_getpass.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - prompt
    - buffer
    - buflen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: getpass_r
    functionSourceFile: /src/curl/src/tool_getpass.c
    functionUses: 0
    functionsReached:
    - _getch
    - fputs
    linkageType: ''
    returnType: char
    signature: char *getpass_r(const char *prompt, char *buffer, size_t buflen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcgetattr
      Src: /src/curl/src/tool_getpass.c:136,1
    - Dst: tcsetattr
      Src: /src/curl/src/tool_getpass.c:139,1
    - Dst: ioctl
      Src: /src/curl/src/tool_getpass.c:141,1
    - Dst: ioctl
      Src: /src/curl/src/tool_getpass.c:144,1
    - Dst: tcsetattr
      Src: /src/curl/src/tool_getpass.c:155,1
    - Dst: ioctl
      Src: /src/curl/src/tool_getpass.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - enable
    - fd
    argTypes:
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 162
    functionName: ttyecho
    functionSourceFile: /src/curl/src/tool_getpass.c
    functionUses: 0
    functionsReached:
    - tcsetattr
    - ioctl
    - tcgetattr
    linkageType: ''
    returnType: bool
    signature: bool ttyecho(bool enable, int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_open
      Src: /src/curl/src/tool_getpass.c:170,1
    - Dst: ttyecho
      Src: /src/curl/src/tool_getpass.c:174,1
    - Dst: fputs
      Src: /src/curl/src/tool_getpass.c:176,1
    - Dst: read
      Src: /src/curl/src/tool_getpass.c:177,1
    - Dst: fputs
      Src: /src/curl/src/tool_getpass.c:185,1
    - Dst: ttyecho
      Src: /src/curl/src/tool_getpass.c:186,1
    - Dst: curlx_close
      Src: /src/curl/src/tool_getpass.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - prompt
    - buffer
    - buflen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 193
    functionName: getpass_r
    functionSourceFile: /src/curl/src/tool_getpass.c
    functionUses: 0
    functionsReached:
    - curlx_close
    - read
    - fputs
    - ttyecho
    - curlx_open
    linkageType: ''
    returnType: char
    signature: "char *getpass_r(const char *prompt, /* prompt to display */\n                char
      *buffer,       /* buffer to store password in */\n                size_t buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: fwrite_xattr
    functionSourceFile: /src/curl/src/tool_xattr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fwrite_xattr(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: exit
    functionSourceFile: /src/curl/src/tool_vms.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exit(__code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - f
    - ','
    - e
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: VMS_STS
    functionSourceFile: /src/curl/src/tool_vms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMS_STS(c, f, e, s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_lseek
      Src: /src/curl/src/tool_cb_see.c:64,1
    - Dst: curl_lseek
      Src: /src/curl/src/tool_cb_see.c:70,1
    - Dst: curl_lseek
      Src: /src/curl/src/tool_cb_see.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - userdata
    - offset
    - whence
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 86
    functionName: tool_seek_cb
    functionSourceFile: /src/curl/src/tool_cb_see.c
    functionUses: 0
    functionsReached:
    - curl_lseek
    linkageType: ''
    returnType: int
    signature: int tool_seek_cb(void *userdata, curl_off_t offset, int whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: checkprefix
    functionSourceFile: /src/curl/src/tool_cfgable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: checkprefix(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: easysrc_init
    functionSourceFile: /src/curl/src/tool_easysrc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: easysrc_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: easysrc_perform
    functionSourceFile: /src/curl/src/tool_easysrc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: easysrc_perform()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/curl/src/tool_main.c:90,1
    - Dst: fcntl
      Src: /src/curl/src/tool_main.c:91,1
    - Dst: fcntl
      Src: /src/curl/src/tool_main.c:92,1
    - Dst: pipe
      Src: /src/curl/src/tool_main.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: main_checkfds
    functionSourceFile: /src/curl/src/tool_main.c
    functionUses: 0
    functionsReached:
    - pipe
    - fcntl
    linkageType: ''
    returnType: int
    signature: int main_checkfds(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: main_checkfds
    functionSourceFile: /src/curl/src/tool_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: main_checkfds()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_getenv
      Src: /src/curl/src/tool_main.c:106,1
    - Dst: curlx_strcopy
      Src: /src/curl/src/tool_main.c:110,1
    - Dst: strlen
      Src: /src/curl/src/tool_main.c:110,1
    - Dst: curl_free
      Src: /src/curl/src/tool_main.c:111,1
    - Dst: curl_dbg_memdebug
      Src: /src/curl/src/tool_main.c:112,1
    - Dst: curl_getenv
      Src: /src/curl/src/tool_main.c:118,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_main.c:122,1
    - Dst: curl_dbg_memlimit
      Src: /src/curl/src/tool_main.c:123,1
    - Dst: curl_free
      Src: /src/curl/src/tool_main.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 126
    functionName: memory_tracking_init
    functionSourceFile: /src/curl/src/tool_main.c
    functionUses: 1
    functionsReached:
    - curl_getenv
    - curlx_strcopy
    - curlx_str_number
    - curl_dbg_memdebug
    - curl_dbg_memlimit
    - curl_free
    - strlen
    linkageType: ''
    returnType: void
    signature: void memory_tracking_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: memory_tracking_init
    functionSourceFile: /src/curl/src/tool_main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memory_tracking_init()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tool_init_stderr
      Src: /src/curl/src/tool_main.c:148,1
    - Dst: _tcscmp
      Src: /src/curl/src/tool_main.c:153,1
    - Dst: _T
      Src: /src/curl/src/tool_main.c:153,1
    - Dst: GetLoadedModulePaths
      Src: /src/curl/src/tool_main.c:154,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_main.c:156,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_main.c:157,1
    - Dst: win32_init
      Src: /src/curl/src/tool_main.c:162,1
    - Dst: errorf
      Src: /src/curl/src/tool_main.c:164,1
    - Dst: main_checkfds
      Src: /src/curl/src/tool_main.c:169,1
    - Dst: errorf
      Src: /src/curl/src/tool_main.c:170,1
    - Dst: curl_getenv
      Src: /src/curl/src/tool_main.c:176,1
    - Dst: signal
      Src: /src/curl/src/tool_main.c:178,1
    - Dst: memory_tracking_init
      Src: /src/curl/src/tool_main.c:182,1
    - Dst: globalconf_init
      Src: /src/curl/src/tool_main.c:186,1
    - Dst: operate
      Src: /src/curl/src/tool_main.c:189,1
    - Dst: globalconf_free
      Src: /src/curl/src/tool_main.c:192,1
    - Dst: fflush
      Src: /src/curl/src/tool_main.c:197,1
    - Dst: vms_special_exit
      Src: /src/curl/src/tool_main.c:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 205
    functionName: main
    functionSourceFile: /src/curl/src/tool_main.c
    functionUses: 0
    functionsReached:
    - win32_init
    - memory_tracking_init
    - tool_init_stderr
    - main_checkfds
    - GetLoadedModulePaths
    - _T
    - _tcscmp
    - curl_mprintf
    - curl_slist_free_all
    - curl_getenv
    - vms_special_exit
    - errorf
    - signal
    - fflush
    - globalconf_init
    - globalconf_free
    - operate
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: toolx_mkdir
    functionSourceFile: /src/curl/src/tool_dirhie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toolx_mkdir(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: toolx_mkdir
    functionSourceFile: /src/curl/src/tool_dirhie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toolx_mkdir(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: toolx_mkdir
    functionSourceFile: /src/curl/src/tool_dirhie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toolx_mkdir(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: create_dir_hierarchy_trace_dynres
    functionSourceFile: /src/curl/src/tool_dirhie.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST *create_dir_hierarchy_trace_dynres(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_add
      Src: /src/curl/src/tool_dirhie.c:51,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/tool_dirhie.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: create_dir_hierarchy_trace_mkdir
    functionSourceFile: /src/curl/src/tool_dirhie.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_add
    linkageType: ''
    returnType: int
    signature: int create_dir_hierarchy_trace_mkdir(const char *dir)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: errorf
      Src: /src/curl/src/tool_dirhie.c:62,1
    - Dst: errorf
      Src: /src/curl/src/tool_dirhie.c:67,1
    - Dst: errorf
      Src: /src/curl/src/tool_dirhie.c:72,1
    - Dst: errorf
      Src: /src/curl/src/tool_dirhie.c:77,1
    - Dst: errorf
      Src: /src/curl/src/tool_dirhie.c:83,1
    - Dst: errorf
      Src: /src/curl/src/tool_dirhie.c:88,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: show_dir_errno
    functionSourceFile: /src/curl/src/tool_dirhie.c
    functionUses: 0
    functionsReached:
    - errorf
    linkageType: ''
    returnType: void
    signature: void show_dir_errno(const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_dirhie.c:110,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_dirhie.c:113,1
    - Dst: strspn
      Src: /src/curl/src/tool_dirhie.c:117,1
    - Dst: strcspn
      Src: /src/curl/src/tool_dirhie.c:118,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_dirhie.c:125,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_dirhie.c:136,1
    - Dst: toolx_mkdir
      Src: /src/curl/src/tool_dirhie.c:142,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_dirhie.c:142,1
    - Dst: show_dir_errno
      Src: /src/curl/src/tool_dirhie.c:144,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_dirhie.c:144,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_dirhie.c:151,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 1
    argNames:
    - outfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 154
    functionName: create_dir_hierarchy
    functionSourceFile: /src/curl/src/tool_dirhie.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - show_dir_errno
    - toolx_mkdir
    - curlx_dyn_free
    - curlx_dyn_len
    - strcspn
    - curlx_dyn_ptr
    - strspn
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode create_dir_hierarchy(const char *outfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toolx_localtime
      Src: /src/curl/src/tool_cb_dbg.c:42,1
    - Dst: memset
      Src: /src/curl/src/tool_cb_dbg.c:44,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_cb_dbg.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tv_sec
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: hms_for_sec
    functionSourceFile: /src/curl/src/tool_cb_dbg.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - toolx_localtime
    - memset
    linkageType: ''
    returnType: char
    signature: char *hms_for_sec(time_t tv_sec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_dbg.c:63,1
    - Dst: fputs
      Src: /src/curl/src/tool_cb_dbg.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 4
    argNames:
    - log
    - timebuf
    - idsbuf
    - type
    argTypes:
    - FILE*
    - char*
    - char*
    - curl_infotype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: log_line_start
    functionSourceFile: /src/curl/src/tool_cb_dbg.c
    functionUses: 1
    functionsReached:
    - curl_mfprintf
    - fputs
    linkageType: ''
    returnType: void
    signature: "void log_line_start(FILE *log, const char *timebuf,\n                           const
      char *idsbuf, curl_infotype type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_dbg.c:81,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_dbg.c:86,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_dbg.c:92,1
    - Dst: fputs
      Src: /src/curl/src/tool_cb_dbg.c:94,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_dbg.c:106,1
    - Dst: fputc
      Src: /src/curl/src/tool_cb_dbg.c:117,1
    - Dst: fflush
      Src: /src/curl/src/tool_cb_dbg.c:119,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 8
    argNames:
    - timebuf
    - idsbuf
    - text
    - stream
    - ptr
    - size
    - tracetype
    - infotype
    argTypes:
    - char*
    - char*
    - char*
    - FILE*
    - unsigned char*
    - size_t
    - trace
    - curl_infotype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 120
    functionName: dump
    functionSourceFile: /src/curl/src/tool_cb_dbg.c
    functionUses: 4
    functionsReached:
    - fflush
    - curl_mfprintf
    - fputs
    - fputc
    linkageType: ''
    returnType: void
    signature: "void dump(const char *timebuf, const char *idsbuf, const char *text,\n
      \                FILE *stream, const unsigned char *ptr, size_t size,\n                 trace
      tracetype, curl_infotype infotype)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: tvrealnow
      Src: /src/curl/src/tool_cb_dbg.c:148,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_cb_dbg.c:149,1
    - Dst: hms_for_sec
      Src: /src/curl/src/tool_cb_dbg.c:150,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_cb_dbg.c:156,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_cb_dbg.c:157,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_cb_dbg.c:159,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_cb_dbg.c:163,1
    - Dst: strcmp
      Src: /src/curl/src/tool_cb_dbg.c:171,1
    - Dst: strcmp
      Src: /src/curl/src/tool_cb_dbg.c:173,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_cb_dbg.c:177,1
    - Dst: warnf
      Src: /src/curl/src/tool_cb_dbg.c:186,1
    - Dst: log_line_start
      Src: /src/curl/src/tool_cb_dbg.c:202,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_dbg.c:204,1
    - Dst: log_line_start
      Src: /src/curl/src/tool_cb_dbg.c:210,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_dbg.c:211,1
    - Dst: log_line_start
      Src: /src/curl/src/tool_cb_dbg.c:219,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_dbg.c:220,1
    - Dst: log_line_start
      Src: /src/curl/src/tool_cb_dbg.c:235,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_dbg.c:236,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_dbg.c:253,1
    - Dst: FALLTHROUGH
      Src: /src/curl/src/tool_cb_dbg.c:254,1
    - Dst: dump
      Src: /src/curl/src/tool_cb_dbg.c:278,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 108
    argCount: 5
    argNames:
    - handle
    - type
    - data
    - size
    - userdata
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 281
    functionName: tool_debug_cb
    functionSourceFile: /src/curl/src/tool_cb_dbg.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_msnprintf
    - curl_mfprintf
    - log_line_start
    - tvrealnow
    - dump
    - hms_for_sec
    - curlx_fopen
    - fwrite
    - strcmp
    - warnf
    - FALLTHROUGH
    linkageType: ''
    returnType: int
    signature: "int tool_debug_cb(CURL *handle, curl_infotype type,\n                  char
      *data, size_t size,\n                  void *userdata)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_version_info
      Src: /src/curl/src/tool_libinfo.c:140,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_libinfo.c:152,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_libinfo.c:177,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 186
    functionName: get_libcurl_info
    functionSourceFile: /src/curl/src/tool_libinfo.c
    functionUses: 1
    functionsReached:
    - curl_strequal
    - curl_version_info
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode get_libcurl_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/src/tool_libinfo.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - proto
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 205
    functionName: proto_token
    functionSourceFile: /src/curl/src/tool_libinfo.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    linkageType: ''
    returnType: char
    signature: char *proto_token(const char *proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: my_setopt_long
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_long(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: my_setopt_offt
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_offt(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: my_setopt_ptr
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_ptr(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: my_setopt_str
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_str(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: my_setopt_mimepost
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_mimepost(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: my_setopt_slist
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_slist(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: my_setopt_SSLVERSION
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_SSLVERSION(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: my_setopt_enum
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_enum(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: my_setopt_bitmask
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_bitmask(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: MY_SETOPT_STR
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MY_SETOPT_STR(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: my_setopt_long
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_long(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: my_setopt_offt
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_offt(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: my_setopt_ptr
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_ptr(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: my_setopt_str
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_str(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: my_setopt_mimepost
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_mimepost(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: my_setopt_slist
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_slist(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: my_setopt_SSLVERSION
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_SSLVERSION(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: my_setopt_enum
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_enum(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: my_setopt_bitmask
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_setopt_bitmask(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: MY_SETOPT_STR
    functionSourceFile: /src/curl/src/tool_setopt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MY_SETOPT_STR(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: NV
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NV(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: NV1
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NV1(e, v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_setopt.c:187,1
    - Dst: strlen
      Src: /src/curl/src/tool_setopt.c:190,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_setopt.c:198,1
    - Dst: STRCONST
      Src: /src/curl/src/tool_setopt.c:198,1
    - Dst: strchr
      Src: /src/curl/src/tool_setopt.c:204,1
    - Dst: ISPRINT
      Src: /src/curl/src/tool_setopt.c:206,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_setopt.c:209,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_setopt.c:214,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/tool_setopt.c:216,1
    - Dst: ISXDIGIT
      Src: /src/curl/src/tool_setopt.c:218,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_setopt.c:226,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_setopt.c:229,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_setopt.c:231,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 232
    functionName: c_escape
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - STRCONST
    - curlx_dyn_addn
    - curlx_dyn_addf
    - ISXDIGIT
    - curlx_dyn_ptr
    - strchr
    - ISPRINT
    - strlen
    linkageType: ''
    returnType: char
    signature: char *c_escape(const char *str, curl_off_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_setopt.c:241,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:256,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:261,1
    - Dst: warnf
      Src: /src/curl/src/tool_setopt.c:267,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 5
    argNames:
    - curl
    - name
    - tag
    - nvlist
    - lval
    argTypes:
    - CURL*
    - char*
    - CURLoption
    - struct NameValue*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 270
    functionName: tool_setopt_enum
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - easysrc_addf
    - warnf
    - curl_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_setopt_enum(CURL *curl, const char *name, CURLoption
      tag,\n                          const struct NameValue *nvlist, long lval)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_setopt.c:279,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:299,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:305,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:310,1
    - Dst: warnf
      Src: /src/curl/src/tool_setopt.c:318,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 4
    argNames:
    - curl
    - name
    - tag
    - lval
    argTypes:
    - CURL*
    - char*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 321
    functionName: tool_setopt_SSLVERSION
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - easysrc_addf
    - warnf
    - curl_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_setopt_SSLVERSION(CURL *curl, const char *name, CURLoption
      tag,\n                                long lval)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_setopt.c:329,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_setopt.c:338,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:344,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_setopt.c:349,1
    - Dst: strlen
      Src: /src/curl/src/tool_setopt.c:350,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:357,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 5
    argNames:
    - curl
    - name
    - tag
    - nvlist
    - lval
    argTypes:
    - CURL*
    - char*
    - CURLoption
    - struct NameValueUnsigned*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 361
    functionName: tool_setopt_bitmask
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - easysrc_addf
    - curl_msnprintf
    - strlen
    - curl_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_setopt_bitmask(CURL *curl, const char *name, CURLoption
      tag,\n                             const struct NameValueUnsigned *nvlist,\n
      \                            long lval)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:371,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:374,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:376,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:379,1
    - Dst: c_escape
      Src: /src/curl/src/tool_setopt.c:383,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:386,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_setopt.c:389,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - slist
    - slistno
    argTypes:
    - struct curl_slist*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 393
    functionName: libcurl_generate_slist
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - easysrc_addf
    - c_escape
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode libcurl_generate_slist(struct curl_slist *slist, int *slistno)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: libcurl_generate_mime_part
      Src: /src/curl/src/tool_setopt.c:414,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:418,1
    - Dst: libcurl_generate_mime
      Src: /src/curl/src/tool_setopt.c:425,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:428,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:432,1
    - Dst: c_escape
      Src: /src/curl/src/tool_setopt.c:439,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:443,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_setopt.c:446,1
    - Dst: c_escape
      Src: /src/curl/src/tool_setopt.c:452,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:456,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:459,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_setopt.c:462,1
    - Dst: FALLTHROUGH
      Src: /src/curl/src/tool_setopt.c:468,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:471,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:474,1
    - Dst: c_escape
      Src: /src/curl/src/tool_setopt.c:483,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:486,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_setopt.c:488,1
    - Dst: c_escape
      Src: /src/curl/src/tool_setopt.c:492,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:495,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_setopt.c:497,1
    - Dst: c_escape
      Src: /src/curl/src/tool_setopt.c:501,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:504,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_setopt.c:506,1
    - Dst: c_escape
      Src: /src/curl/src/tool_setopt.c:510,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:513,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_setopt.c:515,1
    - Dst: libcurl_generate_slist
      Src: /src/curl/src/tool_setopt.c:521,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:523,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:527,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 86
    argCount: 4
    argNames:
    - curl
    - config
    - part
    - mimeno
    argTypes:
    - CURL*
    - struct OperationConfig*
    - struct tool_mime*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 532
    functionName: libcurl_generate_mime_part
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 1
    functionsReached:
    - libcurl_generate_mime
    - easysrc_addf
    - libcurl_generate_mime_part
    - curlx_free
    - c_escape
    - FALLTHROUGH
    - libcurl_generate_slist
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode libcurl_generate_mime_part(CURL *curl,\n                                           struct
      OperationConfig *config,\n                                           struct
      tool_mime *part,\n                                           int mimeno)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:544,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:546,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:548,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:551,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:553,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:556,1
    - Dst: libcurl_generate_mime_part
      Src: /src/curl/src/tool_setopt.c:558,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - curl
    - config
    - toolmime
    - mimeno
    argTypes:
    - CURL*
    - struct OperationConfig*
    - struct tool_mime*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 563
    functionName: libcurl_generate_mime
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 1
    functionsReached:
    - libcurl_generate_mime_part
    - easysrc_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode libcurl_generate_mime(CURL *curl,\n                                      struct
      OperationConfig *config,\n                                      struct tool_mime
      *toolmime,\n                                      int *mimeno)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_setopt.c:570,1
    - Dst: libcurl_generate_mime
      Src: /src/curl/src/tool_setopt.c:574,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - curl
    - config
    - name
    - tag
    - mimepost
    argTypes:
    - CURL*
    - struct OperationConfig*
    - char*
    - CURLoption
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 566
    functionDepth: 5
    functionLinenumber: 566
    functionLinenumberEnd: 583
    functionName: tool_setopt_mimepost
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - libcurl_generate_mime
    - easysrc_addf
    - curl_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_setopt_mimepost(CURL *curl, struct OperationConfig *config,\n
      \                             const char *name, CURLoption tag,\n                              curl_mime
      *mimepost)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_setopt.c:591,1
    - Dst: libcurl_generate_slist
      Src: /src/curl/src/tool_setopt.c:596,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - curl
    - name
    - tag
    - list
    argTypes:
    - CURL*
    - char*
    - CURLoption
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 604
    functionName: tool_setopt_slist
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - easysrc_addf
    - curl_easy_setopt
    - libcurl_generate_slist
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_setopt_slist(CURL *curl, const char *name, CURLoption
      tag,\n                           struct curl_slist *list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_setopt.c:613,1
    - Dst: strcmp
      Src: /src/curl/src/tool_setopt.c:616,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_setopt.c:622,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - curl
    - name
    - tag
    - lval
    argTypes:
    - CURL*
    - char*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 629
    functionName: tool_setopt_long
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - strcmp
    - curl_easy_setopt
    - DEBUGASSERT
    - easysrc_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_setopt_long(CURL *curl, const char *name, CURLoption
      tag,\n                          long lval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_setopt.c:636,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_setopt.c:638,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - curl
    - name
    - tag
    - lval
    argTypes:
    - CURL*
    - char*
    - CURLoption
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 647
    functionName: tool_setopt_offt
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - easysrc_addf
    - curl_easy_setopt
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_setopt_offt(CURL *curl, const char *name, CURLoption
      tag,\n                          curl_off_t lval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_setopt.c:656,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_setopt.c:657,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_setopt.c:659,1
    - Dst: va_start
      Src: /src/curl/src/tool_setopt.c:661,1
    - Dst: va_arg
      Src: /src/curl/src/tool_setopt.c:663,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_setopt.c:665,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:670,1
    - Dst: va_end
      Src: /src/curl/src/tool_setopt.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - curl
    - name
    - tag
    argTypes:
    - CURL*
    - char*
    - CURLoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 677
    functionName: tool_setopt_ptr
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - easysrc_addf
    - va_arg
    - DEBUGASSERT
    - va_start
    - va_end
    - curl_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tool_setopt_ptr(CURL *curl, const char *name, CURLoption tag,
      ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_setopt.c:686,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_setopt.c:687,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_setopt.c:688,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_setopt.c:689,1
    - Dst: va_start
      Src: /src/curl/src/tool_setopt.c:691,1
    - Dst: va_arg
      Src: /src/curl/src/tool_setopt.c:693,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_setopt.c:695,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_setopt.c:701,1
    - Dst: c_escape
      Src: /src/curl/src/tool_setopt.c:702,1
    - Dst: easysrc_addf
      Src: /src/curl/src/tool_setopt.c:704,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_setopt.c:707,1
    - Dst: va_end
      Src: /src/curl/src/tool_setopt.c:713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - curl
    - config
    - name
    - tag
    argTypes:
    - CURL*
    - struct OperationConfig*
    - char*
    - CURLoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 715
    functionName: tool_setopt_str
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached:
    - va_arg
    - easysrc_addf
    - DEBUGASSERT
    - va_start
    - curlx_dyn_len
    - va_end
    - curlx_free
    - curl_easy_setopt
    - c_escape
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_setopt_str(CURL *curl, struct OperationConfig *config,\n
      \                        const char *name, CURLoption tag, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 725
    functionName: setopt_bad
    functionSourceFile: /src/curl/src/tool_setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool setopt_bad(CURLcode result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/src/tool_paramhlp.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: new_getout
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    linkageType: ''
    returnType: struct getout
    signature: struct getout *new_getout(struct OperationConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: ISCRLF
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISCRLF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ISCRLF
      Src: /src/curl/src/tool_paramhlp.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - orig
    - countcrlf
    - max
    argTypes:
    - char*
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: memcrlf
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - ISCRLF
    linkageType: ''
    returnType: size_t
    signature: "size_t memcrlf(char *orig,\n                      bool countcrlf,
      /* TRUE if we count CRLF, FALSE\n                                         if
      we count non-CRLF */\n                      size_t max)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_paramhlp.c:89,1
    - Dst: fread
      Src: /src/curl/src/tool_paramhlp.c:94,1
    - Dst: ferror
      Src: /src/curl/src/tool_paramhlp.c:95,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_paramhlp.c:96,1
    - Dst: memcrlf
      Src: /src/curl/src/tool_paramhlp.c:102,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_paramhlp.c:103,1
    - Dst: memcrlf
      Src: /src/curl/src/tool_paramhlp.c:109,1
    - Dst: feof
      Src: /src/curl/src/tool_paramhlp.c:114,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_paramhlp.c:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - bufp
    - file
    argTypes:
    - char**
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 118
    functionName: file2string
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - ferror
    - curlx_dyn_addn
    - curlx_dyn_free
    - curlx_dyn_ptr
    - feof
    - memcrlf
    - fread
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError file2string(char **bufp, FILE *file)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fseek
      Src: /src/curl/src/tool_paramhlp.c:131,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_paramhlp.c:141,1
    - Dst: fread
      Src: /src/curl/src/tool_paramhlp.c:146,1
    - Dst: ferror
      Src: /src/curl/src/tool_paramhlp.c:147,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_paramhlp.c:148,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_paramhlp.c:174,1
    - Dst: feof
      Src: /src/curl/src/tool_paramhlp.c:182,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_paramhlp.c:183,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_paramhlp.c:184,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 5
    argNames:
    - bufp
    - size
    - file
    - starto
    - endo
    argTypes:
    - char**
    - size_t*
    - FILE*
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 191
    functionName: file2memory_range
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - ferror
    - curlx_dyn_addn
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_ptr
    - feof
    - fread
    - curlx_fseek
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError file2memory_range(char **bufp, size_t *size, FILE *file,\n
      \                                curl_off_t starto, curl_off_t endo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file2memory_range
      Src: /src/curl/src/tool_paramhlp.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bufp
    - size
    - file
    argTypes:
    - char**
    - size_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: file2memory
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - file2memory_range
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError file2memory(char **bufp, size_t *size, FILE *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_paramhlp.c:210,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_paramhlp.c:211,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_paramhlp.c:213,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_paramhlp.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - val
    - str
    argTypes:
    - long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 221
    functionName: str2num
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curlx_str_number
    - curlx_str_single
    - DEBUGASSERT
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError str2num(long *val, const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_paramhlp.c:227,1
    - Dst: curlx_str_octal
      Src: /src/curl/src/tool_paramhlp.c:228,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_paramhlp.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - val
    - str
    - max
    argTypes:
    - long*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 241
    functionName: oct2nummax
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - DEBUGASSERT
    - curlx_str_octal
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError oct2nummax(long *val, const char *str, long max)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: str2num
      Src: /src/curl/src/tool_paramhlp.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - val
    - str
    argTypes:
    - long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: str2unum
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - str2num
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError str2unum(long *val, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: str2unum
      Src: /src/curl/src/tool_paramhlp.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - val
    - str
    - max
    argTypes:
    - long*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: str2unummax
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - str2unum
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError str2unummax(long *val, const char *str, long max)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_paramhlp.c:312,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_paramhlp.c:314,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_paramhlp.c:318,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_paramhlp.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - val
    - str
    argTypes:
    - long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 331
    functionName: secs2ms
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - curlx_str_number
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError secs2ms(long *val, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_paramhlp.c:343,1
    - Dst: proto_token
      Src: /src/curl/src/tool_paramhlp.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - protoset
    - proto
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 349
    functionName: protoset_index
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - proto_token
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t protoset_index(const char * const *protoset, const char *proto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: protoset_index
      Src: /src/curl/src/tool_paramhlp.c:355,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_paramhlp.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - protoset
    - proto
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: protoset_set
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - protoset_index
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void protoset_set(const char **protoset, const char *proto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: protoset_index
      Src: /src/curl/src/tool_paramhlp.c:369,1
    - Dst: protoset_index
      Src: /src/curl/src/tool_paramhlp.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - protoset
    - proto
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 378
    functionName: protoset_clear
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - protoset_index
    linkageType: ''
    returnType: void
    signature: void protoset_clear(const char **protoset, const char *proto)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_paramhlp.c:402,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_paramhlp.c:406,1
    - Dst: proto_token
      Src: /src/curl/src/tool_paramhlp.c:411,1
    - Dst: protoset_set
      Src: /src/curl/src/tool_paramhlp.c:414,1
    - Dst: strchr
      Src: /src/curl/src/tool_paramhlp.c:418,1
    - Dst: strlen
      Src: /src/curl/src/tool_paramhlp.c:430,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_paramhlp.c:450,1
    - Dst: memcpy
      Src: /src/curl/src/tool_paramhlp.c:457,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_paramhlp.c:465,1
    - Dst: proto_token
      Src: /src/curl/src/tool_paramhlp.c:467,1
    - Dst: protoset_clear
      Src: /src/curl/src/tool_paramhlp.c:472,1
    - Dst: FALLTHROUGH
      Src: /src/curl/src/tool_paramhlp.c:476,1
    - Dst: protoset_set
      Src: /src/curl/src/tool_paramhlp.c:478,1
    - Dst: warnf
      Src: /src/curl/src/tool_paramhlp.c:486,1
    - Dst: qsort
      Src: /src/curl/src/tool_paramhlp.c:496,1
    - Dst: protoset_index
      Src: /src/curl/src/tool_paramhlp.c:496,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/tool_paramhlp.c:500,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_paramhlp.c:500,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_paramhlp.c:504,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_paramhlp.c:505,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_paramhlp.c:508,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_paramhlp.c:509,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 3
    argNames:
    - val
    - ostr
    - str
    argTypes:
    - char**
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 511
    functionName: proto2num
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_msnprintf
    - DEBUGASSERT
    - curlx_dyn_ptr
    - curlx_dyn_addf
    - proto_token
    - FALLTHROUGH
    - memcpy
    - curlx_dyn_free
    - curl_strnequal
    - protoset_clear
    - curlx_dyn_len
    - curlx_free
    - warnf
    - protoset_index
    - qsort
    - protoset_set
    - strchr
    - strlen
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError proto2num(const char * const *val, char **ostr, const
      char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proto_token
      Src: /src/curl/src/tool_paramhlp.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 529
    functionName: check_protocol
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - proto_token
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError check_protocol(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_paramhlp.c:541,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_paramhlp.c:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - val
    - str
    argTypes:
    - curl_off_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: str2offset
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - curlx_str_number
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError str2offset(curl_off_t *val, const char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/src/tool_paramhlp.c:560,1
    - Dst: strchr
      Src: /src/curl/src/tool_paramhlp.c:563,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_paramhlp.c:571,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_paramhlp.c:577,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_paramhlp.c:581,1
    - Dst: getpass_r
      Src: /src/curl/src/tool_paramhlp.c:586,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/tool_paramhlp.c:590,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_paramhlp.c:594,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_paramhlp.c:595,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - kind
    - i
    - last
    - userpwd
    argTypes:
    - char*
    - size_t
    - bool
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 599
    functionName: checkpasswd
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_msnprintf
    - getpass_r
    - curlx_dyn_ptr
    - curlx_free
    - strchr
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode checkpasswd(const char *kind, /* for what purpose */\n                            const
      size_t i,   /* operation index */\n                            const bool last,
      \ /* TRUE if last operation */\n                            char **userpwd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/src/tool_paramhlp.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - ptr
    argTypes:
    - struct curl_slist**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 610
    functionName: add2list
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curl_slist_append
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError add2list(struct curl_slist **list, const char *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/src/tool_paramhlp.c:614,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_paramhlp.c:616,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_paramhlp.c:618,1
    - Dst: warnf
      Src: /src/curl/src/tool_paramhlp.c:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 624
    functionName: ftpfilemethod
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - warnf
    linkageType: ''
    returnType: long
    signature: long ftpfilemethod(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/src/tool_paramhlp.c:628,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_paramhlp.c:630,1
    - Dst: warnf
      Src: /src/curl/src/tool_paramhlp.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 636
    functionName: ftpcccmethod
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - warnf
    linkageType: ''
    returnType: long
    signature: long ftpcccmethod(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/src/tool_paramhlp.c:640,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_paramhlp.c:642,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_paramhlp.c:644,1
    - Dst: warnf
      Src: /src/curl/src/tool_paramhlp.c:647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 650
    functionName: delegation
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - warnf
    linkageType: ''
    returnType: long
    signature: long delegation(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 653
    functionName: isheadersep
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isheadersep(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_paramhlp.c:660,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_paramhlp.c:661,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_paramhlp.c:662,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_paramhlp.c:665,1
    - Dst: isheadersep
      Src: /src/curl/src/tool_paramhlp.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - head
    - checkfor
    argTypes:
    - struct curl_slist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 671
    functionName: inlist
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - strlen
    - isheadersep
    - DEBUGASSERT
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: bool inlist(const struct curl_slist *head, const char *checkfor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: inlist
      Src: /src/curl/src/tool_paramhlp.c:682,1
    - Dst: add2list
      Src: /src/curl/src/tool_paramhlp.c:683,1
    - Dst: inlist
      Src: /src/curl/src/tool_paramhlp.c:684,1
    - Dst: add2list
      Src: /src/curl/src/tool_paramhlp.c:685,1
    - Dst: checkpasswd
      Src: /src/curl/src/tool_paramhlp.c:692,1
    - Dst: checkpasswd
      Src: /src/curl/src/tool_paramhlp.c:696,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - config
    - i
    argTypes:
    - struct OperationConfig*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 699
    functionName: get_args
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - inlist
    - add2list
    - checkpasswd
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode get_args(struct OperationConfig *config, const size_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_paramhlp.c:725,1
    - Dst: strcmp
      Src: /src/curl/src/tool_paramhlp.c:726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - val
    - str
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 732
    functionName: str2tls_max
    functionSourceFile: /src/curl/src/tool_paramhlp.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError str2tls_max(unsigned char *val, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/curl/src/tool_cb_rea.c:52,1
    - Dst: FD_ZERO
      Src: /src/curl/src/tool_cb_rea.c:62,1
    - Dst: FD_SET
      Src: /src/curl/src/tool_cb_rea.c:63,1
    - Dst: select
      Src: /src/curl/src/tool_cb_rea.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - waitms
    - fd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: waitfd
    functionSourceFile: /src/curl/src/tool_cb_rea.c
    functionUses: 0
    functionsReached:
    - FD_SET
    - select
    - poll
    - FD_ZERO
    linkageType: ''
    returnType: void
    signature: void waitfd(int waitms, int fd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/src/tool_cb_rea.c:87,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_cb_rea.c:88,1
    - Dst: waitfd
      Src: /src/curl/src/tool_cb_rea.c:97,1
    - Dst: strcmp
      Src: /src/curl/src/tool_cb_rea.c:108,1
    - Dst: sread
      Src: /src/curl/src/tool_cb_rea.c:110,1
    - Dst: curlx_uztosi
      Src: /src/curl/src/tool_cb_rea.c:110,1
    - Dst: warnf
      Src: /src/curl/src/tool_cb_rea.c:121,1
    - Dst: read
      Src: /src/curl/src/tool_cb_rea.c:128,1
    - Dst: warnf
      Src: /src/curl/src/tool_cb_rea.c:144,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - buffer
    - sz
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 153
    functionName: tool_read_cb
    functionSourceFile: /src/curl/src/tool_cb_rea.c
    functionUses: 0
    functionsReached:
    - curlx_uztosi
    - read
    - curlx_now
    - sread
    - curlx_timediff_ms
    - strcmp
    - warnf
    - waitfd
    linkageType: ''
    returnType: size_t
    signature: size_t tool_read_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: waitfd
      Src: /src/curl/src/tool_cb_rea.c:175,1
    - Dst: curlx_wait_ms
      Src: /src/curl/src/tool_cb_rea.c:177,1
    - Dst: curl_easy_pause
      Src: /src/curl/src/tool_cb_rea.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - clientp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 188
    functionName: tool_readbusy_cb
    functionSourceFile: /src/curl/src/tool_cb_rea.c
    functionUses: 0
    functionsReached:
    - curl_easy_pause
    - waitfd
    - curlx_wait_ms
    linkageType: ''
    returnType: int
    signature: "int tool_readbusy_cb(void *clientp,\n                     curl_off_t
      dltotal, curl_off_t dlnow,\n                     curl_off_t ultotal, curl_off_t
      ulnow)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_getparam.c:47,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_getparam.c:48,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - str
    - val
    - allowblank
    argTypes:
    - char**
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: getstr
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_strdup
    - DEBUGASSERT
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError getstr(char **str, const char *val, bool allowblank)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_getparam.c:63,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_getparam.c:64,1
    - Dst: curlx_memdup0
      Src: /src/curl/src/tool_getparam.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - str
    - val
    - len
    - allowblank
    argTypes:
    - char**
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: getstrn
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_memdup0
    - DEBUGASSERT
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError getstrn(char **str, const char *val,\n                              size_t
      len, bool allowblank)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:385,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_getparam.c:401,1
    - Dst: strpbrk
      Src: /src/curl/src/tool_getparam.c:402,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:403,1
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_getparam.c:409,1
    - Dst: strcspn
      Src: /src/curl/src/tool_getparam.c:418,1
    - Dst: memcpy
      Src: /src/curl/src/tool_getparam.c:419,1
    - Dst: ISALPHA
      Src: /src/curl/src/tool_getparam.c:457,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:471,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_getparam.c:480,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 3
    argNames:
    - cert_parameter
    - certname
    - passphrase
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 485
    functionName: ParameterError::parse_cert_parameter
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - memcpy
    - curlx_strdup
    - curl_strnequal
    - curlx_malloc
    - strcspn
    - strpbrk
    - strlen
    - ISALPHA
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST ParameterError parse_cert_parameter(const char *cert_parameter,\n
      \                                            char **certname,\n                                             char
      **passphrase)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 513
    functionName: replace_url_encoded_space_by_plus
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t replace_url_encoded_space_by_plus(char *url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_cert_parameter
      Src: /src/curl/src/tool_getparam.c:521,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_getparam.c:523,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_getparam.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - nextarg
    - file
    - password
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 531
    functionName: GetFileAndPassword
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - parse_cert_parameter
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError GetFileAndPassword(const char *nextarg, char **file,\n
      \                                        char **password)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_getparam.c:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - unit
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 554
    functionName: getunit
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: struct sizeunit
    signature: struct sizeunit *getunit(char unit)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_getparam.c:571,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_getparam.c:577,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_getparam.c:579,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:584,1
    - Dst: getunit
      Src: /src/curl/src/tool_getparam.c:592,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - arg
    - out
    argTypes:
    - char*
    - curl_off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 621
    functionName: ParameterError::GetSizeParameter
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - getunit
    - strlen
    - curlx_str_single
    - curlx_str_number
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST ParameterError GetSizeParameter(const char *arg, curl_off_t
      *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:630,1
    - Dst: memset
      Src: /src/curl/src/tool_getparam.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 633
    functionName: cleanarg
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - strlen
    - memset
    linkageType: ''
    returnType: void
    signature: void cleanarg(char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 636
    functionName: cleanarg
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanarg(x)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/src/tool_getparam.c:653,1
    - Dst: strchr
      Src: /src/curl/src/tool_getparam.c:660,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:674,1
    - Dst: CURL_BINMODE
      Src: /src/curl/src/tool_getparam.c:676,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_getparam.c:679,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:681,1
    - Dst: file2memory
      Src: /src/curl/src/tool_getparam.c:686,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_getparam.c:689,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:694,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:697,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:703,1
    - Dst: curl_easy_escape
      Src: /src/curl/src/tool_getparam.c:709,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_getparam.c:710,1
    - Dst: replace_url_encoded_space_by_plus
      Src: /src/curl/src/tool_getparam.c:713,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_getparam.c:716,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_getparam.c:717,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_getparam.c:718,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/tool_getparam.c:719,1
    - Dst: curl_free
      Src: /src/curl/src/tool_getparam.c:720,1
    - Dst: curl_free
      Src: /src/curl/src/tool_getparam.c:723,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_getparam.c:724,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_getparam.c:725,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:729,1
    - Dst: curl_free
      Src: /src/curl/src/tool_getparam.c:730,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:733,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 3
    argNames:
    - nextarg
    - postp
    - lenp
    argTypes:
    - char*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 745
    functionName: data_urlencode
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_safefree
    - curlx_dyn_init
    - curlx_dyn_add
    - curlx_dyn_ptr
    - strcmp
    - curl_free
    - curlx_dyn_addn
    - curlx_dyn_len
    - curl_easy_escape
    - getstr
    - curlx_strdup
    - replace_url_encoded_space_by_plus
    - errorf
    - curlx_fopen
    - file2memory
    - CURL_BINMODE
    - strchr
    - strlen
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError data_urlencode(const char *nextarg,\n                                     char
      **postp,\n                                     size_t *lenp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - config
    - httpversion
    argTypes:
    - struct OperationConfig*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 754
    functionName: sethttpver
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - warnf
    linkageType: ''
    returnType: void
    signature: void sethttpver(struct OperationConfig *config, long httpversion)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/src/tool_getparam.c:764,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:769,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_getparam.c:788,1
    - Dst: curl_global_trace
      Src: /src/curl/src/tool_getparam.c:792,1
    - Dst: curl_global_trace
      Src: /src/curl/src/tool_getparam.c:794,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_getparam.c:798,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_getparam.c:801,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_getparam.c:806,1
    - Dst: curl_global_trace
      Src: /src/curl/src/tool_getparam.c:808,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 1
    argNames:
    - token
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 821
    functionName: set_trace_config
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curl_global_trace
    - curl_msnprintf
    - curl_strnequal
    - strchr
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode set_trace_config(const char *token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 828
    functionName: findarg
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int findarg(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_getparam.c:839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - letter
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 848
    functionName: findshortopt
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: struct LongShort
    signature: struct LongShort *findshortopt(char letter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 894
    functionName: find_tos
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int find_tos(const void *a, const void *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_getparam.c:904,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:908,1
    - Dst: data_urlencode
      Src: /src/curl/src/tool_getparam.c:913,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/tool_getparam.c:917,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_getparam.c:918,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_getparam.c:922,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_getparam.c:923,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - nextarg
    - config
    argTypes:
    - char*
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 930
    functionName: url_query
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_strdup
    - curlx_dyn_ptr
    - curlx_free
    - data_urlencode
    - curlx_dyn_addf
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError url_query(const char *nextarg,\n                                struct
      OperationConfig *config)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: data_urlencode
      Src: /src/curl/src/tool_getparam.c:942,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:951,1
    - Dst: CURL_BINMODE
      Src: /src/curl/src/tool_getparam.c:954,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_getparam.c:957,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:959,1
    - Dst: file2memory
      Src: /src/curl/src/tool_getparam.c:967,1
    - Dst: file2string
      Src: /src/curl/src/tool_getparam.c:969,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:971,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_getparam.c:975,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:982,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:988,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:991,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_getparam.c:996,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_getparam.c:999,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_getparam.c:1003,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_getparam.c:1006,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_getparam.c:1008,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 3
    argNames:
    - cmd
    - nextarg
    - config
    argTypes:
    - cmdline_t
    - char*
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 1010
    functionName: set_data
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 1
    functionsReached:
    - file2string
    - curlx_fclose
    - curlx_safefree
    - curlx_dyn_addn
    - getstr
    - curlx_strdup
    - curlx_dyn_len
    - errorf
    - curlx_fopen
    - data_urlencode
    - strcmp
    - file2memory
    - CURL_BINMODE
    - curlx_dyn_ptr
    - strlen
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError set_data(cmdline_t cmd,\n                               const
      char *nextarg,\n                               struct OperationConfig *config)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_getparam.c:1027,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_getparam.c:1033,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_getparam.c:1036,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1052,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1059,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - nextarg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1075
    functionName: set_rate
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - curlx_str_number
    - errorf
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError set_rate(const char *nextarg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/curl/src/tool_getparam.c:1082,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_getparam.c:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1084
    functionName: findlongopt
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - bsearch
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: struct LongShort
    signature: struct LongShort *findlongopt(const char *opt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: new_getout
      Src: /src/curl/src/tool_getparam.c:1110,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:1116,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1122,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - config
    - thisurl
    - remote_noglob
    argTypes:
    - struct OperationConfig*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1127
    functionName: add_url
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - new_getout
    - errorf
    - getstr
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError add_url(struct OperationConfig *config,\n                              const
      char *thisurl,\n                              bool remote_noglob)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:1138,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_getparam.c:1144,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_getparam.c:1146,1
    - Dst: my_get_line
      Src: /src/curl/src/tool_getparam.c:1147,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_getparam.c:1148,1
    - Dst: add_url
      Src: /src/curl/src/tool_getparam.c:1149,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_getparam.c:1154,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_getparam.c:1155,1
    - Dst: add_url
      Src: /src/curl/src/tool_getparam.c:1162,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1163
    functionName: parse_url
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - curlx_dyn_free
    - curlx_fopen
    - curlx_dyn_ptr
    - strcmp
    - my_get_line
    - add_url
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_url(struct OperationConfig *config,\n                                const
      char *nextarg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/curl/src/tool_getparam.c:1172,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_getparam.c:1178,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_getparam.c:1183,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_getparam.c:1186,1
    - Dst: str2unummax
      Src: /src/curl/src/tool_getparam.c:1187,1
    - Dst: str2unummax
      Src: /src/curl/src/tool_getparam.c:1192,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1165
    functionDepth: 4
    functionLinenumber: 1165
    functionLinenumberEnd: 1199
    functionName: parse_localport
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - str2unummax
    - curl_msnprintf
    - ISBLANK
    - ISDIGIT
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_localport(struct OperationConfig *config,\n                                      const
      char *nextarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1206,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1210,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1214,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:1218,1
    - Dst: str2offset
      Src: /src/curl/src/tool_getparam.c:1219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1201
    functionDepth: 2
    functionLinenumber: 1201
    functionLinenumberEnd: 1228
    functionName: parse_continue_at
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - strcmp
    - str2offset
    - errorf
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_continue_at(struct OperationConfig *config,\n
      \                                       const char *nextarg)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:1236,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_getparam.c:1236,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:1238,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:1240,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_getparam.c:1240,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:1243,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:1251,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_getparam.c:1255,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1258,1
    - Dst: file2string
      Src: /src/curl/src/tool_getparam.c:1263,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_getparam.c:1265,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_getparam.c:1269,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_getparam.c:1270,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:1273,1
    - Dst: curl_free
      Src: /src/curl/src/tool_getparam.c:1274,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:1282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1230
    functionDepth: 3
    functionLinenumber: 1230
    functionLinenumberEnd: 1285
    functionName: parse_ech
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - file2string
    - curlx_fclose
    - curl_maprintf
    - getstr
    - curlx_strdup
    - curlx_fopen
    - curl_strnequal
    - strcmp
    - curlx_free
    - warnf
    - curl_free
    - strlen
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_ech(struct OperationConfig *config,\n                                const
      char *nextarg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:1296,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_getparam.c:1297,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1299,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_getparam.c:1305,1
    - Dst: my_get_line
      Src: /src/curl/src/tool_getparam.c:1306,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_getparam.c:1307,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:1308,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_getparam.c:1316,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_getparam.c:1318,1
    - Dst: strchr
      Src: /src/curl/src/tool_getparam.c:1322,1
    - Dst: strchr
      Src: /src/curl/src/tool_getparam.c:1322,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1323,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:1327,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:1329,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - config
    - cmd
    - nextarg
    argTypes:
    - struct OperationConfig*
    - cmdline_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1332
    functionName: parse_header
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - curlx_dyn_free
    - add2list
    - errorf
    - curlx_fopen
    - strcmp
    - my_get_line
    - curlx_dyn_ptr
    - warnf
    - strchr
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_header(struct OperationConfig *config,\n                                   cmdline_t
      cmd,\n                                   const char *nextarg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: new_getout
      Src: /src/curl/src/tool_getparam.c:1357,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:1365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1334
    functionDepth: 2
    functionLinenumber: 1334
    functionLinenumberEnd: 1372
    functionName: parse_output
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - new_getout
    - getstr
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_output(struct OperationConfig *config,\n                                   const
      char *nextarg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: new_getout
      Src: /src/curl/src/tool_getparam.c:1400,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - config
    - toggle
    argTypes:
    - struct OperationConfig*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1374
    functionDepth: 2
    functionLinenumber: 1374
    functionLinenumberEnd: 1411
    functionName: parse_remote_name
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - new_getout
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_remote_name(struct OperationConfig *config,\n
      \                                       bool toggle)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:1423,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:1428,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:1431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1413
    functionDepth: 2
    functionLinenumber: 1413
    functionLinenumberEnd: 1435
    functionName: parse_quote
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - add2list
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_quote(struct OperationConfig *config,\n                                  const
      char *nextarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1445,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_getparam.c:1448,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_getparam.c:1449,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1455,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_getparam.c:1457,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_getparam.c:1459,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:1460,1
    - Dst: ISDIGIT
      Src: /src/curl/src/tool_getparam.c:1467,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1468,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:1476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1437
    functionDepth: 2
    functionLinenumber: 1437
    functionLinenumberEnd: 1479
    functionName: parse_range
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curlx_str_single
    - getstr
    - curlx_strdup
    - curlx_str_number
    - errorf
    - curlx_free
    - warnf
    - ISDIGIT
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_range(struct OperationConfig *config,\n                                  const
      char *nextarg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: new_getout
      Src: /src/curl/src/tool_getparam.c:1504,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:1514,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1481
    functionDepth: 2
    functionLinenumber: 1481
    functionLinenumberEnd: 1517
    functionName: parse_upload_file
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - new_getout
    - getstr
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_upload_file(struct OperationConfig *config,\n
      \                                       const char *nextarg)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: set_trace_config
      Src: /src/curl/src/tool_getparam.c:1529,1
    - Dst: set_trace_config
      Src: /src/curl/src/tool_getparam.c:1537,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_getparam.c:1544,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_getparam.c:1545,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1550,1
    - Dst: set_trace_config
      Src: /src/curl/src/tool_getparam.c:1556,1
    - Dst: set_trace_config
      Src: /src/curl/src/tool_getparam.c:1562,1
    - Dst: set_trace_config
      Src: /src/curl/src/tool_getparam.c:1567,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 1
    argNames:
    - toggle
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1575
    functionName: parse_verbose
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - set_trace_config
    - curlx_strdup
    - warnf
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError parse_verbose(bool toggle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:1589,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_getparam.c:1595,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1597,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_getparam.c:1601,1
    - Dst: file2string
      Src: /src/curl/src/tool_getparam.c:1602,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_getparam.c:1604,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1608,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:1611,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1577
    functionDepth: 3
    functionLinenumber: 1577
    functionLinenumberEnd: 1614
    functionName: parse_writeout
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - file2string
    - curlx_fclose
    - getstr
    - errorf
    - curlx_fopen
    - strcmp
    - warnf
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_writeout(struct OperationConfig *config,\n                                     const
      char *nextarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FALLTHROUGH
      Src: /src/curl/src/tool_getparam.c:1624,1
    - Dst: curl_getdate
      Src: /src/curl/src/tool_getparam.c:1640,1
    - Dst: getfiletime
      Src: /src/curl/src/tool_getparam.c:1644,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1651,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - config
    - nextarg
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1616
    functionDepth: 2
    functionLinenumber: 1616
    functionLinenumberEnd: 1657
    functionName: parse_time_cond
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - getfiletime
    - warnf
    - curl_getdate
    - FALLTHROUGH
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_time_cond(struct OperationConfig *config,\n                                      const
      char *nextarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/src/tool_getparam.c:1683,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:1687,1
    - Dst: strncmp
      Src: /src/curl/src/tool_getparam.c:1696,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - config
    - flag
    argTypes:
    - struct OperationConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1717
    functionName: parse_upload_flags
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    - strchr
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parse_upload_flags(struct OperationConfig *config,\n
      \                                        const char *flag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - toggle
    - modify
    - bits
    argTypes:
    - bool
    - unsigned long*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1722
    functionDepth: 0
    functionLinenumber: 1722
    functionLinenumberEnd: 1728
    functionName: togglebit
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void togglebit(bool toggle, unsigned long *modify, unsigned long bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct LongShort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1731
    functionDepth: 1
    functionLinenumber: 1731
    functionLinenumberEnd: 1734
    functionName: opt_depr
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - warnf
    linkageType: ''
    returnType: void
    signature: void opt_depr(const struct LongShort *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:1741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - config
    - ver
    argTypes:
    - struct OperationConfig*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1736
    functionDepth: 1
    functionLinenumber: 1736
    functionLinenumberEnd: 1746
    functionName: opt_sslver
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - errorf
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError opt_sslver(struct OperationConfig *config,\n                                 unsigned
      char ver)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_getparam.c:1760,1
    - Dst: sethttpver
      Src: /src/curl/src/tool_getparam.c:1765,1
    - Dst: sethttpver
      Src: /src/curl/src/tool_getparam.c:1769,1
    - Dst: sethttpver
      Src: /src/curl/src/tool_getparam.c:1775,1
    - Dst: sethttpver
      Src: /src/curl/src/tool_getparam.c:1781,1
    - Dst: sethttpver
      Src: /src/curl/src/tool_getparam.c:1788,1
    - Dst: sethttpver
      Src: /src/curl/src/tool_getparam.c:1795,1
    - Dst: opt_sslver
      Src: /src/curl/src/tool_getparam.c:1798,1
    - Dst: opt_sslver
      Src: /src/curl/src/tool_getparam.c:1801,1
    - Dst: opt_sslver
      Src: /src/curl/src/tool_getparam.c:1804,1
    - Dst: opt_sslver
      Src: /src/curl/src/tool_getparam.c:1807,1
    - Dst: opt_sslver
      Src: /src/curl/src/tool_getparam.c:1810,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 2
    argNames:
    - config
    - a
    argTypes:
    - struct OperationConfig*
    - struct LongShort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1749
    functionDepth: 2
    functionLinenumber: 1749
    functionLinenumberEnd: 1826
    functionName: opt_none
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - sethttpver
    - opt_sslver
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError opt_none(struct OperationConfig *config,\n                               const
      struct LongShort *a)"
  - BBCount: 136
    BranchProfiles: []
    Callsites:
    - Dst: togglebit
      Src: /src/curl/src/tool_getparam.c:1856,1
    - Dst: togglebit
      Src: /src/curl/src/tool_getparam.c:1879,1
    - Dst: togglebit
      Src: /src/curl/src/tool_getparam.c:1884,1
    - Dst: parse_output
      Src: /src/curl/src/tool_getparam.c:1887,1
    - Dst: togglebit
      Src: /src/curl/src/tool_getparam.c:1889,1
    - Dst: dbug_init
      Src: /src/curl/src/tool_getparam.c:1893,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1909,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1913,1
    - Dst: togglebit
      Src: /src/curl/src/tool_getparam.c:1943,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:1968,1
    - Dst: opt_depr
      Src: /src/curl/src/tool_getparam.c:2076,1
    - Dst: togglebit
      Src: /src/curl/src/tool_getparam.c:2094,1
    - Dst: togglebit
      Src: /src/curl/src/tool_getparam.c:2097,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:2110,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:2117,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:2122,1
    - Dst: SetHTTPrequest
      Src: /src/curl/src/tool_getparam.c:2141,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:2175,1
    - Dst: parse_remote_name
      Src: /src/curl/src/tool_getparam.c:2181,1
    - Dst: parse_verbose
      Src: /src/curl/src/tool_getparam.c:2202,1
    - Dst: FALLTHROUGH
      Src: /src/curl/src/tool_getparam.c:2218,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:2221,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:2226,1
    CyclomaticComplexity: 141
    EdgeCount: 141
    ICount: 385
    argCount: 3
    argNames:
    - config
    - a
    - toggle
    argTypes:
    - struct OperationConfig*
    - struct LongShort*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 1829
    functionDepth: 3
    functionLinenumber: 1829
    functionLinenumberEnd: 2233
    functionName: opt_bool
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - parse_remote_name
    - parse_verbose
    - togglebit
    - SetHTTPrequest
    - errorf
    - warnf
    - parse_output
    - opt_depr
    - dbug_init
    - FALLTHROUGH
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError opt_bool(struct OperationConfig *config,\n                               const
      struct LongShort *a,\n                               bool toggle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_stat
      Src: /src/curl/src/tool_getparam.c:2240,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:2241,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - store
    - a
    - filename
    argTypes:
    - char**
    - struct LongShort*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2246
    functionName: existingfile
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_stat
    - getstr
    - errorf
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError existingfile(char **store,\n                                   const
      struct LongShort *a,\n                                   const char *filename)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:2257,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2262,1
    - Dst: existingfile
      Src: /src/curl/src/tool_getparam.c:2265,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2268,1
    - Dst: GetFileAndPassword
      Src: /src/curl/src/tool_getparam.c:2271,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:2275,1
    - Dst: parseconfig
      Src: /src/curl/src/tool_getparam.c:2280,1
    - Dst: existingfile
      Src: /src/curl/src/tool_getparam.c:2284,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2287,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:2291,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2295,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:2299,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2303,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2306,1
    - Dst: existingfile
      Src: /src/curl/src/tool_getparam.c:2309,1
    - Dst: existingfile
      Src: /src/curl/src/tool_getparam.c:2312,1
    - Dst: parse_output
      Src: /src/curl/src/tool_getparam.c:2315,1
    - Dst: existingfile
      Src: /src/curl/src/tool_getparam.c:2318,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2321,1
    - Dst: GetFileAndPassword
      Src: /src/curl/src/tool_getparam.c:2324,1
    - Dst: existingfile
      Src: /src/curl/src/tool_getparam.c:2328,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2331,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2335,1
    - Dst: tool_set_stderr_file
      Src: /src/curl/src/tool_getparam.c:2340,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2343,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:2346,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2351,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:2354,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2360,1
    - Dst: parse_upload_file
      Src: /src/curl/src/tool_getparam.c:2363,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 106
    argCount: 4
    argNames:
    - config
    - a
    - nextarg
    - max_recursive
    argTypes:
    - struct OperationConfig*
    - struct LongShort*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2249
    functionDepth: 3
    functionLinenumber: 2249
    functionLinenumberEnd: 2367
    functionName: opt_file
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - parseconfig
    - getstr
    - parse_upload_file
    - errorf
    - existingfile
    - GetFileAndPassword
    - tool_set_stderr_file
    - warnf
    - parse_output
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError opt_file(struct OperationConfig *config,\n                               const
      struct LongShort *a,\n                               const char *nextarg,\n
      \                              int max_recursive)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: str2unum
      Src: /src/curl/src/tool_getparam.c:2376,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_getparam.c:2430,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - config
    - a
    - nextarg
    argTypes:
    - struct OperationConfig*
    - struct LongShort*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2370
    functionDepth: 3
    functionLinenumber: 2370
    functionLinenumberEnd: 2434
    functionName: opt_unum
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - str2unum
    - DEBUGASSERT
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError opt_unum(struct OperationConfig *config,\n                               const
      struct LongShort *a,\n                               const char *nextarg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: secs2ms
      Src: /src/curl/src/tool_getparam.c:2442,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_getparam.c:2465,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - config
    - a
    - nextarg
    argTypes:
    - struct OperationConfig*
    - struct LongShort*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2437
    functionDepth: 2
    functionLinenumber: 2437
    functionLinenumberEnd: 2469
    functionName: opt_secs
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - secs2ms
    - DEBUGASSERT
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError opt_secs(struct OperationConfig *config,\n                               const
      struct LongShort *a,\n                               const char *nextarg)"
  - BBCount: 136
    BranchProfiles: []
    Callsites:
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2493,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2499,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2503,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2506,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_getparam.c:2509,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2513,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2521,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2528,1
    - Dst: GetSizeParameter
      Src: /src/curl/src/tool_getparam.c:2531,1
    - Dst: set_rate
      Src: /src/curl/src/tool_getparam.c:2538,1
    - Dst: oct2nummax
      Src: /src/curl/src/tool_getparam.c:2541,1
    - Dst: str2num
      Src: /src/curl/src/tool_getparam.c:2546,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2552,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2557,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2561,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2564,1
    - Dst: GetSizeParameter
      Src: /src/curl/src/tool_getparam.c:2567,1
    - Dst: parse_url
      Src: /src/curl/src/tool_getparam.c:2572,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2577,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2581,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2585,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2589,1
    - Dst: bsearch
      Src: /src/curl/src/tool_getparam.c:2596,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_getparam.c:2597,1
    - Dst: str2unummax
      Src: /src/curl/src/tool_getparam.c:2602,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2606,1
    - Dst: ftpfilemethod
      Src: /src/curl/src/tool_getparam.c:2609,1
    - Dst: parse_localport
      Src: /src/curl/src/tool_getparam.c:2612,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2615,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:2619,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2622,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2627,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2631,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2635,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:2639,1
    - Dst: proto2num
      Src: /src/curl/src/tool_getparam.c:2643,1
    - Dst: proto2num
      Src: /src/curl/src/tool_getparam.c:2647,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:2651,1
    - Dst: delegation
      Src: /src/curl/src/tool_getparam.c:2654,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2657,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2660,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2663,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2666,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2669,1
    - Dst: check_protocol
      Src: /src/curl/src/tool_getparam.c:2671,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:2674,1
    - Dst: str2tls_max
      Src: /src/curl/src/tool_getparam.c:2677,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:2679,1
    - Dst: set_trace_config
      Src: /src/curl/src/tool_getparam.c:2685,1
    - Dst: setvariable
      Src: /src/curl/src/tool_getparam.c:2689,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2692,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2695,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2698,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2704,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2710,1
    - Dst: strchr
      Src: /src/curl/src/tool_getparam.c:2713,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:2715,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:2720,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2724,1
    - Dst: parse_continue_at
      Src: /src/curl/src/tool_getparam.c:2727,1
    - Dst: set_data
      Src: /src/curl/src/tool_getparam.c:2735,1
    - Dst: url_query
      Src: /src/curl/src/tool_getparam.c:2738,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:2741,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:2743,1
    - Dst: getstrn
      Src: /src/curl/src/tool_getparam.c:2753,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_getparam.c:2755,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2759,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2762,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2765,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2768,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:2770,1
    - Dst: parse_ech
      Src: /src/curl/src/tool_getparam.c:2775,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2778,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2781,1
    - Dst: strlen
      Src: /src/curl/src/tool_getparam.c:2783,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2788,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2794,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2800,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2806,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:2807,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2812,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2815,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2821,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2827,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2833,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:2835,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2840,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2843,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2846,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2849,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2852,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2855,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2858,1
    - Dst: formparse
      Src: /src/curl/src/tool_getparam.c:2864,1
    - Dst: SetHTTPrequest
      Src: /src/curl/src/tool_getparam.c:2867,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2871,1
    - Dst: parse_header
      Src: /src/curl/src/tool_getparam.c:2875,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2878,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2886,1
    - Dst: ftpcccmethod
      Src: /src/curl/src/tool_getparam.c:2890,1
    - Dst: parse_quote
      Src: /src/curl/src/tool_getparam.c:2893,1
    - Dst: parse_range
      Src: /src/curl/src/tool_getparam.c:2896,1
    - Dst: add2list
      Src: /src/curl/src/tool_getparam.c:2900,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2904,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2908,1
    - Dst: parse_writeout
      Src: /src/curl/src/tool_getparam.c:2911,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2914,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2918,1
    - Dst: getstr
      Src: /src/curl/src/tool_getparam.c:2925,1
    - Dst: parse_time_cond
      Src: /src/curl/src/tool_getparam.c:2928,1
    - Dst: parse_upload_flags
      Src: /src/curl/src/tool_getparam.c:2931,1
    CyclomaticComplexity: 140
    EdgeCount: 140
    ICount: 386
    argCount: 3
    argNames:
    - config
    - a
    - nextarg
    argTypes:
    - struct OperationConfig*
    - struct LongShort*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2935
      start: 2472
    functionDepth: 5
    functionLinenumber: 2472
    functionLinenumberEnd: 2935
    functionName: opt_string
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - check_protocol
    - parse_continue_at
    - url_query
    - strcmp
    - proto2num
    - set_rate
    - GetSizeParameter
    - str2unummax
    - parse_quote
    - add2list
    - setvariable
    - set_trace_config
    - parse_header
    - getstrn
    - ftpcccmethod
    - parse_time_cond
    - bsearch
    - parse_url
    - oct2nummax
    - parse_ech
    - warnf
    - str2tls_max
    - ftpfilemethod
    - set_data
    - getstr
    - CURL_ARRAYSIZE
    - delegation
    - SetHTTPrequest
    - parse_range
    - parse_localport
    - errorf
    - parse_upload_flags
    - str2num
    - strchr
    - parse_writeout
    - strlen
    - formparse
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError opt_string(struct OperationConfig *config,\n                                 const
      struct LongShort *a,\n                                 const char *nextarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2938
    functionDepth: 0
    functionLinenumber: 2938
    functionLinenumberEnd: 2941
    functionName: has_leading_unicode
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_leading_unicode(const unsigned char *arg)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/curl/src/tool_getparam.c:2974,1
    - Dst: strncmp
      Src: /src/curl/src/tool_getparam.c:2980,1
    - Dst: curlx_str_until
      Src: /src/curl/src/tool_getparam.c:2988,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_getparam.c:2989,1
    - Dst: memcpy
      Src: /src/curl/src/tool_getparam.c:2992,1
    - Dst: curlx_str
      Src: /src/curl/src/tool_getparam.c:2992,1
    - Dst: curlx_strlen
      Src: /src/curl/src/tool_getparam.c:2992,1
    - Dst: curlx_strlen
      Src: /src/curl/src/tool_getparam.c:2993,1
    - Dst: findlongopt
      Src: /src/curl/src/tool_getparam.c:2994,1
    - Dst: findlongopt
      Src: /src/curl/src/tool_getparam.c:2999,1
    - Dst: ARGTYPE
      Src: /src/curl/src/tool_getparam.c:3008,1
    - Dst: ARGTYPE
      Src: /src/curl/src/tool_getparam.c:3017,1
    - Dst: varexpand
      Src: /src/curl/src/tool_getparam.c:3022,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_getparam.c:3024,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_getparam.c:3028,1
    - Dst: findshortopt
      Src: /src/curl/src/tool_getparam.c:3041,1
    - Dst: ARGTYPE
      Src: /src/curl/src/tool_getparam.c:3052,1
    - Dst: tool_help
      Src: /src/curl/src/tool_getparam.c:3060,1
    - Dst: opt_depr
      Src: /src/curl/src/tool_getparam.c:3072,1
    - Dst: has_leading_unicode
      Src: /src/curl/src/tool_getparam.c:3076,1
    - Dst: warnf
      Src: /src/curl/src/tool_getparam.c:3077,1
    - Dst: ARGTYPE
      Src: /src/curl/src/tool_getparam.c:3080,1
    - Dst: opt_file
      Src: /src/curl/src/tool_getparam.c:3082,1
    - Dst: opt_string
      Src: /src/curl/src/tool_getparam.c:3085,1
    - Dst: opt_secs
      Src: /src/curl/src/tool_getparam.c:3088,1
    - Dst: opt_unum
      Src: /src/curl/src/tool_getparam.c:3091,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_getparam.c:3094,1
    - Dst: cleanarg
      Src: /src/curl/src/tool_getparam.c:3099,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/tool_getparam.c:3099,1
    - Dst: opt_depr
      Src: /src/curl/src/tool_getparam.c:3103,1
    - Dst: ARGTYPE
      Src: /src/curl/src/tool_getparam.c:3107,1
    - Dst: opt_bool
      Src: /src/curl/src/tool_getparam.c:3108,1
    - Dst: opt_none
      Src: /src/curl/src/tool_getparam.c:3110,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_getparam.c:3119,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/tool_getparam.c:3119,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 127
    argCount: 5
    argNames:
    - flag
    - nextarg
    - usedarg
    - config
    - max_recursive
    argTypes:
    - char*
    - char*
    - bool*
    - struct OperationConfig*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 2946
    functionDepth: 6
    functionLinenumber: 2946
    functionLinenumberEnd: 3121
    functionName: getparameter
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - opt_none
    - curlx_str_single
    - DEBUGASSERT
    - curlx_str_until
    - opt_file
    - CURL_UNCONST
    - curlx_dyn_ptr
    - strncmp
    - opt_secs
    - memcpy
    - ARGTYPE
    - opt_unum
    - findlongopt
    - curlx_str
    - curlx_dyn_free
    - opt_bool
    - findshortopt
    - cleanarg
    - tool_help
    - curlx_free
    - curlx_strlen
    - warnf
    - opt_depr
    - varexpand
    - opt_string
    - has_leading_unicode
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError getparameter(const char *flag, /* f or -long-flag */\n
      \                           const char *nextarg,    /* NULL if unset */\n                            bool
      *usedarg,    /* set to TRUE if the arg\n                                                 has
      been used */\n                            struct OperationConfig *config,\n
      \                           int max_recursive)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: convert_tchar_to_UTF8
      Src: /src/curl/src/tool_getparam.c:3133,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:3140,1
    - Dst: convert_tchar_to_UTF8
      Src: /src/curl/src/tool_getparam.c:3147,1
    - Dst: unicodefree
      Src: /src/curl/src/tool_getparam.c:3149,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/tool_getparam.c:3149,1
    - Dst: getparameter
      Src: /src/curl/src/tool_getparam.c:3154,1
    - Dst: unicodefree
      Src: /src/curl/src/tool_getparam.c:3157,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/tool_getparam.c:3157,1
    - Dst: config_alloc
      Src: /src/curl/src/tool_getparam.c:3166,1
    - Dst: errorf
      Src: /src/curl/src/tool_getparam.c:3179,1
    - Dst: getparameter
      Src: /src/curl/src/tool_getparam.c:3191,1
    - Dst: unicodefree
      Src: /src/curl/src/tool_getparam.c:3195,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/tool_getparam.c:3195,1
    - Dst: param2text
      Src: /src/curl/src/tool_getparam.c:3211,1
    - Dst: strcmp
      Src: /src/curl/src/tool_getparam.c:3213,1
    - Dst: helpf
      Src: /src/curl/src/tool_getparam.c:3214,1
    - Dst: helpf
      Src: /src/curl/src/tool_getparam.c:3216,1
    - Dst: unicodefree
      Src: /src/curl/src/tool_getparam.c:3219,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/tool_getparam.c:3219,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - argv_item_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3221
      start: 3123
    functionDepth: 7
    functionLinenumber: 3123
    functionLinenumberEnd: 3221
    functionName: parse_args
    functionSourceFile: /src/curl/src/tool_getparam.c
    functionUses: 0
    functionsReached:
    - helpf
    - config_alloc
    - CURL_UNCONST
    - errorf
    - param2text
    - strcmp
    - getparameter
    - unicodefree
    - convert_tchar_to_UTF8
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError parse_args(int argc, argv_item_t argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: main
    functionSourceFile: /src/curl/src/tool_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: main(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p1
    - ','
    - p2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: CURL_STRICMP
    functionSourceFile: /src/curl/src/tool_setup.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_STRICMP(p1, p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p1
    - ','
    - p2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: CURL_STRICMP
    functionSourceFile: /src/curl/src/tool_setup.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_STRICMP(p1, p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p1
    - ','
    - p2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: CURL_STRICMP
    functionSourceFile: /src/curl/src/tool_setup.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_STRICMP(p1, p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p1
    - ','
    - p2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: CURL_STRICMP
    functionSourceFile: /src/curl/src/tool_setup.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_STRICMP(p1, p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p1
    - ','
    - p2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: CURL_STRICMP
    functionSourceFile: /src/curl/src/tool_setup.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_STRICMP(p1, p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_progress.c:41,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_progress.c:49,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_progress.c:56,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_progress.c:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - bytes
    - max5
    - mlen
    argTypes:
    - curl_off_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 65
    functionName: max5data
    functionSourceFile: /src/curl/src/tool_progress.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - DEBUGASSERT
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST *max5data(curl_off_t bytes, char *max5, size_t mlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_pause
      Src: /src/curl/src/tool_progress.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - clientp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: xferinfo_cb
    functionSourceFile: /src/curl/src/tool_progress.c
    functionUses: 0
    functionsReached:
    - curl_easy_pause
    linkageType: ''
    returnType: int
    signature: "int xferinfo_cb(void *clientp,\n                curl_off_t dltotal,\n
      \               curl_off_t dlnow,\n                curl_off_t ultotal,\n                curl_off_t
      ulnow)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strcopy
      Src: /src/curl/src/tool_progress.c:99,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_progress.c:106,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_progress.c:113,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_progress.c:117,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_progress.c:122,1
    - Dst: curlx_strcopy
      Src: /src/curl/src/tool_progress.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - r
    - rlen
    - seconds
    argTypes:
    - char*
    - size_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 128
    functionName: timebuf
    functionSourceFile: /src/curl/src/tool_progress.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - curlx_strcopy
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST timebuf(char *r, size_t rlen, curl_off_t seconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - val
    - add
    argTypes:
    - curl_off_t*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: add_offt
    functionSourceFile: /src/curl/src/tool_progress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_offt(curl_off_t *val, curl_off_t add)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/src/tool_progress.c:168,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_progress.c:169,1
    - Dst: fputs
      Src: /src/curl/src/tool_progress.c:173,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_progress.c:182,1
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:197,1
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:198,1
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:201,1
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:202,1
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:207,1
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:214,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_progress.c:219,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_progress.c:225,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_progress.c:249,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_progress.c:255,1
    - Dst: timebuf
      Src: /src/curl/src/tool_progress.c:269,1
    - Dst: timebuf
      Src: /src/curl/src/tool_progress.c:270,1
    - Dst: timebuf
      Src: /src/curl/src/tool_progress.c:273,1
    - Dst: timebuf
      Src: /src/curl/src/tool_progress.c:274,1
    - Dst: timebuf
      Src: /src/curl/src/tool_progress.c:276,1
    - Dst: curl_multi_get_offt
      Src: /src/curl/src/tool_progress.c:278,1
    - Dst: curl_multi_get_offt
      Src: /src/curl/src/tool_progress.c:279,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_progress.c:280,1
    - Dst: max5data
      Src: /src/curl/src/tool_progress.c:296,1
    - Dst: max5data
      Src: /src/curl/src/tool_progress.c:297,1
    - Dst: max5data
      Src: /src/curl/src/tool_progress.c:303,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 3
    argNames:
    - multi
    - start
    - final
    argTypes:
    - CURLM*
    - struct curltime*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 308
    functionName: progress_meter
    functionSourceFile: /src/curl/src/tool_progress.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - fputs
    - timebuf
    - curl_multi_get_offt
    - curlx_now
    - max5data
    - curlx_timediff_ms
    - add_offt
    linkageType: ''
    returnType: bool
    signature: bool progress_meter(CURLM *multi, struct curltime *start, bool final)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:313,1
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:314,1
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:316,1
    - Dst: add_offt
      Src: /src/curl/src/tool_progress.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - per
    argTypes:
    - struct per_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 323
    functionName: progress_finalize
    functionSourceFile: /src/curl/src/tool_progress.c
    functionUses: 0
    functionsReached:
    - add_offt
    linkageType: ''
    returnType: void
    signature: void progress_finalize(struct per_transfer *per)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - glob
    - err
    - pos
    - error
    argTypes:
    - struct URLGlob*
    - char*
    - size_t
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: globerror
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode globerror(struct URLGlob *glob, const char *err,\n                          size_t
      pos, CURLcode error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_urlglob.c:46,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:49,1
    - Dst: curlx_memdup0
      Src: /src/curl/src/tool_urlglob.c:51,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_urlglob.c:53,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - glob
    - fixed
    - len
    argTypes:
    - struct URLGlob*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: glob_fixed
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - curlx_safefree
    - curlx_memdup0
    - globerror
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode glob_fixed(struct URLGlob *glob, char *fixed, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_urlglob.c:70,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_urlglob.c:71,1
    - Dst: __builtin_mul_overflow
      Src: /src/curl/src/tool_urlglob.c:79,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - amount
    - with
    argTypes:
    - curl_off_t*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: multiply
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - __builtin_mul_overflow
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int multiply(curl_off_t *amount, curl_off_t with)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_urlglob.c:106,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:111,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:116,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:121,1
    - Dst: multiply
      Src: /src/curl/src/tool_urlglob.c:127,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:128,1
    - Dst: FALLTHROUGH
      Src: /src/curl/src/tool_urlglob.c:132,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:135,1
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_urlglob.c:141,1
    - Dst: curlx_realloc
      Src: /src/curl/src/tool_urlglob.c:144,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:146,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:154,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_urlglob.c:158,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_urlglob.c:158,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_urlglob.c:159,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:161,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/tool_urlglob.c:165,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:173,1
    - Dst: FALLTHROUGH
      Src: /src/curl/src/tool_urlglob.c:182,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_urlglob.c:185,1
    - Dst: curlx_strlen
      Src: /src/curl/src/tool_urlglob.c:202,1
    - Dst: curlx_memdup0
      Src: /src/curl/src/tool_urlglob.c:203,1
    - Dst: curlx_str
      Src: /src/curl/src/tool_urlglob.c:203,1
    - Dst: curlx_strlen
      Src: /src/curl/src/tool_urlglob.c:203,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_urlglob.c:217,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_urlglob.c:219,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 106
    argCount: 6
    argNames:
    - glob
    - patternp
    - posp
    - amount
    - globindex
    - name
    argTypes:
    - struct URLGlob*
    - char**
    - size_t*
    - curl_off_t*
    - int
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 221
    functionName: glob_set
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - curlx_dyn_addn
    - curlx_str
    - curlx_strdup
    - curlx_malloc
    - multiply
    - curlx_dyn_ptr
    - curlx_dyn_reset
    - curlx_strlen
    - curlx_memdup0
    - globerror
    - curlx_free
    - FALLTHROUGH
    - curlx_realloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode glob_set(struct URLGlob *glob, const char **patternp,\n                         size_t
      *posp, curl_off_t *amount,\n                         int globindex, const struct
      Curl_str *name)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_urlglob.c:237,1
    - Dst: ISALPHA
      Src: /src/curl/src/tool_urlglob.c:242,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_urlglob.c:261,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_urlglob.c:261,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:282,1
    - Dst: multiply
      Src: /src/curl/src/tool_urlglob.c:289,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:291,1
    - Dst: ISDIGIT
      Src: /src/curl/src/tool_urlglob.c:293,1
    - Dst: ISDIGIT
      Src: /src/curl/src/tool_urlglob.c:306,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_urlglob.c:313,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_urlglob.c:315,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/src/tool_urlglob.c:316,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_urlglob.c:317,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_urlglob.c:319,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_urlglob.c:321,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_urlglob.c:322,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_urlglob.c:323,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:337,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:340,1
    - Dst: multiply
      Src: /src/curl/src/tool_urlglob.c:347,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:349,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:352,1
    - Dst: curlx_strlen
      Src: /src/curl/src/tool_urlglob.c:355,1
    - Dst: curlx_memdup0
      Src: /src/curl/src/tool_urlglob.c:356,1
    - Dst: curlx_str
      Src: /src/curl/src/tool_urlglob.c:356,1
    - Dst: curlx_strlen
      Src: /src/curl/src/tool_urlglob.c:356,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 74
    argCount: 6
    argNames:
    - glob
    - patternp
    - posp
    - amount
    - globindex
    - name
    argTypes:
    - struct URLGlob*
    - char**
    - size_t*
    - curl_off_t*
    - int
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 362
    functionName: glob_range
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - DEBUGASSERT
    - curlx_str
    - curlx_str_number
    - curlx_str_passblanks
    - multiply
    - curlx_strlen
    - curlx_memdup0
    - globerror
    - ISDIGIT
    - ISALPHA
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode glob_range(struct URLGlob *glob, const char **patternp,\n
      \                          size_t *posp, curl_off_t *amount,\n                           int
      globindex, const struct Curl_str *name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/src/tool_urlglob.c:375,1
    - Dst: curl_url
      Src: /src/curl/src/tool_urlglob.c:388,1
    - Dst: memcpy
      Src: /src/curl/src/tool_urlglob.c:392,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_urlglob.c:396,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_urlglob.c:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - str
    - skip
    - ipv6p
    argTypes:
    - char*
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 405
    functionName: peek_ipv6
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - memcpy
    - curl_url_cleanup
    - strchr
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode peek_ipv6(const char *str, size_t *skip, bool *ipv6p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_urlglob.c:409,1
    - Dst: curlx_realloc
      Src: /src/curl/src/tool_urlglob.c:415,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:418,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - glob
    - pos
    argTypes:
    - struct URLGlob*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 425
    functionName: add_glob
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - globerror
    - DEBUGASSERT
    - curlx_realloc
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode add_glob(struct URLGlob *glob, size_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_cmp
      Src: /src/curl/src/tool_urlglob.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - glob
    - name
    argTypes:
    - struct URLGlob*
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 441
    functionName: glob_find_name
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curlx_str_cmp
    linkageType: ''
    returnType: struct URLPattern
    signature: "struct URLPattern *glob_find_name(struct URLGlob *glob,\n                                         struct
      Curl_str *name)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: peek_ipv6
      Src: /src/curl/src/tool_urlglob.c:463,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_urlglob.c:469,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:477,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_urlglob.c:490,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_urlglob.c:494,1
    - Dst: glob_fixed
      Src: /src/curl/src/tool_urlglob.c:496,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_urlglob.c:496,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_urlglob.c:497,1
    - Dst: add_glob
      Src: /src/curl/src/tool_urlglob.c:499,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/tool_urlglob.c:500,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_urlglob.c:513,1
    - Dst: curlx_str_until
      Src: /src/curl/src/tool_urlglob.c:514,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_urlglob.c:515,1
    - Dst: curlx_str_init
      Src: /src/curl/src/tool_urlglob.c:520,1
    - Dst: glob_find_name
      Src: /src/curl/src/tool_urlglob.c:525,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:527,1
    - Dst: glob_set
      Src: /src/curl/src/tool_urlglob.c:532,1
    - Dst: glob_range
      Src: /src/curl/src/tool_urlglob.c:534,1
    - Dst: add_glob
      Src: /src/curl/src/tool_urlglob.c:538,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 57
    argCount: 4
    argNames:
    - glob
    - pattern
    - pos
    - amount
    argTypes:
    - struct URLGlob*
    - char*
    - size_t
    - curl_off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 543
    functionName: glob_parse
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - add_glob
    - curlx_str_single
    - curlx_dyn_addn
    - curlx_str_until
    - curlx_dyn_len
    - curlx_str_init
    - glob_find_name
    - curlx_dyn_ptr
    - curlx_dyn_reset
    - glob_set
    - peek_ipv6
    - glob_range
    - globerror
    - glob_fixed
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode glob_parse(struct URLGlob *glob, const char *pattern,\n                           size_t
      pos, curl_off_t *amount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - glob
    argTypes:
    - struct URLGlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: glob_inuse
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool glob_inuse(struct URLGlob *glob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_urlglob.c:558,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_urlglob.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - glob
    - url
    - error
    - result
    argTypes:
    - struct URLGlob*
    - char*
    - FILE*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 568
    functionName: glob_show_error
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: "void glob_show_error(struct URLGlob *glob, const char *url, FILE *error,\n
      \                    CURLcode result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/src/tool_urlglob.c:580,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_urlglob.c:581,1
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_urlglob.c:582,1
    - Dst: glob_parse
      Src: /src/curl/src/tool_urlglob.c:587,1
    - Dst: glob_show_error
      Src: /src/curl/src/tool_urlglob.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - glob
    - url
    - urlnum
    - error
    argTypes:
    - struct URLGlob*
    - char*
    - curl_off_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 570
    functionDepth: 4
    functionLinenumber: 570
    functionLinenumberEnd: 596
    functionName: glob_url
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - glob_parse
    - glob_show_error
    - curlx_malloc
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode glob_url(struct URLGlob *glob, const char *url, curl_off_t
      *urlnum,\n                  FILE *error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_urlglob.c:604,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_urlglob.c:609,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_urlglob.c:610,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_urlglob.c:612,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_urlglob.c:614,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_urlglob.c:616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - glob
    argTypes:
    - struct URLGlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 618
    functionName: glob_cleanup
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_dyn_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void glob_cleanup(struct URLGlob *glob)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/tool_urlglob.c:626,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_urlglob.c:660,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/tool_urlglob.c:674,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_urlglob.c:680,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/tool_urlglob.c:685,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_urlglob.c:690,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_urlglob.c:696,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_urlglob.c:696,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_urlglob.c:696,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 2
    argNames:
    - globbed
    - glob
    argTypes:
    - char**
    - struct URLGlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 701
    functionName: glob_next_url
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - DEBUGASSERT
    - curlx_dyn_add
    - curlx_strdup
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode glob_next_url(char **globbed, struct URLGlob *glob)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_urlglob.c:714,1
    - Dst: glob_inuse
      Src: /src/curl/src/tool_urlglob.c:719,1
    - Dst: ISDIGIT
      Src: /src/curl/src/tool_urlglob.c:719,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_urlglob.c:723,1
    - Dst: curlx_str_until
      Src: /src/curl/src/tool_urlglob.c:742,1
    - Dst: curlx_str_single
      Src: /src/curl/src/tool_urlglob.c:743,1
    - Dst: glob_inuse
      Src: /src/curl/src/tool_urlglob.c:745,1
    - Dst: glob_find_name
      Src: /src/curl/src/tool_urlglob.c:746,1
    - Dst: glob_inuse
      Src: /src/curl/src/tool_urlglob.c:747,1
    - Dst: glob_find_name
      Src: /src/curl/src/tool_urlglob.c:749,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_urlglob.c:753,1
    - Dst: globerror
      Src: /src/curl/src/tool_urlglob.c:754,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/tool_urlglob.c:765,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_urlglob.c:769,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/tool_urlglob.c:773,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_urlglob.c:777,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_urlglob.c:778,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_urlglob.c:783,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_urlglob.c:788,1
    - Dst: sanitize_file_name
      Src: /src/curl/src/tool_urlglob.c:794,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_urlglob.c:794,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_urlglob.c:796,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_urlglob.c:803,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 67
    argCount: 5
    argNames:
    - output
    - filename
    - glob
    - glob2
    - sc
    argTypes:
    - char**
    - char*
    - struct URLGlob*
    - struct URLGlob*
    - SANITIZEcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 806
    functionName: glob_match_url
    functionSourceFile: /src/curl/src/tool_urlglob.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_str_single
    - curlx_dyn_addn
    - curlx_dyn_add
    - curlx_str_until
    - glob_inuse
    - curlx_dyn_addf
    - curlx_dyn_free
    - DEBUGASSERT
    - curlx_str_number
    - glob_find_name
    - curlx_dyn_ptr
    - sanitize_file_name
    - globerror
    - ISDIGIT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode glob_match_url(char **output, const char *filename,\n                        struct
      URLGlob *glob, struct URLGlob *glob2,\n                        SANITIZEcode
      *sc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operhlp.c:40,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operhlp.c:41,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operhlp.c:42,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operhlp.c:43,1
    - Dst: single_transfer_cleanup
      Src: /src/curl/src/tool_operhlp.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: clean_getout
    functionSourceFile: /src/curl/src/tool_operhlp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - single_transfer_cleanup
    linkageType: ''
    returnType: void
    signature: void clean_getout(struct OperationConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: checkprefix
      Src: /src/curl/src/tool_operhlp.c:55,1
    - Dst: checkprefix
      Src: /src/curl/src/tool_operhlp.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - url
    - uploadfile
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: output_expected
    functionSourceFile: /src/curl/src/tool_operhlp.c
    functionUses: 0
    functionsReached:
    - checkprefix
    linkageType: ''
    returnType: bool
    signature: bool output_expected(const char *url, const char *uploadfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_operhlp.c:63,1
    - Dst: strcmp
      Src: /src/curl/src/tool_operhlp.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - uploadfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: stdin_upload
    functionSourceFile: /src/curl/src/tool_operhlp.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool stdin_upload(const char *uploadfile)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ucode
    argTypes:
    - CURLUcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: urlerr_cvt
    functionSourceFile: /src/curl/src/tool_operhlp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode urlerr_cvt(CURLUcode ucode)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/src/tool_operhlp.c:88,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_operhlp.c:93,1
    - Dst: urlerr_cvt
      Src: /src/curl/src/tool_operhlp.c:96,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_operhlp.c:99,1
    - Dst: urlerr_cvt
      Src: /src/curl/src/tool_operhlp.c:101,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_operhlp.c:104,1
    - Dst: urlerr_cvt
      Src: /src/curl/src/tool_operhlp.c:106,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operhlp.c:110,1
    - Dst: strrchr
      Src: /src/curl/src/tool_operhlp.c:114,1
    - Dst: strrchr
      Src: /src/curl/src/tool_operhlp.c:121,1
    - Dst: strrchr
      Src: /src/curl/src/tool_operhlp.c:122,1
    - Dst: curl_easy_escape
      Src: /src/curl/src/tool_operhlp.c:133,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_operhlp.c:139,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_operhlp.c:142,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operhlp.c:144,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_operhlp.c:148,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operhlp.c:149,1
    - Dst: urlerr_cvt
      Src: /src/curl/src/tool_operhlp.c:151,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_operhlp.c:154,1
    - Dst: urlerr_cvt
      Src: /src/curl/src/tool_operhlp.c:156,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_operhlp.c:159,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operhlp.c:161,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operhlp.c:162,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_operhlp.c:173,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operhlp.c:174,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 3
    argNames:
    - curl
    - inurlp
    - filename
    argTypes:
    - CURL*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 176
    functionName: add_file_name_to_url
    functionSourceFile: /src/curl/src/tool_operhlp.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_maprintf
    - curl_url_cleanup
    - urlerr_cvt
    - strrchr
    - curlx_strdup
    - curlx_free
    - curl_url_get
    - curl_free
    - curl_easy_escape
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode add_file_name_to_url(CURL *curl, char **inurlp, const char
      *filename)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/src/tool_operhlp.c:186,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_operhlp.c:197,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_operhlp.c:199,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_operhlp.c:200,1
    - Dst: strrchr
      Src: /src/curl/src/tool_operhlp.c:205,1
    - Dst: strrchr
      Src: /src/curl/src/tool_operhlp.c:206,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operhlp.c:219,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operhlp.c:223,1
    - Dst: warnf
      Src: /src/curl/src/tool_operhlp.c:225,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operhlp.c:228,1
    - Dst: sanitize_file_name
      Src: /src/curl/src/tool_operhlp.c:235,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operhlp.c:236,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_operhlp.c:246,1
    - Dst: urlerr_cvt
      Src: /src/curl/src/tool_operhlp.c:247,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - filename
    - url
    - sc
    argTypes:
    - char**
    - char*
    - SANITIZEcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 248
    functionName: get_url_file_name
    functionSourceFile: /src/curl/src/tool_operhlp.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curlx_safefree
    - curl_url_cleanup
    - curlx_strdup
    - strrchr
    - urlerr_cvt
    - sanitize_file_name
    - warnf
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode get_url_file_name(char **filename, const char *url, SANITIZEcode
      *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: ARGTYPE
    functionSourceFile: /src/curl/src/tool_getparam.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGTYPE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: convert_UTF8_to_tchar
    functionSourceFile: /src/curl/src/tool_getparam.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: convert_UTF8_to_tchar(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 391
    functionName: convert_tchar_to_UTF8
    functionSourceFile: /src/curl/src/tool_getparam.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: convert_tchar_to_UTF8(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: unicodefree
    functionSourceFile: /src/curl/src/tool_getparam.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unicodefree(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 396
    functionName: convert_UTF8_to_tchar
    functionSourceFile: /src/curl/src/tool_getparam.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: convert_UTF8_to_tchar(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: convert_tchar_to_UTF8
    functionSourceFile: /src/curl/src/tool_getparam.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: convert_tchar_to_UTF8(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    functionName: unicodefree
    functionSourceFile: /src/curl/src/tool_getparam.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unicodefree(ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_terminal_columns
      Src: /src/curl/src/tool_msgs.c:42,1
    - Dst: strlen
      Src: /src/curl/src/tool_msgs.c:43,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_msgs.c:45,1
    - Dst: strchr
      Src: /src/curl/src/tool_msgs.c:45,1
    - Dst: curl_mvsnprintf
      Src: /src/curl/src/tool_msgs.c:46,1
    - Dst: fputs
      Src: /src/curl/src/tool_msgs.c:49,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_msgs.c:54,1
    - Dst: fwrite
      Src: /src/curl/src/tool_msgs.c:62,1
    - Dst: fputs
      Src: /src/curl/src/tool_msgs.c:63,1
    - Dst: fputs
      Src: /src/curl/src/tool_msgs.c:68,1
    - Dst: fputs
      Src: /src/curl/src/tool_msgs.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - prefix
    - fmt
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 73
    functionName: voutf
    functionSourceFile: /src/curl/src/tool_msgs.c
    functionUses: 0
    functionsReached:
    - fputs
    - DEBUGASSERT
    - get_terminal_columns
    - curl_mvsnprintf
    - fwrite
    - strchr
    - strlen
    - ISBLANK
    linkageType: ''
    returnType: void
    signature: void voutf(const char *prefix, const char *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/src/tool_msgs.c:83,1
    - Dst: voutf
      Src: /src/curl/src/tool_msgs.c:84,1
    - Dst: va_end
      Src: /src/curl/src/tool_msgs.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: notef
    functionSourceFile: /src/curl/src/tool_msgs.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - voutf
    linkageType: ''
    returnType: void
    signature: void notef(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/src/tool_msgs.c:97,1
    - Dst: voutf
      Src: /src/curl/src/tool_msgs.c:98,1
    - Dst: va_end
      Src: /src/curl/src/tool_msgs.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: warnf
    functionSourceFile: /src/curl/src/tool_msgs.c
    functionUses: 23
    functionsReached:
    - va_start
    - va_end
    - voutf
    linkageType: ''
    returnType: void
    signature: void warnf(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/src/tool_msgs.c:111,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_msgs.c:112,1
    - Dst: strchr
      Src: /src/curl/src/tool_msgs.c:112,1
    - Dst: fputs
      Src: /src/curl/src/tool_msgs.c:113,1
    - Dst: curl_mvfprintf
      Src: /src/curl/src/tool_msgs.c:114,1
    - Dst: va_end
      Src: /src/curl/src/tool_msgs.c:115,1
    - Dst: fputs
      Src: /src/curl/src/tool_msgs.c:116,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_msgs.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: helpf
    functionSourceFile: /src/curl/src/tool_msgs.c
    functionUses: 1
    functionsReached:
    - curl_mfprintf
    - fputs
    - DEBUGASSERT
    - va_start
    - va_end
    - strchr
    - curl_mvfprintf
    linkageType: ''
    returnType: void
    signature: void helpf(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/src/tool_msgs.c:133,1
    - Dst: voutf
      Src: /src/curl/src/tool_msgs.c:134,1
    - Dst: va_end
      Src: /src/curl/src/tool_msgs.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: errorf
    functionSourceFile: /src/curl/src/tool_msgs.c
    functionUses: 17
    functionsReached:
    - va_start
    - va_end
    - voutf
    linkageType: ''
    returnType: void
    signature: void errorf(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/src/config2setopts.c:54,1
    - Dst: getsockname
      Src: /src/curl/src/config2setopts.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: get_address_family
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - getsockname
    - memset
    linkageType: ''
    returnType: int
    signature: int get_address_family(curl_socket_t sockfd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_address_family
      Src: /src/curl/src/config2setopts.c:78,1
    - Dst: setsockopt
      Src: /src/curl/src/config2setopts.c:81,1
    - Dst: setsockopt
      Src: /src/curl/src/config2setopts.c:86,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:94,1
    - Dst: curlx_strerror
      Src: /src/curl/src/config2setopts.c:95,1
    - Dst: setsockopt
      Src: /src/curl/src/config2setopts.c:102,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:106,1
    - Dst: curlx_strerror
      Src: /src/curl/src/config2setopts.c:107,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - clientp
    - curlfd
    - purpose
    argTypes:
    - void*
    - curl_socket_t
    - curlsocktype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 112
    functionName: sockopt_callback
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - warnf
    - get_address_family
    - curlx_strerror
    linkageType: ''
    returnType: int
    signature: "int sockopt_callback(void *clientp, curl_socket_t curlfd,\n                            curlsocktype
      purpose)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_version_info
      Src: /src/curl/src/config2setopts.c:121,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/config2setopts.c:123,1
    - Dst: strcspn
      Src: /src/curl/src/config2setopts.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: ssl_backend
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_version_info
    - strcspn
    linkageType: ''
    returnType: char
    signature: char *ssl_backend(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/src/config2setopts.c:139,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/config2setopts.c:143,1
    - Dst: curl_url_set
      Src: /src/curl/src/config2setopts.c:147,1
    - Dst: curl_url_get
      Src: /src/curl/src/config2setopts.c:150,1
    - Dst: curl_strequal
      Src: /src/curl/src/config2setopts.c:155,1
    - Dst: curl_strequal
      Src: /src/curl/src/config2setopts.c:156,1
    - Dst: ipfs_url_rewrite
      Src: /src/curl/src/config2setopts.c:157,1
    - Dst: curl_strequal
      Src: /src/curl/src/config2setopts.c:159,1
    - Dst: curl_strequal
      Src: /src/curl/src/config2setopts.c:161,1
    - Dst: proto_token
      Src: /src/curl/src/config2setopts.c:168,1
    - Dst: curl_free
      Src: /src/curl/src/config2setopts.c:169,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/config2setopts.c:176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - url
    - config
    - scheme
    argTypes:
    - char**
    - struct OperationConfig*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 183
    functionName: url_proto_and_rewrite
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - DEBUGASSERT
    - curl_url_cleanup
    - curl_strequal
    - curl_url_get
    - curl_free
    - proto_token
    - curl_url
    - ipfs_url_rewrite
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode url_proto_and_rewrite(char **url,\n                                      struct
      OperationConfig *config,\n                                      const char **scheme)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:194,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:195,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:199,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:203,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:207,1
    - Dst: findfile
      Src: /src/curl/src/config2setopts.c:212,1
    - Dst: curlx_strdup
      Src: /src/curl/src/config2setopts.c:214,1
    - Dst: curl_free
      Src: /src/curl/src/config2setopts.c:215,1
    - Dst: my_setopt_str
      Src: /src/curl/src/config2setopts.c:221,1
    - Dst: curlx_free
      Src: /src/curl/src/config2setopts.c:224,1
    - Dst: errorf
      Src: /src/curl/src/config2setopts.c:231,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:235,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - config
    - curl
    - use_proto
    argTypes:
    - struct OperationConfig*
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 238
    functionName: ssh_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - MY_SETOPT_STR
    - findfile
    - curlx_strdup
    - my_setopt_long
    - errorf
    - curlx_free
    - warnf
    - my_setopt_str
    - curl_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_setopts(struct OperationConfig *config, CURL *curl,\n
      \                           const char *use_proto)"
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - mintls
    - maxtls
    argTypes:
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 285
    functionName: tlsversion
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: "long tlsversion(unsigned char mintls,\n                       unsigned
      char maxtls)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:293,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:295,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:297,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:302,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:306,1
    - Dst: ssl_backend
      Src: /src/curl/src/config2setopts.c:308,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/config2setopts.c:318,1
    - Dst: strlen
      Src: /src/curl/src/config2setopts.c:319,1
    - Dst: notef
      Src: /src/curl/src/config2setopts.c:321,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/config2setopts.c:322,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:324,1
    - Dst: ssl_backend
      Src: /src/curl/src/config2setopts.c:325,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/config2setopts.c:331,1
    - Dst: strlen
      Src: /src/curl/src/config2setopts.c:332,1
    - Dst: notef
      Src: /src/curl/src/config2setopts.c:334,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/config2setopts.c:335,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:337,1
    - Dst: ssl_backend
      Src: /src/curl/src/config2setopts.c:338,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - config
    - curl
    argTypes:
    - struct OperationConfig*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 344
    functionName: ssl_ca_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - MY_SETOPT_STR
    - ssl_backend
    - CURL_UNCONST
    - warnf
    - curl_easy_setopt
    - strlen
    - notef
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ssl_ca_setopts(struct OperationConfig *config, CURL *curl)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:352,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:354,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:357,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:360,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:362,1
    - Dst: ssl_backend
      Src: /src/curl/src/config2setopts.c:363,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:366,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:369,1
    - Dst: ssl_backend
      Src: /src/curl/src/config2setopts.c:370,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:374,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:377,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:381,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:383,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:384,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:385,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:386,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:387,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:388,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:389,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:390,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:394,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:395,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:399,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:400,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:404,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:405,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:409,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:412,1
    - Dst: my_setopt_SSLVERSION
      Src: /src/curl/src/config2setopts.c:414,1
    - Dst: tlsversion
      Src: /src/curl/src/config2setopts.c:415,1
    - Dst: my_setopt_SSLVERSION
      Src: /src/curl/src/config2setopts.c:418,1
    - Dst: my_setopt_bitmask
      Src: /src/curl/src/config2setopts.c:431,1
    - Dst: my_setopt_bitmask
      Src: /src/curl/src/config2setopts.c:441,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:445,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:447,1
    - Dst: ssl_backend
      Src: /src/curl/src/config2setopts.c:448,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:451,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:454,1
    - Dst: ssl_backend
      Src: /src/curl/src/config2setopts.c:455,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:458,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:460,1
    - Dst: ssl_backend
      Src: /src/curl/src/config2setopts.c:461,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:464,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:467,1
    - Dst: ssl_backend
      Src: /src/curl/src/config2setopts.c:468,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:474,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:479,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:481,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:483,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:487,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:490,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:493,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:496,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:499,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 97
    argCount: 2
    argNames:
    - config
    - curl
    argTypes:
    - struct OperationConfig*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 502
    functionName: ssl_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - MY_SETOPT_STR
    - ssl_backend
    - my_setopt_SSLVERSION
    - tlsversion
    - my_setopt_long
    - warnf
    - my_setopt_bitmask
    - my_setopt_enum
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ssl_setopts(struct OperationConfig *config, CURL *curl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/config2setopts.c:513,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/config2setopts.c:516,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/config2setopts.c:518,1
    - Dst: ISBLANK
      Src: /src/curl/src/config2setopts.c:519,1
    - Dst: warnf
      Src: /src/curl/src/config2setopts.c:521,1
    - Dst: my_setopt_str
      Src: /src/curl/src/config2setopts.c:527,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/config2setopts.c:527,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/config2setopts.c:528,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:537,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:541,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:543,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - config
    - curl
    argTypes:
    - struct OperationConfig*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 546
    functionName: cookie_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - MY_SETOPT_STR
    - curlx_dyn_init
    - curlx_dyn_add
    - curlx_dyn_free
    - my_setopt_long
    - curlx_dyn_ptr
    - warnf
    - my_setopt_str
    - curlx_dyn_addf
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cookie_setopts(struct OperationConfig *config, CURL *curl)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:558,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:559,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:561,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:563,1
    - Dst: my_setopt_slist
      Src: /src/curl/src/config2setopts.c:566,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:569,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:572,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:580,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:583,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:586,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:588,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:591,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:594,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:597,1
    - Dst: cookie_setopts
      Src: /src/curl/src/config2setopts.c:601,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:608,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 3
    argNames:
    - config
    - curl
    - use_proto
    argTypes:
    - struct OperationConfig*
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 549
    functionDepth: 4
    functionLinenumber: 549
    functionLinenumberEnd: 610
    functionName: http_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - MY_SETOPT_STR
    - my_setopt_slist
    - my_setopt_long
    - cookie_setopts
    - my_setopt_enum
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_setopts(struct OperationConfig *config, CURL *curl,\n
      \                            const char *use_proto)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:615,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:618,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:621,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:625,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:627,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:628,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:631,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - config
    - curl
    argTypes:
    - struct OperationConfig*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 635
    functionName: tcp_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - my_setopt_ptr
    - my_setopt_long
    linkageType: ''
    returnType: void
    signature: void tcp_setopts(struct OperationConfig *config, CURL *curl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:645,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:649,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:653,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:656,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:658,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:659,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:660,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:661,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - config
    - curl
    - use_proto
    argTypes:
    - struct OperationConfig*
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 668
    functionName: ftp_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - MY_SETOPT_STR
    - my_setopt_enum
    - my_setopt_long
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_setopts(struct OperationConfig *config, CURL *curl,\n
      \                           const char *use_proto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:673,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:674,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - config
    - curl
    argTypes:
    - struct OperationConfig*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 677
    functionName: gen_trace_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - my_setopt_ptr
    - my_setopt_long
    linkageType: ''
    returnType: void
    signature: void gen_trace_setopts(struct OperationConfig *config, CURL *curl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:686,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:687,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:690,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:693,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:694,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:698,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:699,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:705,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:706,1
    - Dst: strcmp
      Src: /src/curl/src/config2setopts.c:708,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:711,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:712,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:713,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:716,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - config
    - per
    - curl
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 718
    functionName: gen_cb_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - strcmp
    - my_setopt_ptr
    - my_setopt_long
    linkageType: ''
    returnType: void
    signature: "void gen_cb_setopts(struct OperationConfig *config,\n                           struct
      per_transfer *per,\n                           CURL *curl)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: my_setopt_str
      Src: /src/curl/src/config2setopts.c:724,1
    - Dst: errorf
      Src: /src/curl/src/config2setopts.c:726,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:733,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:735,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:736,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:738,1
    - Dst: my_setopt_bitmask
      Src: /src/curl/src/config2setopts.c:741,1
    - Dst: my_setopt_bitmask
      Src: /src/curl/src/config2setopts.c:743,1
    - Dst: my_setopt_bitmask
      Src: /src/curl/src/config2setopts.c:745,1
    - Dst: my_setopt_bitmask
      Src: /src/curl/src/config2setopts.c:747,1
    - Dst: my_setopt_bitmask
      Src: /src/curl/src/config2setopts.c:749,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:751,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:752,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:756,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:760,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:763,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - config
    - curl
    argTypes:
    - struct OperationConfig*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 720
    functionDepth: 3
    functionLinenumber: 720
    functionLinenumberEnd: 766
    functionName: proxy_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - MY_SETOPT_STR
    - my_setopt_long
    - errorf
    - my_setopt_str
    - my_setopt_bitmask
    - my_setopt_enum
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode proxy_setopts(struct OperationConfig *config, CURL *curl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:772,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:774,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:776,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:778,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:781,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:784,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - config
    - curl
    argTypes:
    - struct OperationConfig*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 787
    functionName: tls_srp_setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - MY_SETOPT_STR
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tls_srp_setopts(struct OperationConfig *config, CURL *curl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: errorf
      Src: /src/curl/src/config2setopts.c:795,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:799,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/config2setopts.c:800,1
    - Dst: my_setopt_offt
      Src: /src/curl/src/config2setopts.c:801,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/config2setopts.c:802,1
    - Dst: curl_mime_free
      Src: /src/curl/src/config2setopts.c:807,1
    - Dst: errorf
      Src: /src/curl/src/config2setopts.c:810,1
    - Dst: tool2curlmime
      Src: /src/curl/src/config2setopts.c:814,1
    - Dst: my_setopt_mimepost
      Src: /src/curl/src/config2setopts.c:816,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - config
    - curl
    argTypes:
    - struct OperationConfig*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 823
    functionName: setopt_post
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - MY_SETOPT_STR
    - my_setopt_offt
    - curl_mime_free
    - curlx_dyn_len
    - errorf
    - curlx_dyn_ptr
    - tool2curlmime
    - my_setopt_mimepost
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setopt_post(struct OperationConfig *config, CURL *curl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/src/config2setopts.c:828,1
    - Dst: curlx_str_number
      Src: /src/curl/src/config2setopts.c:832,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:833,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:839,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - config
    - curl
    argTypes:
    - struct OperationConfig*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 842
    functionName: buffersize
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - getenv
    - curlx_str_number
    - my_setopt_long
    linkageType: ''
    returnType: void
    signature: void buffersize(struct OperationConfig *config, CURL *curl)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: url_proto_and_rewrite
      Src: /src/curl/src/config2setopts.c:850,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/config2setopts.c:854,1
    - Dst: getenv
      Src: /src/curl/src/config2setopts.c:860,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/config2setopts.c:865,1
    - Dst: gen_trace_setopts
      Src: /src/curl/src/config2setopts.c:870,1
    - Dst: buffersize
      Src: /src/curl/src/config2setopts.c:872,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:874,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:875,1
    - Dst: gen_cb_setopts
      Src: /src/curl/src/config2setopts.c:878,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:880,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:881,1
    - Dst: proxy_setopts
      Src: /src/curl/src/config2setopts.c:882,1
    - Dst: setopt_bad
      Src: /src/curl/src/config2setopts.c:883,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:886,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:887,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:888,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:889,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:890,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:893,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:895,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:897,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:899,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:900,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:901,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:902,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:903,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:904,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:905,1
    - Dst: setopt_post
      Src: /src/curl/src/config2setopts.c:907,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:912,1
    - Dst: my_setopt_bitmask
      Src: /src/curl/src/config2setopts.c:915,1
    - Dst: my_setopt_slist
      Src: /src/curl/src/config2setopts.c:917,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:920,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:921,1
    - Dst: http_setopts
      Src: /src/curl/src/config2setopts.c:925,1
    - Dst: ftp_setopts
      Src: /src/curl/src/config2setopts.c:927,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:931,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:932,1
    - Dst: my_setopt_offt
      Src: /src/curl/src/config2setopts.c:933,1
    - Dst: my_setopt_offt
      Src: /src/curl/src/config2setopts.c:934,1
    - Dst: my_setopt_offt
      Src: /src/curl/src/config2setopts.c:937,1
    - Dst: my_setopt_offt
      Src: /src/curl/src/config2setopts.c:939,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:941,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:942,1
    - Dst: ssh_setopts
      Src: /src/curl/src/config2setopts.c:944,1
    - Dst: setopt_bad
      Src: /src/curl/src/config2setopts.c:945,1
    - Dst: ssl_ca_setopts
      Src: /src/curl/src/config2setopts.c:949,1
    - Dst: ssl_setopts
      Src: /src/curl/src/config2setopts.c:951,1
    - Dst: setopt_bad
      Src: /src/curl/src/config2setopts.c:952,1
    - Dst: getenv
      Src: /src/curl/src/config2setopts.c:956,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:958,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:964,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:968,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:970,1
    - Dst: my_setopt_slist
      Src: /src/curl/src/config2setopts.c:971,1
    - Dst: my_setopt_slist
      Src: /src/curl/src/config2setopts.c:972,1
    - Dst: my_setopt_slist
      Src: /src/curl/src/config2setopts.c:973,1
    - Dst: my_setopt_enum
      Src: /src/curl/src/config2setopts.c:975,1
    - Dst: my_setopt_offt
      Src: /src/curl/src/config2setopts.c:976,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:977,1
    - Dst: customrequest_helper
      Src: /src/curl/src/config2setopts.c:978,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:979,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:980,1
    - Dst: progressbarinit
      Src: /src/curl/src/config2setopts.c:981,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:982,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:983,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:984,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:985,1
    - Dst: my_setopt_slist
      Src: /src/curl/src/config2setopts.c:986,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:987,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:988,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:989,1
    - Dst: my_setopt_offt
      Src: /src/curl/src/config2setopts.c:992,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:993,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:995,1
    - Dst: my_setopt_bitmask
      Src: /src/curl/src/config2setopts.c:997,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:998,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:999,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1002,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1003,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1007,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1008,1
    - Dst: tcp_setopts
      Src: /src/curl/src/config2setopts.c:1011,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1014,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:1016,1
    - Dst: my_setopt_slist
      Src: /src/curl/src/config2setopts.c:1017,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1018,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1021,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:1024,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:1026,1
    - Dst: my_setopt_slist
      Src: /src/curl/src/config2setopts.c:1028,1
    - Dst: my_setopt_slist
      Src: /src/curl/src/config2setopts.c:1029,1
    - Dst: tls_srp_setopts
      Src: /src/curl/src/config2setopts.c:1032,1
    - Dst: setopt_bad
      Src: /src/curl/src/config2setopts.c:1033,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1038,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:1040,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:1041,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1042,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:1046,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:1049,1
    - Dst: MY_SETOPT_STR
      Src: /src/curl/src/config2setopts.c:1053,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1054,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1058,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1061,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:1066,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/config2setopts.c:1067,1
    - Dst: errorf
      Src: /src/curl/src/config2setopts.c:1070,1
    - Dst: errorf
      Src: /src/curl/src/config2setopts.c:1074,1
    - Dst: my_setopt_long
      Src: /src/curl/src/config2setopts.c:1079,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 164
    argCount: 4
    argNames:
    - config
    - per
    - curl
    - share
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    - CURL*
    - CURLSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 844
    functionDepth: 5
    functionLinenumber: 844
    functionLinenumberEnd: 1081
    functionName: config2setopts
    functionSourceFile: /src/curl/src/config2setopts.c
    functionUses: 0
    functionsReached:
    - tls_srp_setopts
    - setopt_bad
    - customrequest_helper
    - getenv
    - my_setopt_ptr
    - my_setopt_offt
    - gen_trace_setopts
    - proxy_setopts
    - my_setopt_bitmask
    - url_proto_and_rewrite
    - setopt_post
    - ssl_ca_setopts
    - ftp_setopts
    - my_setopt_long
    - progressbarinit
    - gen_cb_setopts
    - http_setopts
    - my_setopt_enum
    - MY_SETOPT_STR
    - ssl_setopts
    - my_setopt_slist
    - errorf
    - curl_easy_setopt
    - ssh_setopts
    - buffersize
    - tcp_setopts
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode config2setopts(struct OperationConfig *config,\n                        struct
      per_transfer *per,\n                        CURL *curl,\n                        CURLSH
      *share)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: slist_wc_free_all
      Src: /src/curl/src/tool_easysrc.c:78,1
    - Dst: slist_wc_free_all
      Src: /src/curl/src/tool_easysrc.c:80,1
    - Dst: slist_wc_free_all
      Src: /src/curl/src/tool_easysrc.c:82,1
    - Dst: slist_wc_free_all
      Src: /src/curl/src/tool_easysrc.c:84,1
    - Dst: slist_wc_free_all
      Src: /src/curl/src/tool_easysrc.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: easysrc_free
    functionSourceFile: /src/curl/src/tool_easysrc.c
    functionUses: 0
    functionsReached:
    - slist_wc_free_all
    linkageType: ''
    returnType: void
    signature: void easysrc_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slist_wc_append
      Src: /src/curl/src/tool_easysrc.c:94,1
    - Dst: easysrc_free
      Src: /src/curl/src/tool_easysrc.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - plist
    - line
    argTypes:
    - struct slist_wc**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: easysrc_add
    functionSourceFile: /src/curl/src/tool_easysrc.c
    functionUses: 0
    functionsReached:
    - easysrc_free
    - slist_wc_append
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode easysrc_add(struct slist_wc **plist, const char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/src/tool_easysrc.c:109,1
    - Dst: curl_mvaprintf
      Src: /src/curl/src/tool_easysrc.c:110,1
    - Dst: va_end
      Src: /src/curl/src/tool_easysrc.c:111,1
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:116,1
    - Dst: curl_free
      Src: /src/curl/src/tool_easysrc.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - plist
    - fmt
    argTypes:
    - struct slist_wc**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: easysrc_addf
    functionSourceFile: /src/curl/src/tool_easysrc.c
    functionUses: 12
    functionsReached:
    - curl_mvaprintf
    - easysrc_add
    - va_start
    - va_end
    - curl_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode easysrc_addf(struct slist_wc **plist, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: easysrc_init
    functionSourceFile: /src/curl/src/tool_easysrc.c
    functionUses: 0
    functionsReached:
    - easysrc_add
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode easysrc_init(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:134,1
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:137,1
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:141,1
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:144,1
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:146,1
    - Dst: slist_wc_free_all
      Src: /src/curl/src/tool_easysrc.c:148,1
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:153,1
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:155,1
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:157,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 160
    functionName: easysrc_perform
    functionSourceFile: /src/curl/src/tool_easysrc.c
    functionUses: 0
    functionsReached:
    - slist_wc_free_all
    - easysrc_add
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode easysrc_perform(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:164,1
    - Dst: easysrc_add
      Src: /src/curl/src/tool_easysrc.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: easysrc_cleanup
    functionSourceFile: /src/curl/src/tool_easysrc.c
    functionUses: 0
    functionsReached:
    - easysrc_add
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode easysrc_cleanup(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_easysrc.c:178,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_easysrc.c:179,1
    - Dst: warnf
      Src: /src/curl/src/tool_easysrc.c:185,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_easysrc.c:191,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_easysrc.c:196,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_easysrc.c:201,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_easysrc.c:204,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_easysrc.c:207,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_easysrc.c:211,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_easysrc.c:214,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_easysrc.c:221,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_easysrc.c:225,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_easysrc.c:228,1
    - Dst: easysrc_free
      Src: /src/curl/src/tool_easysrc.c:231,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 232
    functionName: dumpeasysrc
    functionSourceFile: /src/curl/src/tool_easysrc.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_mfprintf
    - curlx_fopen
    - easysrc_free
    - strcmp
    - warnf
    linkageType: ''
    returnType: void
    signature: void dumpeasysrc(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/src/tool_cb_hdr.c:72,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_cb_hdr.c:76,1
    - Dst: curl_url
      Src: /src/curl/src/tool_cb_hdr.c:95,1
    - Dst: curlx_memdup0
      Src: /src/curl/src/tool_cb_hdr.c:100,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_cb_hdr.c:105,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_cb_hdr.c:107,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_cb_hdr.c:111,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_cb_hdr.c:114,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_cb_hdr.c:117,1
    - Dst: strcmp
      Src: /src/curl/src/tool_cb_hdr.c:120,1
    - Dst: strcmp
      Src: /src/curl/src/tool_cb_hdr.c:121,1
    - Dst: strcmp
      Src: /src/curl/src/tool_cb_hdr.c:122,1
    - Dst: strcmp
      Src: /src/curl/src/tool_cb_hdr.c:123,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_hdr.c:124,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_hdr.c:135,1
    - Dst: curl_free
      Src: /src/curl/src/tool_cb_hdr.c:139,1
    - Dst: curl_free
      Src: /src/curl/src/tool_cb_hdr.c:140,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_cb_hdr.c:141,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cb_hdr.c:142,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 52
    argCount: 4
    argNames:
    - curl
    - location
    - loclen
    - stream
    argTypes:
    - CURL*
    - char*
    - size_t
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 144
    functionName: write_linked_location
    functionSourceFile: /src/curl/src/tool_cb_hdr.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_easy_getinfo
    - curl_mfprintf
    - getenv
    - curl_url_cleanup
    - curlx_str_number
    - fwrite
    - strcmp
    - curlx_free
    - curlx_memdup0
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: void
    signature: "void write_linked_location(CURL *curl, const char *location,\n                                  size_t
      loclen, FILE *stream)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: curlx_memdup0
      Src: /src/curl/src/tool_cb_hdr.c:156,1
    - Dst: strchr
      Src: /src/curl/src/tool_cb_hdr.c:170,1
    - Dst: strchr
      Src: /src/curl/src/tool_cb_hdr.c:177,1
    - Dst: strchr
      Src: /src/curl/src/tool_cb_hdr.c:180,1
    - Dst: strrchr
      Src: /src/curl/src/tool_cb_hdr.c:186,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cb_hdr.c:190,1
    - Dst: strrchr
      Src: /src/curl/src/tool_cb_hdr.c:198,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cb_hdr.c:202,1
    - Dst: strchr
      Src: /src/curl/src/tool_cb_hdr.c:208,1
    - Dst: strchr
      Src: /src/curl/src/tool_cb_hdr.c:212,1
    - Dst: memmove
      Src: /src/curl/src/tool_cb_hdr.c:217,1
    - Dst: strlen
      Src: /src/curl/src/tool_cb_hdr.c:217,1
    - Dst: sanitize_file_name
      Src: /src/curl/src/tool_cb_hdr.c:222,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cb_hdr.c:223,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - ptr
    - len
    - stop
    argTypes:
    - char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 231
    functionName: parse_filename
    functionSourceFile: /src/curl/src/tool_cb_hdr.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - memmove
    - strrchr
    - sanitize_file_name
    - curlx_memdup0
    - strchr
    - strlen
    linkageType: ''
    returnType: char
    signature: char *parse_filename(const char *ptr, size_t len, char stop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_cb_hdr.c:239,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_hdr.c:240,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cb_hdr.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - hdrcbdata
    - stream
    argTypes:
    - struct HdrCbData*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 249
    functionName: tool_write_headers
    functionSourceFile: /src/curl/src/tool_cb_hdr.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_slist_free_all
    - fwrite
    linkageType: ''
    returnType: int
    signature: int tool_write_headers(struct HdrCbData *hdrcbdata, FILE *stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/src/tool_cb_hdr.c:259,1
    - Dst: ISSPACE
      Src: /src/curl/src/tool_cb_hdr.c:261,1
    - Dst: fileno
      Src: /src/curl/src/tool_cb_hdr.c:267,1
    - Dst: curlx_fstat
      Src: /src/curl/src/tool_cb_hdr.c:271,1
    - Dst: S_ISREG
      Src: /src/curl/src/tool_cb_hdr.c:272,1
    - Dst: toolx_ftruncate
      Src: /src/curl/src/tool_cb_hdr.c:273,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_hdr.c:276,1
    - Dst: fputc
      Src: /src/curl/src/tool_cb_hdr.c:278,1
    - Dst: fflush
      Src: /src/curl/src/tool_cb_hdr.c:279,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - etag_h
    - endp
    - etag_save
    argTypes:
    - char*
    - char*
    - struct OutStruct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 283
    functionName: save_etag
    functionSourceFile: /src/curl/src/tool_cb_hdr.c
    functionUses: 0
    functionsReached:
    - ISBLANK
    - ISSPACE
    - S_ISREG
    - fwrite
    - toolx_ftruncate
    - fflush
    - curlx_fstat
    - fileno
    - fputc
    linkageType: ''
    returnType: size_t
    signature: "size_t save_etag(const char *etag_h, const char *endp,\n                        struct
      OutStruct *etag_save)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: checkprefix
      Src: /src/curl/src/tool_cb_hdr.c:298,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/src/tool_cb_hdr.c:302,1
    - Dst: parse_filename
      Src: /src/curl/src/tool_cb_hdr.c:304,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cb_hdr.c:308,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cb_hdr.c:312,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_cb_hdr.c:315,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cb_hdr.c:317,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_cb_hdr.c:320,1
    - Dst: curl_free
      Src: /src/curl/src/tool_cb_hdr.c:321,1
    - Dst: checkprefix
      Src: /src/curl/src/tool_cb_hdr.c:333,1
    - Dst: ISALPHA
      Src: /src/curl/src/tool_cb_hdr.c:341,1
    - Dst: memcmp
      Src: /src/curl/src/tool_cb_hdr.c:346,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/src/tool_cb_hdr.c:357,1
    - Dst: parse_filename
      Src: /src/curl/src/tool_cb_hdr.c:359,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cb_hdr.c:363,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_cb_hdr.c:367,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_cb_hdr.c:370,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cb_hdr.c:372,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_cb_hdr.c:375,1
    - Dst: curl_free
      Src: /src/curl/src/tool_cb_hdr.c:376,1
    - Dst: tool_create_output_file
      Src: /src/curl/src/tool_cb_hdr.c:388,1
    - Dst: tool_write_headers
      Src: /src/curl/src/tool_cb_hdr.c:390,1
    - Dst: tool_create_output_file
      Src: /src/curl/src/tool_cb_hdr.c:395,1
    - Dst: tool_write_headers
      Src: /src/curl/src/tool_cb_hdr.c:397,1
    - Dst: curlx_memdup0
      Src: /src/curl/src/tool_cb_hdr.c:405,1
    - Dst: curl_slist_append
      Src: /src/curl/src/tool_cb_hdr.c:408,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_cb_hdr.c:409,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cb_hdr.c:411,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_cb_hdr.c:416,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 93
    argCount: 5
    argNames:
    - str
    - end
    - cb
    - per
    - response
    argTypes:
    - char*
    - char*
    - size_t
    - struct per_transfer*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 424
    functionName: content_disposition
    functionSourceFile: /src/curl/src/tool_cb_hdr.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - tool_create_output_file
    - tool_write_headers
    - curl_maprintf
    - checkprefix
    - memcmp
    - curl_slist_free_all
    - curlx_strdup
    - curlx_str_passblanks
    - curlx_free
    - curl_slist_append
    - parse_filename
    - curlx_memdup0
    - curl_free
    - ISALPHA
    linkageType: ''
    returnType: size_t
    signature: "size_t content_disposition(const char *str, const char *end,\n                                  size_t
      cb, struct per_transfer *per,\n                                  long response)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: warnf
      Src: /src/curl/src/tool_cb_hdr.c:448,1
    - Dst: memset
      Src: /src/curl/src/tool_cb_hdr.c:456,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_hdr.c:464,1
    - Dst: fflush
      Src: /src/curl/src/tool_cb_hdr.c:468,1
    - Dst: errorf
      Src: /src/curl/src/tool_cb_hdr.c:469,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_cb_hdr.c:474,1
    - Dst: proto_token
      Src: /src/curl/src/tool_cb_hdr.c:475,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_cb_hdr.c:478,1
    - Dst: checkprefix
      Src: /src/curl/src/tool_cb_hdr.c:486,1
    - Dst: save_etag
      Src: /src/curl/src/tool_cb_hdr.c:487,1
    - Dst: content_disposition
      Src: /src/curl/src/tool_cb_hdr.c:498,1
    - Dst: memchr
      Src: /src/curl/src/tool_cb_hdr.c:504,1
    - Dst: tool_create_output_file
      Src: /src/curl/src/tool_cb_hdr.c:520,1
    - Dst: memchr
      Src: /src/curl/src/tool_cb_hdr.c:528,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_hdr.c:531,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_hdr.c:533,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_cb_hdr.c:535,1
    - Dst: write_linked_location
      Src: /src/curl/src/tool_cb_hdr.c:536,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_hdr.c:540,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_hdr.c:545,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 57
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 548
    functionName: tool_header_cb
    functionSourceFile: /src/curl/src/tool_cb_hdr.c
    functionUses: 0
    functionsReached:
    - tool_create_output_file
    - curl_easy_getinfo
    - save_etag
    - curl_mfprintf
    - checkprefix
    - memchr
    - content_disposition
    - fwrite
    - errorf
    - curl_strnequal
    - write_linked_location
    - fflush
    - warnf
    - memset
    - proto_token
    linkageType: ''
    returnType: size_t
    signature: size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/src/tool_ssls.c:41,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_ssls.c:45,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/tool_ssls.c:47,1
    - Dst: my_setopt_ptr
      Src: /src/curl/src/tool_ssls.c:49,1
    - Dst: my_setopt_long
      Src: /src/curl/src/tool_ssls.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - config
    - share
    - peasy
    argTypes:
    - struct OperationConfig*
    - CURLSH*
    - CURL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 53
    functionName: tool_ssls_easy
    functionSourceFile: /src/curl/src/tool_ssls.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - my_setopt_ptr
    - curl_easy_setopt
    - my_setopt_long
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_ssls_easy(struct OperationConfig *config,\n                               CURLSH
      *share, CURL **peasy)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_ssls.c:68,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_ssls.c:69,1
    - Dst: notef
      Src: /src/curl/src/tool_ssls.c:71,1
    - Dst: tool_ssls_easy
      Src: /src/curl/src/tool_ssls.c:75,1
    - Dst: my_get_line
      Src: /src/curl/src/tool_ssls.c:80,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_ssls.c:82,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_ssls.c:83,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_ssls.c:84,1
    - Dst: memchr
      Src: /src/curl/src/tool_ssls.c:86,1
    - Dst: strlen
      Src: /src/curl/src/tool_ssls.c:86,1
    - Dst: warnf
      Src: /src/curl/src/tool_ssls.c:88,1
    - Dst: curlx_base64_decode
      Src: /src/curl/src/tool_ssls.c:92,1
    - Dst: warnf
      Src: /src/curl/src/tool_ssls.c:94,1
    - Dst: strlen
      Src: /src/curl/src/tool_ssls.c:98,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_ssls.c:99,1
    - Dst: curlx_base64_decode
      Src: /src/curl/src/tool_ssls.c:103,1
    - Dst: warnf
      Src: /src/curl/src/tool_ssls.c:105,1
    - Dst: curl_easy_ssls_import
      Src: /src/curl/src/tool_ssls.c:109,1
    - Dst: warnf
      Src: /src/curl/src/tool_ssls.c:112,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/src/tool_ssls.c:124,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_ssls.c:126,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_ssls.c:127,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_ssls.c:128,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_ssls.c:129,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 3
    argNames:
    - config
    - share
    - filename
    argTypes:
    - struct OperationConfig*
    - CURLSH*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 131
    functionName: tool_ssls_load
    functionSourceFile: /src/curl/src/tool_ssls.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_dyn_init
    - curlx_fclose
    - curl_easy_ssls_import
    - curlx_dyn_free
    - memchr
    - curlx_fopen
    - curlx_dyn_ptr
    - curlx_free
    - my_get_line
    - warnf
    - curl_easy_cleanup
    - strlen
    - curlx_base64_decode
    - ISBLANK
    - tool_ssls_easy
    - notef
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_ssls_load(struct OperationConfig *config,\n                        CURLSH
      *share, const char *filename)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/curl/src/tool_ssls.c:156,1
    - Dst: curlx_base64_encode
      Src: /src/curl/src/tool_ssls.c:160,1
    - Dst: fwrite
      Src: /src/curl/src/tool_ssls.c:164,1
    - Dst: fputc
      Src: /src/curl/src/tool_ssls.c:166,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_ssls.c:168,1
    - Dst: curlx_base64_encode
      Src: /src/curl/src/tool_ssls.c:169,1
    - Dst: fwrite
      Src: /src/curl/src/tool_ssls.c:173,1
    - Dst: fputc
      Src: /src/curl/src/tool_ssls.c:175,1
    - Dst: warnf
      Src: /src/curl/src/tool_ssls.c:181,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_ssls.c:183,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 11
    argNames:
    - easy
    - userptr
    - session_key
    - shmac
    - shmac_len
    - sdata
    - sdata_len
    - valid_until
    - ietf_tls_id
    - alpn
    - earlydata_max
    argTypes:
    - CURL*
    - void*
    - char*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - curl_off_t
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 185
    functionName: tool_ssls_exp
    functionSourceFile: /src/curl/src/tool_ssls.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - fputs
    - curlx_base64_encode
    - fwrite
    - curlx_free
    - warnf
    - fputc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_ssls_exp(CURL *easy, void *userptr,\n                              const
      char *session_key,\n                              const unsigned char *shmac,
      size_t shmac_len,\n                              const unsigned char *sdata,
      size_t sdata_len,\n                              curl_off_t valid_until, int
      ietf_tls_id,\n                              const char *alpn, size_t earlydata_max)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_ssls.c:195,1
    - Dst: warnf
      Src: /src/curl/src/tool_ssls.c:197,1
    - Dst: tool_ssls_easy
      Src: /src/curl/src/tool_ssls.c:201,1
    - Dst: curl_easy_ssls_export
      Src: /src/curl/src/tool_ssls.c:205,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/src/tool_ssls.c:209,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_ssls.c:211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - config
    - share
    - filename
    argTypes:
    - struct OperationConfig*
    - CURLSH*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 213
    functionName: tool_ssls_save
    functionSourceFile: /src/curl/src/tool_ssls.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_easy_ssls_export
    - curlx_fopen
    - warnf
    - curl_easy_cleanup
    - tool_ssls_easy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool_ssls_save(struct OperationConfig *config,\n                        CURLSH
      *share, const char *filename)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/src/slist_wc.c:36,1
    - Dst: curlx_malloc
      Src: /src/curl/src/slist_wc.c:42,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/slist_wc.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - struct slist_wc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 57
    functionName: slist_wc_append
    functionSourceFile: /src/curl/src/slist_wc.c
    functionUses: 1
    functionsReached:
    - curlx_malloc
    - curl_slist_append
    - curl_slist_free_all
    linkageType: ''
    returnType: struct slist_wc
    signature: struct slist_wc *slist_wc_append(struct slist_wc *list, const char
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_free_all
      Src: /src/curl/src/slist_wc.c:65,1
    - Dst: curlx_free
      Src: /src/curl/src/slist_wc.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct slist_wc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: slist_wc_free_all
    functionSourceFile: /src/curl/src/slist_wc.c
    functionUses: 2
    functionsReached:
    - curlx_free
    - curl_slist_free_all
    linkageType: ''
    returnType: void
    signature: void slist_wc_free_all(struct slist_wc *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/src/tool_vms.c:53,1
    - Dst: strcmp
      Src: /src/curl/src/tool_vms.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: is_vms_shell
    functionSourceFile: /src/curl/src/tool_vms.c
    functionUses: 0
    functionsReached:
    - getenv
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_vms_shell(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_vms_shell
      Src: /src/curl/src/tool_vms.c:94,1
    - Dst: decc$__posix_exit
      Src: /src/curl/src/tool_vms.c:95,1
    - Dst: decc$exit
      Src: /src/curl/src/tool_vms.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - code
    - vms_show
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: vms_special_exit
    functionSourceFile: /src/curl/src/tool_vms.c
    functionUses: 1
    functionsReached:
    - decc$exit
    - decc$__posix_exit
    - is_vms_shell
    linkageType: ''
    returnType: void
    signature: void vms_special_exit(int code, int vms_show)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: decc$feature_get_index
      Src: /src/curl/src/tool_vms.c:160,1
    - Dst: decc$feature_get_value
      Src: /src/curl/src/tool_vms.c:164,1
    - Dst: decc$feature_get_value
      Src: /src/curl/src/tool_vms.c:165,1
    - Dst: decc$feature_get_value
      Src: /src/curl/src/tool_vms.c:166,1
    - Dst: decc$feature_set_value
      Src: /src/curl/src/tool_vms.c:172,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_vms.c:178,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_vms.c:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 188
    functionName: decc_init
    functionSourceFile: /src/curl/src/tool_vms.c
    functionUses: 0
    functionsReached:
    - decc$feature_set_value
    - curl_mprintf
    - decc$feature_get_value
    - decc$feature_get_index
    linkageType: ''
    returnType: void
    signature: void decc_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/src/var.c:43,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/var.c:43,1
    - Dst: curlx_free
      Src: /src/curl/src/var.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: varcleanup
    functionSourceFile: /src/curl/src/var.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: void varcleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/var.c:52,1
    - Dst: strncmp
      Src: /src/curl/src/var.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - name
    - nlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: varcontent
    functionSourceFile: /src/curl/src/var.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: struct tool_var
    signature: struct tool_var *varcontent(const char *name, size_t nlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: ENDOFFUNC
    functionSourceFile: /src/curl/src/var.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENDOFFUNC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: FUNCMATCH
    functionSourceFile: /src/curl/src/var.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCMATCH(ptr, name, len)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: FUNCMATCH
      Src: /src/curl/src/var.c:94,1
    - Dst: ISSPACE
      Src: /src/curl/src/var.c:99,1
    - Dst: ISSPACE
      Src: /src/curl/src/var.c:103,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/var.c:107,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/var.c:108,1
    - Dst: FUNCMATCH
      Src: /src/curl/src/var.c:113,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/var.c:115,1
    - Dst: jsonquoted
      Src: /src/curl/src/var.c:117,1
    - Dst: FUNCMATCH
      Src: /src/curl/src/var.c:123,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/var.c:125,1
    - Dst: curl_easy_escape
      Src: /src/curl/src/var.c:127,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/var.c:134,1
    - Dst: curl_free
      Src: /src/curl/src/var.c:136,1
    - Dst: FUNCMATCH
      Src: /src/curl/src/var.c:141,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/var.c:143,1
    - Dst: curlx_base64_encode
      Src: /src/curl/src/var.c:147,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/var.c:154,1
    - Dst: curlx_free
      Src: /src/curl/src/var.c:156,1
    - Dst: FUNCMATCH
      Src: /src/curl/src/var.c:161,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/var.c:163,1
    - Dst: curlx_base64_decode
      Src: /src/curl/src/var.c:167,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/var.c:170,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/var.c:174,1
    - Dst: curlx_free
      Src: /src/curl/src/var.c:176,1
    - Dst: errorf
      Src: /src/curl/src/var.c:184,1
    - Dst: curlx_free
      Src: /src/curl/src/var.c:189,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/var.c:191,1
    - Dst: curlx_memdup0
      Src: /src/curl/src/var.c:192,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/var.c:192,1
    - Dst: curlx_free
      Src: /src/curl/src/var.c:199,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/var.c:201,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 95
    argCount: 5
    argNames:
    - c
    - clen
    - f
    - flen
    - out
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 203
    functionName: varfunc
    functionSourceFile: /src/curl/src/var.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - curlx_dyn_add
    - ISSPACE
    - curlx_dyn_free
    - curlx_base64_encode
    - curlx_dyn_len
    - errorf
    - curlx_dyn_reset
    - curlx_free
    - curlx_base64_decode
    - curlx_dyn_ptr
    - curlx_memdup0
    - curl_free
    - FUNCMATCH
    - curl_easy_escape
    - jsonquoted
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError varfunc(char *c, /* content */\n                              size_t
      clen, /* content length */\n                              const char *f, /*
      functions */\n                              size_t flen, /* function string
      length */\n                              struct dynbuf *out)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/var.c:212,1
    - Dst: strstr
      Src: /src/curl/src/var.c:214,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/var.c:221,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/var.c:226,1
    - Dst: strstr
      Src: /src/curl/src/var.c:236,1
    - Dst: warnf
      Src: /src/curl/src/var.c:241,1
    - Dst: memchr
      Src: /src/curl/src/var.c:249,1
    - Dst: warnf
      Src: /src/curl/src/var.c:255,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/var.c:257,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/var.c:263,1
    - Dst: memcpy
      Src: /src/curl/src/var.c:268,1
    - Dst: ISALNUM
      Src: /src/curl/src/var.c:272,1
    - Dst: warnf
      Src: /src/curl/src/var.c:275,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/var.c:277,1
    - Dst: varcontent
      Src: /src/curl/src/var.c:285,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/var.c:287,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/var.c:293,1
    - Dst: varfunc
      Src: /src/curl/src/var.c:297,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/var.c:300,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/var.c:301,1
    - Dst: memchr
      Src: /src/curl/src/var.c:307,1
    - Dst: errorf
      Src: /src/curl/src/var.c:309,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/var.c:314,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/var.c:315,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/var.c:327,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/var.c:333,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 82
    argCount: 3
    argNames:
    - line
    - out
    - replaced
    argTypes:
    - char*
    - struct dynbuf*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 335
    functionName: varexpand
    functionSourceFile: /src/curl/src/var.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - memcpy
    - strstr
    - curlx_dyn_addn
    - curlx_dyn_add
    - curlx_dyn_free
    - memchr
    - curlx_dyn_len
    - CURL_UNCONST
    - errorf
    - curlx_dyn_ptr
    - warnf
    - varcontent
    - ISALNUM
    - varfunc
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError varexpand(const char *line, struct dynbuf *out, bool
      *replaced)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: varcontent
      Src: /src/curl/src/var.c:349,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/var.c:350,1
    - Dst: notef
      Src: /src/curl/src/var.c:352,1
    - Dst: curlx_calloc
      Src: /src/curl/src/var.c:354,1
    - Dst: memcpy
      Src: /src/curl/src/var.c:356,1
    - Dst: curlx_memdup0
      Src: /src/curl/src/var.c:359,1
    - Dst: curlx_free
      Src: /src/curl/src/var.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - name
    - nlen
    - content
    - clen
    - contalloc
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 370
    functionName: addvariable
    functionSourceFile: /src/curl/src/var.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - curlx_free
    - curlx_calloc
    - curlx_memdup0
    - varcontent
    - notef
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError addvariable(const char *name,\n                                  size_t
      nlen,\n                                  const char *content,\n                                  size_t
      clen,\n                                  bool contalloc)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ISALNUM
      Src: /src/curl/src/var.c:392,1
    - Dst: warnf
      Src: /src/curl/src/var.c:396,1
    - Dst: memcpy
      Src: /src/curl/src/var.c:404,1
    - Dst: getenv
      Src: /src/curl/src/var.c:408,1
    - Dst: errorf
      Src: /src/curl/src/var.c:411,1
    - Dst: strlen
      Src: /src/curl/src/var.c:417,1
    - Dst: ISDIGIT
      Src: /src/curl/src/var.c:420,1
    - Dst: curlx_str_number
      Src: /src/curl/src/var.c:423,1
    - Dst: curlx_str_single
      Src: /src/curl/src/var.c:424,1
    - Dst: curlx_str_single
      Src: /src/curl/src/var.c:426,1
    - Dst: curlx_str_number
      Src: /src/curl/src/var.c:427,1
    - Dst: curlx_str_single
      Src: /src/curl/src/var.c:428,1
    - Dst: strcmp
      Src: /src/curl/src/var.c:442,1
    - Dst: curlx_fopen
      Src: /src/curl/src/var.c:446,1
    - Dst: errorf
      Src: /src/curl/src/var.c:449,1
    - Dst: curlx_strerror
      Src: /src/curl/src/var.c:450,1
    - Dst: file2memory_range
      Src: /src/curl/src/var.c:455,1
    - Dst: curlx_fclose
      Src: /src/curl/src/var.c:461,1
    - Dst: strlen
      Src: /src/curl/src/var.c:467,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/var.c:469,1
    - Dst: warnf
      Src: /src/curl/src/var.c:483,1
    - Dst: addvariable
      Src: /src/curl/src/var.c:486,1
    - Dst: curlx_free
      Src: /src/curl/src/var.c:489,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 86
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 492
    functionName: setvariable
    functionSourceFile: /src/curl/src/var.c
    functionUses: 1
    functionsReached:
    - curlx_fclose
    - memcpy
    - curlx_str_single
    - file2memory_range
    - getenv
    - addvariable
    - curlx_str_number
    - errorf
    - curlx_fopen
    - strcmp
    - curlx_strerror
    - CURL_UNCONST
    - warnf
    - curlx_free
    - ISDIGIT
    - strlen
    - ISALNUM
    linkageType: ''
    returnType: ParameterError
    signature: ParameterError setvariable(const char *input)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_help.c:80,1
    - Dst: strlen
      Src: /src/curl/src/tool_help.c:83,1
    - Dst: strlen
      Src: /src/curl/src/tool_help.c:96,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:104,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - category
    - cols
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 106
    functionName: print_category
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_mprintf
    linkageType: ''
    returnType: void
    signature: void print_category(unsigned int category, unsigned int cols)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_help.c:112,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_help.c:113,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:114,1
    - Dst: print_category
      Src: /src/curl/src/tool_help.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - category
    - cols
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: get_category_content
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - curl_mprintf
    - print_category
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: int
    signature: int get_category_content(const char *category, unsigned int cols)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_help.c:125,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: get_categories
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 0
    functionsReached:
    - curl_mprintf
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: void
    signature: void get_categories(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_help.c:134,1
    - Dst: strlen
      Src: /src/curl/src/tool_help.c:135,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_help.c:136,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:139,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:142,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:145,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - width
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 154
    functionName: get_categories_list
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_mprintf
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: void
    signature: void get_categories_list(unsigned int width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_help.c:164,1
    - Dst: strlen
      Src: /src/curl/src/tool_help.c:166,1
    - Dst: strlen
      Src: /src/curl/src/tool_help.c:168,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_help.c:169,1
    - Dst: memset
      Src: /src/curl/src/tool_help.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - trigger
    - arg
    - endarg
    argTypes:
    - struct scan_ctx*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 175
    functionName: inithelpscan
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 0
    functionsReached:
    - strlen
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: "void inithelpscan(struct scan_ctx *ctx,\n                  const char
      *trigger,\n                  const char *arg,\n                  const char
      *endarg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/curl/src/tool_help.c:183,1
    - Dst: memcmp
      Src: /src/curl/src/tool_help.c:185,1
    - Dst: memmove
      Src: /src/curl/src/tool_help.c:191,1
    - Dst: memcmp
      Src: /src/curl/src/tool_help.c:193,1
    - Dst: fputs
      Src: /src/curl/src/tool_help.c:195,1
    - Dst: memmove
      Src: /src/curl/src/tool_help.c:201,1
    - Dst: memcmp
      Src: /src/curl/src/tool_help.c:203,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_help.c:207,1
    - Dst: puts
      Src: /src/curl/src/tool_help.c:212,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_help.c:215,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - buf
    - len
    - ctx
    argTypes:
    - unsigned char*
    - size_t
    - struct scan_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 222
    functionName: helpscan
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 0
    functionsReached:
    - fputs
    - DEBUGASSERT
    - memmove
    - memcmp
    - puts
    linkageType: ''
    returnType: bool
    signature: bool helpscan(const unsigned char *buf, size_t len, struct scan_ctx
      *ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_terminal_columns
      Src: /src/curl/src/tool_help.c:228,1
    - Dst: puts
      Src: /src/curl/src/tool_help.c:241,1
    - Dst: print_category
      Src: /src/curl/src/tool_help.c:242,1
    - Dst: puts
      Src: /src/curl/src/tool_help.c:243,1
    - Dst: get_categories_list
      Src: /src/curl/src/tool_help.c:244,1
    - Dst: puts
      Src: /src/curl/src/tool_help.c:245,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_help.c:248,1
    - Dst: print_category
      Src: /src/curl/src/tool_help.c:250,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_help.c:252,1
    - Dst: get_categories
      Src: /src/curl/src/tool_help.c:253,1
    - Dst: strncmp
      Src: /src/curl/src/tool_help.c:261,1
    - Dst: findlongopt
      Src: /src/curl/src/tool_help.c:265,1
    - Dst: ARGTYPE
      Src: /src/curl/src/tool_help.c:266,1
    - Dst: findshortopt
      Src: /src/curl/src/tool_help.c:272,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_help.c:274,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_help.c:280,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_help.c:282,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_help.c:284,1
    - Dst: showhelp
      Src: /src/curl/src/tool_help.c:287,1
    - Dst: showhelp
      Src: /src/curl/src/tool_help.c:289,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_help.c:292,1
    - Dst: get_category_content
      Src: /src/curl/src/tool_help.c:297,1
    - Dst: puts
      Src: /src/curl/src/tool_help.c:298,1
    - Dst: get_categories
      Src: /src/curl/src/tool_help.c:299,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - category
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 301
    functionName: tool_help
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 1
    functionsReached:
    - get_category_content
    - curl_msnprintf
    - curl_mfprintf
    - print_category
    - ARGTYPE
    - get_terminal_columns
    - findlongopt
    - showhelp
    - get_categories_list
    - findshortopt
    - curl_strequal
    - get_categories
    - puts
    - strncmp
    linkageType: ''
    returnType: void
    signature: void tool_help(const char *category)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/src/tool_help.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: is_debug
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    linkageType: ''
    returnType: bool
    signature: bool is_debug(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_debug
      Src: /src/curl/src/tool_help.c:315,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_help.c:316,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:319,1
    - Dst: curl_version
      Src: /src/curl/src/tool_help.c:319,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:321,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:324,1
    - Dst: strcmp
      Src: /src/curl/src/tool_help.c:333,1
    - Dst: strcmp
      Src: /src/curl/src/tool_help.c:338,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:343,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:345,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:348,1
    - Dst: puts
      Src: /src/curl/src/tool_help.c:353,1
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_help.c:364,1
    - Dst: memcpy
      Src: /src/curl/src/tool_help.c:366,1
    - Dst: qsort
      Src: /src/curl/src/tool_help.c:376,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:378,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:380,1
    - Dst: puts
      Src: /src/curl/src/tool_help.c:381,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_help.c:382,1
    - Dst: strcmp
      Src: /src/curl/src/tool_help.c:385,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:386,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 389
    functionName: tool_version_info
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - memcpy
    - curl_mprintf
    - is_debug
    - qsort
    - curl_version
    - strcmp
    - curlx_malloc
    - curlx_free
    - puts
    linkageType: ''
    returnType: void
    signature: void tool_version_info(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/src/tool_help.c:393,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_help.c:397,1
    - Dst: puts
      Src: /src/curl/src/tool_help.c:399,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_help.c:402,1
    - Dst: puts
      Src: /src/curl/src/tool_help.c:405,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_help.c:409,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/src/tool_help.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 411
    functionName: tool_list_engines
    functionSourceFile: /src/curl/src/tool_help.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_easy_init
    - curl_mprintf
    - curl_slist_free_all
    - curl_easy_cleanup
    - puts
    linkageType: ''
    returnType: void
    signature: void tool_list_engines(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_findfile.c:70,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_findfile.c:72,1
    - Dst: curlx_open
      Src: /src/curl/src/tool_findfile.c:74,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_findfile.c:76,1
    - Dst: curlx_close
      Src: /src/curl/src/tool_findfile.c:77,1
    - Dst: curl_free
      Src: /src/curl/src/tool_findfile.c:78,1
    - Dst: curl_free
      Src: /src/curl/src/tool_findfile.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - home
    - fname
    - dotscore
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 85
    functionName: checkhome
    functionSourceFile: /src/curl/src/tool_findfile.c
    functionUses: 0
    functionsReached:
    - curlx_close
    - curl_maprintf
    - curlx_strdup
    - curlx_open
    - curl_free
    linkageType: ''
    returnType: char
    signature: char *checkhome(const char *home, const char *fname, bool dotscore)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_findfile.c:101,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_findfile.c:102,1
    - Dst: curl_getenv
      Src: /src/curl/src/tool_findfile.c:108,1
    - Dst: curl_free
      Src: /src/curl/src/tool_findfile.c:113,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_findfile.c:117,1
    - Dst: curl_free
      Src: /src/curl/src/tool_findfile.c:118,1
    - Dst: curl_free
      Src: /src/curl/src/tool_findfile.c:127,1
    - Dst: checkhome
      Src: /src/curl/src/tool_findfile.c:133,1
    - Dst: curl_free
      Src: /src/curl/src/tool_findfile.c:134,1
    - Dst: getpwuid
      Src: /src/curl/src/tool_findfile.c:141,1
    - Dst: geteuid
      Src: /src/curl/src/tool_findfile.c:141,1
    - Dst: checkhome
      Src: /src/curl/src/tool_findfile.c:145,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 2
    argNames:
    - fname
    - dotscore
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 150
    functionName: findfile
    functionSourceFile: /src/curl/src/tool_findfile.c
    functionUses: 1
    functionsReached:
    - curl_maprintf
    - checkhome
    - getpwuid
    - DEBUGASSERT
    - curl_getenv
    - geteuid
    - curl_free
    linkageType: ''
    returnType: char
    signature: char *findfile(const char *fname, int dotscore)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - code
    argTypes:
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 117
    functionName: is_fatal_error
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_fatal_error(CURLcode code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_operate.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: is_pkcs11_uri
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: bool is_pkcs11_uri(const char *string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_operate.c:152,1
    - Dst: fread
      Src: /src/curl/src/tool_operate.c:159,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_operate.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - name
    - stat_buf
    argTypes:
    - char*
    - curlx_struct_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: vms_realfilesize
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - fread
    - curlx_fclose
    - curlx_fopen
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t vms_realfilesize(const char *name,\n                                   const
      curlx_struct_stat *stat_buf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vms_realfilesize
      Src: /src/curl/src/tool_operate.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - name
    - stat_buf
    argTypes:
    - char*
    - curlx_struct_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: VmsSpecialSize
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - vms_realfilesize
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t VmsSpecialSize(const char *name,\n                                 const
      curlx_struct_stat *stat_buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/src/tool_operate.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - per
    argTypes:
    - struct per_transfer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 213
    functionName: add_per_transfer
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode add_per_transfer(struct per_transfer **per)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_operate.c:221,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_operate.c:222,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_operate.c:223,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_operate.c:238,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_operate.c:239,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_operate.c:240,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/src/tool_operate.c:241,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_operate.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - per
    argTypes:
    - struct per_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 245
    functionName: del_per_transfer
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curl_easy_cleanup
    - DEBUGASSERT
    linkageType: ''
    returnType: struct per_transfer
    signature: struct per_transfer *del_per_transfer(struct per_transfer *per)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: stdin_upload
      Src: /src/curl/src/tool_operate.c:253,1
    - Dst: curlx_stat
      Src: /src/curl/src/tool_operate.c:271,1
    - Dst: VmsSpecialSize
      Src: /src/curl/src/tool_operate.c:272,1
    - Dst: curlx_open
      Src: /src/curl/src/tool_operate.c:277,1
    - Dst: curlx_open
      Src: /src/curl/src/tool_operate.c:280,1
    - Dst: curlx_open
      Src: /src/curl/src/tool_operate.c:286,1
    - Dst: curlx_fstat
      Src: /src/curl/src/tool_operate.c:287,1
    - Dst: helpf
      Src: /src/curl/src/tool_operate.c:290,1
    - Dst: curlx_close
      Src: /src/curl/src/tool_operate.c:292,1
    - Dst: S_ISREG
      Src: /src/curl/src/tool_operate.c:300,1
    - Dst: getenv
      Src: /src/curl/src/tool_operate.c:306,1
    - Dst: curlx_str_number
      Src: /src/curl/src/tool_operate.c:309,1
    - Dst: my_setopt_offt
      Src: /src/curl/src/tool_operate.c:316,1
    - Dst: curlx_now
      Src: /src/curl/src/tool_operate.c:319,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - per
    argTypes:
    - struct per_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 321
    functionName: pre_transfer
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_close
    - my_setopt_offt
    - helpf
    - getenv
    - curlx_now
    - S_ISREG
    - curlx_str_number
    - curlx_stat
    - stdin_upload
    - VmsSpecialSize
    - curlx_open
    - curlx_fstat
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pre_transfer(struct per_transfer *per)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glob_cleanup
      Src: /src/curl/src/tool_operate.c:327,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:328,1
    - Dst: glob_cleanup
      Src: /src/curl/src/tool_operate.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 331
    functionName: single_transfer_cleanup
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - glob_cleanup
    linkageType: ''
    returnType: void
    signature: void single_transfer_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/curl/src/tool_operate.c:351,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 2
    argCount: 3
    argNames:
    - config
    - per
    - result
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 357
    functionName: is_outfile_auto_resumable
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - ferror
    linkageType: ''
    returnType: bool
    signature: "bool is_outfile_auto_resumable(struct OperationConfig *config,\n                                      struct
      per_transfer *per,\n                                      CURLcode result)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:385,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_operate.c:397,1
    - Dst: curlx_now
      Src: /src/curl/src/tool_operate.c:397,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:401,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:421,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - config
    - per
    - retry
    - retryp
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    - enum retryreason
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 432
    functionName: retry_sleep
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curlx_now
    - warnf
    - curlx_timediff_ms
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t retry_sleep(struct OperationConfig *config,\n                            struct
      per_transfer *per,\n                            enum retryreason retry,\n                            bool
      *retryp)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:452,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:462,1
    - Dst: proto_token
      Src: /src/curl/src/tool_operate.c:463,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:467,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:497,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:498,1
    - Dst: proto_token
      Src: /src/curl/src/tool_operate.c:499,1
    - Dst: retry_sleep
      Src: /src/curl/src/tool_operate.c:521,1
    - Dst: is_outfile_auto_resumable
      Src: /src/curl/src/tool_operate.c:530,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:535,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:536,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:537,1
    - Dst: proto_token
      Src: /src/curl/src/tool_operate.c:538,1
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:541,1
    - Dst: curl_easy_header
      Src: /src/curl/src/tool_operate.c:544,1
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:546,1
    - Dst: notef
      Src: /src/curl/src/tool_operate.c:548,1
    - Dst: fflush
      Src: /src/curl/src/tool_operate.c:549,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:550,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:554,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:564,1
    - Dst: curlx_fstat
      Src: /src/curl/src/tool_operate.c:573,1
    - Dst: fileno
      Src: /src/curl/src/tool_operate.c:573,1
    - Dst: S_ISREG
      Src: /src/curl/src/tool_operate.c:574,1
    - Dst: fflush
      Src: /src/curl/src/tool_operate.c:577,1
    - Dst: notef
      Src: /src/curl/src/tool_operate.c:578,1
    - Dst: toolx_ftruncate
      Src: /src/curl/src/tool_operate.c:581,1
    - Dst: fileno
      Src: /src/curl/src/tool_operate.c:581,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:584,1
    - Dst: fseek
      Src: /src/curl/src/tool_operate.c:589,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:592,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 85
    argCount: 5
    argNames:
    - config
    - per
    - result
    - retryp
    - delayms
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    - CURLcode
    - bool*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 603
    functionName: retrycheck
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - fseek
    - curl_easy_header
    - is_outfile_auto_resumable
    - S_ISREG
    - fileno
    - errorf
    - toolx_ftruncate
    - strcmp
    - fflush
    - curlx_fstat
    - curl_easy_setopt
    - proto_token
    - retry_sleep
    - notef
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode retrycheck(struct OperationConfig *config,\n                           struct
      per_transfer *per,\n                           CURLcode result,\n                           bool
      *retryp,\n                           uint32_t *delayms)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_vms_shell
      Src: /src/curl/src/tool_operate.c:610,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_operate.c:619,1
    - Dst: curl_easy_strerror
      Src: /src/curl/src/tool_operate.c:620,1
    - Dst: fputs
      Src: /src/curl/src/tool_operate.c:622,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:627,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_operate.c:630,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 2
    argNames:
    - per
    - result
    argTypes:
    - struct per_transfer*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 637
    functionName: post_check_result
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_mfprintf
    - fputs
    - is_vms_shell
    - curl_easy_strerror
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode post_check_result(struct per_transfer *per, CURLcode result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/src/tool_operate.c:649,1
    - Dst: fwrite_xattr
      Src: /src/curl/src/tool_operate.c:654,1
    - Dst: fileno
      Src: /src/curl/src/tool_operate.c:654,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:657,1
    - Dst: curlx_strerror
      Src: /src/curl/src/tool_operate.c:658,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:669,1
    - Dst: tool_create_output_file
      Src: /src/curl/src/tool_operate.c:670,1
    - Dst: fflush
      Src: /src/curl/src/tool_operate.c:676,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:679,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 2
    argNames:
    - per
    - result
    argTypes:
    - struct per_transfer*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 639
    functionDepth: 3
    functionLinenumber: 639
    functionLinenumberEnd: 685
    functionName: post_output_handling
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - tool_create_output_file
    - curl_easy_getinfo
    - fwrite_xattr
    - curlx_strerror
    - errorf
    - warnf
    - fflush
    - memset
    - fileno
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode post_output_handling(struct per_transfer *per,\n                                     CURLcode
      result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_operate.c:696,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:700,1
    - Dst: curlx_stat
      Src: /src/curl/src/tool_operate.c:704,1
    - Dst: S_ISREG
      Src: /src/curl/src/tool_operate.c:704,1
    - Dst: unlink
      Src: /src/curl/src/tool_operate.c:705,1
    - Dst: notef
      Src: /src/curl/src/tool_operate.c:706,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:708,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:711,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:719,1
    - Dst: setfiletime
      Src: /src/curl/src/tool_operate.c:721,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 2
    argNames:
    - per
    - result
    argTypes:
    - struct per_transfer*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 724
    functionName: post_close_output
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_easy_getinfo
    - S_ISREG
    - errorf
    - curlx_stat
    - unlink
    - warnf
    - setfiletime
    - notef
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode post_close_output(struct per_transfer *per,\n                                  CURLcode
      result)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:745,1
    - Dst: sclose
      Src: /src/curl/src/tool_operate.c:747,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:749,1
    - Dst: curlx_close
      Src: /src/curl/src/tool_operate.c:757,1
    - Dst: post_check_result
      Src: /src/curl/src/tool_operate.c:760,1
    - Dst: post_output_handling
      Src: /src/curl/src/tool_operate.c:761,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_operate.c:767,1
    - Dst: curlx_now
      Src: /src/curl/src/tool_operate.c:767,1
    - Dst: retrycheck
      Src: /src/curl/src/tool_operate.c:769,1
    - Dst: fputs
      Src: /src/curl/src/tool_operate.c:778,1
    - Dst: post_close_output
      Src: /src/curl/src/tool_operate.c:780,1
    - Dst: ourWriteOut
      Src: /src/curl/src/tool_operate.c:784,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_operate.c:788,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:791,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_operate.c:794,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:797,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:800,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_operate.c:801,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 4
    argNames:
    - per
    - result
    - retryp
    - delay
    argTypes:
    - struct per_transfer*
    - CURLcode
    - bool*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 729
    functionDepth: 5
    functionLinenumber: 729
    functionLinenumberEnd: 804
    functionName: post_per_transfer
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_close
    - curlx_safefree
    - fputs
    - curlx_now
    - post_close_output
    - curl_slist_free_all
    - curlx_timediff_ms
    - strcmp
    - post_output_handling
    - warnf
    - ourWriteOut
    - retrycheck
    - post_check_result
    - sclose
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode post_per_transfer(struct per_transfer *per,\n                                  CURLcode
      result,\n                                  bool *retryp,\n                                  uint32_t
      *delay)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_pkcs11_uri
      Src: /src/curl/src/tool_operate.c:811,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:812,1
    - Dst: is_pkcs11_uri
      Src: /src/curl/src/tool_operate.c:819,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:820,1
    - Dst: is_pkcs11_uri
      Src: /src/curl/src/tool_operate.c:828,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:829,1
    - Dst: is_pkcs11_uri
      Src: /src/curl/src/tool_operate.c:837,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:838,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 844
    functionName: set_cert_types
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - is_pkcs11_uri
    - curlx_strdup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode set_cert_types(struct OperationConfig *config)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/src/tool_operate.c:852,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_operate.c:855,1
    - Dst: urlerr_cvt
      Src: /src/curl/src/tool_operate.c:857,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:858,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_operate.c:864,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_operate.c:866,1
    - Dst: urlerr_cvt
      Src: /src/curl/src/tool_operate.c:869,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_operate.c:872,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:874,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operate.c:875,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_operate.c:880,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - config
    - per
    - q
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 886
    functionName: append2query
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_url_cleanup
    - urlerr_cvt
    - curlx_strdup
    - errorf
    - curlx_free
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode append2query(struct OperationConfig *config,\n                             struct
      per_transfer *per,\n                             const char *q)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_operate.c:896,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:899,1
    - Dst: curlx_strerror
      Src: /src/curl/src/tool_operate.c:900,1
    - Dst: file2string
      Src: /src/curl/src/tool_operate.c:903,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_operate.c:905,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:906,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:909,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operate.c:910,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:914,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_operate.c:918,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:919,1
    - Dst: add2list
      Src: /src/curl/src/tool_operate.c:924,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_operate.c:925,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_operate.c:928,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 932
    functionName: etag_compare
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - file2string
    - curlx_safefree
    - curlx_fclose
    - curl_maprintf
    - curlx_strdup
    - curlx_strerror
    - curlx_fopen
    - errorf
    - add2list
    - curlx_free
    - warnf
    - curl_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode etag_compare(struct OperationConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_dir_hierarchy
      Src: /src/curl/src/tool_operate.c:939,1
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:945,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_operate.c:946,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:948,1
    - Dst: CURL_BINMODE
      Src: /src/curl/src/tool_operate.c:962,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - config
    - etag_save
    - skip
    argTypes:
    - struct OperationConfig*
    - struct OutStruct*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 934
    functionDepth: 3
    functionLinenumber: 934
    functionLinenumberEnd: 965
    functionName: etag_store
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_fopen
    - strcmp
    - CURL_BINMODE
    - warnf
    - create_dir_hierarchy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode etag_store(struct OperationConfig *config,\n                           struct
      OutStruct *etag_save,\n                           bool *skip)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:973,1
    - Dst: CURL_BINMODE
      Src: /src/curl/src/tool_operate.c:976,1
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:978,1
    - Dst: create_dir_hierarchy
      Src: /src/curl/src/tool_operate.c:991,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_operate.c:997,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_operate.c:999,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_operate.c:1001,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:1004,1
    - Dst: CURL_BINMODE
      Src: /src/curl/src/tool_operate.c:1016,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - config
    - per
    - heads
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    - struct OutStruct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 967
    functionDepth: 3
    functionLinenumber: 967
    functionLinenumberEnd: 1020
    functionName: setup_headerfile
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_fopen
    - errorf
    - strcmp
    - CURL_BINMODE
    - create_dir_hierarchy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setup_headerfile(struct OperationConfig *config,\n                                 struct
      per_transfer *per,\n                                 struct OutStruct *heads)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:1034,1
    - Dst: get_url_file_name
      Src: /src/curl/src/tool_operate.c:1043,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:1048,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:1052,1
    - Dst: glob_inuse
      Src: /src/curl/src/tool_operate.c:1056,1
    - Dst: glob_inuse
      Src: /src/curl/src/tool_operate.c:1056,1
    - Dst: glob_match_url
      Src: /src/curl/src/tool_operate.c:1061,1
    - Dst: glob_inuse
      Src: /src/curl/src/tool_operate.c:1062,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:1068,1
    - Dst: glob_show_error
      Src: /src/curl/src/tool_operate.c:1074,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:1078,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:1082,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:1087,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_operate.c:1092,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_operate.c:1095,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:1096,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:1098,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operate.c:1099,1
    - Dst: create_dir_hierarchy
      Src: /src/curl/src/tool_operate.c:1108,1
    - Dst: curlx_stat
      Src: /src/curl/src/tool_operate.c:1116,1
    - Dst: notef
      Src: /src/curl/src/tool_operate.c:1118,1
    - Dst: curlx_stat
      Src: /src/curl/src/tool_operate.c:1129,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_operate.c:1141,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_operate.c:1145,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:1148,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 85
    argCount: 5
    argNames:
    - config
    - per
    - u
    - outs
    - skipped
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    - struct getout*
    - struct OutStruct*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1023
    functionDepth: 3
    functionLinenumber: 1023
    functionLinenumberEnd: 1161
    functionName: setup_outfile
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_maprintf
    - DEBUGASSERT
    - glob_inuse
    - get_url_file_name
    - glob_show_error
    - curlx_strdup
    - errorf
    - curlx_fopen
    - glob_match_url
    - strcmp
    - curlx_stat
    - warnf
    - curl_free
    - create_dir_hierarchy
    - notef
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setup_outfile(struct OperationConfig *config,\n                              struct
      per_transfer *per,\n                              struct getout *u,\n                              struct
      OutStruct *outs,\n                              bool *skipped)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:1185,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_operate.c:1190,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_operate.c:1191,1
    - Dst: CURL_BINMODE
      Src: /src/curl/src/tool_operate.c:1193,1
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:1194,1
    - Dst: win32_stdin_read_thread
      Src: /src/curl/src/tool_operate.c:1199,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:1202,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:1205,1
    - Dst: sclose
      Src: /src/curl/src/tool_operate.c:1210,1
    - Dst: curlx_nonblock
      Src: /src/curl/src/tool_operate.c:1215,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:1217,1
    - Dst: curlx_strerror
      Src: /src/curl/src/tool_operate.c:1218,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - config
    - per
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1163
    functionDepth: 3
    functionLinenumber: 1163
    functionLinenumberEnd: 1221
    functionName: check_stdin_upload
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_nonblock
    - win32_stdin_read_thread
    - DEBUGASSERT
    - curlx_strerror
    - strcmp
    - CURL_BINMODE
    - warnf
    - sclose
    linkageType: ''
    returnType: void
    signature: "void check_stdin_upload(struct OperationConfig *config,\n                               struct
      per_transfer *per)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - config
    - hdrcbdata
    - u
    - outs
    - heads
    - etag
    argTypes:
    - struct OperationConfig*
    - struct HdrCbData*
    - struct getout*
    - struct OutStruct*
    - struct OutStruct*
    - struct OutStruct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1235
    functionName: setup_header_cb
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void setup_header_cb(struct OperationConfig *config,\n                            struct
      HdrCbData *hdrcbdata,\n                            struct getout *u,\n                            struct
      OutStruct *outs,\n                            struct OutStruct *heads,\n                            struct
      OutStruct *etag)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: glob_inuse
      Src: /src/curl/src/tool_operate.c:1243,1
    - Dst: glob_url
      Src: /src/curl/src/tool_operate.c:1244,1
    - Dst: glob_inuse
      Src: /src/curl/src/tool_operate.c:1246,1
    - Dst: glob_next_url
      Src: /src/curl/src/tool_operate.c:1247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - config
    - state
    - u
    - err
    argTypes:
    - struct OperationConfig*
    - struct State*
    - struct getout*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1237
    functionDepth: 5
    functionLinenumber: 1237
    functionLinenumberEnd: 1256
    functionName: setup_input_file
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - glob_inuse
    - glob_next_url
    - glob_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setup_input_file(struct OperationConfig *config,\n                                 struct
      State *state, struct getout *u,\n                                 FILE *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: glob_url
      Src: /src/curl/src/tool_operate.c:1267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - config
    - state
    - u
    - err
    argTypes:
    - struct OperationConfig*
    - struct State*
    - struct getout*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1258
    functionDepth: 5
    functionLinenumber: 1258
    functionLinenumberEnd: 1273
    functionName: setup_url_pattern
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - glob_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setup_url_pattern(struct OperationConfig *config,\n                                  struct
      State *state, struct getout *u,\n                                  FILE *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/src/tool_operate.c:1283,1
    - Dst: etag_compare
      Src: /src/curl/src/tool_operate.c:1288,1
    - Dst: etag_store
      Src: /src/curl/src/tool_operate.c:1295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - config
    - etag_save
    - break_loop
    argTypes:
    - struct OperationConfig*
    - struct OutStruct*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1275
    functionDepth: 4
    functionLinenumber: 1275
    functionLinenumberEnd: 1302
    functionName: setup_etag_files
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - etag_compare
    - etag_store
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setup_etag_files(struct OperationConfig *config,\n                                 struct
      OutStruct *etag_save,\n                                 bool *break_loop)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: glob_inuse
      Src: /src/curl/src/tool_operate.c:1309,1
    - Dst: glob_next_url
      Src: /src/curl/src/tool_operate.c:1310,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:1312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - state
    - u
    - url
    argTypes:
    - struct State*
    - struct getout*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1304
    functionDepth: 2
    functionLinenumber: 1304
    functionLinenumberEnd: 1319
    functionName: select_next_url
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - glob_inuse
    - glob_next_url
    - curlx_strdup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode select_next_url(struct State *state,\n                                struct
      getout *u,\n                                char **url)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stdin_upload
      Src: /src/curl/src/tool_operate.c:1326,1
    - Dst: check_stdin_upload
      Src: /src/curl/src/tool_operate.c:1327,1
    - Dst: add_file_name_to_url
      Src: /src/curl/src/tool_operate.c:1330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - config
    - per
    argTypes:
    - struct OperationConfig*
    - struct per_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1321
    functionDepth: 4
    functionLinenumber: 1321
    functionLinenumberEnd: 1339
    functionName: setup_transfer_upload
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - check_stdin_upload
    - stdin_upload
    - add_file_name_to_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setup_transfer_upload(struct OperationConfig *config,\n                                      struct
      per_transfer *per)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:1361,1
    - Dst: setup_input_file
      Src: /src/curl/src/tool_operate.c:1365,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:1371,1
    - Dst: glob_cleanup
      Src: /src/curl/src/tool_operate.c:1372,1
    - Dst: setup_url_pattern
      Src: /src/curl/src/tool_operate.c:1379,1
    - Dst: setup_etag_files
      Src: /src/curl/src/tool_operate.c:1383,1
    - Dst: curl_easy_init
      Src: /src/curl/src/tool_operate.c:1387,1
    - Dst: add_per_transfer
      Src: /src/curl/src/tool_operate.c:1389,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/src/tool_operate.c:1393,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_operate.c:1395,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:1400,1
    - Dst: SetHTTPrequest
      Src: /src/curl/src/tool_operate.c:1402,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:1403,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/src/tool_operate.c:1404,1
    - Dst: setup_headerfile
      Src: /src/curl/src/tool_operate.c:1417,1
    - Dst: select_next_url
      Src: /src/curl/src/tool_operate.c:1428,1
    - Dst: setup_outfile
      Src: /src/curl/src/tool_operate.c:1434,1
    - Dst: setup_transfer_upload
      Src: /src/curl/src/tool_operate.c:1438,1
    - Dst: output_expected
      Src: /src/curl/src/tool_operate.c:1442,1
    - Dst: isatty
      Src: /src/curl/src/tool_operate.c:1443,1
    - Dst: fileno
      Src: /src/curl/src/tool_operate.c:1443,1
    - Dst: append2query
      Src: /src/curl/src/tool_operate.c:1453,1
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:1457,1
    - Dst: CURL_BINMODE
      Src: /src/curl/src/tool_operate.c:1461,1
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:1465,1
    - Dst: setup_header_cb
      Src: /src/curl/src/tool_operate.c:1467,1
    - Dst: config2setopts
      Src: /src/curl/src/tool_operate.c:1469,1
    - Dst: curlx_now
      Src: /src/curl/src/tool_operate.c:1477,1
    - Dst: glob_cleanup
      Src: /src/curl/src/tool_operate.c:1482,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:1484,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 96
    argCount: 5
    argNames:
    - config
    - share
    - state
    - added
    - skipped
    argTypes:
    - struct OperationConfig*
    - CURLSH*
    - struct State*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1342
    functionDepth: 6
    functionLinenumber: 1342
    functionLinenumberEnd: 1490
    functionName: create_single
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_fclose
    - glob_cleanup
    - setup_input_file
    - strcmp
    - isatty
    - setup_outfile
    - curlx_now
    - setup_header_cb
    - config2setopts
    - setup_etag_files
    - add_per_transfer
    - warnf
    - curl_easy_cleanup
    - setup_url_pattern
    - output_expected
    - setup_headerfile
    - SetHTTPrequest
    - curl_easy_init
    - curlx_strdup
    - CURL_BINMODE
    - append2query
    - setup_transfer_upload
    - fileno
    - select_next_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode create_single(struct OperationConfig *config,\n                              CURLSH
      *share, struct State *state,\n                              bool *added, bool
      *skipped)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SetHTTPrequest
      Src: /src/curl/src/tool_operate.c:1508,1
    - Dst: SetHTTPrequest
      Src: /src/curl/src/tool_operate.c:1513,1
    - Dst: set_cert_types
      Src: /src/curl/src/tool_operate.c:1519,1
    - Dst: create_single
      Src: /src/curl/src/tool_operate.c:1529,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - config
    - share
    - added
    - skipped
    argTypes:
    - struct OperationConfig*
    - CURLSH*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1493
    functionDepth: 7
    functionLinenumber: 1493
    functionLinenumberEnd: 1530
    functionName: single_transfer
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - create_single
    - set_cert_types
    - SetHTTPrequest
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode single_transfer(struct OperationConfig *config,\n                                CURLSH
      *share, bool *added, bool *skipped)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_get_offt
      Src: /src/curl/src/tool_operate.c:1550,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_operate.c:1552,1
    - Dst: create_transfer
      Src: /src/curl/src/tool_operate.c:1559,1
    - Dst: time
      Src: /src/curl/src/tool_operate.c:1569,1
    - Dst: pre_transfer
      Src: /src/curl/src/tool_operate.c:1576,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:1582,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:1584,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:1586,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:1587,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:1588,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:1589,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:1590,1
    - Dst: getenv
      Src: /src/curl/src/tool_operate.c:1592,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:1593,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/src/tool_operate.c:1596,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_operate.c:1598,1
    - Dst: create_transfer
      Src: /src/curl/src/tool_operate.c:1606,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 4
    argNames:
    - multi
    - share
    - morep
    - addedp
    argTypes:
    - CURLM*
    - CURLSH*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1539
    functionDepth: 3
    functionLinenumber: 1539
    functionLinenumberEnd: 1621
    functionName: add_parallel_transfers
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_multi_add_handle
    - DEBUGASSERT
    - curl_multi_get_offt
    - getenv
    - time
    - curl_easy_setopt
    - pre_transfer
    - create_transfer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode add_parallel_transfers(CURLM *multi, CURLSH *share,\n                                       bool
      *morep, bool *addedp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/src/tool_operate.c:1670,1
    - Dst: progress_meter
      Src: /src/curl/src/tool_operate.c:1672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - req
    - status
    - events
    argTypes:
    - uv_poll_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1673
    functionName: on_uv_socket
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - progress_meter
    - curl_multi_socket_action
    linkageType: ''
    returnType: void
    signature: void on_uv_socket(uv_poll_t *req, int status, int events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_operate.c:1680,1
    - Dst: curl_multi_socket_action
      Src: /src/curl/src/tool_operate.c:1683,1
    - Dst: progress_meter
      Src: /src/curl/src/tool_operate.c:1685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - uv_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1687
    functionName: on_uv_timeout
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - progress_meter
    - curl_mfprintf
    - curl_multi_socket_action
    linkageType: ''
    returnType: void
    signature: void on_uv_timeout(uv_timer_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_operate.c:1695,1
    - Dst: uv_timer_stop
      Src: /src/curl/src/tool_operate.c:1698,1
    - Dst: uv_timer_start
      Src: /src/curl/src/tool_operate.c:1703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - userp
    argTypes:
    - CURLM*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1707
    functionName: cb_timeout
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - uv_timer_start
    - uv_timer_stop
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: int cb_timeout(CURLM *multi, long timeout_ms, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_operate.c:1712,1
    - Dst: uv_poll_init_socket
      Src: /src/curl/src/tool_operate.c:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sockfd
    - uv
    argTypes:
    - curl_socket_t
    - struct datauv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1721
    functionName: create_context
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - uv_poll_init_socket
    linkageType: ''
    returnType: struct contextuv
    signature: "struct contextuv *create_context(curl_socket_t sockfd,\n                                        struct
      datauv *uv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/src/tool_operate.c:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - uv_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1727
    functionName: close_cb
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void close_cb(uv_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uv_close
      Src: /src/curl/src/tool_operate.c:1731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct contextuv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1729
    functionDepth: 0
    functionLinenumber: 1729
    functionLinenumberEnd: 1732
    functionName: destroy_context
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - uv_close
    linkageType: ''
    returnType: void
    signature: void destroy_context(struct contextuv *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_operate.c:1744,1
    - Dst: create_context
      Src: /src/curl/src/tool_operate.c:1751,1
    - Dst: curl_multi_assign
      Src: /src/curl/src/tool_operate.c:1753,1
    - Dst: uv_poll_start
      Src: /src/curl/src/tool_operate.c:1760,1
    - Dst: uv_poll_stop
      Src: /src/curl/src/tool_operate.c:1765,1
    - Dst: destroy_context
      Src: /src/curl/src/tool_operate.c:1766,1
    - Dst: curl_multi_assign
      Src: /src/curl/src/tool_operate.c:1767,1
    - Dst: abort
      Src: /src/curl/src/tool_operate.c:1771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - easy
    - s
    - action
    - userp
    - socketp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1735
    functionDepth: 2
    functionLinenumber: 1735
    functionLinenumberEnd: 1775
    functionName: cb_socket
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - abort
    - uv_poll_stop
    - destroy_context
    - curl_multi_assign
    - uv_poll_start
    - create_context
    linkageType: ''
    returnType: int
    signature: "int cb_socket(CURL *easy, curl_socket_t s, int action,\n                     void
      *userp, void *socketp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: uv_default_loop
      Src: /src/curl/src/tool_operate.c:1784,1
    - Dst: uv_timer_init
      Src: /src/curl/src/tool_operate.c:1785,1
    - Dst: curl_multi_setopt
      Src: /src/curl/src/tool_operate.c:1789,1
    - Dst: curl_multi_setopt
      Src: /src/curl/src/tool_operate.c:1790,1
    - Dst: curl_multi_setopt
      Src: /src/curl/src/tool_operate.c:1791,1
    - Dst: curl_multi_setopt
      Src: /src/curl/src/tool_operate.c:1792,1
    - Dst: curl_multi_setopt
      Src: /src/curl/src/tool_operate.c:1793,1
    - Dst: curl_multi_socket_action
      Src: /src/curl/src/tool_operate.c:1797,1
    - Dst: add_parallel_transfers
      Src: /src/curl/src/tool_operate.c:1806,1
    - Dst: curl_multi_get_offt
      Src: /src/curl/src/tool_operate.c:1816,1
    - Dst: curlx_wait_ms
      Src: /src/curl/src/tool_operate.c:1820,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_operate.c:1825,1
    - Dst: uv_run
      Src: /src/curl/src/tool_operate.c:1829,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_operate.c:1831,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/src/tool_operate.c:1860,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_operate.c:1863,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct parastate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1777
    functionDepth: 4
    functionLinenumber: 1777
    functionLinenumberEnd: 1868
    functionName: parallel_event
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curl_multi_get_offt
    - uv_default_loop
    - curlx_wait_ms
    - curl_multi_setopt
    - uv_run
    - uv_timer_init
    - curl_multi_cleanup
    - curl_multi_socket_action
    - add_parallel_transfers
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode parallel_event(struct parastate *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_info_read
      Src: /src/curl/src/tool_operate.c:1879,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:1886,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/src/tool_operate.c:1887,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_operate.c:1890,1
    - Dst: post_per_transfer
      Src: /src/curl/src/tool_operate.c:1894,1
    - Dst: progress_finalize
      Src: /src/curl/src/tool_operate.c:1895,1
    - Dst: time
      Src: /src/curl/src/tool_operate.c:1901,1
    - Dst: is_fatal_error
      Src: /src/curl/src/tool_operate.c:1908,1
    - Dst: del_per_transfer
      Src: /src/curl/src/tool_operate.c:1910,1
    - Dst: time
      Src: /src/curl/src/tool_operate.c:1916,1
    - Dst: add_parallel_transfers
      Src: /src/curl/src/tool_operate.c:1924,1
    - Dst: is_fatal_error
      Src: /src/curl/src/tool_operate.c:1933,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct parastate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1872
    functionDepth: 6
    functionLinenumber: 1872
    functionLinenumberEnd: 1937
    functionName: check_finished
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_msnprintf
    - del_per_transfer
    - progress_finalize
    - curl_multi_remove_handle
    - is_fatal_error
    - post_per_transfer
    - time
    - curl_multi_info_read
    - add_parallel_transfers
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode check_finished(struct parastate *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_finished
      Src: /src/curl/src/tool_operate.c:1950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - multi
    - notification
    - easy
    - user_data
    argTypes:
    - CURLM*
    - unsigned int
    - CURL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1939
    functionDepth: 7
    functionLinenumber: 1939
    functionLinenumberEnd: 1958
    functionName: mnotify
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - check_finished
    linkageType: ''
    returnType: void
    signature: "void mnotify(CURLM *multi, unsigned int notification,\n                    CURL
      *easy, void *user_data)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/src/tool_operate.c:1969,1
    - Dst: time
      Src: /src/curl/src/tool_operate.c:1972,1
    - Dst: curl_multi_init
      Src: /src/curl/src/tool_operate.c:1973,1
    - Dst: getenv
      Src: /src/curl/src/tool_operate.c:1979,1
    - Dst: curl_multi_setopt
      Src: /src/curl/src/tool_operate.c:1984,1
    - Dst: curl_multi_setopt
      Src: /src/curl/src/tool_operate.c:1986,1
    - Dst: curl_multi_setopt
      Src: /src/curl/src/tool_operate.c:1987,1
    - Dst: curl_multi_setopt
      Src: /src/curl/src/tool_operate.c:1988,1
    - Dst: curl_multi_notify_enable
      Src: /src/curl/src/tool_operate.c:1990,1
    - Dst: add_parallel_transfers
      Src: /src/curl/src/tool_operate.c:1992,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/src/tool_operate.c:1995,1
    - Dst: parallel_event
      Src: /src/curl/src/tool_operate.c:2002,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:2004,1
    - Dst: add_parallel_transfers
      Src: /src/curl/src/tool_operate.c:2027,1
    - Dst: curl_multi_poll
      Src: /src/curl/src/tool_operate.c:2034,1
    - Dst: curl_multi_perform
      Src: /src/curl/src/tool_operate.c:2036,1
    - Dst: progress_meter
      Src: /src/curl/src/tool_operate.c:2038,1
    - Dst: progress_meter
      Src: /src/curl/src/tool_operate.c:2041,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/src/tool_operate.c:2055,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 1
    argNames:
    - share
    argTypes:
    - CURLSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 1960
    functionDepth: 5
    functionLinenumber: 1960
    functionLinenumberEnd: 2058
    functionName: parallel_transfers
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 3
    functionsReached:
    - parallel_event
    - progress_meter
    - curl_multi_poll
    - getenv
    - curlx_now
    - curl_multi_perform
    - errorf
    - time
    - curl_multi_setopt
    - curl_multi_notify_enable
    - curl_multi_init
    - curl_multi_cleanup
    - add_parallel_transfers
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode parallel_transfers(CURLSH *share)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: create_transfer
      Src: /src/curl/src/tool_operate.c:2068,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:2072,1
    - Dst: curlx_now
      Src: /src/curl/src/tool_operate.c:2081,1
    - Dst: pre_transfer
      Src: /src/curl/src/tool_operate.c:2083,1
    - Dst: easysrc_perform
      Src: /src/curl/src/tool_operate.c:2088,1
    - Dst: getenv
      Src: /src/curl/src/tool_operate.c:2094,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:2095,1
    - Dst: curl_easy_duphandle
      Src: /src/curl/src/tool_operate.c:2098,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/src/tool_operate.c:2099,1
    - Dst: curl_easy_setopt
      Src: /src/curl/src/tool_operate.c:2106,1
    - Dst: curl_easy_perform_ev
      Src: /src/curl/src/tool_operate.c:2109,1
    - Dst: curl_easy_perform
      Src: /src/curl/src/tool_operate.c:2112,1
    - Dst: post_per_transfer
      Src: /src/curl/src/tool_operate.c:2115,1
    - Dst: curlx_wait_ms
      Src: /src/curl/src/tool_operate.c:2117,1
    - Dst: is_fatal_error
      Src: /src/curl/src/tool_operate.c:2122,1
    - Dst: create_transfer
      Src: /src/curl/src/tool_operate.c:2127,1
    - Dst: del_per_transfer
      Src: /src/curl/src/tool_operate.c:2136,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_operate.c:2144,1
    - Dst: curlx_now
      Src: /src/curl/src/tool_operate.c:2144,1
    - Dst: notef
      Src: /src/curl/src/tool_operate.c:2146,1
    - Dst: curlx_wait_ms
      Src: /src/curl/src/tool_operate.c:2150,1
    - Dst: single_transfer_cleanup
      Src: /src/curl/src/tool_operate.c:2159,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 65
    argCount: 1
    argNames:
    - share
    argTypes:
    - CURLSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2060
    functionDepth: 6
    functionLinenumber: 2060
    functionLinenumberEnd: 2162
    functionName: serial_transfers
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - del_per_transfer
    - getenv
    - curlx_now
    - curl_easy_duphandle
    - curl_easy_perform
    - post_per_transfer
    - is_fatal_error
    - errorf
    - curlx_wait_ms
    - curlx_timediff_ms
    - curl_easy_perform_ev
    - curl_easy_cleanup
    - curl_easy_setopt
    - single_transfer_cleanup
    - pre_transfer
    - easysrc_perform
    - create_transfer
    - notef
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode serial_transfers(CURLSH *share)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/src/tool_operate.c:2171,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_operate.c:2178,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/src/tool_operate.c:2184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pusing
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2164
    functionDepth: 1
    functionLinenumber: 2164
    functionLinenumberEnd: 2190
    functionName: is_using_schannel
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_easy_init
    - curl_easy_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode is_using_schannel(int *pusing)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_using_schannel
      Src: /src/curl/src/tool_operate.c:2213,1
    - Dst: curl_getenv
      Src: /src/curl/src/tool_operate.c:2217,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:2219,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operate.c:2220,1
    - Dst: curl_getenv
      Src: /src/curl/src/tool_operate.c:2227,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:2229,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operate.c:2230,1
    - Dst: curl_getenv
      Src: /src/curl/src/tool_operate.c:2236,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:2238,1
    - Dst: curl_free
      Src: /src/curl/src/tool_operate.c:2239,1
    - Dst: tool_execpath
      Src: /src/curl/src/tool_operate.c:2251,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_operate.c:2253,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_operate.c:2254,1
    - Dst: FindWin32CACert
      Src: /src/curl/src/tool_operate.c:2261,1
    - Dst: TEXT
      Src: /src/curl/src/tool_operate.c:2261,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_operate.c:2269,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2203
    functionDepth: 2
    functionLinenumber: 2203
    functionLinenumberEnd: 2271
    functionName: cacertpaths
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - FindWin32CACert
    - curlx_safefree
    - curl_getenv
    - curlx_strdup
    - curl_free
    - is_using_schannel
    - TEXT
    - tool_execpath
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cacertpaths(struct OperationConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: helpf
      Src: /src/curl/src/tool_operate.c:2284,1
    - Dst: cacertpaths
      Src: /src/curl/src/tool_operate.c:2288,1
    - Dst: single_transfer
      Src: /src/curl/src/tool_operate.c:2290,1
    - Dst: single_transfer_cleanup
      Src: /src/curl/src/tool_operate.c:2292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - config
    - share
    - added
    - skipped
    argTypes:
    - struct OperationConfig*
    - CURLSH*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2274
    functionDepth: 8
    functionLinenumber: 2274
    functionLinenumberEnd: 2297
    functionName: transfer_per_config
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - single_transfer_cleanup
    - cacertpaths
    - helpf
    - single_transfer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode transfer_per_config(struct OperationConfig *config,\n                                    CURLSH
      *share,\n                                    bool *added,\n                                    bool
      *skipped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transfer_per_config
      Src: /src/curl/src/tool_operate.c:2310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - share
    - added
    - skipped
    argTypes:
    - CURLSH*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2303
    functionDepth: 9
    functionLinenumber: 2303
    functionLinenumberEnd: 2319
    functionName: create_transfer
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 2
    functionsReached:
    - transfer_per_config
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode create_transfer(CURLSH *share,\n                                bool
      *added,\n                                bool *skipped)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parallel_transfers
      Src: /src/curl/src/tool_operate.c:2332,1
    - Dst: serial_transfers
      Src: /src/curl/src/tool_operate.c:2334,1
    - Dst: post_per_transfer
      Src: /src/curl/src/tool_operate.c:2341,1
    - Dst: clean_getout
      Src: /src/curl/src/tool_operate.c:2347,1
    - Dst: del_per_transfer
      Src: /src/curl/src/tool_operate.c:2349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - share
    - result
    argTypes:
    - CURLSH*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2321
    functionDepth: 7
    functionLinenumber: 2321
    functionLinenumberEnd: 2357
    functionName: run_all_transfers
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - clean_getout
    - del_per_transfer
    - post_per_transfer
    - serial_transfers
    - parallel_transfers
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode run_all_transfers(CURLSH *share,\n                                  CURLcode
      result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_share_setopt
      Src: /src/curl/src/tool_operate.c:2361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - share
    - opt
    argTypes:
    - CURLSH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2359
    functionDepth: 0
    functionLinenumber: 2359
    functionLinenumberEnd: 2365
    functionName: share_setopt
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 11
    functionsReached:
    - curl_share_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode share_setopt(CURLSH *share, int opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: share_setopt
      Src: /src/curl/src/tool_operate.c:2384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - share
    argTypes:
    - CURLSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2367
    functionDepth: 1
    functionLinenumber: 2367
    functionLinenumberEnd: 2386
    functionName: share_setup
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 0
    functionsReached:
    - share_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode share_setup(CURLSH *share)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: convert_tchar_to_UTF8
      Src: /src/curl/src/tool_operate.c:2395,1
    - Dst: setlocale
      Src: /src/curl/src/tool_operate.c:2399,1
    - Dst: setlocale
      Src: /src/curl/src/tool_operate.c:2400,1
    - Dst: strncmp
      Src: /src/curl/src/tool_operate.c:2405,1
    - Dst: strcmp
      Src: /src/curl/src/tool_operate.c:2406,1
    - Dst: parseconfig
      Src: /src/curl/src/tool_operate.c:2407,1
    - Dst: helpf
      Src: /src/curl/src/tool_operate.c:2412,1
    - Dst: unicodefree
      Src: /src/curl/src/tool_operate.c:2417,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/tool_operate.c:2417,1
    - Dst: parse_args
      Src: /src/curl/src/tool_operate.c:2421,1
    - Dst: notef
      Src: /src/curl/src/tool_operate.c:2424,1
    - Dst: hugehelp
      Src: /src/curl/src/tool_operate.c:2435,1
    - Dst: warnf
      Src: /src/curl/src/tool_operate.c:2437,1
    - Dst: tool_version_info
      Src: /src/curl/src/tool_operate.c:2442,1
    - Dst: tool_list_engines
      Src: /src/curl/src/tool_operate.c:2445,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_operate.c:2449,1
    - Dst: easysrc_init
      Src: /src/curl/src/tool_operate.c:2462,1
    - Dst: curl_share_init
      Src: /src/curl/src/tool_operate.c:2469,1
    - Dst: easysrc_cleanup
      Src: /src/curl/src/tool_operate.c:2473,1
    - Dst: share_setup
      Src: /src/curl/src/tool_operate.c:2479,1
    - Dst: tool_ssls_load
      Src: /src/curl/src/tool_operate.c:2482,1
    - Dst: get_args
      Src: /src/curl/src/tool_operate.c:2488,1
    - Dst: run_all_transfers
      Src: /src/curl/src/tool_operate.c:2498,1
    - Dst: tool_ssls_save
      Src: /src/curl/src/tool_operate.c:2501,1
    - Dst: curl_share_cleanup
      Src: /src/curl/src/tool_operate.c:2509,1
    - Dst: easysrc_cleanup
      Src: /src/curl/src/tool_operate.c:2512,1
    - Dst: dumpeasysrc
      Src: /src/curl/src/tool_operate.c:2515,1
    - Dst: errorf
      Src: /src/curl/src/tool_operate.c:2519,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_operate.c:2522,1
    - Dst: varcleanup
      Src: /src/curl/src/tool_operate.c:2523,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - argv_item_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2388
    functionDepth: 8
    functionLinenumber: 2388
    functionLinenumberEnd: 2526
    functionName: operate
    functionSourceFile: /src/curl/src/tool_operate.c
    functionUses: 1
    functionsReached:
    - curl_share_cleanup
    - tool_ssls_load
    - get_args
    - CURL_UNCONST
    - strcmp
    - strncmp
    - varcleanup
    - parseconfig
    - curl_mprintf
    - share_setup
    - notef
    - tool_list_engines
    - helpf
    - setlocale
    - easysrc_init
    - curlx_free
    - warnf
    - tool_ssls_save
    - run_all_transfers
    - parse_args
    - dumpeasysrc
    - convert_tchar_to_UTF8
    - tool_version_info
    - hugehelp
    - easysrc_cleanup
    - errorf
    - curl_share_init
    - unicodefree
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode operate(int argc, argv_item_t argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_cb_prg.c:74,1
    - Dst: memset
      Src: /src/curl/src/tool_cb_prg.c:76,1
    - Dst: memcpy
      Src: /src/curl/src/tool_cb_prg.c:79,1
    - Dst: fputs
      Src: /src/curl/src/tool_cb_prg.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - bar
    - moved
    argTypes:
    - struct ProgressData*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 104
    functionName: fly
    functionSourceFile: /src/curl/src/tool_cb_prg.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fputs
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: void fly(struct ProgressData *bar, bool moved)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_terminal_columns
      Src: /src/curl/src/tool_cb_prg.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bar
    argTypes:
    - struct ProgressData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: update_width
    functionSourceFile: /src/curl/src/tool_cb_prg.c
    functionUses: 0
    functionsReached:
    - get_terminal_columns
    linkageType: ''
    returnType: void
    signature: void update_width(struct ProgressData *bar)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: curlx_now
      Src: /src/curl/src/tool_cb_prg.c:125,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_cb_prg.c:165,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/src/tool_cb_prg.c:171,1
    - Dst: update_width
      Src: /src/curl/src/tool_cb_prg.c:174,1
    - Dst: fly
      Src: /src/curl/src/tool_cb_prg.c:175,1
    - Dst: update_width
      Src: /src/curl/src/tool_cb_prg.c:182,1
    - Dst: memset
      Src: /src/curl/src/tool_cb_prg.c:200,1
    - Dst: curl_msnprintf
      Src: /src/curl/src/tool_cb_prg.c:202,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_cb_prg.c:207,1
    - Dst: fflush
      Src: /src/curl/src/tool_cb_prg.c:212,1
    - Dst: curl_easy_pause
      Src: /src/curl/src/tool_cb_prg.c:218,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 5
    argNames:
    - clientp
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 222
    functionName: tool_progress_cb
    functionSourceFile: /src/curl/src/tool_cb_prg.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_mfprintf
    - curlx_now
    - curlx_timediff_ms
    - update_width
    - fflush
    - memset
    - fly
    - curl_easy_pause
    linkageType: ''
    returnType: int
    signature: "int tool_progress_cb(void *clientp,\n                     curl_off_t
      dltotal, curl_off_t dlnow,\n                     curl_off_t ultotal, curl_off_t
      ulnow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/src/tool_cb_prg.c:226,1
    - Dst: update_width
      Src: /src/curl/src/tool_cb_prg.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bar
    - config
    argTypes:
    - struct ProgressData*
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: progressbarinit
    functionSourceFile: /src/curl/src/tool_cb_prg.c
    functionUses: 1
    functionsReached:
    - update_width
    - memset
    linkageType: ''
    returnType: void
    signature: void progressbarinit(struct ProgressData *bar, struct OperationConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: CURL_USE_LFN
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_USE_LFN(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: CURL_USE_LFN
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_USE_LFN(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: S_ISCHR
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISCHR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: S_ISCHR
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISCHR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: __crt0_glob_function
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **__crt0_glob_function(char *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_doswin.c:103,1
    - Dst: strpbrk
      Src: /src/curl/src/tool_doswin.c:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - path
    - truncate_pos
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 125
    functionName: truncate_dryrun
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached:
    - strlen
    - strpbrk
    linkageType: ''
    returnType: SANITIZEcode
    signature: "SANITIZEcode truncate_dryrun(const char *path,\n                                    const
      size_t truncate_pos)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_doswin.c:163,1
    - Dst: CURL_USE_LFN
      Src: /src/curl/src/tool_doswin.c:167,1
    - Dst: memchr
      Src: /src/curl/src/tool_doswin.c:181,1
    - Dst: memcpy
      Src: /src/curl/src/tool_doswin.c:239,1
    - Dst: strpbrk
      Src: /src/curl/src/tool_doswin.c:264,1
    - Dst: truncate_dryrun
      Src: /src/curl/src/tool_doswin.c:264,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_doswin.c:268,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 85
    argCount: 3
    argNames:
    - sanitized
    - file_name
    - flags
    argTypes:
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 270
    functionName: msdosify
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached:
    - memcpy
    - truncate_dryrun
    - memchr
    - curlx_strdup
    - CURL_USE_LFN
    - strpbrk
    - strlen
    linkageType: ''
    returnType: SANITIZEcode
    signature: "SANITIZEcode msdosify(char ** const sanitized, const char *file_name,\n
      \                            int flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_doswin.c:308,1
    - Dst: strlen
      Src: /src/curl/src/tool_doswin.c:317,1
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_doswin.c:320,1
    - Dst: memcpy
      Src: /src/curl/src/tool_doswin.c:324,1
    - Dst: curlx_basename
      Src: /src/curl/src/tool_doswin.c:326,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_doswin.c:335,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_doswin.c:336,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_doswin.c:337,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_doswin.c:338,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_doswin.c:339,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_doswin.c:340,1
    - Dst: curl_strnequal
      Src: /src/curl/src/tool_doswin.c:340,1
    - Dst: strlen
      Src: /src/curl/src/tool_doswin.c:367,1
    - Dst: memmove
      Src: /src/curl/src/tool_doswin.c:370,1
    - Dst: curlx_basename
      Src: /src/curl/src/tool_doswin.c:377,1
    - Dst: curlx_stat
      Src: /src/curl/src/tool_doswin.c:388,1
    - Dst: S_ISCHR
      Src: /src/curl/src/tool_doswin.c:388,1
    - Dst: strlen
      Src: /src/curl/src/tool_doswin.c:390,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_doswin.c:393,1
    - Dst: memmove
      Src: /src/curl/src/tool_doswin.c:396,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 56
    argCount: 3
    argNames:
    - sanitized
    - file_name
    - flags
    argTypes:
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 405
    functionName: rename_if_reserved_dos
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memmove
    - curlx_basename
    - S_ISCHR
    - curlx_strdup
    - curl_strnequal
    - curlx_malloc
    - curlx_stat
    - curlx_free
    - strlen
    linkageType: ''
    returnType: SANITIZEcode
    signature: "SANITIZEcode rename_if_reserved_dos(char ** const sanitized,\n                                           const
      char *file_name,\n                                           int flags)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_doswin.c:451,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_doswin.c:453,1
    - Dst: strncmp
      Src: /src/curl/src/tool_doswin.c:458,1
    - Dst: msdosify
      Src: /src/curl/src/tool_doswin.c:502,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_doswin.c:503,1
    - Dst: rename_if_reserved_dos
      Src: /src/curl/src/tool_doswin.c:510,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_doswin.c:511,1
    - Dst: getenv
      Src: /src/curl/src/tool_doswin.c:518,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_doswin.c:519,1
    - Dst: getenv
      Src: /src/curl/src/tool_doswin.c:522,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_doswin.c:523,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 59
    argCount: 3
    argNames:
    - sanitized
    - file_name
    - flags
    argTypes:
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 530
    functionName: sanitize_file_name
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 4
    functionsReached:
    - getenv
    - msdosify
    - curlx_strdup
    - curlx_free
    - rename_if_reserved_dos
    - strlen
    - strncmp
    linkageType: ''
    returnType: SANITIZEcode
    signature: "SANITIZEcode sanitize_file_name(char ** const sanitized, const char
      *file_name,\n                                int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEXT
      Src: /src/curl/src/tool_doswin.c:563,1
    - Dst: SearchPath
      Src: /src/curl/src/tool_doswin.c:565,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_doswin.c:567,1
    - Dst: curlx_convert_tchar_to_UTF8
      Src: /src/curl/src/tool_doswin.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - config
    - bundle_file
    argTypes:
    - struct OperationConfig*
    - TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 574
    functionName: FindWin32CACert
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 1
    functionsReached:
    - curlx_free
    - SearchPath
    - TEXT
    - curlx_convert_tchar_to_UTF8
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode FindWin32CACert(struct OperationConfig *config,\n                         const
      TCHAR *bundle_file)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CreateToolhelp32Snapshot
      Src: /src/curl/src/tool_doswin.c:590,1
    - Dst: GetLastError
      Src: /src/curl/src/tool_doswin.c:591,1
    - Dst: Module32First
      Src: /src/curl/src/tool_doswin.c:596,1
    - Dst: WideCharToMultiByte
      Src: /src/curl/src/tool_doswin.c:607,1
    - Dst: curl_slist_append
      Src: /src/curl/src/tool_doswin.c:614,1
    - Dst: Module32Next
      Src: /src/curl/src/tool_doswin.c:618,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_doswin.c:623,1
    - Dst: CloseHandle
      Src: /src/curl/src/tool_doswin.c:627,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 630
    functionName: GetLoadedModulePaths
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 1
    functionsReached:
    - CreateToolhelp32Snapshot
    - WideCharToMultiByte
    - curl_slist_free_all
    - CloseHandle
    - curl_slist_append
    - Module32Next
    - Module32First
    - GetLastError
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *GetLoadedModulePaths(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedExchange
      Src: /src/curl/src/tool_doswin.c:649,1
    - Dst: SetConsoleMode
      Src: /src/curl/src/tool_doswin.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: restore_terminal
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached:
    - InterlockedExchange
    - SetConsoleMode
    linkageType: ''
    returnType: void
    signature: void restore_terminal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: restore_terminal
      Src: /src/curl/src/tool_doswin.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 661
    functionName: signal_handler
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached:
    - restore_terminal
    linkageType: ''
    returnType: BOOL
    signature: BOOL signal_handler(DWORD type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/curl/src/tool_doswin.c:665,1
    - Dst: GetConsoleMode
      Src: /src/curl/src/tool_doswin.c:674,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/src/tool_doswin.c:676,1
    - Dst: InterlockedExchange
      Src: /src/curl/src/tool_doswin.c:686,1
    - Dst: SetConsoleCtrlHandler
      Src: /src/curl/src/tool_doswin.c:687,1
    - Dst: SetConsoleMode
      Src: /src/curl/src/tool_doswin.c:688,1
    - Dst: atexit
      Src: /src/curl/src/tool_doswin.c:692,1
    - Dst: SetConsoleCtrlHandler
      Src: /src/curl/src/tool_doswin.c:695,1
    - Dst: InterlockedExchange
      Src: /src/curl/src/tool_doswin.c:696,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 700
    functionName: init_terminal
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - SetConsoleCtrlHandler
    - SetConsoleMode
    - curlx_verify_windows_version
    - InterlockedExchange
    - GetConsoleMode
    - atexit
    linkageType: ''
    returnType: void
    signature: void init_terminal(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ACCEPT
      Src: /src/curl/src/tool_doswin.c:720,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:725,1
    - Dst: sclose
      Src: /src/curl/src/tool_doswin.c:729,1
    - Dst: shutdown
      Src: /src/curl/src/tool_doswin.c:731,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:732,1
    - Dst: ReadFile
      Src: /src/curl/src/tool_doswin.c:740,1
    - Dst: swrite
      Src: /src/curl/src/tool_doswin.c:744,1
    - Dst: CloseHandle
      Src: /src/curl/src/tool_doswin.c:751,1
    - Dst: sclose
      Src: /src/curl/src/tool_doswin.c:754,1
    - Dst: sclose
      Src: /src/curl/src/tool_doswin.c:758,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_doswin.c:760,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 1
    argNames:
    - thread_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 714
    functionDepth: 3
    functionLinenumber: 714
    functionLinenumberEnd: 762
    functionName: win_stdin_thread_func
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 0
    functionsReached:
    - CURL_ACCEPT
    - swrite
    - errorf
    - CloseHandle
    - curlx_free
    - shutdown
    - ReadFile
    - sclose
    linkageType: ''
    returnType: DWORD
    signature: DWORD win_stdin_thread_func(void *thread_data)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/curl/src/tool_doswin.c:773,1
    - Dst: assert
      Src: /src/curl/src/tool_doswin.c:776,1
    - Dst: curlx_calloc
      Src: /src/curl/src/tool_doswin.c:784,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:786,1
    - Dst: CURL_SOCKET
      Src: /src/curl/src/tool_doswin.c:791,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:793,1
    - Dst: memset
      Src: /src/curl/src/tool_doswin.c:798,1
    - Dst: htonl
      Src: /src/curl/src/tool_doswin.c:800,1
    - Dst: bind
      Src: /src/curl/src/tool_doswin.c:802,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:803,1
    - Dst: getsockname
      Src: /src/curl/src/tool_doswin.c:808,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:809,1
    - Dst: listen
      Src: /src/curl/src/tool_doswin.c:813,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:814,1
    - Dst: DuplicateHandle
      Src: /src/curl/src/tool_doswin.c:819,1
    - Dst: GetCurrentProcess
      Src: /src/curl/src/tool_doswin.c:819,1
    - Dst: GetStdHandle
      Src: /src/curl/src/tool_doswin.c:819,1
    - Dst: GetCurrentProcess
      Src: /src/curl/src/tool_doswin.c:820,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:822,1
    - Dst: GetLastError
      Src: /src/curl/src/tool_doswin.c:822,1
    - Dst: CreateThread
      Src: /src/curl/src/tool_doswin.c:830,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:833,1
    - Dst: GetLastError
      Src: /src/curl/src/tool_doswin.c:833,1
    - Dst: CURL_SOCKET
      Src: /src/curl/src/tool_doswin.c:839,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:841,1
    - Dst: setsockopt
      Src: /src/curl/src/tool_doswin.c:846,1
    - Dst: connect
      Src: /src/curl/src/tool_doswin.c:848,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:849,1
    - Dst: shutdown
      Src: /src/curl/src/tool_doswin.c:853,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:854,1
    - Dst: SetStdHandle
      Src: /src/curl/src/tool_doswin.c:859,1
    - Dst: errorf
      Src: /src/curl/src/tool_doswin.c:860,1
    - Dst: GetLastError
      Src: /src/curl/src/tool_doswin.c:860,1
    - Dst: GetStdHandle
      Src: /src/curl/src/tool_doswin.c:869,1
    - Dst: SetStdHandle
      Src: /src/curl/src/tool_doswin.c:872,1
    - Dst: sclose
      Src: /src/curl/src/tool_doswin.c:876,1
    - Dst: TerminateThread
      Src: /src/curl/src/tool_doswin.c:881,1
    - Dst: CloseHandle
      Src: /src/curl/src/tool_doswin.c:882,1
    - Dst: CloseHandle
      Src: /src/curl/src/tool_doswin.c:888,1
    - Dst: sclose
      Src: /src/curl/src/tool_doswin.c:890,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_doswin.c:892,1
    - Dst: assert
      Src: /src/curl/src/tool_doswin.c:898,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (socket_r != CURL_SOCKET_BAD)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/curl/src/tool_doswin.c
    - condition: (stdin_thread == NULL)
      pos:
        line_end: 775
        line_start: 775
        source_file: /src/curl/src/tool_doswin.c
    - condition: (stdin_thread != NULL)
      pos:
        line_end: 772
        line_start: 772
        source_file: /src/curl/src/tool_doswin.c
    constantsTouched: []
    func_position:
      end: 900
      start: 765
    functionDepth: 3
    functionLinenumber: 765
    functionLinenumberEnd: 900
    functionName: win32_stdin_read_thread
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 1
    functionsReached:
    - SetStdHandle
    - getsockname
    - htonl
    - GetStdHandle
    - TerminateThread
    - DuplicateHandle
    - GetCurrentProcess
    - CreateThread
    - CURL_SOCKET
    - CloseHandle
    - setsockopt
    - bind
    - curlx_free
    - curlx_calloc
    - assert
    - memset
    - shutdown
    - GetLastError
    - connect
    - errorf
    - listen
    - sclose
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t win32_stdin_read_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_verify_windows_init
      Src: /src/curl/src/tool_doswin.c:907,1
    - Dst: curlx_now_init
      Src: /src/curl/src/tool_doswin.c:908,1
    - Dst: init_terminal
      Src: /src/curl/src/tool_doswin.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 914
    functionName: win32_init
    functionSourceFile: /src/curl/src/tool_doswin.c
    functionUses: 2
    functionsReached:
    - curlx_now_init
    - init_terminal
    - curlx_verify_windows_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode win32_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/src/tool_formparse.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - parent
    - kind
    argTypes:
    - struct tool_mime*
    - toolmimekind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: tool_mime_new
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    linkageType: ''
    returnType: struct tool_mime
    signature: "struct tool_mime *tool_mime_new(struct tool_mime *parent,\n                                       toolmimekind
      kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tool_mime_new
      Src: /src/curl/src/tool_formparse.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - struct tool_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: tool_mime_new_parts
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - tool_mime_new
    linkageType: ''
    returnType: struct tool_mime
    signature: struct tool_mime *tool_mime_new_parts(struct tool_mime *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_formparse.c:60,1
    - Dst: tool_mime_new
      Src: /src/curl/src/tool_formparse.c:62,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_formparse.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - parent
    - mime_data
    argTypes:
    - struct tool_mime*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: tool_mime_new_data
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - tool_mime_new
    - curlx_strdup
    linkageType: ''
    returnType: struct tool_mime
    signature: "struct tool_mime *tool_mime_new_data(struct tool_mime *parent,\n                                            char
      *mime_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_formparse.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - uznum
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: uztoso
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t uztoso(size_t uznum)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_formparse.c:105,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_formparse.c:107,1
    - Dst: tool_mime_new
      Src: /src/curl/src/tool_formparse.c:109,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_formparse.c:111,1
    - Dst: fileno
      Src: /src/curl/src/tool_formparse.c:121,1
    - Dst: CURL_BINMODE
      Src: /src/curl/src/tool_formparse.c:127,1
    - Dst: ftell
      Src: /src/curl/src/tool_formparse.c:128,1
    - Dst: curlx_fstat
      Src: /src/curl/src/tool_formparse.c:131,1
    - Dst: S_ISREG
      Src: /src/curl/src/tool_formparse.c:135,1
    - Dst: file2memory
      Src: /src/curl/src/tool_formparse.c:143,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_formparse.c:152,1
    - Dst: uztoso
      Src: /src/curl/src/tool_formparse.c:158,1
    - Dst: tool_mime_new
      Src: /src/curl/src/tool_formparse.c:161,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_formparse.c:163,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 4
    argNames:
    - parent
    - filename
    - isremotefile
    - errcode
    argTypes:
    - struct tool_mime*
    - char*
    - bool
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 173
    functionName: tool_mime_new_filedata
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - tool_mime_new
    - S_ISREG
    - curlx_strdup
    - curlx_free
    - strcmp
    - file2memory
    - CURL_BINMODE
    - curlx_fstat
    - uztoso
    - ftell
    - fileno
    linkageType: ''
    returnType: struct tool_mime
    signature: "struct tool_mime *tool_mime_new_filedata(struct tool_mime *parent,\n
      \                                               const char *filename,\n                                                bool
      isremotefile,\n                                                CURLcode *errcode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tool_mime_free
      Src: /src/curl/src/tool_formparse.c:181,1
    - Dst: tool_mime_free
      Src: /src/curl/src/tool_formparse.c:183,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_formparse.c:184,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_formparse.c:185,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_formparse.c:186,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_formparse.c:187,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_formparse.c:188,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_formparse.c:189,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_formparse.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - mime
    argTypes:
    - struct tool_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 192
    functionName: tool_mime_free
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 2
    functionsReached:
    - tool_mime_free
    - curlx_free
    - curl_slist_free_all
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void tool_mime_free(struct tool_mime *mime)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uztoso
      Src: /src/curl/src/tool_formparse.c:206,1
    - Dst: curlx_sotouz
      Src: /src/curl/src/tool_formparse.c:207,1
    - Dst: memcpy
      Src: /src/curl/src/tool_formparse.c:212,1
    - Dst: curlx_sotouz
      Src: /src/curl/src/tool_formparse.c:212,1
    - Dst: fread
      Src: /src/curl/src/tool_formparse.c:216,1
    - Dst: ferror
      Src: /src/curl/src/tool_formparse.c:217,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:220,1
    - Dst: curlx_strerror
      Src: /src/curl/src/tool_formparse.c:221,1
    - Dst: uztoso
      Src: /src/curl/src/tool_formparse.c:225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - arg
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 228
    functionName: tool_mime_stdin_read
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ferror
    - curlx_sotouz
    - curlx_strerror
    - warnf
    - fread
    - uztoso
    linkageType: ''
    returnType: size_t
    signature: "size_t tool_mime_stdin_read(char *buffer,\n                                   size_t
      size, size_t nitems, void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fseek
      Src: /src/curl/src/tool_formparse.c:245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - instream
    - offset
    - whence
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 250
    functionName: tool_mime_stdin_seek
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - curlx_fseek
    linkageType: ''
    returnType: int
    signature: int tool_mime_stdin_seek(void *instream, curl_off_t offset, int whence)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/src/tool_formparse.c:274,1
    - Dst: curl_mime_addpart
      Src: /src/curl/src/tool_formparse.c:291,1
    - Dst: tool2curlmime
      Src: /src/curl/src/tool_formparse.c:299,1
    - Dst: curl_mime_subparts
      Src: /src/curl/src/tool_formparse.c:301,1
    - Dst: curl_mime_free
      Src: /src/curl/src/tool_formparse.c:303,1
    - Dst: curl_mime_data
      Src: /src/curl/src/tool_formparse.c:308,1
    - Dst: curl_mime_filedata
      Src: /src/curl/src/tool_formparse.c:313,1
    - Dst: curl_mime_filename
      Src: /src/curl/src/tool_formparse.c:315,1
    - Dst: FALLTHROUGH
      Src: /src/curl/src/tool_formparse.c:321,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/src/tool_formparse.c:323,1
    - Dst: curl_mime_filename
      Src: /src/curl/src/tool_formparse.c:336,1
    - Dst: curl_mime_type
      Src: /src/curl/src/tool_formparse.c:338,1
    - Dst: curl_mime_headers
      Src: /src/curl/src/tool_formparse.c:340,1
    - Dst: curl_mime_encoder
      Src: /src/curl/src/tool_formparse.c:342,1
    - Dst: curl_mime_name
      Src: /src/curl/src/tool_formparse.c:344,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_formparse.c:350,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 3
    argNames:
    - curl
    - m
    - mime
    argTypes:
    - CURL*
    - struct tool_mime*
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 352
    functionName: tool2curlparts
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - curl_mime_headers
    - curl_mime_subparts
    - curl_mime_free
    - curl_mime_filename
    - curl_mime_name
    - curlx_malloc
    - curl_mime_addpart
    - curl_mime_data_cb
    - curlx_free
    - curl_mime_encoder
    - tool2curlmime
    - curl_mime_data
    - FALLTHROUGH
    - curl_mime_type
    - curl_mime_filedata
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tool2curlparts(CURL *curl, struct tool_mime *m,\n                               curl_mime
      *mime)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mime_init
      Src: /src/curl/src/tool_formparse.c:358,1
    - Dst: tool2curlparts
      Src: /src/curl/src/tool_formparse.c:362,1
    - Dst: curl_mime_free
      Src: /src/curl/src/tool_formparse.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - curl
    - m
    - mime
    argTypes:
    - CURL*
    - struct tool_mime*
    - curl_mime**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 368
    functionName: tool2curlmime
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 2
    functionsReached:
    - tool2curlparts
    - curl_mime_free
    - curl_mime_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tool2curlmime(CURL *curl, struct tool_mime *m, curl_mime **mime)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ISSPACE
      Src: /src/curl/src/tool_formparse.c:411,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:416,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 3
    argNames:
    - str
    - end_pos
    - endchar
    argTypes:
    - char**
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 430
    functionName: get_param_word
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - ISSPACE
    - warnf
    linkageType: ''
    returnType: char
    signature: char *get_param_word(char **str, char **end_pos, char endchar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/src/tool_formparse.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - plist
    - data
    argTypes:
    - struct curl_slist**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 442
    functionName: slist_append
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 82
    functionsReached:
    - curl_slist_append
    linkageType: ''
    returnType: int
    signature: int slist_append(struct curl_slist **plist, const char *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_formparse.c:454,1
    - Dst: my_get_line
      Src: /src/curl/src/tool_formparse.c:455,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_formparse.c:456,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_formparse.c:457,1
    - Dst: ISNEWLINE
      Src: /src/curl/src/tool_formparse.c:464,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:464,1
    - Dst: curlx_dyn_setlen
      Src: /src/curl/src/tool_formparse.c:469,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_formparse.c:475,1
    - Dst: curlx_dyn_add
      Src: /src/curl/src/tool_formparse.c:480,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_formparse.c:480,1
    - Dst: curl_free
      Src: /src/curl/src/tool_formparse.c:484,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_formparse.c:487,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_formparse.c:487,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_formparse.c:488,1
    - Dst: slist_append
      Src: /src/curl/src/tool_formparse.c:493,1
    - Dst: errorf
      Src: /src/curl/src/tool_formparse.c:496,1
    - Dst: errorf
      Src: /src/curl/src/tool_formparse.c:502,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_formparse.c:505,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 2
    argNames:
    - fp
    - pheaders
    argTypes:
    - FILE*
    - struct curl_slist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 507
    functionName: read_field_headers
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_maprintf
    - curlx_dyn_addn
    - curlx_dyn_add
    - ISNEWLINE
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_setlen
    - curlx_dyn_ptr
    - errorf
    - my_get_line
    - curl_free
    - ISBLANK
    - slist_append
    linkageType: ''
    returnType: int
    signature: int read_field_headers(FILE *fp, struct curl_slist **pheaders)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:513,1
    - Dst: strcspn
      Src: /src/curl/src/tool_formparse.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ptr
    - ptype
    - endct
    - sep
    argTypes:
    - char**
    - char**
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 524
    functionName: param_type
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - strcspn
    - ISBLANK
    linkageType: ''
    returnType: void
    signature: void param_type(char **ptr, char **ptype, char **endct, char *sep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:537,1
    - Dst: get_param_word
      Src: /src/curl/src/tool_formparse.c:540,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - ptr
    - endct
    - pfilename
    - endchar
    - sep
    argTypes:
    - char**
    - char**
    - char**
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 526
    functionDepth: 4
    functionLinenumber: 526
    functionLinenumberEnd: 548
    functionName: param_filename
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - ISBLANK
    - get_param_word
    linkageType: ''
    returnType: void
    signature: "void param_filename(char **ptr, char **endct, char **pfilename,\n
      \                          char endchar, char *sep)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:568,1
    - Dst: get_param_word
      Src: /src/curl/src/tool_formparse.c:570,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:573,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_formparse.c:577,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:580,1
    - Dst: curlx_strerror
      Src: /src/curl/src/tool_formparse.c:581,1
    - Dst: read_field_headers
      Src: /src/curl/src/tool_formparse.c:584,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_formparse.c:586,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_formparse.c:588,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:596,1
    - Dst: get_param_word
      Src: /src/curl/src/tool_formparse.c:599,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:602,1
    - Dst: slist_append
      Src: /src/curl/src/tool_formparse.c:606,1
    - Dst: errorf
      Src: /src/curl/src/tool_formparse.c:607,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_formparse.c:608,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 5
    argNames:
    - ptr
    - endct
    - pheaders
    - endchar
    - sep
    argTypes:
    - char**
    - char**
    - struct curl_slist**
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 550
    functionDepth: 4
    functionLinenumber: 550
    functionLinenumberEnd: 614
    functionName: param_headers
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_slist_free_all
    - read_field_headers
    - curlx_strerror
    - curlx_fopen
    - get_param_word
    - errorf
    - warnf
    - ISBLANK
    - slist_append
    linkageType: ''
    returnType: int
    signature: "int param_headers(char **ptr, char **endct,\n                         struct
      curl_slist **pheaders, char endchar, char *sep)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:627,1
    - Dst: get_param_word
      Src: /src/curl/src/tool_formparse.c:630,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:633,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - ptr
    - endct
    - pencoder
    - endchar
    - sep
    argTypes:
    - char**
    - char**
    - char**
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 638
    functionName: param_encoder
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - ISBLANK
    - get_param_word
    linkageType: ''
    returnType: void
    signature: "void param_encoder(char **ptr, char **endct, char **pencoder,\n                          char
      endchar, char *sep)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:689,1
    - Dst: get_param_word
      Src: /src/curl/src/tool_formparse.c:692,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:695,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:700,1
    - Dst: checkprefix
      Src: /src/curl/src/tool_formparse.c:703,1
    - Dst: param_type
      Src: /src/curl/src/tool_formparse.c:704,1
    - Dst: checkprefix
      Src: /src/curl/src/tool_formparse.c:705,1
    - Dst: param_filename
      Src: /src/curl/src/tool_formparse.c:706,1
    - Dst: checkprefix
      Src: /src/curl/src/tool_formparse.c:707,1
    - Dst: param_headers
      Src: /src/curl/src/tool_formparse.c:708,1
    - Dst: checkprefix
      Src: /src/curl/src/tool_formparse.c:711,1
    - Dst: param_encoder
      Src: /src/curl/src/tool_formparse.c:712,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_formparse.c:716,1
    - Dst: get_param_word
      Src: /src/curl/src/tool_formparse.c:722,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:727,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:738,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:743,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:748,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:753,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_formparse.c:754,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 65
    argCount: 7
    argNames:
    - endchar
    - str
    - pdata
    - ptype
    - pfilename
    - pencoder
    - pheaders
    argTypes:
    - char
    - char**
    - char**
    - char**
    - char**
    - char**
    - struct curl_slist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 666
    functionDepth: 5
    functionLinenumber: 666
    functionLinenumberEnd: 759
    functionName: get_param_part
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached:
    - checkprefix
    - param_filename
    - param_headers
    - param_encoder
    - curl_slist_free_all
    - get_param_word
    - warnf
    - ISBLANK
    - param_type
    linkageType: ''
    returnType: int
    signature: "int get_param_part(char endchar,\n                          char **str,
      char **pdata, char **ptype,\n                          char **pfilename, char
      **pencoder,\n                          struct curl_slist **pheaders)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 816
    functionName: SET_TOOL_MIME_PTR
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TOOL_MIME_PTR(m, field)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: tool_mime_new_parts
      Src: /src/curl/src/tool_formparse.c:838,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_formparse.c:845,1
    - Dst: strchr
      Src: /src/curl/src/tool_formparse.c:850,1
    - Dst: get_param_part
      Src: /src/curl/src/tool_formparse.c:859,1
    - Dst: tool_mime_new_parts
      Src: /src/curl/src/tool_formparse.c:862,1
    - Dst: SET_TOOL_MIME_PTR
      Src: /src/curl/src/tool_formparse.c:868,1
    - Dst: strcmp
      Src: /src/curl/src/tool_formparse.c:870,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:873,1
    - Dst: get_param_part
      Src: /src/curl/src/tool_formparse.c:888,1
    - Dst: tool_mime_new_parts
      Src: /src/curl/src/tool_formparse.c:900,1
    - Dst: tool_mime_new_filedata
      Src: /src/curl/src/tool_formparse.c:907,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:916,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_formparse.c:919,1
    - Dst: SET_TOOL_MIME_PTR
      Src: /src/curl/src/tool_formparse.c:923,1
    - Dst: SET_TOOL_MIME_PTR
      Src: /src/curl/src/tool_formparse.c:924,1
    - Dst: SET_TOOL_MIME_PTR
      Src: /src/curl/src/tool_formparse.c:925,1
    - Dst: get_param_part
      Src: /src/curl/src/tool_formparse.c:934,1
    - Dst: tool_mime_new_filedata
      Src: /src/curl/src/tool_formparse.c:939,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:949,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_formparse.c:952,1
    - Dst: get_param_part
      Src: /src/curl/src/tool_formparse.c:961,1
    - Dst: tool_mime_new_data
      Src: /src/curl/src/tool_formparse.c:967,1
    - Dst: SET_TOOL_MIME_PTR
      Src: /src/curl/src/tool_formparse.c:974,1
    - Dst: SET_TOOL_MIME_PTR
      Src: /src/curl/src/tool_formparse.c:975,1
    - Dst: SET_TOOL_MIME_PTR
      Src: /src/curl/src/tool_formparse.c:976,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:980,1
    - Dst: SET_TOOL_MIME_PTR
      Src: /src/curl/src/tool_formparse.c:985,1
    - Dst: warnf
      Src: /src/curl/src/tool_formparse.c:988,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_formparse.c:993,1
    - Dst: curl_slist_free_all
      Src: /src/curl/src/tool_formparse.c:994,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 135
    argCount: 4
    argNames:
    - input
    - mimeroot
    - mimecurrent
    - literal_value
    argTypes:
    - char*
    - struct tool_mime**
    - struct tool_mime**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 817
    functionDepth: 6
    functionLinenumber: 817
    functionLinenumberEnd: 996
    functionName: formparse
    functionSourceFile: /src/curl/src/tool_formparse.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - SET_TOOL_MIME_PTR
    - get_param_part
    - curl_slist_free_all
    - curlx_strdup
    - tool_mime_new_filedata
    - strcmp
    - tool_mime_new_parts
    - warnf
    - strchr
    - tool_mime_new_data
    linkageType: ''
    returnType: int
    signature: "int formparse(const char *input,\n              struct tool_mime **mimeroot,\n
      \             struct tool_mime **mimecurrent,\n              bool literal_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_SOCKET
      Src: /src/curl/src/tool_cb_soc.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - clientp
    - purpose
    - addr
    argTypes:
    - void*
    - curlsocktype
    - struct curl_sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 58
    functionName: tool_socket_open_mptcp_cb
    functionSourceFile: /src/curl/src/tool_cb_soc.c
    functionUses: 0
    functionsReached:
    - CURL_SOCKET
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t tool_socket_open_mptcp_cb(void *clientp,\n                                        curlsocktype
      purpose,\n                                        struct curl_sockaddr *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: tool_init_stderr
    functionSourceFile: /src/curl/src/tool_stderr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tool_init_stderr(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/src/tool_stderr.c:44,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_stderr.c:51,1
    - Dst: warnf
      Src: /src/curl/src/tool_stderr.c:53,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_stderr.c:56,1
    - Dst: curlx_freopen
      Src: /src/curl/src/tool_stderr.c:61,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_stderr.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 69
    functionName: tool_set_stderr_file
    functionSourceFile: /src/curl/src/tool_stderr.c
    functionUses: 1
    functionsReached:
    - curlx_fclose
    - DEBUGASSERT
    - curlx_fopen
    - strcmp
    - warnf
    - curlx_freopen
    linkageType: ''
    returnType: void
    signature: void tool_set_stderr_file(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/curlinfo.c:273,1
    - Dst: puts
      Src: /src/curl/src/curlinfo.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: main
    functionSourceFile: /src/curl/src/curlinfo.c
    functionUses: 0
    functionsReached:
    - puts
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/src/tool_xattr.c:50,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_xattr.c:52,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_xattr.c:56,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_xattr.c:60,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_xattr.c:64,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_xattr.c:68,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_xattr.c:73,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: stripcredentials
    functionSourceFile: /src/curl/src/tool_xattr.c
    functionUses: 1
    functionsReached:
    - curl_url_set
    - curl_url_get
    - curl_url
    - curl_url_cleanup
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST *stripcredentials(const char *url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/src/tool_xattr.c:84,1
    - Dst: curl_mprintf
      Src: /src/curl/src/tool_xattr.c:85,1
    - Dst: fsetxattr
      Src: /src/curl/src/tool_xattr.c:90,1
    - Dst: strlen
      Src: /src/curl/src/tool_xattr.c:90,1
    - Dst: fsetxattr
      Src: /src/curl/src/tool_xattr.c:92,1
    - Dst: strlen
      Src: /src/curl/src/tool_xattr.c:92,1
    - Dst: extattr_set_fd
      Src: /src/curl/src/tool_xattr.c:95,1
    - Dst: strlen
      Src: /src/curl/src/tool_xattr.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - attr
    - value
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 104
    functionName: xattr
    functionSourceFile: /src/curl/src/tool_xattr.c
    functionUses: 2
    functionsReached:
    - fsetxattr
    - getenv
    - curl_mprintf
    - extattr_set_fd
    - strlen
    linkageType: ''
    returnType: int
    signature: "int xattr(int fd,\n                 const char *attr, /* name of the
      xattr */\n                 const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xattr
      Src: /src/curl/src/tool_xattr.c:111,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/src/tool_xattr.c:116,1
    - Dst: xattr
      Src: /src/curl/src/tool_xattr.c:118,1
    - Dst: stripcredentials
      Src: /src/curl/src/tool_xattr.c:122,1
    - Dst: xattr
      Src: /src/curl/src/tool_xattr.c:125,1
    - Dst: curl_free
      Src: /src/curl/src/tool_xattr.c:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - curl
    - url
    - fd
    argTypes:
    - CURL*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 129
    functionName: fwrite_xattr
    functionSourceFile: /src/curl/src/tool_xattr.c
    functionUses: 1
    functionsReached:
    - xattr
    - curl_easy_getinfo
    - stripcredentials
    - curl_free
    linkageType: ''
    returnType: int
    signature: int fwrite_xattr(CURL *curl, const char *url, int fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_cb_wrt.c:43,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_cb_wrt.c:44,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_cb_wrt.c:45,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_cb_wrt.c:51,1
    - Dst: curlx_open
      Src: /src/curl/src/tool_cb_wrt.c:56,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_cb_wrt.c:65,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/tool_cb_wrt.c:71,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/tool_cb_wrt.c:72,1
    - Dst: curlx_open
      Src: /src/curl/src/tool_cb_wrt.c:76,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_cb_wrt.c:76,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_cb_wrt.c:82,1
    - Dst: curlx_fdopen
      Src: /src/curl/src/tool_cb_wrt.c:94,1
    - Dst: curlx_close
      Src: /src/curl/src/tool_cb_wrt.c:96,1
    - Dst: warnf
      Src: /src/curl/src/tool_cb_wrt.c:102,1
    - Dst: curlx_strerror
      Src: /src/curl/src/tool_cb_wrt.c:103,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 2
    argNames:
    - outs
    - config
    argTypes:
    - struct OutStruct*
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 112
    functionName: tool_create_output_file
    functionSourceFile: /src/curl/src/tool_cb_wrt.c
    functionUses: 3
    functionsReached:
    - curlx_dyn_init
    - curlx_close
    - curlx_fdopen
    - DEBUGASSERT
    - curlx_strerror
    - curlx_fopen
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - curlx_open
    - warnf
    - curlx_dyn_addf
    linkageType: ''
    returnType: bool
    signature: "bool tool_create_output_file(struct OutStruct *outs,\n                             struct
      OperationConfig *config)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/curl/src/tool_cb_wrt.c:167,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/src/tool_cb_wrt.c:168,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_cb_wrt.c:169,1
    - Dst: WriteConsoleW
      Src: /src/curl/src/tool_cb_wrt.c:170,1
    - Dst: memset
      Src: /src/curl/src/tool_cb_wrt.c:177,1
    - Dst: IS_TRAILING_BYTE
      Src: /src/curl/src/tool_cb_wrt.c:188,1
    - Dst: IS_TRAILING_BYTE
      Src: /src/curl/src/tool_cb_wrt.c:195,1
    - Dst: MultiByteToWideChar
      Src: /src/curl/src/tool_cb_wrt.c:209,1
    - Dst: curlx_realloc
      Src: /src/curl/src/tool_cb_wrt.c:216,1
    - Dst: MultiByteToWideChar
      Src: /src/curl/src/tool_cb_wrt.c:223,1
    - Dst: WriteConsoleW
      Src: /src/curl/src/tool_cb_wrt.c:229,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 81
    argCount: 5
    argNames:
    - fhnd
    - outs
    - buffer
    - bytes
    - retp
    argTypes:
    - intptr_t
    - struct OutStruct*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 236
    functionName: win_console
    functionSourceFile: /src/curl/src/tool_cb_wrt.c
    functionUses: 0
    functionsReached:
    - MultiByteToWideChar
    - DEBUGASSERT
    - CURL_ARRAYSIZE
    - IS_TRAILING_BYTE
    - WriteConsoleW
    - memset
    - curlx_realloc
    linkageType: ''
    returnType: size_t
    signature: "size_t win_console(intptr_t fhnd, struct OutStruct *outs,\n                          char
      *buffer, size_t bytes,\n                          size_t *retp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: IS_TRAILING_BYTE
    functionSourceFile: /src/curl/src/tool_cb_wrt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_TRAILING_BYTE(x)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: curl_getenv
      Src: /src/curl/src/tool_cb_wrt.c:261,1
    - Dst: curl_free
      Src: /src/curl/src/tool_cb_wrt.c:264,1
    - Dst: warnf
      Src: /src/curl/src/tool_cb_wrt.c:270,1
    - Dst: warnf
      Src: /src/curl/src/tool_cb_wrt.c:276,1
    - Dst: warnf
      Src: /src/curl/src/tool_cb_wrt.c:305,1
    - Dst: tool_create_output_file
      Src: /src/curl/src/tool_cb_wrt.c:311,1
    - Dst: memchr
      Src: /src/curl/src/tool_cb_wrt.c:316,1
    - Dst: warnf
      Src: /src/curl/src/tool_cb_wrt.c:317,1
    - Dst: _get_osfhandle
      Src: /src/curl/src/tool_cb_wrt.c:326,1
    - Dst: fileno
      Src: /src/curl/src/tool_cb_wrt.c:326,1
    - Dst: isatty
      Src: /src/curl/src/tool_cb_wrt.c:328,1
    - Dst: fileno
      Src: /src/curl/src/tool_cb_wrt.c:328,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/curl/src/tool_cb_wrt.c:329,1
    - Dst: win_console
      Src: /src/curl/src/tool_cb_wrt.c:330,1
    - Dst: tool_write_headers
      Src: /src/curl/src/tool_cb_wrt.c:338,1
    - Dst: fwrite
      Src: /src/curl/src/tool_cb_wrt.c:341,1
    - Dst: curl_easy_pause
      Src: /src/curl/src/tool_cb_wrt.c:350,1
    - Dst: fflush
      Src: /src/curl/src/tool_cb_wrt.c:357,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 75
    argCount: 4
    argNames:
    - buffer
    - sz
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 366
    functionName: tool_write_cb
    functionSourceFile: /src/curl/src/tool_cb_wrt.c
    functionUses: 0
    functionsReached:
    - tool_create_output_file
    - tool_write_headers
    - win_console
    - curl_easy_pause
    - curl_getenv
    - memchr
    - _get_osfhandle
    - fwrite
    - warnf
    - fflush
    - isatty
    - curl_free
    - fileno
    - GetConsoleScreenBufferInfo
    linkageType: ''
    returnType: size_t
    signature: size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout_json.c:46,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout_json.c:49,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout_json.c:52,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout_json.c:55,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout_json.c:58,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout_json.c:61,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout_json.c:64,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/src/tool_writeout_json.c:68,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_writeout_json.c:74,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 4
    argNames:
    - in
    - len
    - out
    - lowercase
    argTypes:
    - char*
    - size_t
    - struct dynbuf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 82
    functionName: jsonquoted
    functionSourceFile: /src/curl/src/tool_writeout_json.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_addn
    - curlx_dyn_addf
    linkageType: ''
    returnType: int
    signature: int jsonquoted(const char *in, size_t len, struct dynbuf *out, bool
      lowercase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_writeout_json.c:87,1
    - Dst: jsonquoted
      Src: /src/curl/src/tool_writeout_json.c:89,1
    - Dst: strlen
      Src: /src/curl/src/tool_writeout_json.c:89,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:90,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_writeout_json.c:91,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout_json.c:92,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_writeout_json.c:92,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:93,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_writeout_json.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - stream
    - in
    - lowercase
    argTypes:
    - FILE*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: jsonWriteString
    functionSourceFile: /src/curl/src/tool_writeout_json.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - fputs
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_ptr
    - strlen
    - fputc
    - jsonquoted
    linkageType: ''
    returnType: void
    signature: void jsonWriteString(FILE *stream, const char *in, bool lowercase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/curl/src/tool_writeout_json.c:104,1
    - Dst: writefunc
      Src: /src/curl/src/tool_writeout_json.c:108,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout_json.c:109,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout_json.c:114,1
    - Dst: jsonWriteString
      Src: /src/curl/src/tool_writeout_json.c:115,1
    - Dst: curl_version
      Src: /src/curl/src/tool_writeout_json.c:115,1
    - Dst: curl_mfprintf
      Src: /src/curl/src/tool_writeout_json.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - stream
    - mappings
    - nentries
    - per
    - per_result
    argTypes:
    - FILE*
    - struct writeoutvar[]
    - size_t
    - struct per_transfer*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: ourWriteOutJSON
    functionSourceFile: /src/curl/src/tool_writeout_json.c
    functionUses: 1
    functionsReached:
    - curl_mfprintf
    - fputs
    - writefunc
    - curl_version
    - jsonWriteString
    linkageType: ''
    returnType: void
    signature: "void ourWriteOutJSON(FILE *stream, const struct writeoutvar mappings[],\n
      \                    size_t nentries,\n                     struct per_transfer
      *per, CURLcode per_result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:124,1
    - Dst: curl_easy_nextheader
      Src: /src/curl/src/tool_writeout_json.c:125,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout_json.c:135,1
    - Dst: jsonWriteString
      Src: /src/curl/src/tool_writeout_json.c:136,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:137,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:139,1
    - Dst: jsonWriteString
      Src: /src/curl/src/tool_writeout_json.c:141,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:144,1
    - Dst: curl_easy_header
      Src: /src/curl/src/tool_writeout_json.c:145,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:148,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout_json.c:153,1
    - Dst: jsonWriteString
      Src: /src/curl/src/tool_writeout_json.c:154,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:155,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:156,1
    - Dst: jsonWriteString
      Src: /src/curl/src/tool_writeout_json.c:157,1
    - Dst: fputc
      Src: /src/curl/src/tool_writeout_json.c:158,1
    - Dst: fputs
      Src: /src/curl/src/tool_writeout_json.c:162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - stream
    - per
    argTypes:
    - FILE*
    - struct per_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 163
    functionName: headerJSON
    functionSourceFile: /src/curl/src/tool_writeout_json.c
    functionUses: 1
    functionsReached:
    - curl_easy_header
    - fputs
    - curl_easy_nextheader
    - jsonWriteString
    - fputc
    linkageType: ''
    returnType: void
    signature: void headerJSON(FILE *stream, struct per_transfer *per)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_getenv
      Src: /src/curl/src/terminal.c:45,1
    - Dst: curlx_str_number
      Src: /src/curl/src/terminal.c:49,1
    - Dst: curl_free
      Src: /src/curl/src/terminal.c:51,1
    - Dst: ioctl
      Src: /src/curl/src/terminal.c:59,1
    - Dst: ioctl
      Src: /src/curl/src/terminal.c:63,1
    - Dst: GetStdHandle
      Src: /src/curl/src/terminal.c:67,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/curl/src/terminal.c:71,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 86
    functionName: get_terminal_columns
    functionSourceFile: /src/curl/src/terminal.c
    functionUses: 3
    functionsReached:
    - ioctl
    - GetStdHandle
    - curl_getenv
    - curlx_str_number
    - curl_free
    - GetConsoleScreenBufferInfo
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_terminal_columns(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 1
    argNames:
    - error
    argTypes:
    - ParameterError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 75
    functionName: param2text
    functionSourceFile: /src/curl/src/tool_helpers.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *param2text(ParameterError error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warnf
      Src: /src/curl/src/tool_helpers.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - req
    - store
    argTypes:
    - HttpReq
    - HttpReq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: SetHTTPrequest
    functionSourceFile: /src/curl/src/tool_helpers.c
    functionUses: 4
    functionsReached:
    - warnf
    linkageType: ''
    returnType: int
    signature: int SetHTTPrequest(HttpReq req, HttpReq *store)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/src/tool_helpers.c:115,1
    - Dst: notef
      Src: /src/curl/src/tool_helpers.c:116,1
    - Dst: curl_strequal
      Src: /src/curl/src/tool_helpers.c:119,1
    - Dst: warnf
      Src: /src/curl/src/tool_helpers.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - req
    - method
    argTypes:
    - HttpReq
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 123
    functionName: customrequest_helper
    functionSourceFile: /src/curl/src/tool_helpers.c
    functionUses: 1
    functionsReached:
    - curl_strequal
    - warnf
    - notef
    linkageType: ''
    returnType: void
    signature: void customrequest_helper(HttpReq req, const char *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: setfiletime
    functionSourceFile: /src/curl/src/tool_filetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setfiletime(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/src/tool_ipfs.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: has_trailing_slash
    functionSourceFile: /src/curl/src/tool_ipfs.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool has_trailing_slash(const char *input)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/src/tool_ipfs.c:44,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_ipfs.c:47,1
    - Dst: curl_getenv
      Src: /src/curl/src/tool_ipfs.c:50,1
    - Dst: getenv
      Src: /src/curl/src/tool_ipfs.c:53,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_ipfs.c:56,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_ipfs.c:62,1
    - Dst: has_trailing_slash
      Src: /src/curl/src/tool_ipfs.c:63,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_ipfs.c:68,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:69,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_ipfs.c:75,1
    - Dst: getc
      Src: /src/curl/src/tool_ipfs.c:78,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_ipfs.c:80,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_ipfs.c:84,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_ipfs.c:85,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:87,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_ipfs.c:88,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_ipfs.c:94,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:95,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 97
    functionName: ipfs_gateway
    functionSourceFile: /src/curl/src/tool_ipfs.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - curl_maprintf
    - curlx_dyn_addn
    - curl_getenv
    - getenv
    - curlx_strdup
    - getc
    - curlx_fopen
    - curl_free
    - curlx_dyn_len
    - curlx_dyn_ptr
    - has_trailing_slash
    linkageType: ''
    returnType: char
    signature: char *ipfs_gateway(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/src/tool_ipfs.c:118,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_ipfs.c:125,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_ipfs.c:133,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_ipfs.c:135,1
    - Dst: ipfs_gateway
      Src: /src/curl/src/tool_ipfs.c:147,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_ipfs.c:153,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_ipfs.c:160,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_ipfs.c:167,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_ipfs.c:168,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_ipfs.c:169,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_ipfs.c:171,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_ipfs.c:175,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_ipfs.c:180,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_ipfs.c:181,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_ipfs.c:182,1
    - Dst: curl_maprintf
      Src: /src/curl/src/tool_ipfs.c:189,1
    - Dst: has_trailing_slash
      Src: /src/curl/src/tool_ipfs.c:190,1
    - Dst: curl_url_set
      Src: /src/curl/src/tool_ipfs.c:194,1
    - Dst: curlx_safefree
      Src: /src/curl/src/tool_ipfs.c:198,1
    - Dst: curl_url_get
      Src: /src/curl/src/tool_ipfs.c:200,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_ipfs.c:204,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:205,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_ipfs.c:212,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:213,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:214,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:215,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:216,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:217,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:218,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:219,1
    - Dst: curl_free
      Src: /src/curl/src/tool_ipfs.c:220,1
    - Dst: curl_url_cleanup
      Src: /src/curl/src/tool_ipfs.c:221,1
    - Dst: helpf
      Src: /src/curl/src/tool_ipfs.c:225,1
    - Dst: helpf
      Src: /src/curl/src/tool_ipfs.c:228,1
    - Dst: helpf
      Src: /src/curl/src/tool_ipfs.c:231,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 94
    argCount: 4
    argNames:
    - uh
    - protocol
    - url
    - config
    argTypes:
    - CURLU*
    - char*
    - char**
    - struct OperationConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 238
    functionName: ipfs_url_rewrite
    functionSourceFile: /src/curl/src/tool_ipfs.c
    functionUses: 1
    functionsReached:
    - curl_url_set
    - curlx_safefree
    - curl_maprintf
    - helpf
    - ipfs_gateway
    - curl_url_cleanup
    - curlx_strdup
    - curl_free
    - curlx_free
    - curl_url_get
    - has_trailing_slash
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ipfs_url_rewrite(CURLU *uh, const char *protocol, char **url,\n
      \                         struct OperationConfig *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - dash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: ISSEP
    functionSourceFile: /src/curl/src/tool_parsecfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISSEP(x, dash)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/tool_parsecfg.c:46,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_parsecfg.c:70,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_parsecfg.c:74,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - line
    - param
    argTypes:
    - char*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 78
    functionName: unslashquote
    functionSourceFile: /src/curl/src/tool_parsecfg.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_reset
    - curlx_dyn_addn
    linkageType: ''
    returnType: int
    signature: int unslashquote(const char *line, struct dynbuf *param)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: findfile
      Src: /src/curl/src/tool_parsecfg.c:95,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_parsecfg.c:97,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_parsecfg.c:99,1
    - Dst: tool_execpath
      Src: /src/curl/src/tool_parsecfg.c:108,1
    - Dst: tool_execpath
      Src: /src/curl/src/tool_parsecfg.c:110,1
    - Dst: strcmp
      Src: /src/curl/src/tool_parsecfg.c:118,1
    - Dst: curlx_fopen
      Src: /src/curl/src/tool_parsecfg.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - filename
    - namep
    - pathalloc
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 126
    functionName: open_config_file
    functionSourceFile: /src/curl/src/tool_parsecfg.c
    functionUses: 0
    functionsReached:
    - findfile
    - curlx_fopen
    - curlx_free
    - strcmp
    - tool_execpath
    linkageType: ''
    returnType: FILE
    signature: "FILE *open_config_file(const char *filename,\n                              const
      char **namep,\n                              char **pathalloc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/src/tool_parsecfg.c:144,1
    - Dst: ISSEP
      Src: /src/curl/src/tool_parsecfg.c:144,1
    - Dst: unslashquote
      Src: /src/curl/src/tool_parsecfg.c:150,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_parsecfg.c:153,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_parsecfg.c:153,1
    - Dst: CURL_UNCONST
      Src: /src/curl/src/tool_parsecfg.c:153,1
    - Dst: warnf
      Src: /src/curl/src/tool_parsecfg.c:157,1
    - Dst: ISSPACE
      Src: /src/curl/src/tool_parsecfg.c:162,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_parsecfg.c:171,1
    - Dst: warnf
      Src: /src/curl/src/tool_parsecfg.c:181,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 7
    argNames:
    - line
    - dashed_option
    - pbuf
    - filename
    - lineno
    - option
    - param_out
    argTypes:
    - char*
    - bool
    - struct dynbuf*
    - char*
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 192
    functionName: extract_param
    functionSourceFile: /src/curl/src/tool_parsecfg.c
    functionUses: 0
    functionsReached:
    - ISSPACE
    - unslashquote
    - curlx_dyn_len
    - CURL_UNCONST
    - curlx_dyn_ptr
    - warnf
    - ISSEP
    - ISBLANK
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError extract_param(char *line,\n                                    bool
      dashed_option,\n                                    struct dynbuf *pbuf,\n                                    const
      char *filename,\n                                    int lineno,\n                                    const
      char *option,\n                                    char **param_out)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: config_alloc
      Src: /src/curl/src/tool_parsecfg.c:216,1
    - Dst: strcmp
      Src: /src/curl/src/tool_parsecfg.c:233,1
    - Dst: param2text
      Src: /src/curl/src/tool_parsecfg.c:240,1
    - Dst: errorf
      Src: /src/curl/src/tool_parsecfg.c:241,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 25
    argCount: 7
    argNames:
    - res
    - configp
    - param
    - usedarg
    - filename
    - lineno
    - option
    argTypes:
    - ParameterError
    - struct OperationConfig**
    - char*
    - bool
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 249
    functionName: process_config_result
    functionSourceFile: /src/curl/src/tool_parsecfg.c
    functionUses: 0
    functionsReached:
    - param2text
    - strcmp
    - config_alloc
    - errorf
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError process_config_result(ParameterError res,\n                                            struct
      OperationConfig **configp,\n                                            const
      char *param,\n                                            bool usedarg,\n                                            const
      char *filename,\n                                            int lineno,\n                                            const
      char *option)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: open_config_file
      Src: /src/curl/src/tool_parsecfg.c:260,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_parsecfg.c:271,1
    - Dst: curlx_dyn_init
      Src: /src/curl/src/tool_parsecfg.c:272,1
    - Dst: DEBUGASSERT
      Src: /src/curl/src/tool_parsecfg.c:273,1
    - Dst: my_get_line
      Src: /src/curl/src/tool_parsecfg.c:275,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_parsecfg.c:278,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_parsecfg.c:290,1
    - Dst: ISSEP
      Src: /src/curl/src/tool_parsecfg.c:290,1
    - Dst: extract_param
      Src: /src/curl/src/tool_parsecfg.c:298,1
    - Dst: getparameter
      Src: /src/curl/src/tool_parsecfg.c:303,1
    - Dst: process_config_result
      Src: /src/curl/src/tool_parsecfg.c:307,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_parsecfg.c:310,1
    - Dst: curlx_dyn_free
      Src: /src/curl/src/tool_parsecfg.c:311,1
    - Dst: curlx_fclose
      Src: /src/curl/src/tool_parsecfg.c:313,1
    - Dst: errorf
      Src: /src/curl/src/tool_parsecfg.c:323,1
    - Dst: curlx_strdup
      Src: /src/curl/src/tool_parsecfg.c:326,1
    - Dst: curlx_free
      Src: /src/curl/src/tool_parsecfg.c:330,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 3
    argNames:
    - filename
    - max_recursive
    - resolved
    argTypes:
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 251
    functionDepth: 7
    functionLinenumber: 251
    functionLinenumberEnd: 332
    functionName: parseconfig
    functionSourceFile: /src/curl/src/tool_parsecfg.c
    functionUses: 2
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - open_config_file
    - process_config_result
    - DEBUGASSERT
    - curlx_dyn_free
    - curlx_strdup
    - errorf
    - curlx_dyn_ptr
    - getparameter
    - my_get_line
    - curlx_free
    - extract_param
    - ISSEP
    - ISBLANK
    linkageType: ''
    returnType: ParameterError
    signature: "ParameterError parseconfig(const char *filename, int max_recursive,\n
      \                          char **resolved)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/src/tool_parsecfg.c:338,1
    - Dst: fgets
      Src: /src/curl/src/tool_parsecfg.c:340,1
    - Dst: strlen
      Src: /src/curl/src/tool_parsecfg.c:343,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/src/tool_parsecfg.c:348,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_parsecfg.c:357,1
    - Dst: curlx_dyn_setlen
      Src: /src/curl/src/tool_parsecfg.c:359,1
    - Dst: feof
      Src: /src/curl/src/tool_parsecfg.c:363,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_parsecfg.c:366,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - input
    - buf
    - error
    argTypes:
    - FILE*
    - struct dynbuf*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 372
    functionName: get_line
    functionSourceFile: /src/curl/src/tool_parsecfg.c
    functionUses: 6
    functionsReached:
    - fgets
    - curlx_dyn_addn
    - curlx_dyn_len
    - curlx_dyn_setlen
    - curlx_dyn_reset
    - feof
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool get_line(FILE *input, struct dynbuf *buf, bool *error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_line
      Src: /src/curl/src/tool_parsecfg.c:382,1
    - Dst: curlx_dyn_len
      Src: /src/curl/src/tool_parsecfg.c:384,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/src/tool_parsecfg.c:386,1
    - Dst: ISBLANK
      Src: /src/curl/src/tool_parsecfg.c:387,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - input
    - buf
    - error
    argTypes:
    - FILE*
    - struct dynbuf*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 400
    functionName: my_get_line
    functionSourceFile: /src/curl/src/tool_parsecfg.c
    functionUses: 5
    functionsReached:
    - curlx_dyn_len
    - curlx_dyn_ptr
    - ISBLANK
    - get_line
    linkageType: ''
    returnType: bool
    signature: bool my_get_line(FILE *input, struct dynbuf *buf, bool *error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: localtime_s
      Src: /src/curl/src/toolx/tool_time.c:43,1
    - Dst: localtime_r
      Src: /src/curl/src/toolx/tool_time.c:47,1
    - Dst: localtime
      Src: /src/curl/src/toolx/tool_time.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - intime
    - store
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 61
    functionName: toolx_localtime
    functionSourceFile: /src/curl/src/toolx/tool_time.c
    functionUses: 3
    functionsReached:
    - localtime
    - localtime_s
    - localtime_r
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode toolx_localtime(time_t intime, struct tm *store)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-uidl.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-uidl.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-uidl.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-uidl.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-uidl.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-uidl.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-uidl.c:59,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-uidl.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-uidl.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-uidl.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-uidl.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-uidl.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/smtp-authzid.c:82,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/smtp-authzid.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 89
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/smtp-authzid.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/smtp-authzid.c:95,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/smtp-authzid.c:99,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:109,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:110,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:113,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:125,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-authzid.c:129,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:130,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:135,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:136,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-authzid.c:137,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/smtp-authzid.c:140,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smtp-authzid.c:144,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/smtp-authzid.c:145,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/smtp-authzid.c:148,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/smtp-authzid.c:158,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/smtp-authzid.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 164
    functionName: main
    functionSourceFile: /src/curl/docs/examples/smtp-authzid.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-create.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-create.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-create.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-create.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-create.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-create.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-create.c:59,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-create.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-create.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-create.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-create.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-create.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/httpput-postfields.c:62,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/httpput-postfields.c:67,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/httpput-postfields.c:73,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpput-postfields.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpput-postfields.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpput-postfields.c:85,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpput-postfields.c:89,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/httpput-postfields.c:92,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/httpput-postfields.c:95,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/httpput-postfields.c:96,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/httpput-postfields.c:99,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/httpput-postfields.c:102,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/httpput-postfields.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 107
    functionName: main
    functionSourceFile: /src/curl/docs/examples/httpput-postfields.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/smtp-multi.c:72,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/smtp-multi.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/smtp-multi.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/smtp-multi.c:85,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/smtp-multi.c:89,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/smtp-multi.c:93,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-multi.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-multi.c:109,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-multi.c:114,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-multi.c:115,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-multi.c:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-multi.c:121,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-multi.c:122,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-multi.c:123,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/smtp-multi.c:126,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/smtp-multi.c:129,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/smtp-multi.c:133,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/smtp-multi.c:141,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/smtp-multi.c:144,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/smtp-multi.c:145,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/smtp-multi.c:147,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/smtp-multi.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 153
    functionName: main
    functionSourceFile: /src/curl/docs/examples/smtp-multi.c
    functionUses: 0
    functionsReached:
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/curl/docs/examples/sftpuploadresume.c:45,1
    - Dst: fread
      Src: /src/curl/docs/examples/sftpuploadresume.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/sftpuploadresume.c
    functionUses: 0
    functionsReached:
    - fread
    - ferror
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/sftpuploadresume.c:59,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:66,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:67,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:68,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:69,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:70,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/sftpuploadresume.c:72,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/sftpuploadresume.c:74,1
    - Dst: printf
      Src: /src/curl/docs/examples/sftpuploadresume.c:78,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/sftpuploadresume.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - i_remoteFile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: sftpGetRemoteFileSize
    functionSourceFile: /src/curl/docs/examples/sftpuploadresume.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t sftpGetRemoteFileSize(const char *i_remoteFile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftpGetRemoteFileSize
      Src: /src/curl/docs/examples/sftpuploadresume.c:92,1
    - Dst: printf
      Src: /src/curl/docs/examples/sftpuploadresume.c:94,1
    - Dst: fopen
      Src: /src/curl/docs/examples/sftpuploadresume.c:98,1
    - Dst: perror
      Src: /src/curl/docs/examples/sftpuploadresume.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:104,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:105,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:107,1
    - Dst: _fseeki64
      Src: /src/curl/docs/examples/sftpuploadresume.c:110,1
    - Dst: fseek
      Src: /src/curl/docs/examples/sftpuploadresume.c:112,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpuploadresume.c:114,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/sftpuploadresume.c:115,1
    - Dst: fclose
      Src: /src/curl/docs/examples/sftpuploadresume.c:117,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/sftpuploadresume.c:122,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/sftpuploadresume.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - curl
    - remotepath
    - localpath
    argTypes:
    - CURL*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 125
    functionName: sftpResumeUpload
    functionSourceFile: /src/curl/docs/examples/sftpuploadresume.c
    functionUses: 0
    functionsReached:
    - fclose
    - fseek
    - printf
    - curl_easy_perform
    - curl_easy_strerror
    - perror
    - curl_easy_setopt
    - _fseeki64
    - fopen
    - sftpGetRemoteFileSize
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int sftpResumeUpload(CURL *curl, const char *remotepath,\n                            const
      char *localpath)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/sftpuploadresume.c:131,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/sftpuploadresume.c:135,1
    - Dst: sftpResumeUpload
      Src: /src/curl/docs/examples/sftpuploadresume.c:140,1
    - Dst: printf
      Src: /src/curl/docs/examples/sftpuploadresume.c:141,1
    - Dst: curl_version
      Src: /src/curl/docs/examples/sftpuploadresume.c:141,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/sftpuploadresume.c:144,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/sftpuploadresume.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 149
    functionName: main
    functionSourceFile: /src/curl/docs/examples/sftpuploadresume.c
    functionUses: 0
    functionsReached:
    - printf
    - curl_easy_init
    - curl_version
    - curl_easy_cleanup
    - sftpResumeUpload
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/sessioninfo.c:55,1
    - Dst: gnutls_certificate_get_peers
      Src: /src/curl/docs/examples/sessioninfo.c:64,1
    - Dst: gnutls_x509_crt_init
      Src: /src/curl/docs/examples/sessioninfo.c:72,1
    - Dst: gnutls_x509_crt_import
      Src: /src/curl/docs/examples/sessioninfo.c:74,1
    - Dst: gnutls_x509_crt_print
      Src: /src/curl/docs/examples/sessioninfo.c:76,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/sessioninfo.c:77,1
    - Dst: gnutls_free
      Src: /src/curl/docs/examples/sessioninfo.c:80,1
    - Dst: gnutls_x509_crt_deinit
      Src: /src/curl/docs/examples/sessioninfo.c:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 96
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/sessioninfo.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - gnutls_x509_crt_deinit
    - gnutls_x509_crt_print
    - gnutls_x509_crt_init
    - gnutls_free
    - gnutls_certificate_get_peers
    - gnutls_x509_crt_import
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/sessioninfo.c:100,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/sessioninfo.c:104,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sessioninfo.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sessioninfo.c:107,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sessioninfo.c:108,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/sessioninfo.c:110,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/sessioninfo.c:112,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/sessioninfo.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: main
    functionSourceFile: /src/curl/docs/examples/sessioninfo.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-fetch.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-fetch.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-fetch.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-fetch.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-fetch.c:53,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-fetch.c:57,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-fetch.c:61,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-fetch.c:62,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-fetch.c:65,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-fetch.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 71
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-fetch.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-store.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-store.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-store.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-store.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-store.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-store.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-store.c:61,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-store.c:65,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-store.c:66,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-store.c:70,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-store.c:73,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-store.c:77,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-store.c:78,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-store.c:82,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-store.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-store.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/https.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/https.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/https.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/https.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/https.c:65,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/https.c:69,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/https.c:72,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/https.c:75,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/https.c:76,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/https.c:79,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/https.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 85
    functionName: main
    functionSourceFile: /src/curl/docs/examples/https.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/curl/docs/examples/postinmemory.c:44,1
    - Dst: printf
      Src: /src/curl/docs/examples/postinmemory.c:47,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/postinmemory.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - contents
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 57
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/postinmemory.c
    functionUses: 0
    functionsReached:
    - printf
    - memcpy
    - realloc
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *contents, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/postinmemory.c:66,1
    - Dst: malloc
      Src: /src/curl/docs/examples/postinmemory.c:70,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/postinmemory.c:73,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postinmemory.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postinmemory.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postinmemory.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postinmemory.c:85,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postinmemory.c:87,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postinmemory.c:90,1
    - Dst: strlen
      Src: /src/curl/docs/examples/postinmemory.c:90,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/postinmemory.c:93,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/postinmemory.c:96,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/postinmemory.c:97,1
    - Dst: printf
      Src: /src/curl/docs/examples/postinmemory.c:106,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/postinmemory.c:110,1
    - Dst: free
      Src: /src/curl/docs/examples/postinmemory.c:113,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/postinmemory.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 116
    functionName: main
    functionSourceFile: /src/curl/docs/examples/postinmemory.c
    functionUses: 0
    functionsReached:
    - printf
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - free
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - malloc
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-debugcallback.c:45,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-debugcallback.c:50,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-debugcallback.c:56,1
    - Dst: fputs
      Src: /src/curl/docs/examples/multi-debugcallback.c:58,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-debugcallback.c:68,1
    - Dst: fputc
      Src: /src/curl/docs/examples/multi-debugcallback.c:77,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 25
    argCount: 4
    argNames:
    - text
    - ptr
    - size
    - nohex
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 79
    functionName: dump
    functionSourceFile: /src/curl/docs/examples/multi-debugcallback.c
    functionUses: 5
    functionsReached:
    - fputs
    - fputc
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void dump(const char *text, const unsigned char *ptr,\n                 size_t
      size, char nohex)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-debugcallback.c:91,1
    - Dst: dump
      Src: /src/curl/docs/examples/multi-debugcallback.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - curl
    - type
    - data
    - size
    - userp
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 111
    functionName: my_trace
    functionSourceFile: /src/curl/docs/examples/multi-debugcallback.c
    functionUses: 0
    functionsReached:
    - dump
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int my_trace(CURL *curl, curl_infotype type,\n                    char
      *data, size_t size, void *userp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/multi-debugcallback.c:120,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-debugcallback.c:124,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-debugcallback.c:130,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-debugcallback.c:132,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-debugcallback.c:133,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/multi-debugcallback.c:136,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-debugcallback.c:142,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/multi-debugcallback.c:145,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/multi-debugcallback.c:149,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/multi-debugcallback.c:156,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-debugcallback.c:159,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/multi-debugcallback.c:162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 165
    functionName: main
    functionSourceFile: /src/curl/docs/examples/multi-debugcallback.c
    functionUses: 0
    functionsReached:
    - curl_multi_poll
    - curl_easy_init
    - curl_multi_perform
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tidyBufAppend
      Src: /src/curl/docs/examples/htmltidy.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - in
    - size
    - nmemb
    - out
    argTypes:
    - char*
    - uint
    - uint
    - TidyBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/htmltidy.c
    functionUses: 0
    functionsReached:
    - tidyBufAppend
    linkageType: ''
    returnType: uint
    signature: uint write_cb(char *in, uint size, uint nmemb, TidyBuffer *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tidyGetChild
      Src: /src/curl/docs/examples/htmltidy.c:51,1
    - Dst: tidyGetNext
      Src: /src/curl/docs/examples/htmltidy.c:51,1
    - Dst: tidyNodeGetName
      Src: /src/curl/docs/examples/htmltidy.c:52,1
    - Dst: printf
      Src: /src/curl/docs/examples/htmltidy.c:56,1
    - Dst: tidyAttrFirst
      Src: /src/curl/docs/examples/htmltidy.c:58,1
    - Dst: tidyAttrNext
      Src: /src/curl/docs/examples/htmltidy.c:58,1
    - Dst: printf
      Src: /src/curl/docs/examples/htmltidy.c:59,1
    - Dst: tidyAttrName
      Src: /src/curl/docs/examples/htmltidy.c:59,1
    - Dst: tidyAttrValue
      Src: /src/curl/docs/examples/htmltidy.c:60,1
    - Dst: printf
      Src: /src/curl/docs/examples/htmltidy.c:60,1
    - Dst: tidyAttrValue
      Src: /src/curl/docs/examples/htmltidy.c:61,1
    - Dst: printf
      Src: /src/curl/docs/examples/htmltidy.c:61,1
    - Dst: printf
      Src: /src/curl/docs/examples/htmltidy.c:63,1
    - Dst: tidyBufInit
      Src: /src/curl/docs/examples/htmltidy.c:68,1
    - Dst: tidyNodeGetText
      Src: /src/curl/docs/examples/htmltidy.c:69,1
    - Dst: printf
      Src: /src/curl/docs/examples/htmltidy.c:70,1
    - Dst: tidyBufFree
      Src: /src/curl/docs/examples/htmltidy.c:71,1
    - Dst: dumpNode
      Src: /src/curl/docs/examples/htmltidy.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - doc
    - tnod
    - indent
    argTypes:
    - TidyDoc
    - TidyNode
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 75
    functionName: dumpNode
    functionSourceFile: /src/curl/docs/examples/htmltidy.c
    functionUses: 1
    functionsReached:
    - tidyNodeGetName
    - printf
    - dumpNode
    - tidyAttrName
    - tidyNodeGetText
    - tidyAttrFirst
    - tidyBufInit
    - tidyGetNext
    - tidyAttrValue
    - tidyAttrNext
    - tidyGetChild
    - tidyBufFree
    linkageType: ''
    returnType: void
    signature: void dumpNode(TidyDoc doc, TidyNode tnod, int indent)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/htmltidy.c:87,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/htmltidy.c:91,1
    - Dst: tidyCreate
      Src: /src/curl/docs/examples/htmltidy.c:95,1
    - Dst: tidyOptSetBool
      Src: /src/curl/docs/examples/htmltidy.c:96,1
    - Dst: tidyOptSetInt
      Src: /src/curl/docs/examples/htmltidy.c:97,1
    - Dst: tidySetErrorBuffer
      Src: /src/curl/docs/examples/htmltidy.c:98,1
    - Dst: tidyBufInit
      Src: /src/curl/docs/examples/htmltidy.c:99,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/htmltidy.c:101,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltidy.c:103,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltidy.c:104,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltidy.c:105,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltidy.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltidy.c:107,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltidy.c:109,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/htmltidy.c:110,1
    - Dst: tidyParseBuffer
      Src: /src/curl/docs/examples/htmltidy.c:112,1
    - Dst: tidyCleanAndRepair
      Src: /src/curl/docs/examples/htmltidy.c:114,1
    - Dst: tidyRunDiagnostics
      Src: /src/curl/docs/examples/htmltidy.c:116,1
    - Dst: dumpNode
      Src: /src/curl/docs/examples/htmltidy.c:118,1
    - Dst: tidyGetRoot
      Src: /src/curl/docs/examples/htmltidy.c:118,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltidy.c:119,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltidy.c:125,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/htmltidy.c:128,1
    - Dst: tidyBufFree
      Src: /src/curl/docs/examples/htmltidy.c:131,1
    - Dst: tidyBufFree
      Src: /src/curl/docs/examples/htmltidy.c:132,1
    - Dst: tidyRelease
      Src: /src/curl/docs/examples/htmltidy.c:133,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/htmltidy.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 138
    functionName: main
    functionSourceFile: /src/curl/docs/examples/htmltidy.c
    functionUses: 0
    functionsReached:
    - tidyCleanAndRepair
    - tidyRunDiagnostics
    - curl_global_cleanup
    - tidyBufFree
    - tidyParseBuffer
    - dumpNode
    - tidySetErrorBuffer
    - tidyBufInit
    - curl_global_init
    - tidyCreate
    - tidyOptSetBool
    - curl_easy_cleanup
    - printf
    - tidyRelease
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_setopt
    - tidyOptSetInt
    - tidyGetRoot
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/rtsp-options.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/rtsp-options.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/rtsp-options.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/rtsp-options.c:44,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/rtsp-options.c:46,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/rtsp-options.c:49,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/rtsp-options.c:52,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/rtsp-options.c:53,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/rtsp-options.c:56,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/rtsp-options.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 60
    functionName: main
    functionSourceFile: /src/curl/docs/examples/rtsp-options.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/protofeats.c:41,1
    - Dst: curl_version_info
      Src: /src/curl/docs/examples/protofeats.c:45,1
    - Dst: printf
      Src: /src/curl/docs/examples/protofeats.c:46,1
    - Dst: printf
      Src: /src/curl/docs/examples/protofeats.c:48,1
    - Dst: printf
      Src: /src/curl/docs/examples/protofeats.c:49,1
    - Dst: printf
      Src: /src/curl/docs/examples/protofeats.c:51,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/protofeats.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: main
    functionSourceFile: /src/curl/docs/examples/protofeats.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - printf
    - curl_version_info
    - curl_global_init
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/cookie_interface.c:52,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/cookie_interface.c:53,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/cookie_interface.c:55,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/cookie_interface.c:56,1
    - Dst: printf
      Src: /src/curl/docs/examples/cookie_interface.c:62,1
    - Dst: printf
      Src: /src/curl/docs/examples/cookie_interface.c:67,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/cookie_interface.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 72
    functionName: print_cookies
    functionSourceFile: /src/curl/docs/examples/cookie_interface.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - printf
    - curl_slist_free_all
    - curl_easy_strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: int print_cookies(CURL *curl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/cookie_interface.c:79,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/cookie_interface.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cookie_interface.c:87,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cookie_interface.c:88,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cookie_interface.c:89,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/cookie_interface.c:90,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/cookie_interface.c:92,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/cookie_interface.c:92,1
    - Dst: print_cookies
      Src: /src/curl/docs/examples/cookie_interface.c:96,1
    - Dst: printf
      Src: /src/curl/docs/examples/cookie_interface.c:98,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cookie_interface.c:99,1
    - Dst: print_cookies
      Src: /src/curl/docs/examples/cookie_interface.c:101,1
    - Dst: printf
      Src: /src/curl/docs/examples/cookie_interface.c:103,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/cookie_interface.c:106,1
    - Dst: difftime
      Src: /src/curl/docs/examples/cookie_interface.c:108,1
    - Dst: time
      Src: /src/curl/docs/examples/cookie_interface.c:108,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cookie_interface.c:110,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/cookie_interface.c:112,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/cookie_interface.c:113,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/cookie_interface.c:122,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cookie_interface.c:125,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/cookie_interface.c:127,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/cookie_interface.c:128,1
    - Dst: print_cookies
      Src: /src/curl/docs/examples/cookie_interface.c:132,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/cookie_interface.c:134,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/cookie_interface.c:136,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/cookie_interface.c:136,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/cookie_interface.c:140,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/cookie_interface.c:143,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/cookie_interface.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 149
    functionName: main
    functionSourceFile: /src/curl/docs/examples/cookie_interface.c
    functionUses: 0
    functionsReached:
    - printf
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - difftime
    - time
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - print_cookies
    - snprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-delete.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-delete.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-delete.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-delete.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-delete.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-delete.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-delete.c:59,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-delete.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-delete.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-delete.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-delete.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-delete.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/default-scheme.c:37,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/default-scheme.c:41,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/default-scheme.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/default-scheme.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/default-scheme.c:49,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/default-scheme.c:52,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/default-scheme.c:55,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/default-scheme.c:56,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/default-scheme.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/default-scheme.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/curl/docs/examples/default-scheme.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:136,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:140,1
    - Dst: exit
      Src: /src/curl/docs/examples/hiperfifo.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - where
    - code
    argTypes:
    - char*
    - CURLMcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 143
    functionName: mcode_or_die
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void mcode_or_die(const char *where, CURLMcode code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:153,1
    - Dst: evtimer_del
      Src: /src/curl/docs/examples/hiperfifo.c:162,1
    - Dst: evtimer_add
      Src: /src/curl/docs/examples/hiperfifo.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - g
    argTypes:
    - CURLM*
    - long
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: multi_timer_cb
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - evtimer_del
    - fprintf
    linkageType: ''
    returnType: int
    signature: int multi_timer_cb(CURLM *multi, long timeout_ms, struct GlobalInfo
      *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:176,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/hiperfifo.c:177,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/hiperfifo.c:181,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/hiperfifo.c:182,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:183,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/hiperfifo.c:184,1
    - Dst: free
      Src: /src/curl/docs/examples/hiperfifo.c:185,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/hiperfifo.c:186,1
    - Dst: free
      Src: /src/curl/docs/examples/hiperfifo.c:187,1
    - Dst: event_base_loopbreak
      Src: /src/curl/docs/examples/hiperfifo.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 192
    functionName: check_multi_info
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - curl_multi_remove_handle
    - free
    - curl_easy_cleanup
    - curl_multi_info_read
    - event_base_loopbreak
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_multi_info(struct GlobalInfo *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/hiperfifo.c:203,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/hiperfifo.c:204,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/hiperfifo.c:206,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:208,1
    - Dst: evtimer_pending
      Src: /src/curl/docs/examples/hiperfifo.c:209,1
    - Dst: evtimer_del
      Src: /src/curl/docs/examples/hiperfifo.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - kind
    - userp
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 213
    functionName: event_cb
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - evtimer_pending
    - mcode_or_die
    - evtimer_del
    - curl_multi_socket_action
    - fprintf
    linkageType: ''
    returnType: void
    signature: void event_cb(int fd, short kind, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/hiperfifo.c:223,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/hiperfifo.c:225,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/hiperfifo.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - kind
    - userp
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 227
    functionName: timer_cb
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - mcode_or_die
    - curl_multi_socket_action
    linkageType: ''
    returnType: void
    signature: void timer_cb(int fd, short kind, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/curl/docs/examples/hiperfifo.c:233,1
    - Dst: event_del
      Src: /src/curl/docs/examples/hiperfifo.c:234,1
    - Dst: free
      Src: /src/curl/docs/examples/hiperfifo.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct SockInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: remsock
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - event_del
    - event_initialized
    - free
    linkageType: ''
    returnType: void
    signature: void remsock(struct SockInfo *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/curl/docs/examples/hiperfifo.c:250,1
    - Dst: event_del
      Src: /src/curl/docs/examples/hiperfifo.c:251,1
    - Dst: event_assign
      Src: /src/curl/docs/examples/hiperfifo.c:253,1
    - Dst: event_add
      Src: /src/curl/docs/examples/hiperfifo.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - f
    - s
    - e
    - act
    - g
    argTypes:
    - struct SockInfo*
    - curl_socket_t
    - CURL*
    - int
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: setsock
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - event_add
    - event_del
    - event_initialized
    - event_assign
    linkageType: ''
    returnType: void
    signature: "void setsock(struct SockInfo *f, curl_socket_t s, CURL *e, int act,\n
      \                   struct GlobalInfo *g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/docs/examples/hiperfifo.c:261,1
    - Dst: setsock
      Src: /src/curl/docs/examples/hiperfifo.c:264,1
    - Dst: curl_multi_assign
      Src: /src/curl/docs/examples/hiperfifo.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - curl
    - action
    - g
    argTypes:
    - curl_socket_t
    - CURL*
    - int
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 266
    functionName: addsock
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - setsock
    - calloc
    - curl_multi_assign
    linkageType: ''
    returnType: void
    signature: "void addsock(curl_socket_t s, CURL *curl, int action,\n                    struct
      GlobalInfo *g)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:275,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:277,1
    - Dst: remsock
      Src: /src/curl/docs/examples/hiperfifo.c:278,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:282,1
    - Dst: addsock
      Src: /src/curl/docs/examples/hiperfifo.c:283,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:286,1
    - Dst: setsock
      Src: /src/curl/docs/examples/hiperfifo.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - e
    - s
    - what
    - cbp
    - sockp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 292
    functionName: sock_cb
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - setsock
    - addsock
    - remsock
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sock_cb(CURL *e, curl_socket_t s, int what, void *cbp, void *sockp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - p
    - dltotal
    - dlnow
    - ult
    - uln
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: xferinfo_cb
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int xferinfo_cb(void *p, curl_off_t dltotal, curl_off_t dlnow,\n                       curl_off_t
      ult, curl_off_t uln)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/docs/examples/hiperfifo.c:321,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/hiperfifo.c:324,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:326,1
    - Dst: exit
      Src: /src/curl/docs/examples/hiperfifo.c:327,1
    - Dst: strdup
      Src: /src/curl/docs/examples/hiperfifo.c:330,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:331,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:332,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:333,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:334,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:335,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:336,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:337,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:338,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:339,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:340,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:341,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/hiperfifo.c:343,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/hiperfifo.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - url
    - g
    argTypes:
    - char*
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 348
    functionName: new_conn
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - strdup
    - curl_easy_init
    - calloc
    - mcode_or_die
    - curl_easy_setopt
    - exit
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: void
    signature: void new_conn(const char *url, struct GlobalInfo *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fscanf
      Src: /src/curl/docs/examples/hiperfifo.c:362,1
    - Dst: strcmp
      Src: /src/curl/docs/examples/hiperfifo.c:365,1
    - Dst: event_base_loopbreak
      Src: /src/curl/docs/examples/hiperfifo.c:368,1
    - Dst: new_conn
      Src: /src/curl/docs/examples/hiperfifo.c:371,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 376
    functionName: fifo_cb
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fscanf
    - new_conn
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void fifo_cb(int fd, short event, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:385,1
    - Dst: lstat
      Src: /src/curl/docs/examples/hiperfifo.c:386,1
    - Dst: perror
      Src: /src/curl/docs/examples/hiperfifo.c:389,1
    - Dst: unlink
      Src: /src/curl/docs/examples/hiperfifo.c:393,1
    - Dst: mkfifo
      Src: /src/curl/docs/examples/hiperfifo.c:394,1
    - Dst: perror
      Src: /src/curl/docs/examples/hiperfifo.c:395,1
    - Dst: open
      Src: /src/curl/docs/examples/hiperfifo.c:398,1
    - Dst: perror
      Src: /src/curl/docs/examples/hiperfifo.c:400,1
    - Dst: fdopen
      Src: /src/curl/docs/examples/hiperfifo.c:403,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hiperfifo.c:405,1
    - Dst: event_assign
      Src: /src/curl/docs/examples/hiperfifo.c:406,1
    - Dst: event_add
      Src: /src/curl/docs/examples/hiperfifo.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 410
    functionName: init_fifo
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - open
    - event_assign
    - lstat
    - perror
    - unlink
    - fdopen
    - event_add
    - mkfifo
    - fprintf
    linkageType: ''
    returnType: int
    signature: int init_fifo(struct GlobalInfo *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/curl/docs/examples/hiperfifo.c:414,1
    - Dst: fclose
      Src: /src/curl/docs/examples/hiperfifo.c:415,1
    - Dst: unlink
      Src: /src/curl/docs/examples/hiperfifo.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 417
    functionName: clean_fifo
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - fclose
    - event_del
    - unlink
    linkageType: ''
    returnType: void
    signature: void clean_fifo(struct GlobalInfo *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/hiperfifo.c:424,1
    - Dst: memset
      Src: /src/curl/docs/examples/hiperfifo.c:428,1
    - Dst: event_base_new
      Src: /src/curl/docs/examples/hiperfifo.c:429,1
    - Dst: init_fifo
      Src: /src/curl/docs/examples/hiperfifo.c:430,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/hiperfifo.c:431,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/hiperfifo.c:434,1
    - Dst: evtimer_assign
      Src: /src/curl/docs/examples/hiperfifo.c:435,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:438,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:439,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:440,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/hiperfifo.c:441,1
    - Dst: event_base_dispatch
      Src: /src/curl/docs/examples/hiperfifo.c:446,1
    - Dst: clean_fifo
      Src: /src/curl/docs/examples/hiperfifo.c:451,1
    - Dst: event_del
      Src: /src/curl/docs/examples/hiperfifo.c:452,1
    - Dst: event_base_free
      Src: /src/curl/docs/examples/hiperfifo.c:453,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/hiperfifo.c:454,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/hiperfifo.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 457
    functionName: main
    functionSourceFile: /src/curl/docs/examples/hiperfifo.c
    functionUses: 0
    functionsReached:
    - evtimer_assign
    - event_base_new
    - event_del
    - event_base_free
    - clean_fifo
    - curl_multi_setopt
    - curl_global_init
    - curl_multi_init
    - memset
    - event_base_dispatch
    - curl_global_cleanup
    - curl_multi_cleanup
    - init_fifo
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-list.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-list.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-list.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-list.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-list.c:55,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-list.c:58,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-list.c:62,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-list.c:63,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-list.c:66,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-list.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 72
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-list.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-noop.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-noop.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-noop.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-noop.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-noop.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-noop.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-noop.c:59,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-noop.c:62,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-noop.c:66,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-noop.c:67,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-noop.c:70,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-noop.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-noop.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/chkspeed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/chkspeed.c:84,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/chkspeed.c:90,1
    - Dst: curl_version
      Src: /src/curl/docs/examples/chkspeed.c:91,1
    - Dst: atoi
      Src: /src/curl/docs/examples/chkspeed.c:108,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/chkspeed.c:132,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/chkspeed.c:138,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/chkspeed.c:142,1
    - Dst: printf
      Src: /src/curl/docs/examples/chkspeed.c:155,1
    - Dst: time
      Src: /src/curl/docs/examples/chkspeed.c:159,1
    - Dst: printf
      Src: /src/curl/docs/examples/chkspeed.c:160,1
    - Dst: ctime
      Src: /src/curl/docs/examples/chkspeed.c:160,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/chkspeed.c:164,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/chkspeed.c:169,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/chkspeed.c:173,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/chkspeed.c:176,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/chkspeed.c:180,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/chkspeed.c:184,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/chkspeed.c:190,1
    - Dst: printf
      Src: /src/curl/docs/examples/chkspeed.c:192,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/chkspeed.c:195,1
    - Dst: printf
      Src: /src/curl/docs/examples/chkspeed.c:197,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/chkspeed.c:203,1
    - Dst: printf
      Src: /src/curl/docs/examples/chkspeed.c:205,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/chkspeed.c:211,1
    - Dst: printf
      Src: /src/curl/docs/examples/chkspeed.c:213,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/chkspeed.c:219,1
    - Dst: printf
      Src: /src/curl/docs/examples/chkspeed.c:221,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/chkspeed.c:228,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/chkspeed.c:229,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/chkspeed.c:233,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/chkspeed.c:237,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 107
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 240
    functionName: main
    functionSourceFile: /src/curl/docs/examples/chkspeed.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - printf
    - curl_easy_perform
    - curl_easy_init
    - atoi
    - curl_easy_strerror
    - curl_version
    - time
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - ctime
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/shared-connection-cache.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - curl
    - data
    - laccess
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - curl_lock_access
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: my_lock
    functionSourceFile: /src/curl/docs/examples/shared-connection-cache.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void my_lock(CURL *curl, curl_lock_data data, curl_lock_access laccess,\n
      \                   void *useptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/shared-connection-cache.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - curl
    - data
    - useptr
    argTypes:
    - CURL*
    - curl_lock_data
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: my_unlock
    functionSourceFile: /src/curl/docs/examples/shared-connection-cache.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void my_unlock(CURL *curl, curl_lock_data data, void *useptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/shared-connection-cache.c:55,1
    - Dst: curl_share_init
      Src: /src/curl/docs/examples/shared-connection-cache.c:59,1
    - Dst: curl_share_setopt
      Src: /src/curl/docs/examples/shared-connection-cache.c:60,1
    - Dst: curl_share_setopt
      Src: /src/curl/docs/examples/shared-connection-cache.c:62,1
    - Dst: curl_share_setopt
      Src: /src/curl/docs/examples/shared-connection-cache.c:63,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/shared-connection-cache.c:69,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/shared-connection-cache.c:71,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/shared-connection-cache.c:74,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/shared-connection-cache.c:77,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/shared-connection-cache.c:80,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/shared-connection-cache.c:81,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/shared-connection-cache.c:84,1
    - Dst: curl_share_cleanup
      Src: /src/curl/docs/examples/shared-connection-cache.c:88,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/shared-connection-cache.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 91
    functionName: main
    functionSourceFile: /src/curl/docs/examples/shared-connection-cache.c
    functionUses: 0
    functionsReached:
    - curl_share_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_share_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_share_setopt
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/http-post.c:38,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/http-post.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http-post.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http-post.c:49,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/http-post.c:52,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http-post.c:55,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/http-post.c:56,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/http-post.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/http-post.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/curl/docs/examples/http-post.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/smtp-ssl.c:76,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/smtp-ssl.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/smtp-ssl.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/smtp-ssl.c:89,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/smtp-ssl.c:93,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:99,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:104,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:115,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:123,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:133,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-ssl.c:138,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-ssl.c:139,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:140,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:145,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:146,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:147,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-ssl.c:152,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/smtp-ssl.c:155,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smtp-ssl.c:159,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/smtp-ssl.c:160,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/smtp-ssl.c:163,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/smtp-ssl.c:166,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/smtp-ssl.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 172
    functionName: main
    functionSourceFile: /src/curl/docs/examples/smtp-ssl.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-retr.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-retr.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-retr.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-retr.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-retr.c:53,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-retr.c:56,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-retr.c:60,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-retr.c:61,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-retr.c:64,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-retr.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 70
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-retr.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: gettimeofday
    functionSourceFile: /src/curl/docs/examples/http2-upload.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gettimeofday(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/curl/docs/examples/http2-upload.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tp
    - tzp
    argTypes:
    - struct timeval*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: my_gettimeofday
    functionSourceFile: /src/curl/docs/examples/http2-upload.c
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    linkageType: ''
    returnType: int
    signature: int my_gettimeofday(struct timeval *tp, void *tzp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-upload.c:108,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-upload.c:113,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-upload.c:119,1
    - Dst: fputs
      Src: /src/curl/docs/examples/http2-upload.c:121,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-upload.c:131,1
    - Dst: fputc
      Src: /src/curl/docs/examples/http2-upload.c:140,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 25
    argCount: 5
    argNames:
    - text
    - num
    - ptr
    - size
    - nohex
    argTypes:
    - char*
    - int
    - unsigned char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 142
    functionName: dump
    functionSourceFile: /src/curl/docs/examples/http2-upload.c
    functionUses: 6
    functionsReached:
    - fputs
    - fputc
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void dump(const char *text, int num, const unsigned char *ptr,\n                 size_t
      size, char nohex)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/curl/docs/examples/http2-upload.c:158,1
    - Dst: time
      Src: /src/curl/docs/examples/http2-upload.c:160,1
    - Dst: localtime
      Src: /src/curl/docs/examples/http2-upload.c:164,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/http2-upload.c:165,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-upload.c:170,1
    - Dst: dump
      Src: /src/curl/docs/examples/http2-upload.c:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - curl
    - type
    - data
    - size
    - userp
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 196
    functionName: my_trace
    functionSourceFile: /src/curl/docs/examples/http2-upload.c
    functionUses: 0
    functionsReached:
    - localtime
    - gettimeofday
    - dump
    - time
    - snprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int my_trace(CURL *curl, curl_infotype type,\n                    char
      *data, size_t size, void *userp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/curl/docs/examples/http2-upload.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/http2-upload.c
    functionUses: 0
    functionsReached:
    - fread
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/docs/examples/http2-upload.c:217,1
    - Dst: fopen
      Src: /src/curl/docs/examples/http2-upload.c:218,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-upload.c:220,1
    - Dst: strerror
      Src: /src/curl/docs/examples/http2-upload.c:221,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/http2-upload.c:225,1
    - Dst: fopen
      Src: /src/curl/docs/examples/http2-upload.c:228,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-upload.c:230,1
    - Dst: strerror
      Src: /src/curl/docs/examples/http2-upload.c:231,1
    - Dst: fclose
      Src: /src/curl/docs/examples/http2-upload.c:232,1
    - Dst: fstat
      Src: /src/curl/docs/examples/http2-upload.c:237,1
    - Dst: fileno
      Src: /src/curl/docs/examples/http2-upload.c:237,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-upload.c:238,1
    - Dst: strerror
      Src: /src/curl/docs/examples/http2-upload.c:239,1
    - Dst: fclose
      Src: /src/curl/docs/examples/http2-upload.c:240,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/http2-upload.c:247,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:251,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:254,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:256,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:258,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:261,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:264,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:267,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:268,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:269,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:272,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:275,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:276,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-upload.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 3
    argNames:
    - t
    - num
    - upload
    argTypes:
    - struct input*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 284
    functionName: setup
    functionSourceFile: /src/curl/docs/examples/http2-upload.c
    functionUses: 14
    functionsReached:
    - fclose
    - fprintf
    - curl_easy_init
    - curl_easy_setopt
    - fopen
    - snprintf
    - fileno
    - fstat
    - strerror
    linkageType: ''
    returnType: int
    signature: int setup(struct input *t, int num, const char *upload)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/curl/docs/examples/http2-upload.c:301,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/http2-upload.c:312,1
    - Dst: calloc
      Src: /src/curl/docs/examples/http2-upload.c:316,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-upload.c:318,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/http2-upload.c:323,1
    - Dst: setup
      Src: /src/curl/docs/examples/http2-upload.c:328,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/http2-upload.c:333,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/http2-upload.c:336,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/http2-upload.c:339,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/http2-upload.c:342,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/http2-upload.c:346,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/http2-upload.c:357,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/http2-upload.c:358,1
    - Dst: fclose
      Src: /src/curl/docs/examples/http2-upload.c:361,1
    - Dst: fclose
      Src: /src/curl/docs/examples/http2-upload.c:363,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/http2-upload.c:365,1
    - Dst: free
      Src: /src/curl/docs/examples/http2-upload.c:368,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/http2-upload.c:370,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 373
    functionName: main
    functionSourceFile: /src/curl/docs/examples/http2-upload.c
    functionUses: 0
    functionsReached:
    - fclose
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_multi_perform
    - calloc
    - setup
    - atoi
    - free
    - curl_multi_setopt
    - curl_easy_cleanup
    - curl_multi_init
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/fileupload.c:56,1
    - Dst: fopen
      Src: /src/curl/docs/examples/fileupload.c:60,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/fileupload.c:62,1
    - Dst: fstat
      Src: /src/curl/docs/examples/fileupload.c:67,1
    - Dst: fileno
      Src: /src/curl/docs/examples/fileupload.c:67,1
    - Dst: fclose
      Src: /src/curl/docs/examples/fileupload.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/fileupload.c:69,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/fileupload.c:73,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/fileupload.c:76,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/fileupload.c:80,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/fileupload.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/fileupload.c:86,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/fileupload.c:90,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/fileupload.c:92,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/fileupload.c:95,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/fileupload.c:96,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/fileupload.c:100,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/fileupload.c:101,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/fileupload.c:103,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/fileupload.c:111,1
    - Dst: fclose
      Src: /src/curl/docs/examples/fileupload.c:113,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/fileupload.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 116
    functionName: main
    functionSourceFile: /src/curl/docs/examples/fileupload.c
    functionUses: 0
    functionsReached:
    - fclose
    - curl_easy_getinfo
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - fopen
    - curl_global_cleanup
    - fileno
    - fstat
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/http3-present.c:36,1
    - Dst: curl_version_info
      Src: /src/curl/docs/examples/http3-present.c:40,1
    - Dst: printf
      Src: /src/curl/docs/examples/http3-present.c:42,1
    - Dst: printf
      Src: /src/curl/docs/examples/http3-present.c:45,1
    - Dst: printf
      Src: /src/curl/docs/examples/http3-present.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/http3-present.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: main
    functionSourceFile: /src/curl/docs/examples/http3-present.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - printf
    - curl_version_info
    - curl_global_init
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-authzid.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-authzid.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-authzid.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-authzid.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-authzid.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-authzid.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-authzid.c:59,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-authzid.c:63,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-authzid.c:67,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-authzid.c:68,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-authzid.c:71,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-authzid.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-authzid.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/externalsocket.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/externalsocket.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/externalsocket.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - clientp
    - item
    argTypes:
    - void*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: closecb
    functionSourceFile: /src/curl/docs/examples/externalsocket.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int closecb(void *clientp, curl_socket_t item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - clientp
    - purpose
    - address
    argTypes:
    - void*
    - curlsocktype
    - struct curl_sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: opensocket
    functionSourceFile: /src/curl/docs/examples/externalsocket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t opensocket(void *clientp,\n                                curlsocktype
      purpose,\n                                struct curl_sockaddr *address)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - clientp
    - curlfd
    - purpose
    argTypes:
    - void*
    - curl_socket_t
    - curlsocktype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: sockopt_callback
    functionSourceFile: /src/curl/docs/examples/externalsocket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sockopt_callback(void *clientp, curl_socket_t curlfd,\n                            curlsocktype
      purpose)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/externalsocket.c:106,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/externalsocket.c:110,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/externalsocket.c:116,1
    - Dst: socket
      Src: /src/curl/docs/examples/externalsocket.c:119,1
    - Dst: printf
      Src: /src/curl/docs/examples/externalsocket.c:121,1
    - Dst: memset
      Src: /src/curl/docs/examples/externalsocket.c:125,1
    - Dst: htons
      Src: /src/curl/docs/examples/externalsocket.c:127,1
    - Dst: inet_addr
      Src: /src/curl/docs/examples/externalsocket.c:129,1
    - Dst: close
      Src: /src/curl/docs/examples/externalsocket.c:131,1
    - Dst: connect
      Src: /src/curl/docs/examples/externalsocket.c:135,1
    - Dst: close
      Src: /src/curl/docs/examples/externalsocket.c:136,1
    - Dst: printf
      Src: /src/curl/docs/examples/externalsocket.c:137,1
    - Dst: strerror
      Src: /src/curl/docs/examples/externalsocket.c:137,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/externalsocket.c:142,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/externalsocket.c:145,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/externalsocket.c:148,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/externalsocket.c:149,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/externalsocket.c:152,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/externalsocket.c:153,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/externalsocket.c:156,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/externalsocket.c:158,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/externalsocket.c:160,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/externalsocket.c:162,1
    - Dst: close
      Src: /src/curl/docs/examples/externalsocket.c:164,1
    - Dst: printf
      Src: /src/curl/docs/examples/externalsocket.c:167,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/externalsocket.c:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 175
    functionName: main
    functionSourceFile: /src/curl/docs/examples/externalsocket.c
    functionUses: 0
    functionsReached:
    - htons
    - printf
    - curl_global_cleanup
    - close
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - socket
    - curl_easy_setopt
    - curl_global_init
    - memset
    - inet_addr
    - connect
    - strerror
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/simple.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/simple.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simple.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simple.c:44,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/simple.c:47,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/simple.c:50,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/simple.c:51,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/simple.c:54,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/simple.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/curl/docs/examples/simple.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_meta
      Src: /src/curl/docs/examples/websocket-cb.c:35,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-cb.c:36,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-cb.c:38,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-cb.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - b
    - size
    - nitems
    - p
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/websocket-cb.c
    functionUses: 0
    functionsReached:
    - fprintf
    - curl_ws_meta
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *b, size_t size, size_t nitems, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/websocket-cb.c:48,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/websocket-cb.c:52,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-cb.c:54,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-cb.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-cb.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/websocket-cb.c:61,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-cb.c:64,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/websocket-cb.c:65,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/websocket-cb.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/websocket-cb.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 72
    functionName: main
    functionSourceFile: /src/curl/docs/examples/websocket-cb.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-multi.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-multi.c:46,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/imap-multi.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-multi.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-multi.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-multi.c:59,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/imap-multi.c:63,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/imap-multi.c:66,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/imap-multi.c:70,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/imap-multi.c:77,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/imap-multi.c:78,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-multi.c:80,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-multi.c:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-multi.c
    functionUses: 0
    functionsReached:
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/persistent.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/persistent.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/persistent.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/persistent.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/persistent.c:46,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/persistent.c:49,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/persistent.c:52,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/persistent.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/persistent.c:57,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/persistent.c:60,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/persistent.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/persistent.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/persistent.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/persistent.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/curl/docs/examples/persistent.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/debug.c:48,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/debug.c:53,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/debug.c:59,1
    - Dst: fputs
      Src: /src/curl/docs/examples/debug.c:61,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/debug.c:71,1
    - Dst: fputc
      Src: /src/curl/docs/examples/debug.c:80,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 25
    argCount: 4
    argNames:
    - text
    - ptr
    - size
    - nohex
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 82
    functionName: dump
    functionSourceFile: /src/curl/docs/examples/debug.c
    functionUses: 7
    functionsReached:
    - fputs
    - fputc
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void dump(const char *text, const unsigned char *ptr,\n                 size_t
      size, char nohex)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/debug.c:93,1
    - Dst: dump
      Src: /src/curl/docs/examples/debug.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - curl
    - type
    - data
    - size
    - userp
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 119
    functionName: my_trace
    functionSourceFile: /src/curl/docs/examples/debug.c
    functionUses: 0
    functionsReached:
    - dump
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int my_trace(CURL *curl, curl_infotype type,\n                    char
      *data, size_t size, void *userp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/debug.c:127,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/debug.c:133,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/debug.c:135,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/debug.c:136,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/debug.c:139,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/debug.c:142,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/debug.c:144,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/debug.c:145,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/debug.c:148,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/debug.c:149,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/debug.c:152,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/debug.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 156
    functionName: main
    functionSourceFile: /src/curl/docs/examples/debug.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/multi-double.c:41,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-double.c:45,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-double.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-double.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-double.c:56,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/multi-double.c:59,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-double.c:65,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-double.c:66,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/multi-double.c:72,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/multi-double.c:76,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/multi-double.c:82,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-double.c:86,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/multi-double.c:92,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/multi-double.c:93,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/multi-double.c:95,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-double.c:99,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-double.c:100,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/multi-double.c:102,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 105
    functionName: main
    functionSourceFile: /src/curl/docs/examples/multi-double.c
    functionUses: 0
    functionsReached:
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_multi_info_read
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/altsvc.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/altsvc.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/altsvc.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/altsvc.c:45,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/altsvc.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/altsvc.c:52,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/altsvc.c:55,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/altsvc.c:56,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/altsvc.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/altsvc.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/curl/docs/examples/altsvc.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/curl/docs/examples/ftpuploadresume.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: getcontentlengthfunc
    functionSourceFile: /src/curl/docs/examples/ftpuploadresume.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: size_t
    signature: "size_t getcontentlengthfunc(void *ptr, size_t size, size_t nmemb,\n
      \                                  void *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/ftpuploadresume.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/curl/docs/examples/ftpuploadresume.c:67,1
    - Dst: fread
      Src: /src/curl/docs/examples/ftpuploadresume.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/ftpuploadresume.c
    functionUses: 0
    functionsReached:
    - fread
    - ferror
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/curl/docs/examples/ftpuploadresume.c:83,1
    - Dst: perror
      Src: /src/curl/docs/examples/ftpuploadresume.c:85,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:89,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:91,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:94,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:96,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:97,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:99,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:101,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:102,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:105,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:108,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:110,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:112,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:125,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:126,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftpuploadresume.c:128,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:132,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:133,1
    - Dst: fseek
      Src: /src/curl/docs/examples/ftpuploadresume.c:135,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:137,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadresume.c:140,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftpuploadresume.c:143,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftpuploadresume.c:146,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftpuploadresume.c:151,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/ftpuploadresume.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 5
    argNames:
    - curl
    - remotepath
    - localpath
    - timeout
    - tries
    argTypes:
    - CURL*
    - char*
    - char*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 154
    functionName: upload
    functionSourceFile: /src/curl/docs/examples/ftpuploadresume.c
    functionUses: 5
    functionsReached:
    - fclose
    - fseek
    - curl_easy_perform
    - curl_easy_strerror
    - perror
    - curl_easy_setopt
    - fopen
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int upload(CURL *curl, const char *remotepath,\n                  const
      char *localpath, long timeout, long tries)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ftpuploadresume.c:160,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ftpuploadresume.c:164,1
    - Dst: upload
      Src: /src/curl/docs/examples/ftpuploadresume.c:166,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ftpuploadresume.c:167,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftpuploadresume.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 172
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ftpuploadresume.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - upload
    - curl_easy_cleanup
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/simplepost.c:39,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/simplepost.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplepost.c:45,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplepost.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplepost.c:49,1
    - Dst: strlen
      Src: /src/curl/docs/examples/simplepost.c:49,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/simplepost.c:52,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/simplepost.c:55,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/simplepost.c:56,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/simplepost.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/simplepost.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/curl/docs/examples/simplepost.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/ftpgetresp.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: write_response
    functionSourceFile: /src/curl/docs/examples/ftpgetresp.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_response(void *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ftpgetresp.c:55,1
    - Dst: fopen
      Src: /src/curl/docs/examples/ftpgetresp.c:60,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftpgetresp.c:62,1
    - Dst: fopen
      Src: /src/curl/docs/examples/ftpgetresp.c:67,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftpgetresp.c:69,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftpgetresp.c:70,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ftpgetresp.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetresp.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetresp.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetresp.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetresp.c:82,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftpgetresp.c:83,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftpgetresp.c:86,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/ftpgetresp.c:87,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ftpgetresp.c:90,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftpgetresp.c:93,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftpgetresp.c:94,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftpgetresp.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 99
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ftpgetresp.c
    functionUses: 0
    functionsReached:
    - fclose
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - fopen
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/keepalive.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/keepalive.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/keepalive.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/keepalive.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/keepalive.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/keepalive.c:52,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/keepalive.c:54,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/keepalive.c:56,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/keepalive.c:58,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/keepalive.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 64
    functionName: main
    functionSourceFile: /src/curl/docs/examples/keepalive.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-tls.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-tls.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-tls.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-tls.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-tls.c:54,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-tls.c:61,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-tls.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-tls.c:80,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-tls.c:83,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-tls.c:87,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-tls.c:88,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-tls.c:91,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-tls.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 97
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-tls.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/postit2.c:49,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/postit2.c:53,1
    - Dst: curl_mime_init
      Src: /src/curl/docs/examples/postit2.c:61,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/postit2.c:64,1
    - Dst: curl_mime_name
      Src: /src/curl/docs/examples/postit2.c:65,1
    - Dst: curl_mime_filedata
      Src: /src/curl/docs/examples/postit2.c:66,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/postit2.c:69,1
    - Dst: curl_mime_name
      Src: /src/curl/docs/examples/postit2.c:70,1
    - Dst: curl_mime_data
      Src: /src/curl/docs/examples/postit2.c:71,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/postit2.c:74,1
    - Dst: curl_mime_name
      Src: /src/curl/docs/examples/postit2.c:75,1
    - Dst: curl_mime_data
      Src: /src/curl/docs/examples/postit2.c:76,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/postit2.c:80,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postit2.c:82,1
    - Dst: strcmp
      Src: /src/curl/docs/examples/postit2.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postit2.c:85,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postit2.c:86,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/postit2.c:89,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/postit2.c:92,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/postit2.c:93,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/postit2.c:96,1
    - Dst: curl_mime_free
      Src: /src/curl/docs/examples/postit2.c:99,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/postit2.c:101,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/postit2.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 107
    functionName: main
    functionSourceFile: /src/curl/docs/examples/postit2.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_mime_free
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_mime_addpart
    - curl_slist_append
    - strcmp
    - curl_easy_cleanup
    - curl_mime_init
    - curl_mime_data
    - curl_global_init
    - curl_easy_setopt
    - curl_global_cleanup
    - curl_mime_name
    - curl_mime_filedata
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/connect-to.c:37,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/connect-to.c:49,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/connect-to.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/connect-to.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/connect-to.c:54,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/connect-to.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/connect-to.c:60,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/connect-to.c:65,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/connect-to.c:68,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/connect-to.c:71,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/connect-to.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/curl/docs/examples/connect-to.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-authzid.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-authzid.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-authzid.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-authzid.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-authzid.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-authzid.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-authzid.c:59,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-authzid.c:62,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-authzid.c:66,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-authzid.c:67,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-authzid.c:70,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-authzid.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-authzid.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/ftpuploadfrommem.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:78,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:81,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:84,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:85,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:90,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:93,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:97,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:103,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:109,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:112,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:116,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:119,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:120,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:123,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftpuploadfrommem.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 127
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ftpuploadfrommem.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/interface.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/interface.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/interface.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/interface.c:47,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/interface.c:49,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/interface.c:52,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/interface.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/curl/docs/examples/interface.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/imap-append.c:74,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/imap-append.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 84
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/imap-append.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-append.c:90,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-append.c:94,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-append.c:101,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-append.c:102,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-append.c:105,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-append.c:110,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-append.c:111,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-append.c:112,1
    - Dst: strlen
      Src: /src/curl/docs/examples/imap-append.c:114,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-append.c:117,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-append.c:120,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-append.c:124,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-append.c:125,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-append.c:128,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-append.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 134
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-append.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/unixsocket.c:46,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/unixsocket.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/unixsocket.c:52,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/unixsocket.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/unixsocket.c:57,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/unixsocket.c:61,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/unixsocket.c:64,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/unixsocket.c:65,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/unixsocket.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/unixsocket.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: main
    functionSourceFile: /src/curl/docs/examples/unixsocket.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - void*
    - size_t
    - size_t
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/smooth-gtk-thread.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(void *ptr, size_t size, size_t nmemb, FILE *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:71,1
    - Dst: printf
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:73,1
    - Dst: fopen
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:82,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:83,1
    - Dst: fclose
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:85,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - http
    - j
    argTypes:
    - gchar*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: run_one
    functionSourceFile: /src/curl/docs/examples/smooth-gtk-thread.c
    functionUses: 0
    functionsReached:
    - fclose
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - fopen
    linkageType: ''
    returnType: void
    signature: void run_one(const gchar *http, int j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:94,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:99,1
    - Dst: g_strdup_printf
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:100,1
    - Dst: run_one
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:102,1
    - Dst: g_free
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:103,1
    - Dst: pthread_mutex_lock
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:105,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - NaN
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: pull_one_url
    functionSourceFile: /src/curl/docs/examples/smooth-gtk-thread.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_strdup_printf
    - run_one
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void *pull_one_url(void *NaN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdk_threads_enter
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:113,1
    - Dst: gtk_progress_bar_pulse
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:114,1
    - Dst: GTK_PROGRESS_BAR
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:114,1
    - Dst: gdk_threads_leave
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: pulse_bar
    functionSourceFile: /src/curl/docs/examples/smooth-gtk-thread.c
    functionUses: 0
    functionsReached:
    - GTK_PROGRESS_BAR
    - gtk_progress_bar_pulse
    - gdk_threads_leave
    - gdk_threads_enter
    linkageType: ''
    returnType: gboolean
    signature: gboolean pulse_bar(gpointer data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:130,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:135,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:137,1
    - Dst: pthread_join
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:142,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:143,1
    - Dst: g_source_remove
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:148,1
    - Dst: GPOINTER_TO_INT
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:148,1
    - Dst: g_object_get_data
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:148,1
    - Dst: G_OBJECT
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:148,1
    - Dst: gtk_widget_destroy
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:152,1
    - Dst: gtk_main_quit
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - progress_bar
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 160
    functionName: create_thread
    functionSourceFile: /src/curl/docs/examples/smooth-gtk-thread.c
    functionUses: 0
    functionsReached:
    - G_OBJECT
    - GPOINTER_TO_INT
    - pthread_join
    - gtk_widget_destroy
    - pthread_create
    - g_object_get_data
    - g_source_remove
    - gtk_main_quit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *create_thread(void *progress_bar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_main_quit
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - window
    - data
    argTypes:
    - GtkWidget*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: cb_delete
    functionSourceFile: /src/curl/docs/examples/smooth-gtk-thread.c
    functionUses: 0
    functionsReached:
    - gtk_main_quit
    linkageType: ''
    returnType: gboolean
    signature: gboolean cb_delete(GtkWidget *window, gpointer data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:173,1
    - Dst: g_thread_init
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:178,1
    - Dst: gdk_threads_init
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:179,1
    - Dst: gdk_threads_enter
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:180,1
    - Dst: gtk_init
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:182,1
    - Dst: gtk_window_new
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:185,1
    - Dst: gtk_frame_new
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:188,1
    - Dst: gtk_frame_set_shadow_type
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:189,1
    - Dst: GTK_FRAME
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:189,1
    - Dst: gtk_container_add
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:190,1
    - Dst: GTK_CONTAINER
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:190,1
    - Dst: gtk_frame_new
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:193,1
    - Dst: gtk_frame_set_shadow_type
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:194,1
    - Dst: GTK_FRAME
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:194,1
    - Dst: gtk_container_set_border_width
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:195,1
    - Dst: GTK_CONTAINER
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:195,1
    - Dst: gtk_container_add
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:196,1
    - Dst: GTK_CONTAINER
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:196,1
    - Dst: gtk_progress_bar_new
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:199,1
    - Dst: gtk_progress_bar_pulse
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:200,1
    - Dst: GTK_PROGRESS_BAR
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:200,1
    - Dst: g_timeout_add
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:202,1
    - Dst: g_object_set_data
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:203,1
    - Dst: G_OBJECT
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:203,1
    - Dst: GINT_TO_POINTER
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:204,1
    - Dst: gtk_container_add
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:205,1
    - Dst: GTK_CONTAINER
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:205,1
    - Dst: gtk_widget_show_all
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:207,1
    - Dst: printf
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:208,1
    - Dst: g_signal_connect
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:210,1
    - Dst: G_OBJECT
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:210,1
    - Dst: G_CALLBACK
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:211,1
    - Dst: g_thread_create
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:213,1
    - Dst: g_warning
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:214,1
    - Dst: gtk_main
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:216,1
    - Dst: gdk_threads_leave
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:217,1
    - Dst: printf
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:218,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/smooth-gtk-thread.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 223
    functionName: main
    functionSourceFile: /src/curl/docs/examples/smooth-gtk-thread.c
    functionUses: 1
    functionsReached:
    - g_thread_init
    - g_object_set_data
    - g_thread_create
    - g_timeout_add
    - GTK_FRAME
    - G_OBJECT
    - curl_global_cleanup
    - GINT_TO_POINTER
    - gtk_container_add
    - gdk_threads_enter
    - gdk_threads_leave
    - GTK_PROGRESS_BAR
    - g_signal_connect
    - g_warning
    - curl_global_init
    - gtk_progress_bar_pulse
    - gtk_widget_show_all
    - gtk_init
    - gtk_container_set_border_width
    - gtk_frame_new
    - gtk_window_new
    - gtk_frame_set_shadow_type
    - gtk_main
    - gtk_progress_bar_new
    - printf
    - GTK_CONTAINER
    - gdk_threads_init
    - G_CALLBACK
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/url2file.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/url2file.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/url2file.c:53,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/url2file.c:57,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/url2file.c:59,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/url2file.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/url2file.c:69,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/url2file.c:72,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/url2file.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/url2file.c:78,1
    - Dst: fopen
      Src: /src/curl/docs/examples/url2file.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/url2file.c:85,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/url2file.c:88,1
    - Dst: fclose
      Src: /src/curl/docs/examples/url2file.c:91,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/url2file.c:95,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/url2file.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: main
    functionSourceFile: /src/curl/docs/examples/url2file.c
    functionUses: 1
    functionsReached:
    - fclose
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - fopen
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-search.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-search.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-search.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-search.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-search.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-search.c:60,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-search.c:63,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-search.c:67,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-search.c:68,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-search.c:71,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-search.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-search.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/getredirect.c:37,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/getredirect.c:41,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/getredirect.c:43,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/getredirect.c:48,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/getredirect.c:51,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/getredirect.c:52,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/getredirect.c:55,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/getredirect.c:58,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/getredirect.c:62,1
    - Dst: printf
      Src: /src/curl/docs/examples/getredirect.c:67,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/getredirect.c:73,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/getredirect.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/curl/docs/examples/getredirect.c
    functionUses: 1
    functionsReached:
    - curl_easy_getinfo
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/smtp-expn.c:45,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/smtp-expn.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-expn.c:54,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-expn.c:57,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-expn.c:58,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-expn.c:61,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/smtp-expn.c:64,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smtp-expn.c:68,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/smtp-expn.c:69,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/smtp-expn.c:72,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/smtp-expn.c:80,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/smtp-expn.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/curl/docs/examples/smtp-expn.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/multi-single.c:41,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-single.c:45,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-single.c:52,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/multi-single.c:55,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-single.c:59,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/multi-single.c:62,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/multi-single.c:66,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-single.c:69,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/multi-single.c:76,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/multi-single.c:78,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-single.c:81,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/multi-single.c:84,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 87
    functionName: main
    functionSourceFile: /src/curl/docs/examples/multi-single.c
    functionUses: 1
    functionsReached:
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buffer
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/ftp-delete.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *buffer, size_t size, size_t nmemb, void *stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ftp-delete.c:45,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ftp-delete.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-delete.c:54,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-delete.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-delete.c:59,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/ftp-delete.c:62,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-delete.c:65,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftp-delete.c:67,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ftp-delete.c:70,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/ftp-delete.c:73,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftp-delete.c:77,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftp-delete.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 84
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ftp-delete.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/threaded.c:65,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/threaded.c:68,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/threaded.c:69,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/threaded.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: pull_one_url
    functionSourceFile: /src/curl/docs/examples/threaded.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void *pull_one_url(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/threaded.c:90,1
    - Dst: pthread_create
      Src: /src/curl/docs/examples/threaded.c:97,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/threaded.c:102,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/threaded.c:104,1
    - Dst: pthread_join
      Src: /src/curl/docs/examples/threaded.c:109,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/threaded.c:110,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/threaded.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 116
    functionName: main
    functionSourceFile: /src/curl/docs/examples/threaded.c
    functionUses: 1
    functionsReached:
    - pthread_join
    - pthread_create
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/usercertinmem.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/usercertinmem.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/curl/docs/examples/usercertinmem.c:84,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:86,1
    - Dst: PEM_read_bio_X509
      Src: /src/curl/docs/examples/usercertinmem.c:92,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:94,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/curl/docs/examples/usercertinmem.c:99,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:101,1
    - Dst: BIO_new_mem_buf
      Src: /src/curl/docs/examples/usercertinmem.c:106,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:108,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/curl/docs/examples/usercertinmem.c:112,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:114,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/curl/docs/examples/usercertinmem.c:119,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:121,1
    - Dst: BIO_free
      Src: /src/curl/docs/examples/usercertinmem.c:130,1
    - Dst: BIO_free
      Src: /src/curl/docs/examples/usercertinmem.c:133,1
    - Dst: EVP_PKEY_free
      Src: /src/curl/docs/examples/usercertinmem.c:136,1
    - Dst: X509_free
      Src: /src/curl/docs/examples/usercertinmem.c:139,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - curl
    - sslctx
    - pointer
    argTypes:
    - CURL*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 143
    functionName: sslctx_function
    functionSourceFile: /src/curl/docs/examples/usercertinmem.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - printf
    - PEM_read_bio_PrivateKey
    - EVP_PKEY_free
    - BIO_new_mem_buf
    - SSL_CTX_use_PrivateKey
    - X509_free
    - SSL_CTX_use_certificate
    - PEM_read_bio_X509
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode sslctx_function(CURL *curl, void *sslctx, void *pointer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/usercertinmem.c:149,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/usercertinmem.c:153,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:155,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:156,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:157,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:158,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:159,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:160,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:161,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:162,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:163,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:167,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:168,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:170,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:171,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/usercertinmem.c:174,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:176,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:178,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/usercertinmem.c:184,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/usercertinmem.c:185,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:187,1
    - Dst: printf
      Src: /src/curl/docs/examples/usercertinmem.c:189,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/usercertinmem.c:191,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/usercertinmem.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 195
    functionName: main
    functionSourceFile: /src/curl/docs/examples/usercertinmem.c
    functionUses: 1
    functionsReached:
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:62,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:67,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:73,1
    - Dst: fputs
      Src: /src/curl/docs/examples/http2-serverpush.c:75,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:85,1
    - Dst: fputc
      Src: /src/curl/docs/examples/http2-serverpush.c:94,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 25
    argCount: 4
    argNames:
    - text
    - ptr
    - size
    - nohex
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 96
    functionName: dump
    functionSourceFile: /src/curl/docs/examples/http2-serverpush.c
    functionUses: 8
    functionsReached:
    - fputs
    - fputc
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void dump(const char *text, const unsigned char *ptr,\n                 size_t
      size, char nohex)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:106,1
    - Dst: dump
      Src: /src/curl/docs/examples/http2-serverpush.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - curl
    - type
    - data
    - size
    - userp
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 132
    functionName: my_trace
    functionSourceFile: /src/curl/docs/examples/http2-serverpush.c
    functionUses: 0
    functionsReached:
    - dump
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int my_trace(CURL *curl, curl_infotype type,\n                    char
      *data, size_t size, void *userp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/curl/docs/examples/http2-serverpush.c:138,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:143,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:146,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:149,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:150,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:153,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:156,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:157,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - curl
    - url
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 164
    functionName: setup
    functionSourceFile: /src/curl/docs/examples/http2-serverpush.c
    functionUses: 15
    functionsReached:
    - fopen
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int setup(CURL *curl, const char *url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:183,1
    - Dst: fopen
      Src: /src/curl/docs/examples/http2-serverpush.c:186,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:189,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:194,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:196,1
    - Dst: curl_pushheader_bynum
      Src: /src/curl/docs/examples/http2-serverpush.c:200,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:201,1
    - Dst: curl_pushheader_byname
      Src: /src/curl/docs/examples/http2-serverpush.c:204,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - parent
    - curl
    - num_headers
    - headers
    - userp
    argTypes:
    - CURL*
    - CURL*
    - size_t
    - struct curl_pushheaders*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 212
    functionName: server_push_callback
    functionSourceFile: /src/curl/docs/examples/http2-serverpush.c
    functionUses: 0
    functionsReached:
    - curl_pushheader_bynum
    - curl_pushheader_byname
    - curl_easy_setopt
    - fopen
    - snprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int server_push_callback(CURL *parent,\n                                CURL
      *curl,\n                                size_t num_headers,\n                                struct
      curl_pushheaders *headers,\n                                void *userp)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/http2-serverpush.c:228,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/http2-serverpush.c:233,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/http2-serverpush.c:237,1
    - Dst: setup
      Src: /src/curl/docs/examples/http2-serverpush.c:240,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-serverpush.c:241,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:245,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:246,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/http2-serverpush.c:247,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/http2-serverpush.c:250,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/http2-serverpush.c:255,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/http2-serverpush.c:259,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/http2-serverpush.c:271,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/http2-serverpush.c:275,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/http2-serverpush.c:276,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/http2-serverpush.c:285,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/http2-serverpush.c:287,1
    - Dst: fclose
      Src: /src/curl/docs/examples/http2-serverpush.c:289,1
    - Dst: fclose
      Src: /src/curl/docs/examples/http2-serverpush.c:291,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 294
    functionName: main
    functionSourceFile: /src/curl/docs/examples/http2-serverpush.c
    functionUses: 1
    functionsReached:
    - fclose
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - setup
    - curl_multi_setopt
    - curl_easy_cleanup
    - curl_multi_init
    - curl_global_init
    - curl_multi_info_read
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-copy.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-copy.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-copy.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-copy.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-copy.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-copy.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-copy.c:63,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-copy.c:67,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-copy.c:68,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-copy.c:71,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-copy.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-copy.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/multi-legacy.c:55,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-legacy.c:61,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-legacy.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-legacy.c:66,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-legacy.c:67,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/multi-legacy.c:70,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-legacy.c:80,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/multi-legacy.c:83,1
    - Dst: FD_ZERO
      Src: /src/curl/docs/examples/multi-legacy.c:98,1
    - Dst: FD_ZERO
      Src: /src/curl/docs/examples/multi-legacy.c:99,1
    - Dst: FD_ZERO
      Src: /src/curl/docs/examples/multi-legacy.c:100,1
    - Dst: curl_multi_timeout
      Src: /src/curl/docs/examples/multi-legacy.c:106,1
    - Dst: curl_multi_fdset
      Src: /src/curl/docs/examples/multi-legacy.c:124,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-legacy.c:127,1
    - Dst: Sleep
      Src: /src/curl/docs/examples/multi-legacy.c:139,1
    - Dst: select
      Src: /src/curl/docs/examples/multi-legacy.c:145,1
    - Dst: select
      Src: /src/curl/docs/examples/multi-legacy.c:151,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/multi-legacy.c:160,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/multi-legacy.c:167,1
    - Dst: printf
      Src: /src/curl/docs/examples/multi-legacy.c:180,1
    - Dst: printf
      Src: /src/curl/docs/examples/multi-legacy.c:183,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/multi-legacy.c:189,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-legacy.c:194,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/multi-legacy.c:196,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/curl/docs/examples/multi-legacy.c
    functionUses: 1
    functionsReached:
    - printf
    - curl_multi_timeout
    - fprintf
    - curl_easy_init
    - curl_multi_perform
    - Sleep
    - FD_ZERO
    - select
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_multi_info_read
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    - curl_multi_fdset
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/docs/examples/sslbackend.c:48,1
    - Dst: curl_global_sslset
      Src: /src/curl/docs/examples/sslbackend.c:52,1
    - Dst: assert
      Src: /src/curl/docs/examples/sslbackend.c:53,1
    - Dst: printf
      Src: /src/curl/docs/examples/sslbackend.c:56,1
    - Dst: isdigit
      Src: /src/curl/docs/examples/sslbackend.c:61,1
    - Dst: atoi
      Src: /src/curl/docs/examples/sslbackend.c:62,1
    - Dst: curl_global_sslset
      Src: /src/curl/docs/examples/sslbackend.c:64,1
    - Dst: curl_global_sslset
      Src: /src/curl/docs/examples/sslbackend.c:67,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/sslbackend.c:70,1
    - Dst: assert
      Src: /src/curl/docs/examples/sslbackend.c:74,1
    - Dst: printf
      Src: /src/curl/docs/examples/sslbackend.c:76,1
    - Dst: curl_version
      Src: /src/curl/docs/examples/sslbackend.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (result == CURLSSLSET_UNKNOWN_BACKEND)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/curl/docs/examples/sslbackend.c
    - condition: (result == CURLSSLSET_OK)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/curl/docs/examples/sslbackend.c
    constantsTouched: []
    func_position:
      end: 79
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 79
    functionName: main
    functionSourceFile: /src/curl/docs/examples/sslbackend.c
    functionUses: 1
    functionsReached:
    - printf
    - curl_global_sslset
    - atoi
    - curl_version
    - strcmp
    - isdigit
    - assert
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_meta
      Src: /src/curl/docs/examples/websocket-updown.c:38,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-updown.c:39,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-updown.c:42,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-updown.c:44,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-updown.c:45,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-updown.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - b
    - size
    - nitems
    - p
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/websocket-updown.c
    functionUses: 0
    functionsReached:
    - fprintf
    - curl_ws_meta
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *b, size_t size, size_t nitems, void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_start_frame
      Src: /src/curl/docs/examples/websocket-updown.c:69,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-updown.c:72,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-updown.c:76,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/websocket-updown.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - buf
    - nitems
    - buflen
    - p
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 85
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/websocket-updown.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fprintf
    - curl_ws_start_frame
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *buf, size_t nitems, size_t buflen, void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/websocket-updown.c:93,1
    - Dst: memset
      Src: /src/curl/docs/examples/websocket-updown.c:97,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/websocket-updown.c:99,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-updown.c:102,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-updown.c:104,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-updown.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-updown.c:107,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-updown.c:108,1
    - Dst: strlen
      Src: /src/curl/docs/examples/websocket-updown.c:111,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/websocket-updown.c:112,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-updown.c:113,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket-updown.c:114,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/websocket-updown.c:117,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket-updown.c:120,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/websocket-updown.c:121,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/websocket-updown.c:124,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/websocket-updown.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 128
    functionName: main
    functionSourceFile: /src/curl/docs/examples/websocket-updown.c
    functionUses: 1
    functionsReached:
    - memcpy
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_global_init
    - curl_easy_setopt
    - memset
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/getinfo.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/getinfo.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/getinfo.c:42,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/getinfo.c:43,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/getinfo.c:48,1
    - Dst: printf
      Src: /src/curl/docs/examples/getinfo.c:51,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/getinfo.c:55,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/getinfo.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: main
    functionSourceFile: /src/curl/docs/examples/getinfo.c
    functionUses: 1
    functionsReached:
    - curl_easy_getinfo
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/smtp-mail.c:79,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/smtp-mail.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/smtp-mail.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/smtp-mail.c:92,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/smtp-mail.c:96,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mail.c:102,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mail.c:111,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-mail.c:116,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-mail.c:117,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mail.c:118,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mail.c:123,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mail.c:124,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mail.c:125,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/smtp-mail.c:128,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smtp-mail.c:132,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/smtp-mail.c:133,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/smtp-mail.c:136,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/smtp-mail.c:146,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/smtp-mail.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 152
    functionName: main
    functionSourceFile: /src/curl/docs/examples/smtp-mail.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: COMPARE
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: COMPARE
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Context
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string*::append
      Src: /src/curl/docs/examples/htmltitle.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - data
    - size
    - nmemb
    - writerData
    argTypes:
    - char*
    - size_t
    - size_t
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: writer
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 0
    functionsReached:
    - std::string*::append
    linkageType: ''
    returnType: size_t
    signature: "size_t writer(char *data, size_t size, size_t nmemb,\n                     std::string
      *writerData)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/htmltitle.cpp:91,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltitle.cpp:94,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltitle.cpp:98,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltitle.cpp:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltitle.cpp:104,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltitle.cpp:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltitle.cpp:110,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltitle.cpp:112,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltitle.cpp:116,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltitle.cpp:118,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/htmltitle.cpp:122,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltitle.cpp:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - curl
    - url
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 129
    functionName: init
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 465
    functionsReached:
    - curl_easy_init
    - curl_easy_setopt
    - fprintf
    linkageType: ''
    returnType: bool
    signature: bool init(CURL *&curl, const char *url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Context *>
      Src: /src/curl/docs/examples/htmltitle.cpp:138,1
    - Dst: COMPARE
      Src: /src/curl/docs/examples/htmltitle.cpp:140,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/curl/docs/examples/htmltitle.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - voidContext
    - name
    - attributes
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: StartElement
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    - static_cast<Context *>
    - COMPARE
    linkageType: ''
    returnType: void
    signature: "void StartElement(void *voidContext,\n                         const
      xmlChar *name,\n                         const xmlChar **attributes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Context *>
      Src: /src/curl/docs/examples/htmltitle.cpp:153,1
    - Dst: COMPARE
      Src: /src/curl/docs/examples/htmltitle.cpp:155,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/curl/docs/examples/htmltitle.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - voidContext
    - name
    argTypes:
    - void*
    - xmlChar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: EndElement
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char *>
    - static_cast<Context *>
    - COMPARE
    linkageType: ''
    returnType: void
    signature: "void EndElement(void *voidContext,\n                       const xmlChar
      *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Context*::title::append
      Src: /src/curl/docs/examples/htmltitle.cpp:167,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/curl/docs/examples/htmltitle.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - context
    - chars
    - length
    argTypes:
    - Context*
    - xmlChar*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: handleCharacters
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 0
    functionsReached:
    - Context*::title::append
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: void
    signature: "void handleCharacters(Context *context,\n                             const
      xmlChar *chars,\n                             int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Context *>
      Src: /src/curl/docs/examples/htmltitle.cpp:178,1
    - Dst: handleCharacters
      Src: /src/curl/docs/examples/htmltitle.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - voidContext
    - chars
    - length
    argTypes:
    - void*
    - xmlChar*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: Characters
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 1
    functionsReached:
    - handleCharacters
    - static_cast<Context *>
    linkageType: ''
    returnType: void
    signature: "void Characters(void *voidContext,\n                       const xmlChar
      *chars,\n                       int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Context *>
      Src: /src/curl/docs/examples/htmltitle.cpp:190,1
    - Dst: handleCharacters
      Src: /src/curl/docs/examples/htmltitle.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - voidContext
    - chars
    - length
    argTypes:
    - void*
    - xmlChar*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: cdata
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 0
    functionsReached:
    - handleCharacters
    - static_cast<Context *>
    linkageType: ''
    returnType: void
    signature: "void cdata(void *voidContext,\n                  const xmlChar *chars,\n
      \                 int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlCreatePushParserCtxt
      Src: /src/curl/docs/examples/htmltitle.cpp:242,1
    - Dst: htmlParseChunk
      Src: /src/curl/docs/examples/htmltitle.cpp:245,1
    - Dst: std::string::c_str
      Src: /src/curl/docs/examples/htmltitle.cpp:245,1
    - Dst: std::string::size
      Src: /src/curl/docs/examples/htmltitle.cpp:245,1
    - Dst: htmlParseChunk
      Src: /src/curl/docs/examples/htmltitle.cpp:246,1
    - Dst: htmlFreeParserCtxt
      Src: /src/curl/docs/examples/htmltitle.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - html
    - title
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 251
    functionName: parseHtml
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 0
    functionsReached:
    - htmlCreatePushParserCtxt
    - std::string::c_str
    - std::string::size
    - htmlFreeParserCtxt
    - htmlParseChunk
    linkageType: ''
    returnType: void
    signature: "void parseHtml(const std::string &html,\n                      std::string
      &title)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltitle.cpp:262,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/htmltitle.cpp:266,1
    - Dst: init
      Src: /src/curl/docs/examples/htmltitle.cpp:272,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltitle.cpp:273,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/htmltitle.cpp:274,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/htmltitle.cpp:280,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/htmltitle.cpp:281,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/htmltitle.cpp:284,1
    - Dst: parseHtml
      Src: /src/curl/docs/examples/htmltitle.cpp:289,1
    - Dst: printf
      Src: /src/curl/docs/examples/htmltitle.cpp:292,1
    - Dst: std::string::c_str
      Src: /src/curl/docs/examples/htmltitle.cpp:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 295
    functionName: main
    functionSourceFile: /src/curl/docs/examples/htmltitle.cpp
    functionUses: 1
    functionsReached:
    - printf
    - std::string::c_str
    - curl_easy_perform
    - init
    - curl_easy_cleanup
    - curl_global_init
    - parseHtml
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/multi-post.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-post.c:46,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/multi-post.c:50,1
    - Dst: curl_mime_init
      Src: /src/curl/docs/examples/multi-post.c:55,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/multi-post.c:58,1
    - Dst: curl_mime_name
      Src: /src/curl/docs/examples/multi-post.c:59,1
    - Dst: curl_mime_filedata
      Src: /src/curl/docs/examples/multi-post.c:60,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/multi-post.c:63,1
    - Dst: curl_mime_name
      Src: /src/curl/docs/examples/multi-post.c:64,1
    - Dst: curl_mime_data
      Src: /src/curl/docs/examples/multi-post.c:65,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/multi-post.c:68,1
    - Dst: curl_mime_name
      Src: /src/curl/docs/examples/multi-post.c:69,1
    - Dst: curl_mime_data
      Src: /src/curl/docs/examples/multi-post.c:70,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/multi-post.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-post.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-post.c:79,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-post.c:81,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-post.c:82,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-post.c:84,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/multi-post.c:87,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/multi-post.c:91,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/multi-post.c:97,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-post.c:101,1
    - Dst: curl_mime_free
      Src: /src/curl/docs/examples/multi-post.c:105,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/multi-post.c:108,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/multi-post.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/curl/docs/examples/multi-post.c
    functionUses: 1
    functionsReached:
    - curl_multi_add_handle
    - curl_multi_poll
    - curl_mime_free
    - curl_easy_init
    - curl_multi_perform
    - curl_multi_cleanup
    - curl_slist_free_all
    - curl_mime_addpart
    - curl_slist_append
    - curl_easy_cleanup
    - curl_mime_init
    - curl_multi_init
    - curl_global_init
    - curl_mime_data
    - curl_easy_setopt
    - curl_global_cleanup
    - curl_mime_name
    - curl_mime_filedata
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/docs/examples/parseurl.c:43,1
    - Dst: curl_url_set
      Src: /src/curl/docs/examples/parseurl.c:48,1
    - Dst: curl_url_get
      Src: /src/curl/docs/examples/parseurl.c:53,1
    - Dst: printf
      Src: /src/curl/docs/examples/parseurl.c:55,1
    - Dst: curl_free
      Src: /src/curl/docs/examples/parseurl.c:56,1
    - Dst: curl_url_get
      Src: /src/curl/docs/examples/parseurl.c:60,1
    - Dst: printf
      Src: /src/curl/docs/examples/parseurl.c:62,1
    - Dst: curl_free
      Src: /src/curl/docs/examples/parseurl.c:63,1
    - Dst: curl_url_set
      Src: /src/curl/docs/examples/parseurl.c:67,1
    - Dst: curl_url_get
      Src: /src/curl/docs/examples/parseurl.c:72,1
    - Dst: printf
      Src: /src/curl/docs/examples/parseurl.c:74,1
    - Dst: curl_free
      Src: /src/curl/docs/examples/parseurl.c:75,1
    - Dst: curl_url_cleanup
      Src: /src/curl/docs/examples/parseurl.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/curl/docs/examples/parseurl.c
    functionUses: 1
    functionsReached:
    - curl_url_set
    - printf
    - curl_url_cleanup
    - curl_url_get
    - curl_free
    - curl_url
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-lsub.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-lsub.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-lsub.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-lsub.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-lsub.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-lsub.c:57,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-lsub.c:60,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-lsub.c:64,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-lsub.c:65,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-lsub.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-lsub.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 74
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-lsub.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/curl/docs/examples/anyauthput.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - userp
    - offset
    - origin
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: my_seek
    functionSourceFile: /src/curl/docs/examples/anyauthput.c
    functionUses: 0
    functionsReached:
    - fseek
    linkageType: ''
    returnType: int
    signature: int my_seek(void *userp, curl_off_t offset, int origin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/curl/docs/examples/anyauthput.c:82,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/anyauthput.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/anyauthput.c
    functionUses: 0
    functionsReached:
    - fread
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/curl/docs/examples/anyauthput.c:108,1
    - Dst: fstat
      Src: /src/curl/docs/examples/anyauthput.c:112,1
    - Dst: fileno
      Src: /src/curl/docs/examples/anyauthput.c:112,1
    - Dst: fclose
      Src: /src/curl/docs/examples/anyauthput.c:113,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/anyauthput.c:118,1
    - Dst: fclose
      Src: /src/curl/docs/examples/anyauthput.c:120,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/anyauthput.c:125,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/anyauthput.c:128,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/anyauthput.c:131,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/anyauthput.c:134,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/anyauthput.c:137,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/anyauthput.c:140,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/anyauthput.c:144,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/anyauthput.c:148,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/anyauthput.c:154,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/anyauthput.c:157,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/anyauthput.c:160,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/anyauthput.c:163,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/anyauthput.c:164,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/anyauthput.c:167,1
    - Dst: fclose
      Src: /src/curl/docs/examples/anyauthput.c:169,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/anyauthput.c:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 173
    functionName: main
    functionSourceFile: /src/curl/docs/examples/anyauthput.c
    functionUses: 1
    functionsReached:
    - fclose
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - fopen
    - curl_global_cleanup
    - fileno
    - fstat
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-multi.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-multi.c:47,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/pop3-multi.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-multi.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-multi.c:57,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-multi.c:60,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/pop3-multi.c:63,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/pop3-multi.c:66,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/pop3-multi.c:70,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/pop3-multi.c:78,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/pop3-multi.c:79,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-multi.c:81,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-multi.c:84,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 87
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-multi.c
    functionUses: 1
    functionsReached:
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/httpcustomheader.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/httpcustomheader.c:40,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/httpcustomheader.c:45,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/httpcustomheader.c:48,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/httpcustomheader.c:51,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/httpcustomheader.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpcustomheader.c:58,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpcustomheader.c:60,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpcustomheader.c:61,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/httpcustomheader.c:63,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/httpcustomheader.c:66,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/httpcustomheader.c:67,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/httpcustomheader.c:70,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/httpcustomheader.c:73,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/httpcustomheader.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/curl/docs/examples/httpcustomheader.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/block_ip.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: main
    functionSourceFile: /src/curl/docs/examples/block_ip.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/docs/examples/block_ip.c:109,1
    - Dst: strchr
      Src: /src/curl/docs/examples/block_ip.c:113,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:117,1
    - Dst: strdup
      Src: /src/curl/docs/examples/block_ip.c:124,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:126,1
    - Dst: strchr
      Src: /src/curl/docs/examples/block_ip.c:131,1
    - Dst: atoi
      Src: /src/curl/docs/examples/block_ip.c:133,1
    - Dst: AF_INET6
      Src: /src/curl/docs/examples/block_ip.c:135,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:139,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:140,1
    - Dst: inet_pton
      Src: /src/curl/docs/examples/block_ip.c:153,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:154,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:155,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - struct ip*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 168
    functionName: ip_list_append
    functionSourceFile: /src/curl/docs/examples/block_ip.c
    functionUses: 0
    functionsReached:
    - strdup
    - AF_INET6
    - inet_pton
    - calloc
    - atoi
    - free
    - strchr
    linkageType: ''
    returnType: struct ip
    signature: struct ip *ip_list_append(struct ip *list, const char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:175,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct ip*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: ip_list_free_all
    functionSourceFile: /src/curl/docs/examples/block_ip.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ip_list_free_all(struct ip *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ip_list_free_all
      Src: /src/curl/docs/examples/block_ip.c:184,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct connection_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: free_connection_filter
    functionSourceFile: /src/curl/docs/examples/block_ip.c
    functionUses: 0
    functionsReached:
    - free
    - ip_list_free_all
    linkageType: ''
    returnType: void
    signature: void free_connection_filter(struct connection_filter *filter)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ip
    - netaddr
    argTypes:
    - struct ip*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 210
    functionName: ip_match
    functionSourceFile: /src/curl/docs/examples/block_ip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ip_match(struct ip *ip, void *netaddr)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 2
    argNames:
    - family
    - netaddr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 229
    functionName: is_ipv4_mapped_ipv6_address
    functionSourceFile: /src/curl/docs/examples/block_ip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_ipv4_mapped_ipv6_address(int family, void *netaddr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_ipv4_mapped_ipv6_address
      Src: /src/curl/docs/examples/block_ip.c:251,1
    - Dst: ip_match
      Src: /src/curl/docs/examples/block_ip.c:255,1
    - Dst: ip_match
      Src: /src/curl/docs/examples/block_ip.c:259,1
    - Dst: inet_ntop
      Src: /src/curl/docs/examples/block_ip.c:267,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/block_ip.c:268,1
    - Dst: inet_ntop
      Src: /src/curl/docs/examples/block_ip.c:276,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/block_ip.c:277,1
    - Dst: socket
      Src: /src/curl/docs/examples/block_ip.c:285,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 29
    argCount: 3
    argNames:
    - clientp
    - purpose
    - address
    argTypes:
    - void*
    - curlsocktype
    - struct curl_sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 286
    functionName: opensocket
    functionSourceFile: /src/curl/docs/examples/block_ip.c
    functionUses: 0
    functionsReached:
    - is_ipv4_mapped_ipv6_address
    - ip_match
    - socket
    - inet_ntop
    - fprintf
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t opensocket(void *clientp, curlsocktype purpose,\n                                struct
      curl_sockaddr *address)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/docs/examples/block_ip.c:294,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/block_ip.c:298,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:300,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/block_ip.c:304,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/block_ip.c:306,1
    - Dst: free
      Src: /src/curl/docs/examples/block_ip.c:307,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/block_ip.c:312,1
    - Dst: ip_list_append
      Src: /src/curl/docs/examples/block_ip.c:319,1
    - Dst: ip_list_append
      Src: /src/curl/docs/examples/block_ip.c:320,1
    - Dst: ip_list_append
      Src: /src/curl/docs/examples/block_ip.c:322,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/block_ip.c:326,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/block_ip.c:327,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/block_ip.c:331,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/block_ip.c:334,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/block_ip.c:338,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/block_ip.c:339,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/block_ip.c:343,1
    - Dst: free_connection_filter
      Src: /src/curl/docs/examples/block_ip.c:344,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/block_ip.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 350
    functionName: main
    functionSourceFile: /src/curl/docs/examples/block_ip.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - calloc
    - free
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - ip_list_append
    - curl_global_cleanup
    - free_connection_filter
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - data
    - n
    - l
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/10-at-a-time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *data, size_t n, size_t l, void *userp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/10-at-a-time.c:95,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/10-at-a-time.c:97,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/10-at-a-time.c:98,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/10-at-a-time.c:99,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/10-at-a-time.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - multi
    - i
    - left
    argTypes:
    - CURLM*
    - unsigned int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: add_transfer
    functionSourceFile: /src/curl/docs/examples/10-at-a-time.c
    functionUses: 1
    functionsReached:
    - curl_easy_init
    - curl_multi_add_handle
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void add_transfer(CURLM *multi, unsigned int i, int *left)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/10-at-a-time.c:109,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/10-at-a-time.c:113,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/10-at-a-time.c:121,1
    - Dst: add_transfer
      Src: /src/curl/docs/examples/10-at-a-time.c:125,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/10-at-a-time.c:129,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/10-at-a-time.c:132,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/10-at-a-time.c:136,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/10-at-a-time.c:137,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/10-at-a-time.c:138,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/10-at-a-time.c:139,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/10-at-a-time.c:140,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/10-at-a-time.c:144,1
    - Dst: add_transfer
      Src: /src/curl/docs/examples/10-at-a-time.c:147,1
    - Dst: curl_multi_wait
      Src: /src/curl/docs/examples/10-at-a-time.c:150,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/10-at-a-time.c:154,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/10-at-a-time.c:156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 159
    functionName: main
    functionSourceFile: /src/curl/docs/examples/10-at-a-time.c
    functionUses: 1
    functionsReached:
    - add_transfer
    - curl_easy_getinfo
    - curl_multi_remove_handle
    - curl_multi_perform
    - curl_easy_strerror
    - curl_multi_setopt
    - curl_easy_cleanup
    - curl_multi_init
    - curl_global_init
    - curl_multi_info_read
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_wait
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/range.c:34,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/range.c:38,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/range.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/range.c:41,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/range.c:43,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/range.c:44,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/range.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/curl/docs/examples/range.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/http-options.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/http-options.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http-options.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http-options.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http-options.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http-options.c:50,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/http-options.c:53,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http-options.c:56,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/http-options.c:57,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/http-options.c:60,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/http-options.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 64
    functionName: main
    functionSourceFile: /src/curl/docs/examples/http-options.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/smtp-mime.c:73,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/smtp-mime.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mime.c:88,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mime.c:97,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-mime.c:102,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-mime.c:103,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mime.c:104,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mime.c:107,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-mime.c:111,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mime.c:112,1
    - Dst: curl_mime_init
      Src: /src/curl/docs/examples/smtp-mime.c:115,1
    - Dst: curl_mime_init
      Src: /src/curl/docs/examples/smtp-mime.c:119,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/smtp-mime.c:122,1
    - Dst: curl_mime_data
      Src: /src/curl/docs/examples/smtp-mime.c:123,1
    - Dst: curl_mime_type
      Src: /src/curl/docs/examples/smtp-mime.c:124,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/smtp-mime.c:127,1
    - Dst: curl_mime_data
      Src: /src/curl/docs/examples/smtp-mime.c:128,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/smtp-mime.c:131,1
    - Dst: curl_mime_subparts
      Src: /src/curl/docs/examples/smtp-mime.c:132,1
    - Dst: curl_mime_type
      Src: /src/curl/docs/examples/smtp-mime.c:133,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-mime.c:134,1
    - Dst: curl_mime_headers
      Src: /src/curl/docs/examples/smtp-mime.c:135,1
    - Dst: curl_mime_addpart
      Src: /src/curl/docs/examples/smtp-mime.c:138,1
    - Dst: curl_mime_filedata
      Src: /src/curl/docs/examples/smtp-mime.c:139,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-mime.c:140,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/smtp-mime.c:143,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smtp-mime.c:147,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/smtp-mime.c:148,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/smtp-mime.c:151,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/smtp-mime.c:152,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/smtp-mime.c:162,1
    - Dst: curl_mime_free
      Src: /src/curl/docs/examples/smtp-mime.c:165,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/smtp-mime.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 171
    functionName: main
    functionSourceFile: /src/curl/docs/examples/smtp-mime.c
    functionUses: 1
    functionsReached:
    - curl_mime_headers
    - curl_mime_subparts
    - curl_easy_perform
    - curl_easy_init
    - curl_mime_free
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_mime_addpart
    - curl_slist_append
    - curl_easy_cleanup
    - curl_mime_init
    - curl_easy_setopt
    - curl_global_init
    - curl_mime_data
    - curl_global_cleanup
    - curl_mime_type
    - curl_mime_filedata
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/curl/docs/examples/sendrecv.c:58,1
    - Dst: FD_ZERO
      Src: /src/curl/docs/examples/sendrecv.c:59,1
    - Dst: FD_ZERO
      Src: /src/curl/docs/examples/sendrecv.c:60,1
    - Dst: FD_SET
      Src: /src/curl/docs/examples/sendrecv.c:62,1
    - Dst: FD_SET
      Src: /src/curl/docs/examples/sendrecv.c:65,1
    - Dst: FD_SET
      Src: /src/curl/docs/examples/sendrecv.c:68,1
    - Dst: select
      Src: /src/curl/docs/examples/sendrecv.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - sockfd
    - for_recv
    - timeout_ms
    argTypes:
    - curl_socket_t
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 74
    functionName: wait_on_socket
    functionSourceFile: /src/curl/docs/examples/sendrecv.c
    functionUses: 0
    functionsReached:
    - FD_SET
    - select
    - FD_ZERO
    linkageType: ''
    returnType: int
    signature: int wait_on_socket(curl_socket_t sockfd, int for_recv, long timeout_ms)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/sendrecv.c:81,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/sendrecv.c:83,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/sendrecv.c:95,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sendrecv.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sendrecv.c:102,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/sendrecv.c:103,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:106,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/sendrecv.c:106,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/sendrecv.c:111,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:114,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/sendrecv.c:114,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:118,1
    - Dst: curl_easy_send
      Src: /src/curl/docs/examples/sendrecv.c:127,1
    - Dst: wait_on_socket
      Src: /src/curl/docs/examples/sendrecv.c:131,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:132,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:138,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/sendrecv.c:138,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:142,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:146,1
    - Dst: curl_easy_recv
      Src: /src/curl/docs/examples/sendrecv.c:154,1
    - Dst: wait_on_socket
      Src: /src/curl/docs/examples/sendrecv.c:156,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:157,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:163,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/sendrecv.c:163,1
    - Dst: printf
      Src: /src/curl/docs/examples/sendrecv.c:172,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/sendrecv.c:176,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/sendrecv.c:178,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 180
    functionName: main
    functionSourceFile: /src/curl/docs/examples/sendrecv.c
    functionUses: 1
    functionsReached:
    - curl_easy_getinfo
    - printf
    - curl_global_cleanup
    - curl_easy_recv
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - strlen
    - wait_on_socket
    - curl_easy_send
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/docs/examples/multi-uv.c:61,1
    - Dst: uv_poll_init_socket
      Src: /src/curl/docs/examples/multi-uv.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sockfd
    - uv
    argTypes:
    - curl_socket_t
    - struct datauv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: create_curl_context
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 0
    functionsReached:
    - malloc
    - uv_poll_init_socket
    linkageType: ''
    returnType: struct curl_context
    signature: "struct curl_context *create_curl_context(curl_socket_t sockfd,\n                                                struct
      datauv *uv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/curl/docs/examples/multi-uv.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - uv_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: curl_close_cb
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void curl_close_cb(uv_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uv_close
      Src: /src/curl/docs/examples/multi-uv.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct curl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: destroy_curl_context
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 0
    functionsReached:
    - uv_close
    linkageType: ''
    returnType: void
    signature: void destroy_curl_context(struct curl_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/docs/examples/multi-uv.c:89,1
    - Dst: fopen
      Src: /src/curl/docs/examples/multi-uv.c:91,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-uv.c:93,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-uv.c:97,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-uv.c:98,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-uv.c:99,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-uv.c:100,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-uv.c:101,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-uv.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - url
    - num
    - multi
    argTypes:
    - char*
    - int
    - CURLM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: add_download
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 0
    functionsReached:
    - curl_easy_init
    - curl_easy_setopt
    - fopen
    - snprintf
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: void
    signature: void add_download(const char *url, int num, CURLM *multi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/multi-uv.c:113,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/multi-uv.c:123,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/multi-uv.c:124,1
    - Dst: printf
      Src: /src/curl/docs/examples/multi-uv.c:125,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/multi-uv.c:127,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-uv.c:128,1
    - Dst: fclose
      Src: /src/curl/docs/examples/multi-uv.c:130,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-uv.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - uv
    argTypes:
    - struct datauv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 139
    functionName: check_multi_info
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 2
    functionsReached:
    - fclose
    - curl_easy_getinfo
    - printf
    - curl_multi_remove_handle
    - curl_easy_cleanup
    - curl_multi_info_read
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_multi_info(struct datauv *uv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/multi-uv.c:153,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/multi-uv.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - req
    - status
    - events
    argTypes:
    - uv_poll_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 156
    functionName: on_uv_socket
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - curl_multi_socket_action
    linkageType: ''
    returnType: void
    signature: void on_uv_socket(uv_poll_t *req, int status, int events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/multi-uv.c:165,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/multi-uv.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - uv_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: on_uv_timeout
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - curl_multi_socket_action
    linkageType: ''
    returnType: void
    signature: void on_uv_timeout(uv_timer_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uv_timer_stop
      Src: /src/curl/docs/examples/multi-uv.c:178,1
    - Dst: uv_timer_start
      Src: /src/curl/docs/examples/multi-uv.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - userp
    argTypes:
    - CURLM*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: cb_timeout
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 0
    functionsReached:
    - uv_timer_start
    - uv_timer_stop
    linkageType: ''
    returnType: int
    signature: int cb_timeout(CURLM *multi, long timeout_ms, void *userp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: create_curl_context
      Src: /src/curl/docs/examples/multi-uv.c:203,1
    - Dst: curl_multi_assign
      Src: /src/curl/docs/examples/multi-uv.c:205,1
    - Dst: uv_poll_start
      Src: /src/curl/docs/examples/multi-uv.c:212,1
    - Dst: uv_poll_stop
      Src: /src/curl/docs/examples/multi-uv.c:216,1
    - Dst: destroy_curl_context
      Src: /src/curl/docs/examples/multi-uv.c:217,1
    - Dst: curl_multi_assign
      Src: /src/curl/docs/examples/multi-uv.c:218,1
    - Dst: abort
      Src: /src/curl/docs/examples/multi-uv.c:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - curl
    - s
    - action
    - userp
    - socketp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 226
    functionName: cb_socket
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 0
    functionsReached:
    - abort
    - destroy_curl_context
    - uv_poll_stop
    - curl_multi_assign
    - uv_poll_start
    - create_curl_context
    linkageType: ''
    returnType: int
    signature: "int cb_socket(CURL *curl, curl_socket_t s, int action,\n                     void
      *userp, void *socketp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/multi-uv.c:237,1
    - Dst: uv_default_loop
      Src: /src/curl/docs/examples/multi-uv.c:241,1
    - Dst: uv_timer_init
      Src: /src/curl/docs/examples/multi-uv.c:242,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/multi-uv.c:244,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/multi-uv.c:246,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/multi-uv.c:247,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/multi-uv.c:248,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/multi-uv.c:249,1
    - Dst: add_download
      Src: /src/curl/docs/examples/multi-uv.c:252,1
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/multi-uv.c:256,1
    - Dst: uv_run
      Src: /src/curl/docs/examples/multi-uv.c:258,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/multi-uv.c:259,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/multi-uv.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 264
    functionName: main
    functionSourceFile: /src/curl/docs/examples/multi-uv.c
    functionUses: 1
    functionsReached:
    - curl_global_cleanup
    - curl_multi_socket_action
    - uv_default_loop
    - curl_multi_setopt
    - curl_multi_init
    - uv_run
    - curl_global_init
    - uv_timer_init
    - curl_multi_cleanup
    - add_download
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/getreferrer.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/getreferrer.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/getreferrer.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/getreferrer.c:43,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/getreferrer.c:46,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/getreferrer.c:49,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/getreferrer.c:50,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/getreferrer.c:53,1
    - Dst: printf
      Src: /src/curl/docs/examples/getreferrer.c:55,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/getreferrer.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/getreferrer.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/curl/docs/examples/getreferrer.c
    functionUses: 1
    functionsReached:
    - curl_easy_getinfo
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/curl/docs/examples/ftpget.c:48,1
    - Dst: fwrite
      Src: /src/curl/docs/examples/ftpget.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - buffer
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/ftpget.c
    functionUses: 0
    functionsReached:
    - fopen
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *buffer, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ftpget.c:64,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ftpget.c:68,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpget.c:73,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpget.c:76,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpget.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpget.c:81,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftpget.c:83,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ftpget.c:86,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftpget.c:90,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftpget.c:95,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftpget.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 100
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ftpget.c
    functionUses: 1
    functionsReached:
    - fclose
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-examine.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-examine.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-examine.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-examine.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-examine.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-examine.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-examine.c:59,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-examine.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-examine.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-examine.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-examine.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-examine.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/multi-event.c:52,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/multi-event.c:62,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/multi-event.c:63,1
    - Dst: printf
      Src: /src/curl/docs/examples/multi-event.c:64,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/multi-event.c:66,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-event.c:67,1
    - Dst: fclose
      Src: /src/curl/docs/examples/multi-event.c:69,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-event.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 78
    functionName: check_multi_info
    functionSourceFile: /src/curl/docs/examples/multi-event.c
    functionUses: 4
    functionsReached:
    - fclose
    - curl_easy_getinfo
    - printf
    - curl_multi_remove_handle
    - curl_easy_cleanup
    - curl_multi_info_read
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_multi_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/multi-event.c:95,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/multi-event.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 98
    functionName: curl_perform
    functionSourceFile: /src/curl/docs/examples/multi-event.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - curl_multi_socket_action
    linkageType: ''
    returnType: void
    signature: void curl_perform(int fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/docs/examples/multi-event.c:102,1
    - Dst: event_new
      Src: /src/curl/docs/examples/multi-event.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: create_curl_context
    functionSourceFile: /src/curl/docs/examples/multi-event.c
    functionUses: 1
    functionsReached:
    - malloc
    - event_new
    linkageType: ''
    returnType: struct curl_context
    signature: struct curl_context *create_curl_context(curl_socket_t sockfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/curl/docs/examples/multi-event.c:113,1
    - Dst: event_free
      Src: /src/curl/docs/examples/multi-event.c:114,1
    - Dst: free
      Src: /src/curl/docs/examples/multi-event.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct curl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: destroy_curl_context
    functionSourceFile: /src/curl/docs/examples/multi-event.c
    functionUses: 1
    functionsReached:
    - event_free
    - event_del
    - free
    linkageType: ''
    returnType: void
    signature: void destroy_curl_context(struct curl_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/docs/examples/multi-event.c:124,1
    - Dst: fopen
      Src: /src/curl/docs/examples/multi-event.c:126,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-event.c:128,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-event.c:132,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-event.c:133,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-event.c:134,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-event.c:135,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-event.c:136,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-event.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - url
    - num
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: add_download
    functionSourceFile: /src/curl/docs/examples/multi-event.c
    functionUses: 1
    functionsReached:
    - curl_easy_init
    - curl_easy_setopt
    - fopen
    - snprintf
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: void
    signature: void add_download(const char *url, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/multi-event.c:146,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/multi-event.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: on_timeout
    functionSourceFile: /src/curl/docs/examples/multi-event.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - curl_multi_socket_action
    linkageType: ''
    returnType: void
    signature: void on_timeout(evutil_socket_t fd, short events, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_del
      Src: /src/curl/docs/examples/multi-event.c:155,1
    - Dst: evtimer_del
      Src: /src/curl/docs/examples/multi-event.c:163,1
    - Dst: evtimer_add
      Src: /src/curl/docs/examples/multi-event.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - userp
    argTypes:
    - CURLM*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: start_timeout
    functionSourceFile: /src/curl/docs/examples/multi-event.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - evtimer_del
    linkageType: ''
    returnType: int
    signature: int start_timeout(CURLM *multi, long timeout_ms, void *userp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: create_curl_context
      Src: /src/curl/docs/examples/multi-event.c:183,1
    - Dst: curl_multi_assign
      Src: /src/curl/docs/examples/multi-event.c:185,1
    - Dst: event_del
      Src: /src/curl/docs/examples/multi-event.c:194,1
    - Dst: event_assign
      Src: /src/curl/docs/examples/multi-event.c:195,1
    - Dst: event_add
      Src: /src/curl/docs/examples/multi-event.c:197,1
    - Dst: event_del
      Src: /src/curl/docs/examples/multi-event.c:202,1
    - Dst: destroy_curl_context
      Src: /src/curl/docs/examples/multi-event.c:203,1
    - Dst: curl_multi_assign
      Src: /src/curl/docs/examples/multi-event.c:204,1
    - Dst: abort
      Src: /src/curl/docs/examples/multi-event.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - curl
    - s
    - action
    - userp
    - socketp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 212
    functionName: handle_socket
    functionSourceFile: /src/curl/docs/examples/multi-event.c
    functionUses: 0
    functionsReached:
    - abort
    - destroy_curl_context
    - event_assign
    - event_del
    - curl_multi_assign
    - event_add
    - create_curl_context
    linkageType: ''
    returnType: int
    signature: "int handle_socket(CURL *curl, curl_socket_t s, int action, void *userp,\n
      \                        void *socketp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/multi-event.c:221,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/multi-event.c:223,1
    - Dst: event_base_new
      Src: /src/curl/docs/examples/multi-event.c:227,1
    - Dst: evtimer_new
      Src: /src/curl/docs/examples/multi-event.c:228,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/multi-event.c:230,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/multi-event.c:232,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/multi-event.c:233,1
    - Dst: add_download
      Src: /src/curl/docs/examples/multi-event.c:236,1
    - Dst: event_base_dispatch
      Src: /src/curl/docs/examples/multi-event.c:239,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/multi-event.c:241,1
    - Dst: event_free
      Src: /src/curl/docs/examples/multi-event.c:243,1
    - Dst: event_base_free
      Src: /src/curl/docs/examples/multi-event.c:244,1
    - Dst: libevent_global_shutdown
      Src: /src/curl/docs/examples/multi-event.c:246,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/multi-event.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 250
    functionName: main
    functionSourceFile: /src/curl/docs/examples/multi-event.c
    functionUses: 1
    functionsReached:
    - event_free
    - event_base_new
    - event_base_free
    - libevent_global_shutdown
    - evtimer_new
    - curl_multi_setopt
    - curl_multi_init
    - curl_global_init
    - event_base_dispatch
    - curl_global_cleanup
    - curl_multi_cleanup
    - add_download
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/sepheaders.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/sepheaders.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/sepheaders.c:49,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/sepheaders.c:54,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sepheaders.c:62,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sepheaders.c:65,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sepheaders.c:68,1
    - Dst: fopen
      Src: /src/curl/docs/examples/sepheaders.c:71,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/sepheaders.c:73,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/sepheaders.c:74,1
    - Dst: fopen
      Src: /src/curl/docs/examples/sepheaders.c:79,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/sepheaders.c:81,1
    - Dst: fclose
      Src: /src/curl/docs/examples/sepheaders.c:82,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/sepheaders.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sepheaders.c:88,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sepheaders.c:91,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/sepheaders.c:94,1
    - Dst: fclose
      Src: /src/curl/docs/examples/sepheaders.c:97,1
    - Dst: fclose
      Src: /src/curl/docs/examples/sepheaders.c:100,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/sepheaders.c:103,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/sepheaders.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 109
    functionName: main
    functionSourceFile: /src/curl/docs/examples/sepheaders.c
    functionUses: 1
    functionsReached:
    - fclose
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - fopen
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-ssl.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-ssl.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-ssl.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-ssl.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-ssl.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-ssl.c:66,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-ssl.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-ssl.c:80,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-ssl.c:83,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-ssl.c:87,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-ssl.c:88,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-ssl.c:91,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-ssl.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 97
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-ssl.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/docs/examples/post-callback.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - dest
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/post-callback.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *dest, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/post-callback.c:76,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/post-callback.c:79,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/post-callback.c:82,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/post-callback.c:83,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/post-callback.c:88,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/post-callback.c:91,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/post-callback.c:94,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/post-callback.c:97,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/post-callback.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/post-callback.c:103,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/post-callback.c:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/post-callback.c:117,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/post-callback.c:124,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/post-callback.c:139,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/post-callback.c:140,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/post-callback.c:147,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/post-callback.c:150,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/post-callback.c:151,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/post-callback.c:154,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/post-callback.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 158
    functionName: main
    functionSourceFile: /src/curl/docs/examples/post-callback.c
    functionUses: 1
    functionsReached:
    - curl_global_cleanup
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/urlapi.c:41,1
    - Dst: curl_url
      Src: /src/curl/docs/examples/urlapi.c:46,1
    - Dst: curl_url_set
      Src: /src/curl/docs/examples/urlapi.c:47,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/urlapi.c:51,1
    - Dst: curl_url_strerror
      Src: /src/curl/docs/examples/urlapi.c:51,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/urlapi.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/urlapi.c:59,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/urlapi.c:60,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/urlapi.c:63,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/urlapi.c:65,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/urlapi.c:68,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/urlapi.c:69,1
    - Dst: curl_url_cleanup
      Src: /src/curl/docs/examples/urlapi.c:73,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/urlapi.c:74,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/urlapi.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/curl/docs/examples/urlapi.c
    functionUses: 1
    functionsReached:
    - curl_url_set
    - curl_easy_perform
    - curl_easy_init
    - curl_url_cleanup
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_url
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_url_strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-tls.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-tls.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-tls.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-tls.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-tls.c:54,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-tls.c:62,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-tls.c:76,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-tls.c:81,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-tls.c:84,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-tls.c:88,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-tls.c:89,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-tls.c:92,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-tls.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 98
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-tls.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/curl/docs/examples/http2-pushinmemory.c:43,1
    - Dst: printf
      Src: /src/curl/docs/examples/http2-pushinmemory.c:46,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/http2-pushinmemory.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - contents
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/http2-pushinmemory.c
    functionUses: 0
    functionsReached:
    - printf
    - memcpy
    - realloc
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *contents, size_t size, size_t nmemb, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/docs/examples/http2-pushinmemory.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - struct Memory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: init_memory
    functionSourceFile: /src/curl/docs/examples/http2-pushinmemory.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void init_memory(struct Memory *chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:71,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:74,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:81,1
    - Dst: init_memory
      Src: /src/curl/docs/examples/http2-pushinmemory.c:82,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 87
    functionName: setup
    functionSourceFile: /src/curl/docs/examples/http2-pushinmemory.c
    functionUses: 16
    functionsReached:
    - curl_easy_setopt
    - init_memory
    linkageType: ''
    returnType: void
    signature: void setup(CURL *curl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_memory
      Src: /src/curl/docs/examples/http2-pushinmemory.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:107,1
    - Dst: curl_pushheader_byname
      Src: /src/curl/docs/examples/http2-pushinmemory.c:110,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-pushinmemory.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - parent
    - curl
    - num_headers
    - headers
    - userp
    argTypes:
    - CURL*
    - CURL*
    - size_t
    - struct curl_pushheaders*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 116
    functionName: server_push_callback
    functionSourceFile: /src/curl/docs/examples/http2-pushinmemory.c
    functionUses: 0
    functionsReached:
    - curl_pushheader_byname
    - fprintf
    - curl_easy_setopt
    - init_memory
    linkageType: ''
    returnType: int
    signature: "int server_push_callback(CURL *parent,\n                                CURL
      *curl,\n                                size_t num_headers,\n                                struct
      curl_pushheaders *headers,\n                                void *userp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/http2-pushinmemory.c:128,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/http2-pushinmemory.c:133,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/http2-pushinmemory.c:135,1
    - Dst: setup
      Src: /src/curl/docs/examples/http2-pushinmemory.c:138,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/http2-pushinmemory.c:141,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:143,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:144,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/http2-pushinmemory.c:145,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/http2-pushinmemory.c:152,1
    - Dst: curl_multi_wait
      Src: /src/curl/docs/examples/http2-pushinmemory.c:156,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/http2-pushinmemory.c:166,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/http2-pushinmemory.c:170,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/http2-pushinmemory.c:171,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/http2-pushinmemory.c:176,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/http2-pushinmemory.c:177,1
    - Dst: free
      Src: /src/curl/docs/examples/http2-pushinmemory.c:182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 186
    functionName: main
    functionSourceFile: /src/curl/docs/examples/http2-pushinmemory.c
    functionUses: 1
    functionsReached:
    - curl_multi_wait
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - setup
    - free
    - curl_multi_setopt
    - curl_easy_cleanup
    - curl_multi_init
    - curl_global_init
    - curl_multi_info_read
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: sleep
    functionSourceFile: /src/curl/docs/examples/websocket.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sleep(s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/websocket.c:44,1
    - Dst: curl_ws_send
      Src: /src/curl/docs/examples/websocket.c:47,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket.c:53,1
    - Dst: sleep
      Src: /src/curl/docs/examples/websocket.c:54,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - curl
    - send_payload
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: ping
    functionSourceFile: /src/curl/docs/examples/websocket.c
    functionUses: 3
    functionsReached:
    - strlen
    - sleep
    - curl_ws_send
    - fprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ping(CURL *curl, const char *send_payload)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_recv
      Src: /src/curl/docs/examples/websocket.c:73,1
    - Dst: strlen
      Src: /src/curl/docs/examples/websocket.c:80,1
    - Dst: memcmp
      Src: /src/curl/docs/examples/websocket.c:81,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket.c:84,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket.c:88,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket.c:91,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket.c:96,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket.c:102,1
    - Dst: sleep
      Src: /src/curl/docs/examples/websocket.c:103,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket.c:108,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - curl
    - expected_payload
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 111
    functionName: recv_pong
    functionSourceFile: /src/curl/docs/examples/websocket.c
    functionUses: 3
    functionsReached:
    - memcmp
    - strlen
    - sleep
    - curl_ws_recv
    - fprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode recv_pong(CURL *curl, const char *expected_payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_ws_send
      Src: /src/curl/docs/examples/websocket.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: websocket_close
    functionSourceFile: /src/curl/docs/examples/websocket.c
    functionUses: 0
    functionsReached:
    - curl_ws_send
    linkageType: ''
    returnType: void
    signature: void websocket_close(CURL *curl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ping
      Src: /src/curl/docs/examples/websocket.c:125,1
    - Dst: recv_pong
      Src: /src/curl/docs/examples/websocket.c:128,1
    - Dst: sleep
      Src: /src/curl/docs/examples/websocket.c:131,1
    - Dst: websocket_close
      Src: /src/curl/docs/examples/websocket.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: websocket
    functionSourceFile: /src/curl/docs/examples/websocket.c
    functionUses: 2
    functionsReached:
    - websocket_close
    - ping
    - sleep
    - recv_pong
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode websocket(CURL *curl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/websocket.c:141,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/websocket.c:145,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket.c:148,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket.c:150,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/websocket.c:152,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/websocket.c:155,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/websocket.c:158,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/websocket.c:159,1
    - Dst: websocket
      Src: /src/curl/docs/examples/websocket.c:162,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/websocket.c:166,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/websocket.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 170
    functionName: main
    functionSourceFile: /src/curl/docs/examples/websocket.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - websocket
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/curl/docs/examples/httpput.c:66,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/httpput.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/httpput.c
    functionUses: 0
    functionsReached:
    - fread
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/curl/docs/examples/httpput.c:94,1
    - Dst: fstat
      Src: /src/curl/docs/examples/httpput.c:99,1
    - Dst: fileno
      Src: /src/curl/docs/examples/httpput.c:99,1
    - Dst: fclose
      Src: /src/curl/docs/examples/httpput.c:100,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/httpput.c:105,1
    - Dst: fclose
      Src: /src/curl/docs/examples/httpput.c:107,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/httpput.c:112,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpput.c:115,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpput.c:118,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpput.c:122,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpput.c:125,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/httpput.c:129,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/httpput.c:133,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/httpput.c:136,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/httpput.c:137,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/httpput.c:140,1
    - Dst: fclose
      Src: /src/curl/docs/examples/httpput.c:142,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/httpput.c:144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 146
    functionName: main
    functionSourceFile: /src/curl/docs/examples/httpput.c
    functionUses: 1
    functionsReached:
    - fclose
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - fopen
    - curl_global_cleanup
    - fileno
    - fstat
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:126,1
    - Dst: exit
      Src: /src/curl/docs/examples/ghiper.c:127,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - where
    - code
    argTypes:
    - char*
    - CURLMcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 129
    functionName: mcode_or_die
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 3
    functionsReached:
    - MSG_OUT
    - exit
    linkageType: ''
    returnType: void
    signature: void mcode_or_die(const char *where, CURLMcode code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:137,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/ghiper.c:138,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/ghiper.c:144,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/ghiper.c:145,1
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:146,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/ghiper.c:147,1
    - Dst: free
      Src: /src/curl/docs/examples/ghiper.c:148,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ghiper.c:149,1
    - Dst: free
      Src: /src/curl/docs/examples/ghiper.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: check_multi_info
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 6
    functionsReached:
    - curl_easy_getinfo
    - MSG_OUT
    - curl_multi_remove_handle
    - free
    - curl_easy_cleanup
    - curl_multi_info_read
    linkageType: ''
    returnType: void
    signature: void check_multi_info(struct GlobalInfo *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/ghiper.c:161,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/ghiper.c:163,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/ghiper.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: timer_cb
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - mcode_or_die
    - curl_multi_socket_action
    linkageType: ''
    returnType: gboolean
    signature: gboolean timer_cb(gpointer data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:176,1
    - Dst: g_timeout_add
      Src: /src/curl/docs/examples/ghiper.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - userp
    argTypes:
    - CURLM*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 188
    functionName: update_timeout_cb
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 0
    functionsReached:
    - MSG_OUT
    - g_timeout_add
    linkageType: ''
    returnType: int
    signature: int update_timeout_cb(CURLM *multi, long timeout_ms, void *userp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_io_channel_unix_get_fd
      Src: /src/curl/docs/examples/ghiper.c:195,1
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/ghiper.c:200,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/ghiper.c:201,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/ghiper.c:203,1
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:208,1
    - Dst: g_source_remove
      Src: /src/curl/docs/examples/ghiper.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ch
    - condition
    - data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 214
    functionName: event_cb
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - MSG_OUT
    - g_io_channel_unix_get_fd
    - mcode_or_die
    - g_source_remove
    - curl_multi_socket_action
    linkageType: ''
    returnType: gboolean
    signature: gboolean event_cb(GIOChannel *ch, GIOCondition condition, gpointer
      data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/curl/docs/examples/ghiper.c:223,1
    - Dst: g_free
      Src: /src/curl/docs/examples/ghiper.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct SockInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: remsock
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 1
    functionsReached:
    - g_free
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: void remsock(struct SockInfo *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/curl/docs/examples/ghiper.c:239,1
    - Dst: g_io_add_watch
      Src: /src/curl/docs/examples/ghiper.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - f
    - s
    - e
    - act
    - g
    argTypes:
    - struct SockInfo*
    - curl_socket_t
    - CURL*
    - int
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 242
    functionName: setsock
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 2
    functionsReached:
    - g_io_add_watch
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: "void setsock(struct SockInfo *f, curl_socket_t s, CURL *e, int act,\n
      \                   struct GlobalInfo *g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/curl/docs/examples/ghiper.c:248,1
    - Dst: g_io_channel_unix_new
      Src: /src/curl/docs/examples/ghiper.c:251,1
    - Dst: setsock
      Src: /src/curl/docs/examples/ghiper.c:252,1
    - Dst: curl_multi_assign
      Src: /src/curl/docs/examples/ghiper.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - s
    - curl
    - action
    - g
    argTypes:
    - curl_socket_t
    - CURL*
    - int
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: addsock
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 1
    functionsReached:
    - setsock
    - g_malloc0
    - g_io_channel_unix_new
    - curl_multi_assign
    linkageType: ''
    returnType: void
    signature: "void addsock(curl_socket_t s, CURL *curl, int action,\n                    struct
      GlobalInfo *g)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:263,1
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:265,1
    - Dst: remsock
      Src: /src/curl/docs/examples/ghiper.c:266,1
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:270,1
    - Dst: addsock
      Src: /src/curl/docs/examples/ghiper.c:273,1
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:276,1
    - Dst: setsock
      Src: /src/curl/docs/examples/ghiper.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - e
    - s
    - what
    - cbp
    - sockp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 281
    functionName: sock_cb
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 0
    functionsReached:
    - setsock
    - MSG_OUT
    - addsock
    - remsock
    linkageType: ''
    returnType: int
    signature: int sock_cb(CURL *e, curl_socket_t s, int what, void *cbp, void *sockp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/ghiper.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - p
    - dltotal
    - dlnow
    - ult
    - uln
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 304
    functionName: xferinfo_cb
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int xferinfo_cb(void *p, curl_off_t dltotal, curl_off_t dlnow,\n                       curl_off_t
      ult, curl_off_t uln)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/curl/docs/examples/ghiper.c:312,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ghiper.c:314,1
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:316,1
    - Dst: exit
      Src: /src/curl/docs/examples/ghiper.c:317,1
    - Dst: g_strdup
      Src: /src/curl/docs/examples/ghiper.c:320,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:321,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:322,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:323,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:324,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:325,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:326,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:327,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:328,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:329,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:330,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:331,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:332,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ghiper.c:333,1
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:335,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/ghiper.c:336,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/ghiper.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - url
    - g
    argTypes:
    - char*
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 341
    functionName: new_conn
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 1
    functionsReached:
    - MSG_OUT
    - g_malloc0
    - curl_easy_init
    - g_strdup
    - mcode_or_die
    - curl_easy_setopt
    - exit
    - curl_multi_add_handle
    linkageType: ''
    returnType: void
    signature: void new_conn(const char *url, struct GlobalInfo *g)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_io_channel_read_line
      Src: /src/curl/docs/examples/ghiper.c:353,1
    - Dst: new_conn
      Src: /src/curl/docs/examples/ghiper.c:358,1
    - Dst: g_free
      Src: /src/curl/docs/examples/ghiper.c:359,1
    - Dst: g_malloc
      Src: /src/curl/docs/examples/ghiper.c:362,1
    - Dst: g_io_channel_read_chars
      Src: /src/curl/docs/examples/ghiper.c:365,1
    - Dst: g_strdup_printf
      Src: /src/curl/docs/examples/ghiper.c:370,1
    - Dst: g_free
      Src: /src/curl/docs/examples/ghiper.c:371,1
    - Dst: g_strdup
      Src: /src/curl/docs/examples/ghiper.c:374,1
    - Dst: new_conn
      Src: /src/curl/docs/examples/ghiper.c:382,1
    - Dst: g_free
      Src: /src/curl/docs/examples/ghiper.c:383,1
    - Dst: g_free
      Src: /src/curl/docs/examples/ghiper.c:385,1
    - Dst: g_error
      Src: /src/curl/docs/examples/ghiper.c:388,1
    - Dst: g_free
      Src: /src/curl/docs/examples/ghiper.c:389,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - ch
    - condition
    - data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 394
    functionName: fifo_cb
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 0
    functionsReached:
    - g_error
    - g_malloc
    - g_free
    - g_strdup_printf
    - g_strdup
    - new_conn
    - g_io_channel_read_line
    - g_io_channel_read_chars
    linkageType: ''
    returnType: gboolean
    signature: gboolean fifo_cb(GIOChannel *ch, GIOCondition condition, gpointer data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/curl/docs/examples/ghiper.c:402,1
    - Dst: perror
      Src: /src/curl/docs/examples/ghiper.c:405,1
    - Dst: unlink
      Src: /src/curl/docs/examples/ghiper.c:410,1
    - Dst: mkfifo
      Src: /src/curl/docs/examples/ghiper.c:411,1
    - Dst: perror
      Src: /src/curl/docs/examples/ghiper.c:412,1
    - Dst: open
      Src: /src/curl/docs/examples/ghiper.c:416,1
    - Dst: perror
      Src: /src/curl/docs/examples/ghiper.c:419,1
    - Dst: MSG_OUT
      Src: /src/curl/docs/examples/ghiper.c:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 425
    functionName: init_fifo
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 1
    functionsReached:
    - MSG_OUT
    - open
    - lstat
    - perror
    - unlink
    - mkfifo
    linkageType: ''
    returnType: int
    signature: int init_fifo(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/curl/docs/examples/ghiper.c:429,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ghiper.c:434,1
    - Dst: init_fifo
      Src: /src/curl/docs/examples/ghiper.c:438,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ghiper.c:440,1
    - Dst: g_io_channel_unix_new
      Src: /src/curl/docs/examples/ghiper.c:443,1
    - Dst: g_io_add_watch
      Src: /src/curl/docs/examples/ghiper.c:444,1
    - Dst: g_main_loop_new
      Src: /src/curl/docs/examples/ghiper.c:445,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/ghiper.c:446,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/ghiper.c:448,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/ghiper.c:449,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/ghiper.c:450,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/ghiper.c:451,1
    - Dst: g_main_loop_run
      Src: /src/curl/docs/examples/ghiper.c:456,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/ghiper.c:457,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ghiper.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 461
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ghiper.c
    functionUses: 1
    functionsReached:
    - g_main_loop_run
    - g_malloc0
    - g_io_add_watch
    - curl_multi_setopt
    - curl_multi_init
    - g_io_channel_unix_new
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - g_main_loop_new
    - init_fifo
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: throw_away
    functionSourceFile: /src/curl/docs/examples/ftpgetinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t throw_away(void *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/curl/docs/examples/ftpgetinfo.c:56,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ftpgetinfo.c:58,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ftpgetinfo.c:62,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetinfo.c:64,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetinfo.c:66,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetinfo.c:68,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetinfo.c:69,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetinfo.c:70,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpgetinfo.c:73,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftpgetinfo.c:76,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/ftpgetinfo.c:80,1
    - Dst: printf
      Src: /src/curl/docs/examples/ftpgetinfo.c:83,1
    - Dst: ctime
      Src: /src/curl/docs/examples/ftpgetinfo.c:83,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/ftpgetinfo.c:85,1
    - Dst: printf
      Src: /src/curl/docs/examples/ftpgetinfo.c:88,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftpgetinfo.c:93,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ftpgetinfo.c:97,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftpgetinfo.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 103
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ftpgetinfo.c
    functionUses: 1
    functionsReached:
    - curl_easy_getinfo
    - printf
    - curl_easy_perform
    - curl_easy_init
    - strrchr
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - ctime
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/multi-formadd.c:46,1
    - Dst: CURL_IGNORE_DEPRECATION
      Src: /src/curl/docs/examples/multi-formadd.c:50,1
    - Dst: curl_formadd
      Src: /src/curl/docs/examples/multi-formadd.c:53,1
    - Dst: curl_formadd
      Src: /src/curl/docs/examples/multi-formadd.c:60,1
    - Dst: curl_formadd
      Src: /src/curl/docs/examples/multi-formadd.c:67,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/multi-formadd.c:76,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-formadd.c:78,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/multi-formadd.c:82,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-formadd.c:88,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-formadd.c:90,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-formadd.c:92,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-formadd.c:97,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/multi-formadd.c:100,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/multi-formadd.c:104,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/multi-formadd.c:111,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-formadd.c:115,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/multi-formadd.c:124,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/multi-formadd.c:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 129
    functionName: main
    functionSourceFile: /src/curl/docs/examples/multi-formadd.c
    functionUses: 1
    functionsReached:
    - CURL_IGNORE_DEPRECATION
    - curl_multi_poll
    - curl_formadd
    - curl_easy_init
    - curl_multi_perform
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/address-scope.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/address-scope.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/address-scope.c:49,1
    - Dst: if_nametoindex
      Src: /src/curl/docs/examples/address-scope.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/address-scope.c:52,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/address-scope.c:55,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/address-scope.c:58,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/address-scope.c:59,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/address-scope.c:62,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/address-scope.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 69
    functionName: main
    functionSourceFile: /src/curl/docs/examples/address-scope.c
    functionUses: 1
    functionsReached:
    - if_nametoindex
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/curl/docs/examples/xmlstream.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - userData
    - name
    - atts
    argTypes:
    - void*
    - XML_Char*
    - XML_Char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: startElement
    functionSourceFile: /src/curl/docs/examples/xmlstream.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void startElement(void *userData, const XML_Char *name,\n                         const
      XML_Char **atts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/curl/docs/examples/xmlstream.c:76,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/xmlstream.c:79,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/xmlstream.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - userData
    - s
    - len
    argTypes:
    - void*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: characterDataHandler
    functionSourceFile: /src/curl/docs/examples/xmlstream.c
    functionUses: 0
    functionsReached:
    - memcpy
    - realloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void characterDataHandler(void *userData, const XML_Char *s, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/xmlstream.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - userData
    - name
    argTypes:
    - void*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: endElement
    functionSourceFile: /src/curl/docs/examples/xmlstream.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void endElement(void *userData, const XML_Char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_GetUserData
      Src: /src/curl/docs/examples/xmlstream.c:103,1
    - Dst: XML_Parse
      Src: /src/curl/docs/examples/xmlstream.c:106,1
    - Dst: XML_GetErrorCode
      Src: /src/curl/docs/examples/xmlstream.c:107,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/xmlstream.c:108,1
    - Dst: XML_ErrorString
      Src: /src/curl/docs/examples/xmlstream.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - contents
    - length
    - nmemb
    - userp
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 115
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/xmlstream.c
    functionUses: 0
    functionsReached:
    - XML_GetErrorCode
    - XML_Parse
    - XML_ErrorString
    - XML_GetUserData
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t write_cb(void *contents, size_t length, size_t nmemb,\n                       void
      *userp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/xmlstream.c:121,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/xmlstream.c:126,1
    - Dst: memset
      Src: /src/curl/docs/examples/xmlstream.c:132,1
    - Dst: XML_ParserCreateNS
      Src: /src/curl/docs/examples/xmlstream.c:136,1
    - Dst: XML_SetUserData
      Src: /src/curl/docs/examples/xmlstream.c:137,1
    - Dst: XML_SetElementHandler
      Src: /src/curl/docs/examples/xmlstream.c:138,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/curl/docs/examples/xmlstream.c:139,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/xmlstream.c:141,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/xmlstream.c:143,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/xmlstream.c:144,1
    - Dst: printf
      Src: /src/curl/docs/examples/xmlstream.c:146,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/xmlstream.c:149,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/xmlstream.c:151,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/xmlstream.c:152,1
    - Dst: XML_Parse
      Src: /src/curl/docs/examples/xmlstream.c:156,1
    - Dst: XML_GetErrorCode
      Src: /src/curl/docs/examples/xmlstream.c:157,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/xmlstream.c:158,1
    - Dst: XML_ErrorString
      Src: /src/curl/docs/examples/xmlstream.c:159,1
    - Dst: printf
      Src: /src/curl/docs/examples/xmlstream.c:162,1
    - Dst: printf
      Src: /src/curl/docs/examples/xmlstream.c:163,1
    - Dst: free
      Src: /src/curl/docs/examples/xmlstream.c:168,1
    - Dst: XML_ParserFree
      Src: /src/curl/docs/examples/xmlstream.c:169,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/xmlstream.c:171,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/xmlstream.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 177
    functionName: main
    functionSourceFile: /src/curl/docs/examples/xmlstream.c
    functionUses: 1
    functionsReached:
    - XML_GetErrorCode
    - XML_Parse
    - XML_SetUserData
    - curl_global_cleanup
    - XML_SetElementHandler
    - curl_global_init
    - XML_ParserCreateNS
    - XML_SetCharacterDataHandler
    - XML_ErrorString
    - curl_easy_strerror
    - curl_easy_cleanup
    - memset
    - XML_ParserFree
    - printf
    - curl_easy_perform
    - curl_easy_init
    - free
    - curl_easy_setopt
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/resolve.c:42,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/resolve.c:45,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/resolve.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/resolve.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/resolve.c:52,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/resolve.c:53,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/resolve.c:56,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/resolve.c:59,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/resolve.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/curl/docs/examples/resolve.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/http3.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/http3.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http3.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http3.c:45,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/http3.c:48,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http3.c:51,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/http3.c:52,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/http3.c:55,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/http3.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: main
    functionSourceFile: /src/curl/docs/examples/http3.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/docs/examples/hsts-preload.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - dest
    - dsize
    - src
    - slen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: strcopy
    functionSourceFile: /src/curl/docs/examples/hsts-preload.c
    functionUses: 10
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void strcopy(char *dest, size_t dsize, const char *src, size_t slen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcopy
      Src: /src/curl/docs/examples/hsts-preload.c:70,1
    - Dst: strlen
      Src: /src/curl/docs/examples/hsts-preload.c:70,1
    - Dst: strcopy
      Src: /src/curl/docs/examples/hsts-preload.c:72,1
    - Dst: strlen
      Src: /src/curl/docs/examples/hsts-preload.c:72,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hsts-preload.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - curl
    - e
    - userp
    argTypes:
    - CURL*
    - struct curl_hstsentry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: hstsread
    functionSourceFile: /src/curl/docs/examples/hsts-preload.c
    functionUses: 0
    functionsReached:
    - strlen
    - strcopy
    - fprintf
    linkageType: ''
    returnType: CURLSTScode
    signature: CURLSTScode hstsread(CURL *curl, struct curl_hstsentry *e, void *userp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/hsts-preload.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - curl
    - e
    - i
    - userp
    argTypes:
    - CURL*
    - struct curl_hstsentry*
    - struct curl_index*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: hstswrite
    functionSourceFile: /src/curl/docs/examples/hsts-preload.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: CURLSTScode
    signature: "CURLSTScode hstswrite(CURL *curl, struct curl_hstsentry *e,\n                             struct
      curl_index *i, void *userp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/hsts-preload.c:94,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/hsts-preload.c:98,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hsts-preload.c:103,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hsts-preload.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hsts-preload.c:107,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hsts-preload.c:111,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hsts-preload.c:112,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hsts-preload.c:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/hsts-preload.c:118,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/hsts-preload.c:121,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/hsts-preload.c:124,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/hsts-preload.c:125,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/hsts-preload.c:128,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/hsts-preload.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 132
    functionName: main
    functionSourceFile: /src/curl/docs/examples/hsts-preload.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/curl/docs/examples/log_failed_transfers.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mem
    argTypes:
    - struct mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: mem_reset
    functionSourceFile: /src/curl/docs/examples/log_failed_transfers.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void mem_reset(struct mem *mem)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/curl/docs/examples/log_failed_transfers.c:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - mem
    - needed
    argTypes:
    - struct mem*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 113
    functionName: mem_need
    functionSourceFile: /src/curl/docs/examples/log_failed_transfers.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: int mem_need(struct mem *mem, size_t needed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mem_need
      Src: /src/curl/docs/examples/log_failed_transfers.c:117,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/log_failed_transfers.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mem
    - buf
    - len
    argTypes:
    - struct mem*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: mem_addn
    functionSourceFile: /src/curl/docs/examples/log_failed_transfers.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mem_need
    linkageType: ''
    returnType: int
    signature: int mem_addn(struct mem *mem, const char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_addn
      Src: /src/curl/docs/examples/log_failed_transfers.c:128,1
    - Dst: strlen
      Src: /src/curl/docs/examples/log_failed_transfers.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mem
    - str
    argTypes:
    - struct mem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: mem_add
    functionSourceFile: /src/curl/docs/examples/log_failed_transfers.c
    functionUses: 0
    functionsReached:
    - strlen
    - mem_addn
    linkageType: ''
    returnType: int
    signature: int mem_add(struct mem *mem, const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/curl/docs/examples/log_failed_transfers.c:132,1
    - Dst: mem_need
      Src: /src/curl/docs/examples/log_failed_transfers.c:145,1
    - Dst: va_start
      Src: /src/curl/docs/examples/log_failed_transfers.c:148,1
    - Dst: vsnprintf
      Src: /src/curl/docs/examples/log_failed_transfers.c:149,1
    - Dst: va_end
      Src: /src/curl/docs/examples/log_failed_transfers.c:150,1
    - Dst: va_start
      Src: /src/curl/docs/examples/log_failed_transfers.c:162,1
    - Dst: _vscprintf
      Src: /src/curl/docs/examples/log_failed_transfers.c:163,1
    - Dst: va_end
      Src: /src/curl/docs/examples/log_failed_transfers.c:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - mem
    - format
    argTypes:
    - struct mem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 172
    functionName: mem_addf
    functionSourceFile: /src/curl/docs/examples/log_failed_transfers.c
    functionUses: 0
    functionsReached:
    - va_start
    - mem_need
    - va_end
    - _vscprintf
    - format
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int mem_addf(struct mem *mem, const char *format, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mem_addn
      Src: /src/curl/docs/examples/log_failed_transfers.c:188,1
    - Dst: mem_addn
      Src: /src/curl/docs/examples/log_failed_transfers.c:189,1
    - Dst: mem_add
      Src: /src/curl/docs/examples/log_failed_transfers.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - curl
    - type
    - data
    - size
    - userdata
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: mydebug
    functionSourceFile: /src/curl/docs/examples/log_failed_transfers.c
    functionUses: 0
    functionsReached:
    - mem_add
    - mem_addn
    linkageType: ''
    returnType: int
    signature: "int mydebug(CURL *curl, curl_infotype type,\n                   char
      *data, size_t size, void *userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/log_failed_transfers.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/log_failed_transfers.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/docs/examples/log_failed_transfers.c:215,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/log_failed_transfers.c:225,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/log_failed_transfers.c:227,1
    - Dst: curl_global_trace
      Src: /src/curl/docs/examples/log_failed_transfers.c:234,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/log_failed_transfers.c:241,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/log_failed_transfers.c:244,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/log_failed_transfers.c:245,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/log_failed_transfers.c:249,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/log_failed_transfers.c:252,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/log_failed_transfers.c:255,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/log_failed_transfers.c:256,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/log_failed_transfers.c:257,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/log_failed_transfers.c:260,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/log_failed_transfers.c:261,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/log_failed_transfers.c:265,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/log_failed_transfers.c:268,1
    - Dst: mem_addf
      Src: /src/curl/docs/examples/log_failed_transfers.c:270,1
    - Dst: printf
      Src: /src/curl/docs/examples/log_failed_transfers.c:271,1
    - Dst: fopen
      Src: /src/curl/docs/examples/log_failed_transfers.c:274,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/log_failed_transfers.c:278,1
    - Dst: fclose
      Src: /src/curl/docs/examples/log_failed_transfers.c:281,1
    - Dst: mem_addf
      Src: /src/curl/docs/examples/log_failed_transfers.c:287,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/log_failed_transfers.c:288,1
    - Dst: mem_addf
      Src: /src/curl/docs/examples/log_failed_transfers.c:292,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/log_failed_transfers.c:293,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/log_failed_transfers.c:294,1
    - Dst: mem_addf
      Src: /src/curl/docs/examples/log_failed_transfers.c:299,1
    - Dst: strerror
      Src: /src/curl/docs/examples/log_failed_transfers.c:300,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/log_failed_transfers.c:301,1
    - Dst: fopen
      Src: /src/curl/docs/examples/log_failed_transfers.c:306,1
    - Dst: fwrite
      Src: /src/curl/docs/examples/log_failed_transfers.c:308,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/log_failed_transfers.c:309,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/log_failed_transfers.c:311,1
    - Dst: strerror
      Src: /src/curl/docs/examples/log_failed_transfers.c:312,1
    - Dst: fclose
      Src: /src/curl/docs/examples/log_failed_transfers.c:316,1
    - Dst: unlink
      Src: /src/curl/docs/examples/log_failed_transfers.c:320,1
    - Dst: mem_reset
      Src: /src/curl/docs/examples/log_failed_transfers.c:325,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/log_failed_transfers.c:327,1
    - Dst: printf
      Src: /src/curl/docs/examples/log_failed_transfers.c:331,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/log_failed_transfers.c:334,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 337
    functionName: main
    functionSourceFile: /src/curl/docs/examples/log_failed_transfers.c
    functionUses: 1
    functionsReached:
    - curl_global_trace
    - fclose
    - printf
    - mem_reset
    - mem_addf
    - strerror
    - curl_easy_perform
    - curl_easy_init
    - fopen
    - curl_easy_strerror
    - fwrite
    - unlink
    - curl_easy_cleanup
    - memset
    - curl_global_init
    - curl_easy_setopt
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/curl/docs/examples/getinmemory.c:45,1
    - Dst: printf
      Src: /src/curl/docs/examples/getinmemory.c:48,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/getinmemory.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - contents
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/getinmemory.c
    functionUses: 0
    functionsReached:
    - printf
    - memcpy
    - realloc
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *contents, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/getinmemory.c:67,1
    - Dst: malloc
      Src: /src/curl/docs/examples/getinmemory.c:71,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/getinmemory.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/getinmemory.c:79,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/getinmemory.c:82,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/getinmemory.c:85,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/getinmemory.c:89,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/getinmemory.c:92,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/getinmemory.c:96,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/getinmemory.c:97,1
    - Dst: printf
      Src: /src/curl/docs/examples/getinmemory.c:107,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/getinmemory.c:111,1
    - Dst: free
      Src: /src/curl/docs/examples/getinmemory.c:114,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/getinmemory.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: main
    functionSourceFile: /src/curl/docs/examples/getinmemory.c
    functionUses: 1
    functionsReached:
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - free
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - malloc
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/smtp-vrfy.c:48,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/smtp-vrfy.c:52,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-vrfy.c:57,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-vrfy.c:60,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-vrfy.c:61,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/smtp-vrfy.c:64,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smtp-vrfy.c:68,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/smtp-vrfy.c:69,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/smtp-vrfy.c:72,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/smtp-vrfy.c:80,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/smtp-vrfy.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/curl/docs/examples/smtp-vrfy.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-list.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-list.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-list.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-list.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-list.c:53,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-list.c:56,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-list.c:60,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-list.c:61,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-list.c:64,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-list.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 70
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-list.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/postit2-formadd.c:58,1
    - Dst: CURL_IGNORE_DEPRECATION
      Src: /src/curl/docs/examples/postit2-formadd.c:62,1
    - Dst: curl_formadd
      Src: /src/curl/docs/examples/postit2-formadd.c:64,1
    - Dst: curl_formadd
      Src: /src/curl/docs/examples/postit2-formadd.c:71,1
    - Dst: curl_formadd
      Src: /src/curl/docs/examples/postit2-formadd.c:78,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/postit2-formadd.c:85,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/postit2-formadd.c:88,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postit2-formadd.c:91,1
    - Dst: strcmp
      Src: /src/curl/docs/examples/postit2-formadd.c:92,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/postit2-formadd.c:94,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/postit2-formadd.c:100,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/postit2-formadd.c:103,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/postit2-formadd.c:104,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/postit2-formadd.c:107,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/postit2-formadd.c:115,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/postit2-formadd.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 121
    functionName: main
    functionSourceFile: /src/curl/docs/examples/postit2-formadd.c
    functionUses: 1
    functionsReached:
    - CURL_IGNORE_DEPRECATION
    - curl_formadd
    - curl_easy_init
    - curl_easy_perform
    - curl_slist_free_all
    - curl_easy_strerror
    - strcmp
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-top.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-top.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-top.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-top.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-top.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-top.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-top.c:59,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-top.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-top.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-top.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-top.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-top.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/smtp-tls.c:76,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/smtp-tls.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/smtp-tls.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *userp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/smtp-tls.c:89,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/smtp-tls.c:93,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:99,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:106,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:113,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:126,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:135,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-tls.c:140,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/smtp-tls.c:141,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:142,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:147,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:148,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:149,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/smtp-tls.c:155,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/smtp-tls.c:158,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/smtp-tls.c:162,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/smtp-tls.c:163,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/smtp-tls.c:166,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/smtp-tls.c:169,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/smtp-tls.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 175
    functionName: main
    functionSourceFile: /src/curl/docs/examples/smtp-tls.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/localport.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/localport.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/localport.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/localport.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/localport.c:48,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/localport.c:50,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/localport.c:53,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/localport.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: main
    functionSourceFile: /src/curl/docs/examples/localport.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/netrc.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/netrc.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/netrc.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/netrc.c:43,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/netrc.c:44,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/netrc.c:46,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/netrc.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/netrc.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/curl/docs/examples/netrc.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/curl/docs/examples/sftpget.c:58,1
    - Dst: fwrite
      Src: /src/curl/docs/examples/sftpget.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - buffer
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/sftpget.c
    functionUses: 0
    functionsReached:
    - fopen
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *buffer, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/sftpget.c:73,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/sftpget.c:77,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpget.c:82,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpget.c:85,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpget.c:87,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpget.c:93,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/sftpget.c:97,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/sftpget.c:99,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/sftpget.c:102,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/sftpget.c:106,1
    - Dst: fclose
      Src: /src/curl/docs/examples/sftpget.c:111,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/sftpget.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 116
    functionName: main
    functionSourceFile: /src/curl/docs/examples/sftpget.c
    functionUses: 1
    functionsReached:
    - fclose
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - data
    - n
    - l
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/headerapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *data, size_t n, size_t l, void *userp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/headerapi.c:44,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/headerapi.c:48,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/headerapi.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/headerapi.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/headerapi.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/headerapi.c:59,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/headerapi.c:62,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/headerapi.c:63,1
    - Dst: curl_easy_header
      Src: /src/curl/docs/examples/headerapi.c:65,1
    - Dst: printf
      Src: /src/curl/docs/examples/headerapi.c:67,1
    - Dst: printf
      Src: /src/curl/docs/examples/headerapi.c:69,1
    - Dst: curl_easy_nextheader
      Src: /src/curl/docs/examples/headerapi.c:74,1
    - Dst: printf
      Src: /src/curl/docs/examples/headerapi.c:76,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/headerapi.c:81,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/headerapi.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 85
    functionName: main
    functionSourceFile: /src/curl/docs/examples/headerapi.c
    functionUses: 1
    functionsReached:
    - printf
    - curl_easy_header
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_nextheader
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/synctime.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/synctime.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:124,1
    - Dst: strncmp
      Src: /src/curl/docs/examples/synctime.c:126,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:128,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/synctime.c:140,1
    - Dst: sscanf
      Src: /src/curl/docs/examples/synctime.c:142,1
    - Dst: strcmp
      Src: /src/curl/docs/examples/synctime.c:152,1
    - Dst: strncmp
      Src: /src/curl/docs/examples/synctime.c:166,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:167,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 172
    functionName: SyncTime_CURL_WriteHeader
    functionSourceFile: /src/curl/docs/examples/synctime.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strcmp
    - sscanf
    - strncmp
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t SyncTime_CURL_WriteHeader(void *ptr, size_t size, size_t nmemb,\n
      \                                       void *stream)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/synctime.c:177,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/synctime.c:178,1
    - Dst: strlen
      Src: /src/curl/docs/examples/synctime.c:180,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/synctime.c:181,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/synctime.c:183,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/synctime.c:184,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/synctime.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - curl
    - proxy_port
    - proxy_user_password
    argTypes:
    - CURL*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: SyncTime_CURL_Init
    functionSourceFile: /src/curl/docs/examples/synctime.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: "void SyncTime_CURL_Init(CURL *curl, const char *proxy_port,\n                               const
      char *proxy_user_password)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/synctime.c:192,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/synctime.c:193,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/synctime.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - curl
    - URL_Str
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: SyncTime_CURL_FetchHead
    functionSourceFile: /src/curl/docs/examples/synctime.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode SyncTime_CURL_FetchHead(CURL *curl, const char *URL_Str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:202,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:204,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:205,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:206,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:208,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:209,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:211,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:213,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:215,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 217
    functionName: showUsage
    functionSourceFile: /src/curl/docs/examples/synctime.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void showUsage(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/docs/examples/synctime.c:230,1
    - Dst: strncmp
      Src: /src/curl/docs/examples/synctime.c:235,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/synctime.c:236,1
    - Dst: strcmp
      Src: /src/curl/docs/examples/synctime.c:239,1
    - Dst: strcmp
      Src: /src/curl/docs/examples/synctime.c:242,1
    - Dst: strncmp
      Src: /src/curl/docs/examples/synctime.c:245,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/synctime.c:246,1
    - Dst: strncmp
      Src: /src/curl/docs/examples/synctime.c:249,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/synctime.c:250,1
    - Dst: strcmp
      Src: /src/curl/docs/examples/synctime.c:253,1
    - Dst: strcmp
      Src: /src/curl/docs/examples/synctime.c:254,1
    - Dst: showUsage
      Src: /src/curl/docs/examples/synctime.c:255,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/synctime.c:263,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/synctime.c:267,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/synctime.c:271,1
    - Dst: SyncTime_CURL_Init
      Src: /src/curl/docs/examples/synctime.c:283,1
    - Dst: time
      Src: /src/curl/docs/examples/synctime.c:286,1
    - Dst: localtime
      Src: /src/curl/docs/examples/synctime.c:287,1
    - Dst: mktime
      Src: /src/curl/docs/examples/synctime.c:288,1
    - Dst: gmtime
      Src: /src/curl/docs/examples/synctime.c:289,1
    - Dst: mktime
      Src: /src/curl/docs/examples/synctime.c:290,1
    - Dst: difftime
      Src: /src/curl/docs/examples/synctime.c:291,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/synctime.c:295,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/synctime.c:297,1
    - Dst: GetSystemTime
      Src: /src/curl/docs/examples/synctime.c:301,1
    - Dst: GetLocalTime
      Src: /src/curl/docs/examples/synctime.c:302,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/synctime.c:303,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:309,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:310,1
    - Dst: SyncTime_CURL_FetchHead
      Src: /src/curl/docs/examples/synctime.c:313,1
    - Dst: GetLocalTime
      Src: /src/curl/docs/examples/synctime.c:316,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/synctime.c:317,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:321,1
    - Dst: SetSystemTime
      Src: /src/curl/docs/examples/synctime.c:325,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:326,1
    - Dst: GetLocalTime
      Src: /src/curl/docs/examples/synctime.c:331,1
    - Dst: snprintf
      Src: /src/curl/docs/examples/synctime.c:332,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/synctime.c:337,1
    - Dst: memset
      Src: /src/curl/docs/examples/synctime.c:343,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/synctime.c:344,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/synctime.c:347,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 350
    functionName: main
    functionSourceFile: /src/curl/docs/examples/synctime.c
    functionUses: 1
    functionsReached:
    - SetSystemTime
    - time
    - strcmp
    - GetLocalTime
    - strncmp
    - curl_global_cleanup
    - localtime
    - GetSystemTime
    - curl_global_init
    - snprintf
    - showUsage
    - curl_easy_cleanup
    - SyncTime_CURL_Init
    - memset
    - gmtime
    - mktime
    - curl_easy_init
    - SyncTime_CURL_FetchHead
    - difftime
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-noop.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-noop.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-noop.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-noop.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-noop.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-noop.c:56,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-noop.c:59,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-noop.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-noop.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-noop.c:67,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-noop.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-noop.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/ftp-wildcard.c:46,1
    - Dst: printf
      Src: /src/curl/docs/examples/ftp-wildcard.c:51,1
    - Dst: printf
      Src: /src/curl/docs/examples/ftp-wildcard.c:54,1
    - Dst: printf
      Src: /src/curl/docs/examples/ftp-wildcard.c:57,1
    - Dst: printf
      Src: /src/curl/docs/examples/ftp-wildcard.c:64,1
    - Dst: fopen
      Src: /src/curl/docs/examples/ftp-wildcard.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - finfo
    - input
    - remains
    argTypes:
    - struct curl_fileinfo*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 75
    functionName: file_is_coming
    functionSourceFile: /src/curl/docs/examples/ftp-wildcard.c
    functionUses: 0
    functionsReached:
    - fopen
    - printf
    linkageType: ''
    returnType: long
    signature: "long file_is_coming(struct curl_fileinfo *finfo, void *input,\n                           int
      remains)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/ftp-wildcard.c:81,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftp-wildcard.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: file_is_downloaded
    functionSourceFile: /src/curl/docs/examples/ftp-wildcard.c
    functionUses: 0
    functionsReached:
    - fclose
    - printf
    linkageType: ''
    returnType: long
    signature: long file_is_downloaded(void *input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/ftp-wildcard.c:93,1
    - Dst: fwrite
      Src: /src/curl/docs/examples/ftp-wildcard.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - buff
    - size
    - nmemb
    - cb_data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/ftp-wildcard.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *buff, size_t size, size_t nmemb, void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ftp-wildcard.c:109,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ftp-wildcard.c:114,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftp-wildcard.c:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-wildcard.c:121,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-wildcard.c:124,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-wildcard.c:127,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-wildcard.c:130,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-wildcard.c:133,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-wildcard.c:134,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-wildcard.c:137,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-wildcard.c:142,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftp-wildcard.c:144,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftp-wildcard.c:147,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ftp-wildcard.c:149,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftp-wildcard.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 152
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ftp-wildcard.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/maxconnects.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/maxconnects.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/maxconnects.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/maxconnects.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/maxconnects.c:57,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/maxconnects.c:60,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/maxconnects.c:63,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/maxconnects.c:64,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/maxconnects.c:68,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/maxconnects.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 74
    functionName: main
    functionSourceFile: /src/curl/docs/examples/maxconnects.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/imap-ssl.c:43,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/imap-ssl.c:47,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-ssl.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-ssl.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-ssl.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-ssl.c:67,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-ssl.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/imap-ssl.c:81,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/imap-ssl.c:84,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/imap-ssl.c:88,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/imap-ssl.c:89,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/imap-ssl.c:92,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/imap-ssl.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 98
    functionName: main
    functionSourceFile: /src/curl/docs/examples/imap-ssl.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/curl/docs/examples/ftpupload.c:69,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftpupload.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: read_cb
    functionSourceFile: /src/curl/docs/examples/ftpupload.c
    functionUses: 0
    functionsReached:
    - fread
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: size_t read_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/curl/docs/examples/ftpupload.c:92,1
    - Dst: printf
      Src: /src/curl/docs/examples/ftpupload.c:94,1
    - Dst: strerror
      Src: /src/curl/docs/examples/ftpupload.c:94,1
    - Dst: fstat
      Src: /src/curl/docs/examples/ftpupload.c:99,1
    - Dst: fileno
      Src: /src/curl/docs/examples/ftpupload.c:99,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftpupload.c:100,1
    - Dst: printf
      Src: /src/curl/docs/examples/ftpupload.c:105,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ftpupload.c:108,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftpupload.c:110,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ftpupload.c:115,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/ftpupload.c:118,1
    - Dst: curl_slist_append
      Src: /src/curl/docs/examples/ftpupload.c:119,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpupload.c:122,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpupload.c:125,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpupload.c:128,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpupload.c:131,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpupload.c:134,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpupload.c:140,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftpupload.c:143,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftpupload.c:146,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/ftpupload.c:147,1
    - Dst: curl_slist_free_all
      Src: /src/curl/docs/examples/ftpupload.c:150,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ftpupload.c:153,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftpupload.c:155,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftpupload.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 159
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ftpupload.c
    functionUses: 1
    functionsReached:
    - fclose
    - printf
    - fprintf
    - curl_easy_perform
    - curl_easy_init
    - curl_slist_free_all
    - curl_easy_strerror
    - curl_slist_append
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - fopen
    - curl_global_cleanup
    - fileno
    - fstat
    - strerror
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:133,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:137,1
    - Dst: exit
      Src: /src/curl/docs/examples/ephiperfifo.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - where
    - code
    argTypes:
    - char*
    - CURLMcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: mcode_or_die
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 6
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void mcode_or_die(const char *where, CURLMcode code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:150,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/ephiperfifo.c:151,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/ephiperfifo.c:155,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/ephiperfifo.c:156,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:157,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/ephiperfifo.c:158,1
    - Dst: free
      Src: /src/curl/docs/examples/ephiperfifo.c:159,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ephiperfifo.c:160,1
    - Dst: free
      Src: /src/curl/docs/examples/ephiperfifo.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 164
    functionName: check_multi_info
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 8
    functionsReached:
    - curl_easy_getinfo
    - curl_multi_remove_handle
    - free
    - curl_easy_cleanup
    - curl_multi_info_read
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_multi_info(struct GlobalInfo *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/curl/docs/examples/ephiperfifo.c:175,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:183,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:188,1
    - Dst: perror
      Src: /src/curl/docs/examples/ephiperfifo.c:189,1
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/ephiperfifo.c:192,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/ephiperfifo.c:194,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/ephiperfifo.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - g
    - revents
    argTypes:
    - struct GlobalInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 196
    functionName: timer_cb
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - read
    - perror
    - mcode_or_die
    - curl_multi_socket_action
    - fprintf
    linkageType: ''
    returnType: void
    signature: void timer_cb(struct GlobalInfo *g, int revents)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:207,1
    - Dst: memset
      Src: /src/curl/docs/examples/ephiperfifo.c:225,1
    - Dst: timerfd_settime
      Src: /src/curl/docs/examples/ephiperfifo.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - g
    argTypes:
    - CURLM*
    - long
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 230
    functionName: multi_timer_cb
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 0
    functionsReached:
    - timerfd_settime
    - memset
    - fprintf
    linkageType: ''
    returnType: int
    signature: int multi_timer_cb(CURLM *multi, long timeout_ms, struct GlobalInfo
      *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/ephiperfifo.c:241,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/ephiperfifo.c:242,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/ephiperfifo.c:244,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:246,1
    - Dst: memset
      Src: /src/curl/docs/examples/ephiperfifo.c:247,1
    - Dst: timerfd_settime
      Src: /src/curl/docs/examples/ephiperfifo.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - g
    - fd
    - revents
    argTypes:
    - struct GlobalInfo*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 250
    functionName: event_cb
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 0
    functionsReached:
    - check_multi_info
    - timerfd_settime
    - mcode_or_die
    - memset
    - curl_multi_socket_action
    - fprintf
    linkageType: ''
    returnType: void
    signature: void event_cb(struct GlobalInfo *g, int fd, int revents)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: epoll_ctl
      Src: /src/curl/docs/examples/ephiperfifo.c:257,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:258,1
    - Dst: strerror
      Src: /src/curl/docs/examples/ephiperfifo.c:259,1
    - Dst: free
      Src: /src/curl/docs/examples/ephiperfifo.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - f
    - g
    argTypes:
    - struct SockInfo*
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: remsock
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 2
    functionsReached:
    - free
    - strerror
    - epoll_ctl
    - fprintf
    linkageType: ''
    returnType: void
    signature: void remsock(struct SockInfo *f, struct GlobalInfo *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: epoll_ctl
      Src: /src/curl/docs/examples/ephiperfifo.c:274,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:275,1
    - Dst: strerror
      Src: /src/curl/docs/examples/ephiperfifo.c:276,1
    - Dst: epoll_ctl
      Src: /src/curl/docs/examples/ephiperfifo.c:285,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:286,1
    - Dst: strerror
      Src: /src/curl/docs/examples/ephiperfifo.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - f
    - s
    - e
    - act
    - g
    argTypes:
    - struct SockInfo*
    - curl_socket_t
    - CURL*
    - int
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 288
    functionName: setsock
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 4
    functionsReached:
    - strerror
    - epoll_ctl
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void setsock(struct SockInfo *f, curl_socket_t s, CURL *e, int act,\n
      \                   struct GlobalInfo *g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/docs/examples/ephiperfifo.c:294,1
    - Dst: setsock
      Src: /src/curl/docs/examples/ephiperfifo.c:297,1
    - Dst: curl_multi_assign
      Src: /src/curl/docs/examples/ephiperfifo.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - curl
    - action
    - g
    argTypes:
    - curl_socket_t
    - CURL*
    - int
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: addsock
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 2
    functionsReached:
    - setsock
    - calloc
    - curl_multi_assign
    linkageType: ''
    returnType: void
    signature: "void addsock(curl_socket_t s, CURL *curl, int action,\n                    struct
      GlobalInfo *g)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:308,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:310,1
    - Dst: remsock
      Src: /src/curl/docs/examples/ephiperfifo.c:311,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:315,1
    - Dst: addsock
      Src: /src/curl/docs/examples/ephiperfifo.c:316,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:319,1
    - Dst: setsock
      Src: /src/curl/docs/examples/ephiperfifo.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - e
    - s
    - what
    - cbp
    - sockp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 325
    functionName: sock_cb
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 0
    functionsReached:
    - setsock
    - addsock
    - remsock
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sock_cb(CURL *e, curl_socket_t s, int what, void *cbp, void *sockp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - p
    - dltotal
    - dlnow
    - ult
    - uln
    argTypes:
    - void*
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 345
    functionName: prog_cb
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int prog_cb(void *p, double dltotal, double dlnow, double ult,\n                   double
      uln)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/docs/examples/ephiperfifo.c:353,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ephiperfifo.c:356,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:358,1
    - Dst: exit
      Src: /src/curl/docs/examples/ephiperfifo.c:359,1
    - Dst: strdup
      Src: /src/curl/docs/examples/ephiperfifo.c:362,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:363,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:364,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:365,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:366,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:367,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:368,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:369,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:370,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:371,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:372,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:373,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:374,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:376,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/ephiperfifo.c:378,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/ephiperfifo.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - url
    - g
    argTypes:
    - char*
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 383
    functionName: new_conn
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 2
    functionsReached:
    - strdup
    - curl_easy_init
    - calloc
    - mcode_or_die
    - curl_easy_setopt
    - exit
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: void
    signature: void new_conn(const char *url, struct GlobalInfo *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fscanf
      Src: /src/curl/docs/examples/ephiperfifo.c:396,1
    - Dst: new_conn
      Src: /src/curl/docs/examples/ephiperfifo.c:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - g
    - revents
    argTypes:
    - struct GlobalInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 404
    functionName: fifo_cb
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 0
    functionsReached:
    - fscanf
    - new_conn
    linkageType: ''
    returnType: void
    signature: void fifo_cb(struct GlobalInfo *g, int revents)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:414,1
    - Dst: lstat
      Src: /src/curl/docs/examples/ephiperfifo.c:415,1
    - Dst: perror
      Src: /src/curl/docs/examples/ephiperfifo.c:418,1
    - Dst: unlink
      Src: /src/curl/docs/examples/ephiperfifo.c:422,1
    - Dst: mkfifo
      Src: /src/curl/docs/examples/ephiperfifo.c:423,1
    - Dst: perror
      Src: /src/curl/docs/examples/ephiperfifo.c:424,1
    - Dst: open
      Src: /src/curl/docs/examples/ephiperfifo.c:427,1
    - Dst: perror
      Src: /src/curl/docs/examples/ephiperfifo.c:429,1
    - Dst: fdopen
      Src: /src/curl/docs/examples/ephiperfifo.c:434,1
    - Dst: epoll_ctl
      Src: /src/curl/docs/examples/ephiperfifo.c:438,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 442
    functionName: init_fifo
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 2
    functionsReached:
    - open
    - lstat
    - perror
    - unlink
    - fdopen
    - mkfifo
    - epoll_ctl
    - fprintf
    linkageType: ''
    returnType: int
    signature: int init_fifo(struct GlobalInfo *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: epoll_ctl
      Src: /src/curl/docs/examples/ephiperfifo.c:446,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ephiperfifo.c:447,1
    - Dst: unlink
      Src: /src/curl/docs/examples/ephiperfifo.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 449
    functionName: clean_fifo
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 1
    functionsReached:
    - fclose
    - unlink
    - epoll_ctl
    linkageType: ''
    returnType: void
    signature: void clean_fifo(struct GlobalInfo *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: sigint_handler
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sigint_handler(int signo)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ephiperfifo.c:466,1
    - Dst: signal
      Src: /src/curl/docs/examples/ephiperfifo.c:471,1
    - Dst: memset
      Src: /src/curl/docs/examples/ephiperfifo.c:473,1
    - Dst: epoll_create1
      Src: /src/curl/docs/examples/ephiperfifo.c:474,1
    - Dst: perror
      Src: /src/curl/docs/examples/ephiperfifo.c:476,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ephiperfifo.c:477,1
    - Dst: timerfd_create
      Src: /src/curl/docs/examples/ephiperfifo.c:481,1
    - Dst: perror
      Src: /src/curl/docs/examples/ephiperfifo.c:483,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ephiperfifo.c:484,1
    - Dst: memset
      Src: /src/curl/docs/examples/ephiperfifo.c:488,1
    - Dst: timerfd_settime
      Src: /src/curl/docs/examples/ephiperfifo.c:491,1
    - Dst: epoll_ctl
      Src: /src/curl/docs/examples/ephiperfifo.c:495,1
    - Dst: init_fifo
      Src: /src/curl/docs/examples/ephiperfifo.c:497,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ephiperfifo.c:498,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/ephiperfifo.c:501,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:504,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:505,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:506,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/ephiperfifo.c:507,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:512,1
    - Dst: fflush
      Src: /src/curl/docs/examples/ephiperfifo.c:513,1
    - Dst: epoll_wait
      Src: /src/curl/docs/examples/ephiperfifo.c:516,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:521,1
    - Dst: perror
      Src: /src/curl/docs/examples/ephiperfifo.c:525,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ephiperfifo.c:526,1
    - Dst: fifo_cb
      Src: /src/curl/docs/examples/ephiperfifo.c:533,1
    - Dst: timer_cb
      Src: /src/curl/docs/examples/ephiperfifo.c:536,1
    - Dst: event_cb
      Src: /src/curl/docs/examples/ephiperfifo.c:539,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ephiperfifo.c:544,1
    - Dst: fflush
      Src: /src/curl/docs/examples/ephiperfifo.c:545,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/ephiperfifo.c:547,1
    - Dst: clean_fifo
      Src: /src/curl/docs/examples/ephiperfifo.c:548,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ephiperfifo.c:549,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 551
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ephiperfifo.c
    functionUses: 1
    functionsReached:
    - perror
    - fflush
    - curl_global_cleanup
    - epoll_create1
    - clean_fifo
    - curl_multi_setopt
    - timer_cb
    - curl_global_init
    - epoll_ctl
    - epoll_wait
    - curl_multi_init
    - memset
    - fprintf
    - fifo_cb
    - timerfd_settime
    - signal
    - timerfd_create
    - curl_multi_cleanup
    - init_fifo
    - event_cb
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:137,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:141,1
    - Dst: exit
      Src: /src/curl/docs/examples/evhiperfifo.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - where
    - code
    argTypes:
    - char*
    - CURLMcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 144
    functionName: mcode_or_die
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 9
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void mcode_or_die(const char *where, CURLMcode code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:154,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/evhiperfifo.c:155,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/evhiperfifo.c:159,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/evhiperfifo.c:160,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:161,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/evhiperfifo.c:162,1
    - Dst: free
      Src: /src/curl/docs/examples/evhiperfifo.c:163,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/evhiperfifo.c:164,1
    - Dst: free
      Src: /src/curl/docs/examples/evhiperfifo.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 168
    functionName: check_multi_info
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 10
    functionsReached:
    - curl_easy_getinfo
    - curl_multi_remove_handle
    - free
    - curl_easy_cleanup
    - curl_multi_info_read
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_multi_info(struct GlobalInfo *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/evhiperfifo.c:176,1
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/evhiperfifo.c:180,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/evhiperfifo.c:182,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/evhiperfifo.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - w
    - revents
    argTypes:
    - EV_P_*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: timer_cb
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 1
    functionsReached:
    - check_multi_info
    - printf
    - curl_multi_socket_action
    - mcode_or_die
    linkageType: ''
    returnType: void
    signature: void timer_cb(EV_P_ struct ev_timer *w, int revents)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/evhiperfifo.c:190,1
    - Dst: ev_timer_stop
      Src: /src/curl/docs/examples/evhiperfifo.c:191,1
    - Dst: ev_timer_init
      Src: /src/curl/docs/examples/evhiperfifo.c:195,1
    - Dst: ev_timer_start
      Src: /src/curl/docs/examples/evhiperfifo.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - g
    argTypes:
    - CURLM*
    - long
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: multi_timer_cb
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 0
    functionsReached:
    - ev_timer_stop
    - printf
    - ev_timer_start
    - ev_timer_init
    linkageType: ''
    returnType: int
    signature: int multi_timer_cb(CURLM *multi, long timeout_ms, struct GlobalInfo
      *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/evhiperfifo.c:210,1
    - Dst: curl_multi_socket_action
      Src: /src/curl/docs/examples/evhiperfifo.c:213,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/evhiperfifo.c:215,1
    - Dst: check_multi_info
      Src: /src/curl/docs/examples/evhiperfifo.c:216,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:218,1
    - Dst: ev_timer_stop
      Src: /src/curl/docs/examples/evhiperfifo.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - w
    - revents
    argTypes:
    - EV_P_*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 221
    functionName: event_cb
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 1
    functionsReached:
    - check_multi_info
    - printf
    - ev_timer_stop
    - mcode_or_die
    - curl_multi_socket_action
    - fprintf
    linkageType: ''
    returnType: void
    signature: void event_cb(EV_P_ struct ev_io *w, int revents)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/evhiperfifo.c:226,1
    - Dst: ev_io_stop
      Src: /src/curl/docs/examples/evhiperfifo.c:229,1
    - Dst: free
      Src: /src/curl/docs/examples/evhiperfifo.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - f
    - g
    argTypes:
    - struct SockInfo*
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: remsock
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 3
    functionsReached:
    - free
    - printf
    - ev_io_stop
    linkageType: ''
    returnType: void
    signature: void remsock(struct SockInfo *f, struct GlobalInfo *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/evhiperfifo.c:241,1
    - Dst: ev_io_stop
      Src: /src/curl/docs/examples/evhiperfifo.c:247,1
    - Dst: ev_io_init
      Src: /src/curl/docs/examples/evhiperfifo.c:248,1
    - Dst: ev_io_start
      Src: /src/curl/docs/examples/evhiperfifo.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - f
    - s
    - e
    - act
    - g
    argTypes:
    - struct SockInfo*
    - curl_socket_t
    - CURL*
    - int
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 252
    functionName: setsock
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 6
    functionsReached:
    - ev_io_start
    - printf
    - ev_io_init
    - ev_io_stop
    linkageType: ''
    returnType: void
    signature: "void setsock(struct SockInfo *f, curl_socket_t s, CURL *e, int act,\n
      \                   struct GlobalInfo *g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/docs/examples/evhiperfifo.c:258,1
    - Dst: setsock
      Src: /src/curl/docs/examples/evhiperfifo.c:261,1
    - Dst: curl_multi_assign
      Src: /src/curl/docs/examples/evhiperfifo.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - curl
    - action
    - g
    argTypes:
    - curl_socket_t
    - CURL*
    - int
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: addsock
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 3
    functionsReached:
    - setsock
    - calloc
    - curl_multi_assign
    linkageType: ''
    returnType: void
    signature: "void addsock(curl_socket_t s, CURL *curl, int action,\n                    struct
      GlobalInfo *g)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/curl/docs/examples/evhiperfifo.c:272,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:275,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:277,1
    - Dst: remsock
      Src: /src/curl/docs/examples/evhiperfifo.c:278,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:282,1
    - Dst: addsock
      Src: /src/curl/docs/examples/evhiperfifo.c:283,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:286,1
    - Dst: setsock
      Src: /src/curl/docs/examples/evhiperfifo.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - e
    - s
    - what
    - cbp
    - sockp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 292
    functionName: sock_cb
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 0
    functionsReached:
    - printf
    - remsock
    - setsock
    - addsock
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sock_cb(CURL *e, curl_socket_t s, int what, void *cbp, void *sockp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 302
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - p
    - dltotal
    - dlnow
    - ult
    - uln
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: xferinfo_cb
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int xferinfo_cb(void *p, curl_off_t dltotal, curl_off_t dlnow,\n                       curl_off_t
      ult, curl_off_t uln)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/curl/docs/examples/evhiperfifo.c:324,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/evhiperfifo.c:327,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:329,1
    - Dst: exit
      Src: /src/curl/docs/examples/evhiperfifo.c:330,1
    - Dst: strdup
      Src: /src/curl/docs/examples/evhiperfifo.c:333,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:334,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:335,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:336,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:337,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:338,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:339,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:340,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:341,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:342,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:343,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:344,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:346,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/evhiperfifo.c:348,1
    - Dst: mcode_or_die
      Src: /src/curl/docs/examples/evhiperfifo.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - url
    - g
    argTypes:
    - char*
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 353
    functionName: new_conn
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 3
    functionsReached:
    - strdup
    - curl_easy_init
    - calloc
    - mcode_or_die
    - curl_easy_setopt
    - exit
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: void
    signature: void new_conn(const char *url, struct GlobalInfo *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fscanf
      Src: /src/curl/docs/examples/evhiperfifo.c:367,1
    - Dst: new_conn
      Src: /src/curl/docs/examples/evhiperfifo.c:370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - w
    - revents
    argTypes:
    - EV_P_*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 375
    functionName: fifo_cb
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 1
    functionsReached:
    - fscanf
    - new_conn
    linkageType: ''
    returnType: void
    signature: void fifo_cb(EV_P_ struct ev_io *w, int revents)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:384,1
    - Dst: lstat
      Src: /src/curl/docs/examples/evhiperfifo.c:385,1
    - Dst: perror
      Src: /src/curl/docs/examples/evhiperfifo.c:388,1
    - Dst: unlink
      Src: /src/curl/docs/examples/evhiperfifo.c:392,1
    - Dst: mkfifo
      Src: /src/curl/docs/examples/evhiperfifo.c:393,1
    - Dst: perror
      Src: /src/curl/docs/examples/evhiperfifo.c:394,1
    - Dst: open
      Src: /src/curl/docs/examples/evhiperfifo.c:397,1
    - Dst: perror
      Src: /src/curl/docs/examples/evhiperfifo.c:399,1
    - Dst: fdopen
      Src: /src/curl/docs/examples/evhiperfifo.c:402,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/evhiperfifo.c:404,1
    - Dst: ev_io_init
      Src: /src/curl/docs/examples/evhiperfifo.c:405,1
    - Dst: ev_io_start
      Src: /src/curl/docs/examples/evhiperfifo.c:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct GlobalInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 408
    functionName: init_fifo
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 3
    functionsReached:
    - open
    - ev_io_start
    - lstat
    - perror
    - unlink
    - ev_io_init
    - fdopen
    - mkfifo
    - fprintf
    linkageType: ''
    returnType: int
    signature: int init_fifo(struct GlobalInfo *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/evhiperfifo.c:415,1
    - Dst: memset
      Src: /src/curl/docs/examples/evhiperfifo.c:419,1
    - Dst: ev_default_loop
      Src: /src/curl/docs/examples/evhiperfifo.c:420,1
    - Dst: init_fifo
      Src: /src/curl/docs/examples/evhiperfifo.c:422,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/evhiperfifo.c:424,1
    - Dst: ev_timer_init
      Src: /src/curl/docs/examples/evhiperfifo.c:426,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:429,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:430,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:431,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/evhiperfifo.c:432,1
    - Dst: ev_loop
      Src: /src/curl/docs/examples/evhiperfifo.c:437,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/evhiperfifo.c:438,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/evhiperfifo.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 441
    functionName: main
    functionSourceFile: /src/curl/docs/examples/evhiperfifo.c
    functionUses: 1
    functionsReached:
    - ev_loop
    - ev_timer_init
    - curl_multi_setopt
    - curl_multi_init
    - ev_default_loop
    - memset
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - init_fifo
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ipv6.c:36,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ipv6.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ipv6.c:42,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ipv6.c:44,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ipv6.c:46,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ipv6.c:48,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ipv6.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ipv6.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-download.c:69,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-download.c:74,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-download.c:80,1
    - Dst: fputs
      Src: /src/curl/docs/examples/http2-download.c:82,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-download.c:92,1
    - Dst: fputc
      Src: /src/curl/docs/examples/http2-download.c:101,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 25
    argCount: 5
    argNames:
    - text
    - num
    - ptr
    - size
    - nohex
    argTypes:
    - char*
    - int
    - unsigned char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 103
    functionName: dump
    functionSourceFile: /src/curl/docs/examples/http2-download.c
    functionUses: 9
    functionsReached:
    - fputs
    - fputc
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void dump(const char *text, int num, const unsigned char *ptr,\n                 size_t
      size, char nohex)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-download.c:115,1
    - Dst: dump
      Src: /src/curl/docs/examples/http2-download.c:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - curl
    - type
    - data
    - size
    - userp
    argTypes:
    - CURL*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 141
    functionName: my_trace
    functionSourceFile: /src/curl/docs/examples/http2-download.c
    functionUses: 0
    functionsReached:
    - dump
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int my_trace(CURL *curl, curl_infotype type,\n                    char
      *data, size_t size, void *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/curl/docs/examples/http2-download.c:151,1
    - Dst: fopen
      Src: /src/curl/docs/examples/http2-download.c:152,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-download.c:154,1
    - Dst: strerror
      Src: /src/curl/docs/examples/http2-download.c:155,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/http2-download.c:159,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-download.c:163,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-download.c:166,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-download.c:169,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-download.c:170,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-download.c:171,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-download.c:174,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-download.c:177,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/http2-download.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - t
    - num
    argTypes:
    - struct transfer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 185
    functionName: setup
    functionSourceFile: /src/curl/docs/examples/http2-download.c
    functionUses: 17
    functionsReached:
    - fprintf
    - curl_easy_init
    - curl_easy_setopt
    - fopen
    - snprintf
    - strerror
    linkageType: ''
    returnType: int
    signature: int setup(struct transfer *t, int num)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/curl/docs/examples/http2-download.c:201,1
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/http2-download.c:208,1
    - Dst: calloc
      Src: /src/curl/docs/examples/http2-download.c:212,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/http2-download.c:214,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/http2-download.c:219,1
    - Dst: setup
      Src: /src/curl/docs/examples/http2-download.c:224,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/http2-download.c:229,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/http2-download.c:232,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/http2-download.c:235,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/http2-download.c:239,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/http2-download.c:250,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/http2-download.c:251,1
    - Dst: fclose
      Src: /src/curl/docs/examples/http2-download.c:254,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/http2-download.c:256,1
    - Dst: free
      Src: /src/curl/docs/examples/http2-download.c:259,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/http2-download.c:261,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 264
    functionName: main
    functionSourceFile: /src/curl/docs/examples/http2-download.c
    functionUses: 1
    functionsReached:
    - fclose
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_multi_perform
    - calloc
    - setup
    - atoi
    - free
    - curl_multi_setopt
    - curl_easy_cleanup
    - curl_multi_init
    - curl_global_init
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/simplessl.c:73,1
    - Dst: fopen
      Src: /src/curl/docs/examples/simplessl.c:78,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/simplessl.c:82,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:87,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:88,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:92,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/simplessl.c:94,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:97,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/simplessl.c:101,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:108,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:111,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:120,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:123,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:126,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/simplessl.c:129,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/simplessl.c:132,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/simplessl.c:135,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/simplessl.c:136,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/simplessl.c:142,1
    - Dst: fclose
      Src: /src/curl/docs/examples/simplessl.c:145,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/simplessl.c:147,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 150
    functionName: main
    functionSourceFile: /src/curl/docs/examples/simplessl.c
    functionUses: 1
    functionsReached:
    - fclose
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - fopen
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-stat.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-stat.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-stat.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-stat.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-stat.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-stat.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-stat.c:59,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-stat.c:62,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-stat.c:66,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-stat.c:67,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-stat.c:70,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-stat.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-stat.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/certinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/certinfo.c:44,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/certinfo.c:48,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/certinfo.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/certinfo.c:52,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/certinfo.c:54,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/certinfo.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/certinfo.c:57,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/certinfo.c:58,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/certinfo.c:60,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/certinfo.c:65,1
    - Dst: printf
      Src: /src/curl/docs/examples/certinfo.c:70,1
    - Dst: printf
      Src: /src/curl/docs/examples/certinfo.c:76,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/certinfo.c:81,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/certinfo.c:84,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 87
    functionName: main
    functionSourceFile: /src/curl/docs/examples/certinfo.c
    functionUses: 1
    functionsReached:
    - curl_easy_getinfo
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: sighandler
    functionSourceFile: /src/curl/docs/examples/crawler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sighandler(int dummy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/curl/docs/examples/crawler.c:69,1
    - Dst: printf
      Src: /src/curl/docs/examples/crawler.c:72,1
    - Dst: memcpy
      Src: /src/curl/docs/examples/crawler.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - contents
    - sz
    - nmemb
    - ctx
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/crawler.c
    functionUses: 0
    functionsReached:
    - printf
    - memcpy
    - realloc
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *contents, size_t sz, size_t nmemb, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/crawler.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:87,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:88,1
    - Dst: malloc
      Src: /src/curl/docs/examples/crawler.c:91,1
    - Dst: malloc
      Src: /src/curl/docs/examples/crawler.c:93,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:94,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:95,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:96,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:99,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:100,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:101,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:103,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:104,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:105,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:107,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:109,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:111,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:113,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:114,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:115,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:116,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:117,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:118,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/crawler.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 121
    functionName: make_handle
    functionSourceFile: /src/curl/docs/examples/crawler.c
    functionUses: 0
    functionsReached:
    - malloc
    - curl_easy_init
    - curl_easy_setopt
    linkageType: ''
    returnType: CURL
    signature: CURL *make_handle(const char *url)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: htmlReadMemory
      Src: /src/curl/docs/examples/crawler.c:128,1
    - Dst: xmlXPathNewContext
      Src: /src/curl/docs/examples/crawler.c:138,1
    - Dst: xmlXPathEvalExpression
      Src: /src/curl/docs/examples/crawler.c:139,1
    - Dst: xmlXPathFreeContext
      Src: /src/curl/docs/examples/crawler.c:140,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/curl/docs/examples/crawler.c:144,1
    - Dst: xmlXPathFreeObject
      Src: /src/curl/docs/examples/crawler.c:145,1
    - Dst: rand
      Src: /src/curl/docs/examples/crawler.c:150,1
    - Dst: xmlNodeListGetString
      Src: /src/curl/docs/examples/crawler.c:153,1
    - Dst: xmlBuildURI
      Src: /src/curl/docs/examples/crawler.c:157,1
    - Dst: xmlFree
      Src: /src/curl/docs/examples/crawler.c:158,1
    - Dst: strlen
      Src: /src/curl/docs/examples/crawler.c:161,1
    - Dst: strncmp
      Src: /src/curl/docs/examples/crawler.c:163,1
    - Dst: strncmp
      Src: /src/curl/docs/examples/crawler.c:163,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/crawler.c:164,1
    - Dst: make_handle
      Src: /src/curl/docs/examples/crawler.c:164,1
    - Dst: xmlFree
      Src: /src/curl/docs/examples/crawler.c:168,1
    - Dst: xmlXPathFreeObject
      Src: /src/curl/docs/examples/crawler.c:170,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - multi
    - mem
    - url
    argTypes:
    - CURLM*
    - struct memory*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 172
    functionName: follow_links
    functionSourceFile: /src/curl/docs/examples/crawler.c
    functionUses: 0
    functionsReached:
    - xmlNodeListGetString
    - curl_multi_add_handle
    - strlen
    - xmlXPathEvalExpression
    - htmlReadMemory
    - xmlXPathNewContext
    - rand
    - xmlFree
    - xmlBuildURI
    - make_handle
    - xmlXPathNodeSetIsEmpty
    - xmlXPathFreeObject
    - strncmp
    - xmlXPathFreeContext
    linkageType: ''
    returnType: size_t
    signature: size_t follow_links(CURLM *multi, struct memory *mem, const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/docs/examples/crawler.c:176,1
    - Dst: strstr
      Src: /src/curl/docs/examples/crawler.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctype
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: is_html
    functionSourceFile: /src/curl/docs/examples/crawler.c
    functionUses: 0
    functionsReached:
    - strlen
    - strstr
    linkageType: ''
    returnType: int
    signature: int is_html(const char *ctype)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/crawler.c:188,1
    - Dst: signal
      Src: /src/curl/docs/examples/crawler.c:192,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/crawler.c:194,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/crawler.c:196,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/crawler.c:197,1
    - Dst: curl_multi_setopt
      Src: /src/curl/docs/examples/crawler.c:201,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/crawler.c:205,1
    - Dst: make_handle
      Src: /src/curl/docs/examples/crawler.c:205,1
    - Dst: curl_multi_wait
      Src: /src/curl/docs/examples/crawler.c:214,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/crawler.c:215,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/crawler.c:219,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/crawler.c:224,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/crawler.c:225,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/crawler.c:228,1
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/crawler.c:231,1
    - Dst: printf
      Src: /src/curl/docs/examples/crawler.c:232,1
    - Dst: is_html
      Src: /src/curl/docs/examples/crawler.c:233,1
    - Dst: follow_links
      Src: /src/curl/docs/examples/crawler.c:236,1
    - Dst: printf
      Src: /src/curl/docs/examples/crawler.c:242,1
    - Dst: printf
      Src: /src/curl/docs/examples/crawler.c:246,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/crawler.c:248,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/crawler.c:249,1
    - Dst: free
      Src: /src/curl/docs/examples/crawler.c:250,1
    - Dst: free
      Src: /src/curl/docs/examples/crawler.c:251,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/crawler.c:257,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/crawler.c:259,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 261
    functionName: main
    functionSourceFile: /src/curl/docs/examples/crawler.c
    functionUses: 1
    functionsReached:
    - curl_easy_getinfo
    - printf
    - is_html
    - curl_multi_wait
    - curl_multi_remove_handle
    - curl_multi_perform
    - follow_links
    - free
    - signal
    - curl_multi_setopt
    - make_handle
    - curl_multi_init
    - curl_easy_cleanup
    - curl_global_init
    - curl_multi_info_read
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/curl/docs/examples/ftpsget.c:48,1
    - Dst: fwrite
      Src: /src/curl/docs/examples/ftpsget.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - buffer
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/ftpsget.c
    functionUses: 0
    functionsReached:
    - fopen
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *buffer, size_t size, size_t nmemb, void *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/ftpsget.c:64,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/ftpsget.c:68,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpsget.c:75,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpsget.c:78,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpsget.c:80,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpsget.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/ftpsget.c:86,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/ftpsget.c:88,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/ftpsget.c:91,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/ftpsget.c:95,1
    - Dst: fclose
      Src: /src/curl/docs/examples/ftpsget.c:100,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/ftpsget.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 105
    functionName: main
    functionSourceFile: /src/curl/docs/examples/ftpsget.c
    functionUses: 1
    functionsReached:
    - fclose
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/multi-app.c:49,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/multi-app.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-app.c:58,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-app.c:60,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/multi-app.c:61,1
    - Dst: curl_multi_init
      Src: /src/curl/docs/examples/multi-app.c:64,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/docs/examples/multi-app.c:74,1
    - Dst: curl_multi_perform
      Src: /src/curl/docs/examples/multi-app.c:77,1
    - Dst: curl_multi_poll
      Src: /src/curl/docs/examples/multi-app.c:81,1
    - Dst: curl_multi_info_read
      Src: /src/curl/docs/examples/multi-app.c:89,1
    - Dst: printf
      Src: /src/curl/docs/examples/multi-app.c:102,1
    - Dst: printf
      Src: /src/curl/docs/examples/multi-app.c:105,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/docs/examples/multi-app.c:113,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/docs/examples/multi-app.c:115,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/multi-app.c:120,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/multi-app.c:122,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 125
    functionName: main
    functionSourceFile: /src/curl/docs/examples/multi-app.c
    functionUses: 1
    functionsReached:
    - printf
    - curl_multi_poll
    - curl_multi_remove_handle
    - curl_easy_init
    - curl_multi_perform
    - curl_easy_cleanup
    - curl_multi_init
    - curl_easy_setopt
    - curl_global_init
    - curl_multi_info_read
    - curl_global_cleanup
    - curl_multi_cleanup
    - curl_multi_add_handle
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/curl/docs/examples/progressfunc.c:50,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/progressfunc.c:57,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/progressfunc.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - p
    - dltotal
    - dlnow
    - ultotal
    - ulnow
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 74
    functionName: xferinfo
    functionSourceFile: /src/curl/docs/examples/progressfunc.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int xferinfo(void *p,\n                    curl_off_t dltotal, curl_off_t
      dlnow,\n                    curl_off_t ultotal, curl_off_t ulnow)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/progressfunc.c:80,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/progressfunc.c:84,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/progressfunc.c:91,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/progressfunc.c:93,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/progressfunc.c:95,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/progressfunc.c:97,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/progressfunc.c:98,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/progressfunc.c:101,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/progressfunc.c:101,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/progressfunc.c:104,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/progressfunc.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 108
    functionName: main
    functionSourceFile: /src/curl/docs/examples/progressfunc.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/curl/docs/examples/cacertinmem.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: write_cb
    functionSourceFile: /src/curl/docs/examples/cacertinmem.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/curl/docs/examples/cacertinmem.c:77,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/curl/docs/examples/cacertinmem.c:82,1
    - Dst: printf
      Src: /src/curl/docs/examples/cacertinmem.c:84,1
    - Dst: BIO_new_mem_buf
      Src: /src/curl/docs/examples/cacertinmem.c:88,1
    - Dst: printf
      Src: /src/curl/docs/examples/cacertinmem.c:90,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/curl/docs/examples/cacertinmem.c:94,1
    - Dst: printf
      Src: /src/curl/docs/examples/cacertinmem.c:96,1
    - Dst: sk_X509_INFO_num
      Src: /src/curl/docs/examples/cacertinmem.c:100,1
    - Dst: sk_X509_INFO_value
      Src: /src/curl/docs/examples/cacertinmem.c:101,1
    - Dst: X509_STORE_add_cert
      Src: /src/curl/docs/examples/cacertinmem.c:103,1
    - Dst: X509_STORE_add_crl
      Src: /src/curl/docs/examples/cacertinmem.c:106,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/curl/docs/examples/cacertinmem.c:114,1
    - Dst: BIO_free
      Src: /src/curl/docs/examples/cacertinmem.c:124,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - curl
    - sslctx
    - pointer
    argTypes:
    - CURL*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 127
    functionName: sslctx_function
    functionSourceFile: /src/curl/docs/examples/cacertinmem.c
    functionUses: 0
    functionsReached:
    - sk_X509_INFO_pop_free
    - SSL_CTX_get_cert_store
    - printf
    - BIO_free
    - sk_X509_INFO_num
    - BIO_new_mem_buf
    - X509_STORE_add_cert
    - PEM_X509_INFO_read_bio
    - sk_X509_INFO_value
    - STACK_OF
    - X509_STORE_add_crl
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode sslctx_function(CURL *curl, void *sslctx, void *pointer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/cacertinmem.c:133,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/cacertinmem.c:137,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:139,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:140,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:141,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:142,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:143,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:144,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:145,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:146,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:147,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:148,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:149,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:155,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:156,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/cacertinmem.c:161,1
    - Dst: printf
      Src: /src/curl/docs/examples/cacertinmem.c:163,1
    - Dst: printf
      Src: /src/curl/docs/examples/cacertinmem.c:165,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:175,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/cacertinmem.c:181,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/cacertinmem.c:182,1
    - Dst: printf
      Src: /src/curl/docs/examples/cacertinmem.c:184,1
    - Dst: printf
      Src: /src/curl/docs/examples/cacertinmem.c:186,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/cacertinmem.c:188,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/cacertinmem.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 192
    functionName: main
    functionSourceFile: /src/curl/docs/examples/cacertinmem.c
    functionUses: 1
    functionsReached:
    - printf
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/curl/docs/examples/pop3-dele.c:42,1
    - Dst: curl_easy_init
      Src: /src/curl/docs/examples/pop3-dele.c:46,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-dele.c:49,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-dele.c:50,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-dele.c:53,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-dele.c:56,1
    - Dst: curl_easy_setopt
      Src: /src/curl/docs/examples/pop3-dele.c:59,1
    - Dst: curl_easy_perform
      Src: /src/curl/docs/examples/pop3-dele.c:62,1
    - Dst: fprintf
      Src: /src/curl/docs/examples/pop3-dele.c:66,1
    - Dst: curl_easy_strerror
      Src: /src/curl/docs/examples/pop3-dele.c:67,1
    - Dst: curl_easy_cleanup
      Src: /src/curl/docs/examples/pop3-dele.c:70,1
    - Dst: curl_global_cleanup
      Src: /src/curl/docs/examples/pop3-dele.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/curl/docs/examples/pop3-dele.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_init
    - curl_easy_strerror
    - curl_easy_cleanup
    - curl_easy_setopt
    - curl_global_init
    - curl_global_cleanup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: CURL_VERSION_BITS
    functionSourceFile: /src/curl/include/curl/curlver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_VERSION_BITS(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: CURL_AT_LEAST_VERSION
    functionSourceFile: /src/curl/include/curl/curlver.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_AT_LEAST_VERSION(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - version
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: CURL_DEPRECATED
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_DEPRECATED(version, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statements
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: CURL_IGNORE_DEPRECATION
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_IGNORE_DEPRECATION(statements)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statements
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: CURL_IGNORE_DEPRECATION
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_IGNORE_DEPRECATION(statements)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statements
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: CURL_IGNORE_DEPRECATION
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_IGNORE_DEPRECATION(statements)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: CURL_HAS_DECLSPEC_ATTRIBUTE
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_HAS_DECLSPEC_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: CURL_HAS_DECLSPEC_ATTRIBUTE
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_HAS_DECLSPEC_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - na
    - ','
    - t
    - ','
    - nu
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1123
    functionName: CURLOPT
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLOPT(na, t, nu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - na
    - ','
    - t
    - ','
    - nu
    - ','
    - v
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1125
    functionName: CURLOPTDEPRECATED
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLOPTDEPRECATED(na, t, nu, v, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3335
    functionDepth: 0
    functionLinenumber: 3335
    functionLinenumberEnd: 3336
    functionName: curl_exactly_three_arguments
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_exactly_three_arguments(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - opt
    - ','
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3338
      start: 3336
    functionDepth: 0
    functionLinenumber: 3336
    functionLinenumberEnd: 3338
    functionName: curl_easy_setopt
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 241
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_easy_setopt(handle, opt, param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - info
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3338
    functionDepth: 0
    functionLinenumber: 3338
    functionLinenumberEnd: 3340
    functionName: curl_easy_getinfo
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_easy_getinfo(handle, info, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - share
    - ','
    - opt
    - ','
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3340
    functionDepth: 0
    functionLinenumber: 3340
    functionLinenumberEnd: 3342
    functionName: curl_share_setopt
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_share_setopt(share, opt, param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - opt
    - ','
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3344
      start: 3342
    functionDepth: 0
    functionLinenumber: 3342
    functionLinenumberEnd: 3344
    functionName: curl_multi_setopt
    functionSourceFile: /src/curl/include/curl/curl.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_multi_setopt(handle, opt, param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - option
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 161
    functionName: curl_easy_setopt
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 241
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_easy_setopt(handle, option, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - info
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 195
    functionName: curl_easy_getinfo
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_easy_getinfo(handle, info, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - option
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 226
    functionName: curl_multi_setopt
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_multi_setopt(handle, option, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: curlcheck_multicb_data_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_multicb_data_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: curlcheck_charpp_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_charpp_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: curlcheck_multitimer_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_multitimer_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: curlcheck_multisocket_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_multisocket_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: curlcheck_multipush_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_multipush_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: curlcheck_multinotify_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_multinotify_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - share
    - ','
    - opt
    - ','
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: curl_share_setopt
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_share_setopt(share, opt, param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: CURLWARNING
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLWARNING(id, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: curlcheck_long_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_long_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: curlcheck_off_t_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_off_t_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: curlcheck_curl_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_curl_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 502
    functionName: curlcheck_string_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_string_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: curlcheck_write_cb_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_write_cb_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: curlcheck_conv_cb_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_conv_cb_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 538
    functionName: curlcheck_cb_data_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_cb_data_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: curlcheck_postfields_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_postfields_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 558
    functionName: curlcheck_slist_option
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_slist_option(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: curlcheck_string_info
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_string_info(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: curlcheck_long_info
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_long_info(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 573
    functionName: curlcheck_double_info
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_double_info(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: curlcheck_slist_info
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_slist_info(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: curlcheck_tlssessioninfo_info
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_tlssessioninfo_info(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 586
    functionName: curlcheck_certinfo_info
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_certinfo_info(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 590
    functionName: curlcheck_socket_info
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_socket_info(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 594
    functionName: curlcheck_off_t_info
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_off_t_info(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: curlcheck_any_ptr
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_any_ptr(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 616
    functionName: curlcheck_NULL
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_NULL(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: curlcheck_ptr
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_ptr(expr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 630
    functionName: curlcheck_ptrptr
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_ptrptr(expr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: curlcheck_arr
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_arr(expr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: curlcheck_string
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_string(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 646
    functionName: curlcheck_curl
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_curl(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 671
    functionName: curlcheck_long
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_long(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 675
    functionName: curlcheck_off_t
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_off_t(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 682
    functionName: curlcheck_error_buffer
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_error_buffer(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: curlcheck_cb_data
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_cb_data(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 691
    functionName: curlcheck_cb_data
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_cb_data(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: curlcheck_FILE
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_FILE(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: curlcheck_postfields
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_postfields(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 709
    functionName: curlcheck_cb_compatible
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_cb_compatible(func, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 714
    functionName: curlcheck_resolver_start_callback
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_resolver_start_callback(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 726
    functionName: curlcheck_read_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_read_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 744
    functionName: curlcheck_write_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_write_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 761
    functionName: curlcheck_ioctl_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_ioctl_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 772
    functionName: curlcheck_sockopt_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_sockopt_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 785
    functionName: curlcheck_opensocket_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_opensocket_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 800
    functionName: curlcheck_progress_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_progress_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 809
    functionName: curlcheck_xferinfo_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_xferinfo_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 822
    functionName: curlcheck_debug_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_debug_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 852
    functionName: curlcheck_ssl_ctx_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_ssl_ctx_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 881
    functionName: curlcheck_conv_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_conv_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 892
    functionName: curlcheck_seek_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_seek_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 901
    functionName: curlcheck_chunk_bgn_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_chunk_bgn_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 909
    functionName: curlcheck_chunk_end_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_chunk_end_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 914
    functionName: curlcheck_close_socket_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_close_socket_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 919
    functionName: curlcheck_fnmatch_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_fnmatch_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 924
    functionName: curlcheck_hstsread_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_hstsread_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 929
    functionName: curlcheck_hstswrite_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_hstswrite_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 934
    functionName: curlcheck_ssh_hostkey_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_ssh_hostkey_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 939
    functionName: curlcheck_ssh_key_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_ssh_key_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 945
    functionName: curlcheck_interleave_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_interleave_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 954
    functionName: curlcheck_prereq_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_prereq_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 959
    functionName: curlcheck_trailer_cb
    functionSourceFile: /src/curl/include/curl/typecheck-gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlcheck_trailer_cb(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: CURL_POPCOUNT64
    functionSourceFile: /src/curl/include/curl/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_POPCOUNT64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: CURL_CTZ64
    functionSourceFile: /src/curl/include/curl/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_CTZ64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: CURL_POPCOUNT64
    functionSourceFile: /src/curl/include/curl/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_POPCOUNT64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: CURL_CTZ64
    functionSourceFile: /src/curl/include/curl/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_CTZ64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: CURL_TEMP_PRINTF
    functionSourceFile: /src/curl/include/curl/mprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TEMP_PRINTF(fmt, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: CURL_TEMP_PRINTF
    functionSourceFile: /src/curl/include/curl/mprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TEMP_PRINTF(fmt, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: curl_multi_socket
    functionSourceFile: /src/curl/include/curl/multi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_multi_socket(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - add
    - shift
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: calc
    functionSourceFile: /src/curl/scripts/schemetable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int calc(const char *s, int add, int shift)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calc
      Src: /src/curl/scripts/schemetable.c:88,1
    - Dst: printf
      Src: /src/curl/scripts/schemetable.c:91,1
    - Dst: printf
      Src: /src/curl/scripts/schemetable.c:102,1
    - Dst: printf
      Src: /src/curl/scripts/schemetable.c:110,1
    - Dst: printf
      Src: /src/curl/scripts/schemetable.c:117,1
    - Dst: printf
      Src: /src/curl/scripts/schemetable.c:119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - try
    - init
    - shift
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 120
    functionName: showtable
    functionSourceFile: /src/curl/scripts/schemetable.c
    functionUses: 0
    functionsReached:
    - calc
    - printf
    linkageType: ''
    returnType: void
    signature: void showtable(int try, int init, int shift)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calc
      Src: /src/curl/scripts/schemetable.c:134,1
    - Dst: printf
      Src: /src/curl/scripts/schemetable.c:141,1
    - Dst: printf
      Src: /src/curl/scripts/schemetable.c:154,1
    - Dst: showtable
      Src: /src/curl/scripts/schemetable.c:185,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 186
    functionName: main
    functionSourceFile: /src/curl/scripts/schemetable.c
    functionUses: 1
    functionsReached:
    - showtable
    - calc
    - printf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/curl/CMake/CurlTests.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gethostbyname_r
      Src: /src/curl/CMake/CurlTests.c:85,1
    - Dst: gethostbyname_r
      Src: /src/curl/CMake/CurlTests.c:89,1
    - Dst: gethostbyname_r
      Src: /src/curl/CMake/CurlTests.c:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 101
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - gethostbyname_r
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/curl/CMake/CurlTests.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - ioctlsocket
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IoctlSocket
      Src: /src/curl/CMake/CurlTests.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - IoctlSocket
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IoctlSocket
      Src: /src/curl/CMake/CurlTests.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - IoctlSocket
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/curl/CMake/CurlTests.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - ioctlsocket
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/curl/CMake/CurlTests.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/curl/CMake/CurlTests.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/curl/CMake/CurlTests.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: check
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void check(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/curl/CMake/CurlTests.c:288,1
    - Dst: strerror_r
      Src: /src/curl/CMake/CurlTests.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - strerror_r
    - check
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: check
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void check(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/curl/CMake/CurlTests.c:308,1
    - Dst: strerror_r
      Src: /src/curl/CMake/CurlTests.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - strerror_r
    - check
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsetxattr
      Src: /src/curl/CMake/CurlTests.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - fsetxattr
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsetxattr
      Src: /src/curl/CMake/CurlTests.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - fsetxattr
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/curl/CMake/CurlTests.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_available
      Src: /src/curl/CMake/CurlTests.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached:
    - __builtin_available
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: enquote
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: enquote(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: expand
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expand(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: enquote
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: enquote(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    functionName: expand
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expand(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: main
    functionSourceFile: /src/curl/CMake/CurlTests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cpool_destroy
      Src: /src/curl/lib/curl_share.c:38,1
    - Dst: Curl_dnscache_destroy
      Src: /src/curl/lib/curl_share.c:41,1
    - Dst: Curl_cookie_cleanup
      Src: /src/curl/lib/curl_share.c:44,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/lib/curl_share.c:48,1
    - Dst: Curl_ssl_scache_destroy
      Src: /src/curl/lib/curl_share.c:53,1
    - Dst: Curl_psl_destroy
      Src: /src/curl/lib/curl_share.c:58,1
    - Dst: Curl_close
      Src: /src/curl/lib/curl_share.c:59,1
    - Dst: Curl_mutex_destroy
      Src: /src/curl/lib/curl_share.c:62,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_share.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - share
    argTypes:
    - struct Curl_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 66
    functionName: share_destroy
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_psl_destroy
    - Curl_close
    - Curl_dnscache_destroy
    - Curl_mutex_destroy
    - Curl_cpool_destroy
    - Curl_ssl_scache_destroy
    - Curl_cookie_cleanup
    - Curl_hsts_cleanup
    linkageType: ''
    returnType: void
    signature: void share_destroy(struct Curl_share *share)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/curl_share.c:70,1
    - Dst: Curl_mutex_init
      Src: /src/curl/lib/curl_share.c:75,1
    - Dst: Curl_dnscache_init
      Src: /src/curl/lib/curl_share.c:78,1
    - Dst: curl_easy_init
      Src: /src/curl/lib/curl_share.c:79,1
    - Dst: share_destroy
      Src: /src/curl/lib/curl_share.c:81,1
    - Dst: getenv
      Src: /src/curl/lib/curl_share.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 93
    functionName: curl_share_init
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 12
    functionsReached:
    - getenv
    - curl_easy_init
    - Curl_dnscache_init
    - curlx_calloc
    - Curl_mutex_init
    - share_destroy
    linkageType: ''
    returnType: CURLSH
    signature: CURLSH *curl_share_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/curl_share.c:99,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/curl_share.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - share
    argTypes:
    - struct Curl_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: share_ref_inc
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - Curl_mutex_acquire
    - Curl_mutex_release
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t share_ref_inc(struct Curl_share *share)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/curl_share.c:114,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_share.c:115,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/curl_share.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - share
    argTypes:
    - struct Curl_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: share_ref_dec
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - Curl_mutex_acquire
    - Curl_mutex_release
    - DEBUGASSERT
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t share_ref_dec(struct Curl_share *share)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/curl_share.c:128,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/curl_share.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - share
    argTypes:
    - struct Curl_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: share_has_been_shared
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - Curl_mutex_acquire
    - Curl_mutex_release
    linkageType: ''
    returnType: bool
    signature: bool share_has_been_shared(struct Curl_share *share)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: share_has_been_shared
      Src: /src/curl/lib/curl_share.c:141,1
    - Dst: struct Curl_share*::lockfunc
      Src: /src/curl/lib/curl_share.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - share
    - data
    argTypes:
    - struct Curl_share*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: share_lock_acquire
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - share_has_been_shared
    - struct Curl_share*::lockfunc
    linkageType: ''
    returnType: bool
    signature: "bool share_lock_acquire(struct Curl_share *share,\n                               struct
      Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_share.c:154,1
    - Dst: struct Curl_share*::unlockfunc
      Src: /src/curl/lib/curl_share.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - share
    - data
    - locked
    argTypes:
    - struct Curl_share*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: share_lock_release
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - struct Curl_share*::unlockfunc
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void share_lock_release(struct Curl_share *share,\n                               struct
      Curl_easy *data,\n                               bool locked)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/curl_share.c:164,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/curl_share.c:166,1
    - Dst: share_lock_acquire
      Src: /src/curl/lib/curl_share.c:168,1
    - Dst: share_lock_release
      Src: /src/curl/lib/curl_share.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - share
    argTypes:
    - struct Curl_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 173
    functionName: share_in_use
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - Curl_mutex_acquire
    - Curl_mutex_release
    - share_lock_acquire
    - share_lock_release
    linkageType: ''
    returnType: bool
    signature: bool share_in_use(struct Curl_share *share)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: share_ref_dec
      Src: /src/curl/lib/curl_share.c:183,1
    - Dst: share_lock_release
      Src: /src/curl/lib/curl_share.c:185,1
    - Dst: share_destroy
      Src: /src/curl/lib/curl_share.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pshare
    - data
    - locked
    argTypes:
    - struct Curl_share**
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: share_unlink
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - share_lock_release
    - share_destroy
    - share_ref_dec
    linkageType: ''
    returnType: void
    signature: "void share_unlink(struct Curl_share **pshare,\n                         struct
      Curl_easy *data,\n                         bool locked)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_SHARE_HANDLE
      Src: /src/curl/lib/curl_share.c:201,1
    - Dst: share_in_use
      Src: /src/curl/lib/curl_share.c:204,1
    - Dst: va_start
      Src: /src/curl/lib/curl_share.c:210,1
    - Dst: va_arg
      Src: /src/curl/lib/curl_share.c:215,1
    - Dst: Curl_cookie_init
      Src: /src/curl/lib/curl_share.c:224,1
    - Dst: Curl_hsts_init
      Src: /src/curl/lib/curl_share.c:236,1
    - Dst: Curl_ssl_scache_create
      Src: /src/curl/lib/curl_share.c:253,1
    - Dst: Curl_cpool_init
      Src: /src/curl/lib/curl_share.c:264,1
    - Dst: va_arg
      Src: /src/curl/lib/curl_share.c:283,1
    - Dst: Curl_cookie_cleanup
      Src: /src/curl/lib/curl_share.c:291,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/lib/curl_share.c:302,1
    - Dst: Curl_ssl_scache_destroy
      Src: /src/curl/lib/curl_share.c:312,1
    - Dst: va_arg
      Src: /src/curl/lib/curl_share.c:332,1
    - Dst: va_arg
      Src: /src/curl/lib/curl_share.c:337,1
    - Dst: va_arg
      Src: /src/curl/lib/curl_share.c:342,1
    - Dst: va_end
      Src: /src/curl/lib/curl_share.c:351,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 102
    argCount: 2
    argNames:
    - sh
    - option
    argTypes:
    - CURLSH*
    - CURLSHoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 354
    functionName: curl_share_setopt
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 12
    functionsReached:
    - Curl_cookie_init
    - va_arg
    - va_start
    - va_end
    - Curl_cpool_init
    - Curl_hsts_init
    - GOOD_SHARE_HANDLE
    - Curl_ssl_scache_create
    - Curl_ssl_scache_destroy
    - share_in_use
    - Curl_cookie_cleanup
    - Curl_hsts_cleanup
    linkageType: ''
    returnType: CURLSHcode
    signature: CURLSHcode curl_share_setopt(CURLSH *sh, CURLSHoption option, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_SHARE_HANDLE
      Src: /src/curl/lib/curl_share.c:360,1
    - Dst: share_in_use
      Src: /src/curl/lib/curl_share.c:363,1
    - Dst: share_lock_acquire
      Src: /src/curl/lib/curl_share.c:366,1
    - Dst: share_unlink
      Src: /src/curl/lib/curl_share.c:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sh
    argTypes:
    - CURLSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 369
    functionName: curl_share_cleanup
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 12
    functionsReached:
    - share_unlink
    - share_in_use
    - share_lock_acquire
    - GOOD_SHARE_HANDLE
    linkageType: ''
    returnType: CURLSHcode
    signature: CURLSHcode curl_share_cleanup(CURLSH *sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_share*::lockfunc
      Src: /src/curl/lib/curl_share.c:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - data
    - type
    - accesstype
    argTypes:
    - struct Curl_easy*
    - curl_lock_data
    - curl_lock_access
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 386
    functionName: Curl_share_lock
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - struct Curl_share*::lockfunc
    linkageType: ''
    returnType: CURLSHcode
    signature: "CURLSHcode Curl_share_lock(struct Curl_easy *data, curl_lock_data
      type,\n                           curl_lock_access accesstype)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_share*::unlockfunc
      Src: /src/curl/lib/curl_share.c:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - data
    - type
    argTypes:
    - struct Curl_easy*
    - curl_lock_data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: Curl_share_unlock
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - struct Curl_share*::unlockfunc
    linkageType: ''
    returnType: CURLSHcode
    signature: CURLSHcode Curl_share_unlock(struct Curl_easy *data, curl_lock_data
      type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: share_lock_acquire
      Src: /src/curl/lib/curl_share.c:408,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/curl_share.c:412,1
    - Dst: share_unlink
      Src: /src/curl/lib/curl_share.c:428,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 431
    functionName: Curl_share_easy_unlink
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - share_unlink
    - share_lock_acquire
    - Curl_detach_connection
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_share_easy_unlink(struct Curl_easy *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_share.c:437,1
    - Dst: share_lock_acquire
      Src: /src/curl/lib/curl_share.c:442,1
    - Dst: share_ref_inc
      Src: /src/curl/lib/curl_share.c:444,1
    - Dst: Curl_cookie_cleanup
      Src: /src/curl/lib/curl_share.c:450,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/lib/curl_share.c:458,1
    - Dst: share_lock_release
      Src: /src/curl/lib/curl_share.c:469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - data
    - share
    argTypes:
    - struct Curl_easy*
    - struct Curl_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 472
    functionName: Curl_share_easy_link
    functionSourceFile: /src/curl/lib/curl_share.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - share_ref_inc
    - share_lock_acquire
    - share_lock_release
    - Curl_cookie_cleanup
    - Curl_hsts_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_share_easy_link(struct Curl_easy *data,\n                              struct
      Curl_share *share)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cw-out.c:81,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/cw-out.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - otype
    argTypes:
    - cw_out_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: cw_out_buf_create
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_calloc
    linkageType: ''
    returnType: struct cw_out_buf
    signature: struct cw_out_buf *cw_out_buf_create(cw_out_type otype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/cw-out.c:92,1
    - Dst: curlx_free
      Src: /src/curl/lib/cw-out.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cwbuf
    argTypes:
    - struct cw_out_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: cw_out_buf_free
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void cw_out_buf_free(struct cw_out_buf *cwbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: cw_out_init
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_out_init(struct Curl_easy *data,\n                            struct
      Curl_cwriter *writer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cw_out_buf_free
      Src: /src/curl/lib/cw-out.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cw_out_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: cw_out_bufs_free
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - cw_out_buf_free
    linkageType: ''
    returnType: void
    signature: void cw_out_bufs_free(struct cw_out_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cw-out.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cw_out_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: cw_out_bufs_len
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_len
    linkageType: ''
    returnType: size_t
    signature: size_t cw_out_bufs_len(struct cw_out_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cw_out_bufs_free
      Src: /src/curl/lib/cw-out.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: cw_out_close
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - cw_out_bufs_free
    linkageType: ''
    returnType: void
    signature: void cw_out_close(struct Curl_easy *data, struct Curl_cwriter *writer)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - data
    - otype
    - pwcb
    - pwcb_data
    - pmax_write
    - pmin_write
    argTypes:
    - struct Curl_easy*
    - cw_out_type
    - curl_write_callback*
    - void**
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 172
    functionName: cw_get_writefunc
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cw_get_writefunc(struct Curl_easy *data, cw_out_type otype,\n
      \                            curl_write_callback *pwcb, void **pwcb_data,\n
      \                            size_t *pmax_write, size_t *pmin_write)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NOVERBOSE
      Src: /src/curl/lib/cw-out.c:185,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cw-out.c:187,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/cw-out.c:189,1
    - Dst: wcb
      Src: /src/curl/lib/cw-out.c:190,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/cw-out.c:190,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/cw-out.c:191,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/cw-out.c:192,1
    - Dst: failf
      Src: /src/curl/lib/cw-out.c:200,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/cw-out.c:204,1
    - Dst: Curl_xfer_pause_recv
      Src: /src/curl/lib/cw-out.c:205,1
    - Dst: failf
      Src: /src/curl/lib/cw-out.c:209,1
    - Dst: failf
      Src: /src/curl/lib/cw-out.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 8
    argNames:
    - ctx
    - data
    - wcb
    - wcb_data
    - otype
    - buf
    - blen
    - pnwritten
    argTypes:
    - struct cw_out_ctx*
    - struct Curl_easy*
    - curl_write_callback
    - void*
    - cw_out_type
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 219
    functionName: cw_out_cb_write
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - CURL_TRC_WRITE
    - failf
    - CURL_UNCONST
    - Curl_set_in_callback
    - NOVERBOSE
    - Curl_xfer_pause_recv
    - wcb
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_out_cb_write(struct cw_out_ctx *ctx,\n                                struct
      Curl_easy *data,\n                                curl_write_callback wcb,\n
      \                               void *wcb_data,\n                                cw_out_type
      otype,\n                                const char *buf, size_t blen,\n                                size_t
      *pnwritten)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cw_get_writefunc
      Src: /src/curl/lib/cw-out.c:239,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cw-out.c:247,1
    - Dst: cw_out_cb_write
      Src: /src/curl/lib/cw-out.c:248,1
    - Dst: CURLMIN
      Src: /src/curl/lib/cw-out.c:255,1
    - Dst: Curl_pgrs_deliver_check
      Src: /src/curl/lib/cw-out.c:257,1
    - Dst: cw_out_cb_write
      Src: /src/curl/lib/cw-out.c:259,1
    - Dst: Curl_pgrs_deliver_inc
      Src: /src/curl/lib/cw-out.c:264,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 7
    argNames:
    - ctx
    - data
    - otype
    - flush_all
    - buf
    - blen
    - pconsumed
    argTypes:
    - struct cw_out_ctx*
    - struct Curl_easy*
    - cw_out_type
    - bool
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 271
    functionName: cw_out_ptr_flush
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - cw_get_writefunc
    - CURLMIN
    - Curl_pgrs_deliver_check
    - Curl_pgrs_deliver_inc
    - cw_out_cb_write
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_out_ptr_flush(struct cw_out_ctx *ctx,\n                                 struct
      Curl_easy *data,\n                                 cw_out_type otype,\n                                 bool
      flush_all,\n                                 const char *buf, size_t blen,\n
      \                                size_t *pconsumed)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cw-out.c:280,1
    - Dst: cw_out_ptr_flush
      Src: /src/curl/lib/cw-out.c:283,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/cw-out.c:284,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cw-out.c:285,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cw-out.c:292,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/cw-out.c:293,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cw-out.c:296,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cw-out.c:296,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/cw-out.c:297,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cw-out.c:298,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - data
    - cwbuf
    - flush_all
    argTypes:
    - struct cw_out_ctx*
    - struct Curl_easy*
    - struct cw_out_buf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 305
    functionName: cw_out_buf_flush
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_ptr
    - cw_out_ptr_flush
    - curlx_dyn_tail
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_out_buf_flush(struct cw_out_ctx *ctx,\n                                 struct
      Curl_easy *data,\n                                 struct cw_out_buf *cwbuf,\n
      \                                bool flush_all)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cw_out_flush_chain
      Src: /src/curl/lib/cw-out.c:325,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cw-out.c:330,1
    - Dst: cw_out_buf_flush
      Src: /src/curl/lib/cw-out.c:335,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cw-out.c:338,1
    - Dst: cw_out_buf_free
      Src: /src/curl/lib/cw-out.c:339,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - data
    - pcwbuf
    - flush_all
    argTypes:
    - struct cw_out_ctx*
    - struct Curl_easy*
    - struct cw_out_buf**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 343
    functionName: cw_out_flush_chain
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 1
    functionsReached:
    - cw_out_buf_flush
    - DEBUGASSERT
    - cw_out_buf_free
    - curlx_dyn_len
    - cw_out_flush_chain
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_out_flush_chain(struct cw_out_ctx *ctx,\n                                   struct
      Curl_easy *data,\n                                   struct cw_out_buf **pcwbuf,\n
      \                                  bool flush_all)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/cw-out.c:350,1
    - Dst: cw_out_bufs_len
      Src: /src/curl/lib/cw-out.c:351,1
    - Dst: cw_out_bufs_len
      Src: /src/curl/lib/cw-out.c:352,1
    - Dst: failf
      Src: /src/curl/lib/cw-out.c:353,1
    - Dst: cw_out_buf_create
      Src: /src/curl/lib/cw-out.c:361,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cw-out.c:367,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/cw-out.c:368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - data
    - otype
    - buf
    - blen
    argTypes:
    - struct cw_out_ctx*
    - struct Curl_easy*
    - cw_out_type
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 369
    functionName: cw_out_append
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - failf
    - cw_out_bufs_len
    - curlx_dyn_addn
    - cw_out_buf_create
    - CURL_TRC_WRITE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_out_append(struct cw_out_ctx *ctx,\n                              struct
      Curl_easy *data,\n                              cw_out_type otype,\n                              const
      char *buf, size_t blen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cw_out_flush_chain
      Src: /src/curl/lib/cw-out.c:382,1
    - Dst: cw_out_append
      Src: /src/curl/lib/cw-out.c:389,1
    - Dst: cw_out_flush_chain
      Src: /src/curl/lib/cw-out.c:392,1
    - Dst: cw_out_ptr_flush
      Src: /src/curl/lib/cw-out.c:399,1
    - Dst: cw_out_append
      Src: /src/curl/lib/cw-out.c:406,1
    - Dst: cw_out_bufs_free
      Src: /src/curl/lib/cw-out.c:418,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 6
    argNames:
    - ctx
    - data
    - otype
    - flush_all
    - buf
    - blen
    argTypes:
    - struct cw_out_ctx*
    - struct Curl_easy*
    - cw_out_type
    - bool
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 371
    functionDepth: 5
    functionLinenumber: 371
    functionLinenumberEnd: 421
    functionName: cw_out_do_write
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - cw_out_append
    - cw_out_ptr_flush
    - cw_out_bufs_free
    - cw_out_flush_chain
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_out_do_write(struct cw_out_ctx *ctx,\n                                struct
      Curl_easy *data,\n                                cw_out_type otype,\n                                bool
      flush_all,\n                                const char *buf, size_t blen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cw_out_do_write
      Src: /src/curl/lib/cw-out.c:435,1
    - Dst: cw_out_do_write
      Src: /src/curl/lib/cw-out.c:441,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - blen
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 423
    functionDepth: 6
    functionLinenumber: 423
    functionLinenumberEnd: 447
    functionName: cw_out_write
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - cw_out_do_write
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_out_write(struct Curl_easy *data,\n                             struct
      Curl_cwriter *writer, int type,\n                             const char *buf,
      size_t blen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_get_by_type
      Src: /src/curl/lib/cw-out.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 469
    functionName: Curl_cw_out_is_paused
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_get_by_type
    linkageType: ''
    returnType: bool
    signature: bool Curl_cw_out_is_paused(struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cw_out_flush_chain
      Src: /src/curl/lib/cw-out.c:483,1
    - Dst: cw_out_bufs_free
      Src: /src/curl/lib/cw-out.c:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - data
    - cw_out
    - flush_all
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 471
    functionDepth: 5
    functionLinenumber: 471
    functionLinenumberEnd: 490
    functionName: cw_out_flush
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - cw_out_bufs_free
    - cw_out_flush_chain
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_out_flush(struct Curl_easy *data,\n                             struct
      Curl_cwriter *cw_out,\n                             bool flush_all)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_get_by_type
      Src: /src/curl/lib/cw-out.c:497,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/cw-out.c:500,1
    - Dst: Curl_cw_pause_flush
      Src: /src/curl/lib/cw-out.c:502,1
    - Dst: cw_out_flush
      Src: /src/curl/lib/cw-out.c:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 492
    functionDepth: 6
    functionLinenumber: 492
    functionLinenumberEnd: 507
    functionName: Curl_cw_out_unpause
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - Curl_cw_pause_flush
    - CURL_TRC_WRITE
    - cw_out_flush
    - Curl_cwriter_get_by_type
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_cw_out_unpause(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_get_by_type
      Src: /src/curl/lib/cw-out.c:514,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/cw-out.c:516,1
    - Dst: Curl_cw_pause_flush
      Src: /src/curl/lib/cw-out.c:517,1
    - Dst: cw_out_flush
      Src: /src/curl/lib/cw-out.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 509
    functionDepth: 6
    functionLinenumber: 509
    functionLinenumberEnd: 522
    functionName: Curl_cw_out_done
    functionSourceFile: /src/curl/lib/cw-out.c
    functionUses: 0
    functionsReached:
    - Curl_cw_pause_flush
    - CURL_TRC_WRITE
    - cw_out_flush
    - Curl_cwriter_get_by_type
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_cw_out_done(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - for_proxy
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: RESOLV_FAIL
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESOLV_FAIL(for_proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: IS_RESOLV_FAIL
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_RESOLV_FAIL(result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: ipv6works
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ipv6works(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ipv6works
      Src: /src/curl/lib/hostip.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - ip_version
    argTypes:
    - struct Curl_easy*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: Curl_resolv_dns_queries
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - ipv6works
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Curl_resolv_dns_queries(struct Curl_easy *data, uint8_t ip_version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - dns_queries
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 165
    functionName: Curl_resolv_query_str
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: char
    signature: char *Curl_resolv_query_str(uint8_t dns_queries)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:178,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/hostip.c:185,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/hostip.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ai
    - buf
    - bufsize
    argTypes:
    - struct Curl_addrinfo*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 199
    functionName: Curl_printable_address
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - curlx_inet_ntop
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_printable_address(const struct Curl_addrinfo *ai, char *buf,\n
      \                           size_t bufsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/hostip.c:215,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/hostip.c:219,1
    - Dst: memset
      Src: /src/curl/lib/hostip.c:223,1
    - Dst: htons
      Src: /src/curl/lib/hostip.c:225,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/hostip.c:227,1
    - Dst: memcpy
      Src: /src/curl/lib/hostip.c:228,1
    - Dst: memcpy
      Src: /src/curl/lib/hostip.c:237,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/hostip.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - port
    - name
    argTypes:
    - uint16_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 241
    functionName: get_localhost6
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - htons
    - memcpy
    - curlx_strcopy
    - curlx_calloc
    - memset
    - curlx_inet_pton
    - strlen
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: struct Curl_addrinfo *get_localhost6(uint16_t port, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: get_localhost6
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_localhost6(x, y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/hostip.c:252,1
    - Dst: memset
      Src: /src/curl/lib/hostip.c:258,1
    - Dst: htons
      Src: /src/curl/lib/hostip.c:260,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/hostip.c:261,1
    - Dst: memcpy
      Src: /src/curl/lib/hostip.c:263,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/hostip.c:265,1
    - Dst: memcpy
      Src: /src/curl/lib/hostip.c:274,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/hostip.c:276,1
    - Dst: get_localhost6
      Src: /src/curl/lib/hostip.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - port
    - name
    argTypes:
    - uint16_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 283
    functionName: get_localhost
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - htons
    - memcpy
    - get_localhost6
    - curlx_strcopy
    - curlx_calloc
    - memset
    - curlx_inet_pton
    - strlen
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: struct Curl_addrinfo *get_localhost(uint16_t port, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_SOCKET
      Src: /src/curl/lib/hostip.c:292,1
    - Dst: sclose
      Src: /src/curl/lib/hostip.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 303
    functionName: Curl_probeipv6
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - CURL_SOCKET
    - sclose
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_probeipv6(struct Curl_multi *multi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:310,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: ipv6works
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: bool ipv6works(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/hostip.c:326,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/hostip.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: Curl_host_is_ipnum
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - curlx_inet_pton
    linkageType: ''
    returnType: bool
    signature: bool Curl_host_is_ipnum(const char *hostname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/hostip.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - full
    - flen
    - part
    - plen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: tailmatch
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: "bool tailmatch(const char *full, size_t flen,\n                      const
      char *part, size_t plen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/hostip.c:348,1
    - Dst: RESOLV_FAIL
      Src: /src/curl/lib/hostip.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - hostname
    - for_proxy
    argTypes:
    - struct Curl_easy*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 351
    functionName: hostip_resolv_failed
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - RESOLV_FAIL
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode hostip_resolv_failed(struct Curl_easy *data,\n                                     const
      char *hostname,\n                                     bool for_proxy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_DNSQ_IP
      Src: /src/curl/lib/hostip.c:357,1
    - Dst: ipv6works
      Src: /src/curl/lib/hostip.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - dns_queries
    argTypes:
    - struct Curl_easy*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: can_resolve_dns_queries
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - ipv6works
    - CURL_DNSQ_IP
    linkageType: ''
    returnType: bool
    signature: "bool can_resolve_dns_queries(struct Curl_easy *data,\n                                    uint8_t
      dns_queries)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/hostip.c:368,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/hostip.c:369,1
    - Dst: struct Curl_easy*::set::resolver_start
      Src: /src/curl/lib/hostip.c:370,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/hostip.c:372,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/hostip.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - resolver
    argTypes:
    - struct Curl_easy*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 379
    functionName: Curl_resolv_announce_start
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - struct Curl_easy*::set::resolver_start
    - Curl_set_in_callback
    - CURL_TRC_DNS
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_resolv_announce_start(struct Curl_easy *data,\n                                    void
      *resolver)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/hostip.c:392,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:395,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/hostip.c:400,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/hostip.c:418,1
    - Dst: memcpy
      Src: /src/curl/lib/hostip.c:421,1
    - Dst: Curl_is_ipaddr
      Src: /src/curl/lib/hostip.c:422,1
    - Dst: Curl_is_ipv4addr
      Src: /src/curl/lib/hostip.c:424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 7
    argNames:
    - data
    - dns_queries
    - hostname
    - port
    - transport
    - for_proxy
    - timeout_ms
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - char*
    - uint16_t
    - uint8_t
    - bool
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 428
    functionName: hostip_async_new
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - memcpy
    - DEBUGASSERT
    - Curl_is_ipaddr
    - curlx_calloc
    - Curl_is_ipv4addr
    - strlen
    linkageType: ''
    returnType: struct Curl_resolv_async
    signature: "struct Curl_resolv_async *hostip_async_new(struct Curl_easy *data,\n
      \                                                 uint8_t dns_queries,\n                                                  const
      char *hostname,\n                                                  uint16_t
      port,\n                                                  uint8_t transport,\n
      \                                                 bool for_proxy,\n                                                  timediff_t
      timeout_ms)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_doh_take_result
      Src: /src/curl/lib/hostip.c:442,1
    - Dst: Curl_async_take_result
      Src: /src/curl/lib/hostip.c:445,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/hostip.c:448,1
    - Dst: Curl_resolv_query_str
      Src: /src/curl/lib/hostip.c:450,1
    - Dst: Curl_resolv_query_str
      Src: /src/curl/lib/hostip.c:451,1
    - Dst: Curl_async_failed
      Src: /src/curl/lib/hostip.c:456,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/hostip.c:459,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - data
    - async
    - pdns
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 465
    functionName: hostip_resolv_take_result
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_doh_take_result
    - DEBUGASSERT
    - Curl_async_failed
    - Curl_async_take_result
    - CURL_TRC_DNS
    - Curl_resolv_query_str
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode hostip_resolv_take_result(struct Curl_easy *data,\n                                          struct
      Curl_resolv_async *async,\n                                          struct
      Curl_dns_entry **pdns)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_get
      Src: /src/curl/lib/hostip.c:470,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/hostip.c:473,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/hostip.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - resolv_id
    argTypes:
    - struct Curl_easy*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 474
    functionName: Curl_resolv_elapsed_ms
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_async_get
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t Curl_resolv_elapsed_ms(struct Curl_easy *data,\n                                  uint32_t
      resolv_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_get
      Src: /src/curl/lib/hostip.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - data
    - resolv_id
    - dns_queries
    argTypes:
    - struct Curl_easy*
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 490
    functionName: Curl_resolv_has_answers
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_async_get
    linkageType: ''
    returnType: bool
    signature: "bool Curl_resolv_has_answers(struct Curl_easy *data,\n                             uint32_t
      resolv_id, uint8_t dns_queries)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_get
      Src: /src/curl/lib/hostip.c:497,1
    - Dst: Curl_async_get_ai
      Src: /src/curl/lib/hostip.c:507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - data
    - resolv_id
    - ai_family
    - index
    argTypes:
    - struct Curl_easy*
    - uint32_t
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 508
    functionName: Curl_resolv_get_ai
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_async_get_ai
    - Curl_async_get
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *Curl_resolv_get_ai(struct Curl_easy *data,\n
      \                                              uint32_t resolv_id,\n                                               int
      ai_family,\n                                               unsigned int index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_get
      Src: /src/curl/lib/hostip.c:514,1
    - Dst: Curl_async_get_https
      Src: /src/curl/lib/hostip.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - resolv_id
    argTypes:
    - struct Curl_easy*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: Curl_resolv_get_https
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_async_get
    - Curl_async_get_https
    linkageType: ''
    returnType: struct Curl_https_rrinfo
    signature: 'struct Curl_https_rrinfo *

      Curl_resolv_get_https(struct Curl_easy *data, uint32_t resolv_id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_get
      Src: /src/curl/lib/hostip.c:522,1
    - Dst: Curl_async_knows_https
      Src: /src/curl/lib/hostip.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - resolv_id
    argTypes:
    - struct Curl_easy*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 526
    functionName: Curl_resolv_knows_https
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_async_get
    - Curl_async_knows_https
    linkageType: ''
    returnType: bool
    signature: bool Curl_resolv_knows_https(struct Curl_easy *data, uint32_t resolv_id)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Curl_is_ipaddr
      Src: /src/curl/lib/hostip.c:555,1
    - Dst: Curl_resolv_announce_start
      Src: /src/curl/lib/hostip.c:558,1
    - Dst: Curl_str2addr
      Src: /src/curl/lib/hostip.c:562,1
    - Dst: strlen
      Src: /src/curl/lib/hostip.c:567,1
    - Dst: curl_strequal
      Src: /src/curl/lib/hostip.c:568,1
    - Dst: curl_strequal
      Src: /src/curl/lib/hostip.c:569,1
    - Dst: tailmatch
      Src: /src/curl/lib/hostip.c:570,1
    - Dst: STRCONST
      Src: /src/curl/lib/hostip.c:570,1
    - Dst: tailmatch
      Src: /src/curl/lib/hostip.c:571,1
    - Dst: STRCONST
      Src: /src/curl/lib/hostip.c:571,1
    - Dst: Curl_resolv_announce_start
      Src: /src/curl/lib/hostip.c:572,1
    - Dst: get_localhost
      Src: /src/curl/lib/hostip.c:575,1
    - Dst: Curl_is_ipaddr
      Src: /src/curl/lib/hostip.c:582,1
    - Dst: Curl_resolv_announce_start
      Src: /src/curl/lib/hostip.c:583,1
    - Dst: hostip_async_new
      Src: /src/curl/lib/hostip.c:587,1
    - Dst: Curl_doh
      Src: /src/curl/lib/hostip.c:594,1
    - Dst: can_resolve_dns_queries
      Src: /src/curl/lib/hostip.c:602,1
    - Dst: RESOLV_FAIL
      Src: /src/curl/lib/hostip.c:603,1
    - Dst: hostip_async_new
      Src: /src/curl/lib/hostip.c:610,1
    - Dst: Curl_async_getaddrinfo
      Src: /src/curl/lib/hostip.c:617,1
    - Dst: hostip_resolv_take_result
      Src: /src/curl/lib/hostip.c:620,1
    - Dst: Curl_resolv_announce_start
      Src: /src/curl/lib/hostip.c:627,1
    - Dst: Curl_sync_getaddrinfo
      Src: /src/curl/lib/hostip.c:630,1
    - Dst: RESOLV_FAIL
      Src: /src/curl/lib/hostip.c:632,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:639,1
    - Dst: Curl_dnscache_mk_entry
      Src: /src/curl/lib/hostip.c:640,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/hostip.c:648,1
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/hostip.c:650,1
    - Dst: Curl_async_destroy
      Src: /src/curl/lib/hostip.c:660,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 97
    argCount: 10
    argNames:
    - data
    - dns_queries
    - hostname
    - port
    - transport
    - for_proxy
    - timeout_ms
    - allowDOH
    - presolv_id
    - pdns
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - char*
    - uint16_t
    - uint8_t
    - bool
    - timediff_t
    - bool
    - uint32_t*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 665
    functionName: hostip_resolv_start
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - hostip_async_new
    - tailmatch
    - Curl_async_getaddrinfo
    - Curl_dnscache_mk_entry
    - RESOLV_FAIL
    - Curl_sync_getaddrinfo
    - can_resolve_dns_queries
    - Curl_doh
    - hostip_resolv_take_result
    - Curl_freeaddrinfo
    - Curl_is_ipaddr
    - curl_strequal
    - Curl_str2addr
    - STRCONST
    - Curl_dns_entry_unlink
    - get_localhost
    - strlen
    - Curl_resolv_announce_start
    - Curl_async_destroy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode hostip_resolv_start(struct Curl_easy *data,\n                                    uint8_t
      dns_queries,\n                                    const char *hostname,\n                                    uint16_t
      port,\n                                    uint8_t transport,\n                                    bool
      for_proxy,\n                                    timediff_t timeout_ms,\n                                    bool
      allowDOH,\n                                    uint32_t *presolv_id,\n                                    struct
      Curl_dns_entry **pdns)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RESOLV_FAIL
      Src: /src/curl/lib/hostip.c:679,1
    - Dst: strlen
      Src: /src/curl/lib/hostip.c:691,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:692,1
    - Dst: curl_strequal
      Src: /src/curl/lib/hostip.c:694,1
    - Dst: curl_strequal
      Src: /src/curl/lib/hostip.c:695,1
    - Dst: failf
      Src: /src/curl/lib/hostip.c:696,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/hostip.c:701,1
    - Dst: Curl_resolv_query_str
      Src: /src/curl/lib/hostip.c:702,1
    - Dst: CURL_DNSQ_IP
      Src: /src/curl/lib/hostip.c:703,1
    - Dst: getenv
      Src: /src/curl/lib/hostip.c:704,1
    - Dst: infof
      Src: /src/curl/lib/hostip.c:705,1
    - Dst: hostip_resolv_failed
      Src: /src/curl/lib/hostip.c:706,1
    - Dst: Curl_dnscache_get
      Src: /src/curl/lib/hostip.c:711,1
    - Dst: infof
      Src: /src/curl/lib/hostip.c:713,1
    - Dst: infof
      Src: /src/curl/lib/hostip.c:717,1
    - Dst: hostip_resolv_failed
      Src: /src/curl/lib/hostip.c:718,1
    - Dst: hostip_resolv_start
      Src: /src/curl/lib/hostip.c:723,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/hostip.c:730,1
    - Dst: IS_RESOLV_FAIL
      Src: /src/curl/lib/hostip.c:731,1
    - Dst: Curl_dnscache_add_negative
      Src: /src/curl/lib/hostip.c:733,1
    - Dst: failf
      Src: /src/curl/lib/hostip.c:734,1
    - Dst: failf
      Src: /src/curl/lib/hostip.c:737,1
    - Dst: Curl_dnscache_add
      Src: /src/curl/lib/hostip.c:741,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/hostip.c:743,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 10
    argNames:
    - data
    - dns_queries
    - hostname
    - port
    - transport
    - for_proxy
    - timeout_ms
    - allowDOH
    - presolv_id
    - pdns
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - char*
    - uint16_t
    - uint8_t
    - bool
    - timediff_t
    - bool
    - uint32_t*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 667
    functionDepth: 4
    functionLinenumber: 667
    functionLinenumberEnd: 747
    functionName: hostip_resolv
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - hostip_resolv_failed
    - RESOLV_FAIL
    - CURL_DNSQ_IP
    - getenv
    - Curl_dnscache_get
    - hostip_resolv_start
    - Curl_dns_entry_unlink
    - infof
    - IS_RESOLV_FAIL
    - curl_strequal
    - CURL_TRC_DNS
    - Curl_resolv_query_str
    - strlen
    - Curl_dnscache_add_negative
    - Curl_dnscache_add
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode hostip_resolv(struct Curl_easy *data,\n                              uint8_t
      dns_queries,\n                              const char *hostname,\n                              uint16_t
      port,\n                              uint8_t transport,\n                              bool
      for_proxy,\n                              timediff_t timeout_ms,\n                              bool
      allowDOH,\n                              uint32_t *presolv_id,\n                              struct
      Curl_dns_entry **pdns)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:758,1
    - Dst: hostip_resolv
      Src: /src/curl/lib/hostip.c:761,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:766,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:770,1
    - Dst: Curl_async_await
      Src: /src/curl/lib/hostip.c:771,1
    - Dst: Curl_resolv_destroy
      Src: /src/curl/lib/hostip.c:772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 6
    argNames:
    - data
    - dns_queries
    - hostname
    - port
    - transport
    - pdns
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - char*
    - uint16_t
    - uint8_t
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 749
    functionDepth: 5
    functionLinenumber: 749
    functionLinenumberEnd: 779
    functionName: Curl_resolv_blocking
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_resolv_destroy
    - Curl_async_await
    - hostip_resolv
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_resolv_blocking(struct Curl_easy *data,\n                              uint8_t
      dns_queries,\n                              const char *hostname,\n                              uint16_t
      port,\n                              uint8_t transport,\n                              struct
      Curl_dns_entry **pdns)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/curl/lib/hostip.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 791
    functionName: alarmfunc
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: CURL_NORETURN
    signature: CURL_NORETURN alarmfunc(int sig)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:816,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:817,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:818,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:820,1
    - Dst: failf
      Src: /src/curl/lib/hostip.c:828,1
    - Dst: curl_simple_lock_lock
      Src: /src/curl/lib/hostip.c:839,1
    - Dst: sigsetjmp
      Src: /src/curl/lib/hostip.c:841,1
    - Dst: failf
      Src: /src/curl/lib/hostip.c:843,1
    - Dst: sigaction
      Src: /src/curl/lib/hostip.c:853,1
    - Dst: sigaction
      Src: /src/curl/lib/hostip.c:862,1
    - Dst: signal
      Src: /src/curl/lib/hostip.c:866,1
    - Dst: alarm
      Src: /src/curl/lib/hostip.c:872,1
    - Dst: curlx_sltoui
      Src: /src/curl/lib/hostip.c:872,1
    - Dst: hostip_resolv
      Src: /src/curl/lib/hostip.c:877,1
    - Dst: alarm
      Src: /src/curl/lib/hostip.c:883,1
    - Dst: sigaction
      Src: /src/curl/lib/hostip.c:889,1
    - Dst: signal
      Src: /src/curl/lib/hostip.c:894,1
    - Dst: curl_simple_lock_unlock
      Src: /src/curl/lib/hostip.c:898,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/hostip.c:904,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/hostip.c:904,1
    - Dst: alarm
      Src: /src/curl/lib/hostip.c:916,1
    - Dst: failf
      Src: /src/curl/lib/hostip.c:918,1
    - Dst: alarm
      Src: /src/curl/lib/hostip.c:921,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 9
    argNames:
    - data
    - dns_queries
    - hostname
    - port
    - transport
    - for_proxy
    - timeout_ms
    - presolv_id
    - entry
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - char*
    - uint16_t
    - uint8_t
    - bool
    - timediff_t
    - uint32_t*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 793
    functionDepth: 5
    functionLinenumber: 793
    functionLinenumberEnd: 925
    functionName: resolv_alarm_timeout
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - failf
    - DEBUGASSERT
    - sigaction
    - curlx_sltoui
    - curl_simple_lock_unlock
    - signal
    - curl_simple_lock_lock
    - sigsetjmp
    - alarm
    - curlx_ptimediff_ms
    - hostip_resolv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode resolv_alarm_timeout(struct Curl_easy *data,\n                                     uint8_t
      dns_queries,\n                                     const char *hostname,\n                                     uint16_t
      port,\n                                     uint8_t transport,\n                                     bool
      for_proxy,\n                                     timediff_t timeout_ms,\n                                     uint32_t
      *presolv_id,\n                                     struct Curl_dns_entry **entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hostip.c:938,1
    - Dst: Curl_unix2addr
      Src: /src/curl/lib/hostip.c:941,1
    - Dst: failf
      Src: /src/curl/lib/hostip.c:945,1
    - Dst: Curl_dnscache_mk_entry
      Src: /src/curl/lib/hostip.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - data
    - unix_path
    - abstract_path
    - pdns
    argTypes:
    - struct Curl_easy*
    - char*
    - bool
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 953
    functionName: resolv_unix
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_unix2addr
    - failf
    - Curl_dnscache_mk_entry
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode resolv_unix(struct Curl_easy *data,\n                            const
      char *unix_path,\n                            bool abstract_path,\n                            struct
      Curl_dns_entry **pdns)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: resolv_unix
      Src: /src/curl/lib/hostip.c:996,1
    - Dst: hostip_resolv_failed
      Src: /src/curl/lib/hostip.c:999,1
    - Dst: Curl_doh_wanted
      Src: /src/curl/lib/hostip.c:1007,1
    - Dst: resolv_alarm_timeout
      Src: /src/curl/lib/hostip.c:1008,1
    - Dst: infof
      Src: /src/curl/lib/hostip.c:1016,1
    - Dst: hostip_resolv
      Src: /src/curl/lib/hostip.c:1019,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 8
    argNames:
    - data
    - peer
    - dns_queries
    - transport
    - for_proxy
    - timeout_ms
    - presolv_id
    - pdns
    argTypes:
    - struct Curl_easy*
    - struct Curl_peer*
    - uint8_t
    - uint8_t
    - bool
    - timediff_t
    - uint32_t*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 976
    functionDepth: 6
    functionLinenumber: 976
    functionLinenumberEnd: 1022
    functionName: Curl_resolv
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - resolv_unix
    - resolv_alarm_timeout
    - hostip_resolv_failed
    - Curl_doh_wanted
    - infof
    - hostip_resolv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_resolv(struct Curl_easy *data,\n                     struct
      Curl_peer *peer,\n                     uint8_t dns_queries,\n                     uint8_t
      transport,\n                     bool for_proxy,\n                     timediff_t
      timeout_ms,\n                     uint32_t *presolv_id,\n                     struct
      Curl_dns_entry **pdns)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - resolv_id
    argTypes:
    - struct Curl_easy*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1035
    functionName: Curl_async_get
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: struct Curl_resolv_async
    signature: "struct Curl_resolv_async *Curl_async_get(struct Curl_easy *data,\n
      \                                        uint32_t resolv_id)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_get
      Src: /src/curl/lib/hostip.c:1040,1
    - Dst: Curl_dnscache_get
      Src: /src/curl/lib/hostip.c:1048,1
    - Dst: infof
      Src: /src/curl/lib/hostip.c:1052,1
    - Dst: Curl_async_shutdown
      Src: /src/curl/lib/hostip.c:1053,1
    - Dst: Curl_async_shutdown
      Src: /src/curl/lib/hostip.c:1057,1
    - Dst: Curl_async_failed
      Src: /src/curl/lib/hostip.c:1058,1
    - Dst: hostip_resolv_take_result
      Src: /src/curl/lib/hostip.c:1061,1
    - Dst: Curl_dnscache_add
      Src: /src/curl/lib/hostip.c:1065,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/hostip.c:1067,1
    - Dst: IS_RESOLV_FAIL
      Src: /src/curl/lib/hostip.c:1069,1
    - Dst: Curl_dnscache_add_negative
      Src: /src/curl/lib/hostip.c:1070,1
    - Dst: failf
      Src: /src/curl/lib/hostip.c:1072,1
    - Dst: failf
      Src: /src/curl/lib/hostip.c:1075,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - data
    - resolv_id
    - pdns
    argTypes:
    - struct Curl_easy*
    - uint32_t
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1037
    functionDepth: 3
    functionLinenumber: 1037
    functionLinenumberEnd: 1079
    functionName: Curl_resolv_take_result
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - hostip_resolv_take_result
    - failf
    - Curl_dnscache_get
    - Curl_async_failed
    - Curl_dns_entry_unlink
    - infof
    - IS_RESOLV_FAIL
    - Curl_async_get
    - Curl_async_shutdown
    - Curl_dnscache_add_negative
    - Curl_dnscache_add
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_resolv_take_result(struct Curl_easy *data, uint32_t
      resolv_id,\n                                 struct Curl_dns_entry **pdns)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_pollset
      Src: /src/curl/lib/hostip.c:1093,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1096
    functionName: Curl_resolv_pollset
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_async_pollset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_resolv_pollset(struct Curl_easy *data,\n                             struct
      easy_pollset *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_destroy
      Src: /src/curl/lib/hostip.c:1106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - data
    - resolv_id
    argTypes:
    - struct Curl_easy*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1110
    functionName: Curl_resolv_destroy
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 1
    functionsReached:
    - Curl_async_destroy
    linkageType: ''
    returnType: void
    signature: void Curl_resolv_destroy(struct Curl_easy *data, uint32_t resolv_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_shutdown
      Src: /src/curl/lib/hostip.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1118
    functionName: Curl_resolv_shutdown_all
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_async_shutdown
    linkageType: ''
    returnType: void
    signature: void Curl_resolv_shutdown_all(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_destroy
      Src: /src/curl/lib/hostip.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1127
    functionName: Curl_resolv_destroy_all
    functionSourceFile: /src/curl/lib/hostip.c
    functionUses: 0
    functionsReached:
    - Curl_async_destroy
    linkageType: ''
    returnType: void
    signature: void Curl_resolv_destroy_all(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: CURL_POPCOUNT64
    functionSourceFile: /src/curl/lib/uint-bset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_POPCOUNT64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: CURL_CTZ64
    functionSourceFile: /src/curl/lib/uint-bset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_CTZ64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/fake_addrinfo.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cahead
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: r_freeaddrinfo
    functionSourceFile: /src/curl/lib/fake_addrinfo.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void r_freeaddrinfo(struct addrinfo *cahead)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - userp
    - status
    - timeouts
    - addr
    argTypes:
    - void*
    - int
    - int
    - struct ares_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: async_addrinfo_cb
    functionSourceFile: /src/curl/lib/fake_addrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void async_addrinfo_cb(void *userp, int status, int timeouts,\n                              struct
      ares_addrinfo *addr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/fake_addrinfo.c:69,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/fake_addrinfo.c:87,1
    - Dst: r_freeaddrinfo
      Src: /src/curl/lib/fake_addrinfo.c:89,1
    - Dst: memcpy
      Src: /src/curl/lib/fake_addrinfo.c:106,1
    - Dst: memcpy
      Src: /src/curl/lib/fake_addrinfo.c:110,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - aihead
    argTypes:
    - struct ares_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 128
    functionName: mk_getaddrinfo
    functionSourceFile: /src/curl/lib/fake_addrinfo.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - strlen
    - memcpy
    - r_freeaddrinfo
    linkageType: ''
    returnType: struct addrinfo
    signature: struct addrinfo *mk_getaddrinfo(const struct ares_addrinfo *aihead)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/fake_addrinfo.c:151,1
    - Dst: memset
      Src: /src/curl/lib/fake_addrinfo.c:155,1
    - Dst: memset
      Src: /src/curl/lib/fake_addrinfo.c:156,1
    - Dst: ares_init_options
      Src: /src/curl/lib/fake_addrinfo.c:165,1
    - Dst: getenv
      Src: /src/curl/lib/fake_addrinfo.c:170,1
    - Dst: ares_set_servers_ports_csv
      Src: /src/curl/lib/fake_addrinfo.c:172,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/fake_addrinfo.c:174,1
    - Dst: ares_destroy
      Src: /src/curl/lib/fake_addrinfo.c:176,1
    - Dst: ares_getaddrinfo
      Src: /src/curl/lib/fake_addrinfo.c:182,1
    - Dst: ares_queue_wait_empty
      Src: /src/curl/lib/fake_addrinfo.c:185,1
    - Dst: mk_getaddrinfo
      Src: /src/curl/lib/fake_addrinfo.c:189,1
    - Dst: ares_freeaddrinfo
      Src: /src/curl/lib/fake_addrinfo.c:191,1
    - Dst: ares_destroy
      Src: /src/curl/lib/fake_addrinfo.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 4
    argNames:
    - node
    - service
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 200
    functionName: r_getaddrinfo
    functionSourceFile: /src/curl/lib/fake_addrinfo.c
    functionUses: 0
    functionsReached:
    - ares_freeaddrinfo
    - curl_mfprintf
    - ares_getaddrinfo
    - mk_getaddrinfo
    - getenv
    - ares_destroy
    - ares_set_servers_ports_csv
    - memset
    - ares_queue_wait_empty
    - ares_init_options
    linkageType: ''
    returnType: int
    signature: "int r_getaddrinfo(const char *node,\n                  const char
      *service,\n                  const struct addrinfo *hints,\n                  struct
      addrinfo **res)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/pingpong.c:51,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/pingpong.c:51,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/pingpong.c:53,1
    - Dst: CURLMIN
      Src: /src/curl/lib/pingpong.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - pp
    argTypes:
    - struct Curl_easy*
    - struct pingpong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: Curl_pp_state_timeleft_ms
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_timeleft_ms
    - CURLMIN
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t Curl_pp_state_timeleft_ms(struct Curl_easy *data,\n                                     struct
      pingpong *pp)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_state_timeleft_ms
      Src: /src/curl/lib/pingpong.c:70,1
    - Dst: failf
      Src: /src/curl/lib/pingpong.c:74,1
    - Dst: Curl_conn_data_pending
      Src: /src/curl/lib/pingpong.c:86,1
    - Dst: Curl_conn_data_pending
      Src: /src/curl/lib/pingpong.c:91,1
    - Dst: Curl_socket_check
      Src: /src/curl/lib/pingpong.c:95,1
    - Dst: Curl_pgrsCheck
      Src: /src/curl/lib/pingpong.c:103,1
    - Dst: failf
      Src: /src/curl/lib/pingpong.c:109,1
    - Dst: struct pingpong*::statemachine
      Src: /src/curl/lib/pingpong.c:113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - data
    - pp
    - block
    - disconnecting
    argTypes:
    - struct Curl_easy*
    - struct pingpong*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 118
    functionName: Curl_pp_statemach
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - Curl_conn_data_pending
    - failf
    - struct pingpong*::statemachine
    - Curl_pgrsCheck
    - Curl_socket_check
    - Curl_pp_state_timeleft_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pp_statemach(struct Curl_easy *data,\n                           struct
      pingpong *pp, bool block,\n                           bool disconnecting)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/pingpong.c:123,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/pingpong.c:127,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/pingpong.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pp
    - pnow
    argTypes:
    - struct pingpong*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: Curl_pp_init
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_pp_init(struct pingpong *pp, const struct curltime *pnow)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/pingpong.c:153,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/pingpong.c:154,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/pingpong.c:155,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/pingpong.c:161,1
    - Dst: curlx_dyn_vaddf
      Src: /src/curl/lib/pingpong.c:162,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/pingpong.c:167,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/pingpong.c:172,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/pingpong.c:173,1
    - Dst: Curl_conn_send
      Src: /src/curl/lib/pingpong.c:175,1
    - Dst: Curl_debug
      Src: /src/curl/lib/pingpong.c:183,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/pingpong.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - data
    - pp
    - fmt
    - args
    argTypes:
    - struct Curl_easy*
    - struct pingpong*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 198
    functionName: Curl_pp_vsendf
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - curlx_dyn_addn
    - DEBUGASSERT
    - curlx_dyn_len
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - curlx_dyn_vaddf
    - Curl_debug
    - Curl_conn_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pp_vsendf(struct Curl_easy *data,\n                        struct
      pingpong *pp,\n                        const char *fmt,\n                        va_list
      args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/pingpong.c:215,1
    - Dst: Curl_pp_vsendf
      Src: /src/curl/lib/pingpong.c:217,1
    - Dst: va_end
      Src: /src/curl/lib/pingpong.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - pp
    - fmt
    argTypes:
    - struct Curl_easy*
    - struct pingpong*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 222
    functionName: Curl_pp_sendf
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - Curl_pp_vsendf
    - va_start
    - va_end
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pp_sendf(struct Curl_easy *data, struct pingpong *pp,\n
      \                      const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_recv
      Src: /src/curl/lib/pingpong.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - data
    - sockindex
    - buffer
    - buflen
    - nread
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: pingpong_read
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - Curl_conn_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pingpong_read(struct Curl_easy *data,\n                              int
      sockindex,\n                              char *buffer,\n                              size_t
      buflen,\n                              size_t *nread)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/pingpong.c:257,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/pingpong.c:260,1
    - Dst: pingpong_read
      Src: /src/curl/lib/pingpong.c:265,1
    - Dst: failf
      Src: /src/curl/lib/pingpong.c:274,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/pingpong.c:278,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/pingpong.c:288,1
    - Dst: memchr
      Src: /src/curl/lib/pingpong.c:289,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/pingpong.c:289,1
    - Dst: Curl_debug
      Src: /src/curl/lib/pingpong.c:296,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/pingpong.c:302,1
    - Dst: struct pingpong*::endofresp
      Src: /src/curl/lib/pingpong.c:306,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/pingpong.c:312,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/pingpong.c:313,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/pingpong.c:321,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/pingpong.c:323,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/pingpong.c:323,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/pingpong.c:325,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 5
    argNames:
    - data
    - sockindex
    - pp
    - code
    - size
    argTypes:
    - struct Curl_easy*
    - int
    - struct pingpong*
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 340
    functionName: Curl_pp_readresp
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - struct pingpong*::endofresp
    - curlx_dyn_addn
    - failf
    - Curl_client_write
    - memchr
    - curlx_dyn_len
    - curlx_dyn_ptr
    - pingpong_read
    - curlx_dyn_reset
    - curlx_dyn_tail
    - Curl_debug
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pp_readresp(struct Curl_easy *data,\n                          int
      sockindex,\n                          struct pingpong *pp,\n                          int
      *code, /* return the server code if done */\n                          size_t
      *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_change
      Src: /src/curl/lib/pingpong.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - pp
    - ps
    argTypes:
    - struct Curl_easy*
    - struct pingpong*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: Curl_pp_pollset
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_change
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pp_pollset(struct Curl_easy *data,\n                         struct
      pingpong *pp,\n                         struct easy_pollset *ps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - pp
    argTypes:
    - struct Curl_easy*
    - struct pingpong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: Curl_pp_needs_flush
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_pp_needs_flush(struct Curl_easy *data,\n                         struct
      pingpong *pp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_needs_flush
      Src: /src/curl/lib/pingpong.c:365,1
    - Dst: Curl_conn_send
      Src: /src/curl/lib/pingpong.c:368,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/pingpong.c:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - data
    - pp
    argTypes:
    - struct Curl_easy*
    - struct pingpong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 388
    functionName: Curl_pp_flushsend
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_pp_needs_flush
    - Curl_conn_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pp_flushsend(struct Curl_easy *data,\n                           struct
      pingpong *pp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/pingpong.c:393,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/pingpong.c:394,1
    - Dst: memset
      Src: /src/curl/lib/pingpong.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pp
    argTypes:
    - struct pingpong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: Curl_pp_disconnect
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_free
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_pp_disconnect(struct pingpong *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/pingpong.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - struct pingpong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: Curl_pp_moredata
    functionSourceFile: /src/curl/lib/pingpong.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_len
    linkageType: ''
    returnType: bool
    signature: bool Curl_pp_moredata(struct pingpong *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: Curl_http2_may_switch
    functionSourceFile: /src/curl/lib/http2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_http2_may_switch(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: Curl_http2_request_upgrade
    functionSourceFile: /src/curl/lib/http2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_http2_request_upgrade(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: Curl_http2_switch
    functionSourceFile: /src/curl/lib/http2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_http2_switch(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: Curl_h2_http_1_1_error
    functionSourceFile: /src/curl/lib/http2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_h2_http_1_1_error(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/file.c:87,1
    - Dst: curlx_close
      Src: /src/curl/lib/file.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct FILEPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: file_cleanup
    functionSourceFile: /src/curl/lib/file.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_close
    linkageType: ''
    returnType: void
    signature: void file_cleanup(struct FILEPROTO *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_cleanup
      Src: /src/curl/lib/file.c:100,1
    - Dst: curlx_free
      Src: /src/curl/lib/file.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: file_easy_dtor
    functionSourceFile: /src/curl/lib/file.c
    functionUses: 0
    functionsReached:
    - file_cleanup
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void file_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/file.c:110,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/file.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: file_setup_connection
    functionSourceFile: /src/curl/lib/file.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    - Curl_meta_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode file_setup_connection(struct Curl_easy *data,\n                                      struct
      connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/file.c:123,1
    - Dst: file_cleanup
      Src: /src/curl/lib/file.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: file_done
    functionSourceFile: /src/curl/lib/file.c
    functionUses: 0
    functionsReached:
    - file_cleanup
    - Curl_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode file_done(struct Curl_easy *data,\n                          CURLcode
      status, bool premature)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/file.c:141,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/file.c:162,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/file.c:196,1
    - Dst: curlx_open
      Src: /src/curl/lib/file.c:200,1
    - Dst: memchr
      Src: /src/curl/lib/file.c:203,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/file.c:205,1
    - Dst: strchr
      Src: /src/curl/lib/file.c:222,1
    - Dst: curlx_open
      Src: /src/curl/lib/file.c:224,1
    - Dst: curlx_open
      Src: /src/curl/lib/file.c:229,1
    - Dst: curlx_open
      Src: /src/curl/lib/file.c:233,1
    - Dst: curlx_free
      Src: /src/curl/lib/file.c:237,1
    - Dst: failf
      Src: /src/curl/lib/file.c:242,1
    - Dst: file_done
      Src: /src/curl/lib/file.c:243,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 249
    functionName: file_connect
    functionSourceFile: /src/curl/lib/file.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - file_done
    - Curl_urldecode
    - failf
    - memchr
    - Curl_meta_get
    - curlx_free
    - curlx_open
    - strchr
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode file_connect(struct Curl_easy *data, bool *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_done
      Src: /src/curl/lib/file.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: file_disconnect
    functionSourceFile: /src/curl/lib/file.c
    functionUses: 0
    functionsReached:
    - file_done
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode file_disconnect(struct Curl_easy *data,\n                                struct
      connectdata *conn,\n                                bool dead_connection)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/lib/file.c:269,1
    - Dst: curlx_open
      Src: /src/curl/lib/file.c:297,1
    - Dst: curlx_open
      Src: /src/curl/lib/file.c:301,1
    - Dst: curlx_open
      Src: /src/curl/lib/file.c:303,1
    - Dst: failf
      Src: /src/curl/lib/file.c:306,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/file.c:312,1
    - Dst: curlx_fstat
      Src: /src/curl/lib/file.c:316,1
    - Dst: curlx_close
      Src: /src/curl/lib/file.c:317,1
    - Dst: failf
      Src: /src/curl/lib/file.c:318,1
    - Dst: Curl_multi_xfer_ulbuf_borrow
      Src: /src/curl/lib/file.c:324,1
    - Dst: Curl_client_read
      Src: /src/curl/lib/file.c:333,1
    - Dst: write
      Src: /src/curl/lib/file.c:359,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/file.c:360,1
    - Dst: Curl_pgrs_upload_inc
      Src: /src/curl/lib/file.c:364,1
    - Dst: Curl_pgrsCheck
      Src: /src/curl/lib/file.c:366,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/file.c:369,1
    - Dst: curlx_close
      Src: /src/curl/lib/file.c:372,1
    - Dst: Curl_multi_xfer_ulbuf_release
      Src: /src/curl/lib/file.c:373,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 2
    argNames:
    - data
    - file
    argTypes:
    - struct Curl_easy*
    - struct FILEPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 376
    functionName: file_upload
    functionSourceFile: /src/curl/lib/file.c
    functionUses: 0
    functionsReached:
    - curlx_close
    - failf
    - Curl_pgrsCheck
    - curlx_open
    - Curl_pgrsSetUploadSize
    - curlx_fstat
    - strchr
    - Curl_multi_xfer_ulbuf_borrow
    - Curl_client_read
    - write
    - curlx_sztouz
    - Curl_pgrs_upload_inc
    - Curl_multi_xfer_ulbuf_release
    - Curl_pgrsUpdate
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode file_upload(struct Curl_easy *data,\n                            struct
      FILEPROTO *file)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/file.c:393,1
    - Dst: file_upload
      Src: /src/curl/lib/file.c:408,1
    - Dst: curlx_fstat
      Src: /src/curl/lib/file.c:414,1
    - Dst: S_ISDIR
      Src: /src/curl/lib/file.c:415,1
    - Dst: Curl_meets_timecondition
      Src: /src/curl/lib/file.c:423,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/file.c:435,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/file.c:437,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/file.c:441,1
    - Dst: curlx_gmtime
      Src: /src/curl/lib/file.c:448,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/file.c:454,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/file.c:463,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/file.c:466,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/file.c:470,1
    - Dst: Curl_range
      Src: /src/curl/lib/file.c:476,1
    - Dst: failf
      Src: /src/curl/lib/file.c:484,1
    - Dst: failf
      Src: /src/curl/lib/file.c:497,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/file.c:516,1
    - Dst: S_ISDIR
      Src: /src/curl/lib/file.c:519,1
    - Dst: curl_lseek
      Src: /src/curl/lib/file.c:521,1
    - Dst: Curl_multi_xfer_buf_borrow
      Src: /src/curl/lib/file.c:529,1
    - Dst: S_ISDIR
      Src: /src/curl/lib/file.c:533,1
    - Dst: curlx_sotouz
      Src: /src/curl/lib/file.c:541,1
    - Dst: read
      Src: /src/curl/lib/file.c:546,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/file.c:557,1
    - Dst: Curl_pgrsCheck
      Src: /src/curl/lib/file.c:561,1
    - Dst: opendir
      Src: /src/curl/lib/file.c:568,1
    - Dst: readdir
      Src: /src/curl/lib/file.c:576,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/file.c:578,1
    - Dst: strlen
      Src: /src/curl/lib/file.c:579,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/file.c:582,1
    - Dst: closedir
      Src: /src/curl/lib/file.c:587,1
    - Dst: failf
      Src: /src/curl/lib/file.c:590,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/file.c:596,1
    - Dst: Curl_multi_xfer_buf_release
      Src: /src/curl/lib/file.c:599,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 124
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 601
    functionName: file_do
    functionSourceFile: /src/curl/lib/file.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - Curl_multi_xfer_buf_borrow
    - curlx_sotouz
    - Curl_meta_get
    - S_ISDIR
    - curlx_fstat
    - Curl_range
    - opendir
    - Curl_pgrsUpdate
    - readdir
    - read
    - Curl_client_write
    - Curl_pgrsCheck
    - closedir
    - curl_lseek
    - Curl_meets_timecondition
    - failf
    - Curl_pgrsSetDownloadSize
    - Curl_multi_xfer_buf_release
    - curlx_gmtime
    - file_upload
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode file_do(struct Curl_easy *data, bool *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Curl_bufref_dup
    functionSourceFile: /src/curl/lib/bufref.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_bufref_dup(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/thrdqueue.c:71,1
    - Dst: curlx_now
      Src: /src/curl/lib/thrdqueue.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - tqueue
    - item
    - description
    - timeout_ms
    argTypes:
    - struct curl_thrdq*
    - void*
    - char*
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 83
    functionName: thrdq_item_create
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - curlx_now
    - curlx_calloc
    linkageType: ''
    returnType: struct thrdq_item
    signature: "struct thrdq_item *thrdq_item_create(struct curl_thrdq *tqueue,\n
      \                                           void *item,\n                                            const
      char *description,\n                                            timediff_t timeout_ms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct thrdq_item*::fn_free
      Src: /src/curl/lib/thrdqueue.c:88,1
    - Dst: curlx_free
      Src: /src/curl/lib/thrdqueue.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - qitem
    argTypes:
    - struct thrdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: thrdq_item_destroy
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - struct thrdq_item*::fn_free
    linkageType: ''
    returnType: void
    signature: void thrdq_item_destroy(struct thrdq_item *qitem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: thrdq_item_destroy
      Src: /src/curl/lib/thrdqueue.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - user_data
    - elem
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: thrdq_item_list_dtor
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - thrdq_item_destroy
    linkageType: ''
    returnType: void
    signature: void thrdq_item_list_dtor(void *user_data, void *elem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdqueue.c:107,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdqueue.c:111,1
    - Dst: curlx_now
      Src: /src/curl/lib/thrdqueue.c:113,1
    - Dst: Curl_node_take_elem
      Src: /src/curl/lib/thrdqueue.c:116,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/thrdqueue.c:118,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/thrdqueue.c:121,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdqueue.c:125,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdqueue.c:136,1
    - Dst: fn_event
      Src: /src/curl/lib/thrdqueue.c:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - user_data
    - pdescription
    - ptimeout_ms
    argTypes:
    - void*
    - char**
    - timediff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 141
    functionName: thrdq_tpool_take
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - Curl_node_take_elem
    - Curl_mutex_acquire
    - curlx_now
    - Curl_llist_append
    - Curl_llist_head
    - fn_event
    - Curl_mutex_release
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: void
    signature: "void *thrdq_tpool_take(void *user_data, const char **pdescription,\n
      \                             timediff_t *ptimeout_ms)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: thrdq_item_destroy
      Src: /src/curl/lib/thrdqueue.c:151,1
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdqueue.c:155,1
    - Dst: thrdq_item_destroy
      Src: /src/curl/lib/thrdqueue.c:157,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdqueue.c:160,1
    - Dst: Curl_node_llist
      Src: /src/curl/lib/thrdqueue.c:160,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/thrdqueue.c:161,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdqueue.c:165,1
    - Dst: fn_event
      Src: /src/curl/lib/thrdqueue.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - item
    - user_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 169
    functionName: thrdq_tpool_return
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_mutex_acquire
    - Curl_llist_append
    - fn_event
    - thrdq_item_destroy
    - Curl_mutex_release
    - Curl_node_llist
    linkageType: ''
    returnType: void
    signature: void thrdq_tpool_return(void *item, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct thrdq_item*::fn_process
      Src: /src/curl/lib/thrdqueue.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: thrdq_tpool_process
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - struct thrdq_item*::fn_process
    linkageType: ''
    returnType: void
    signature: void thrdq_tpool_process(void *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdqueue.c:179,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdqueue.c:182,1
    - Dst: Curl_thrdpool_destroy
      Src: /src/curl/lib/thrdqueue.c:183,1
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdqueue.c:186,1
    - Dst: Curl_llist_destroy
      Src: /src/curl/lib/thrdqueue.c:189,1
    - Dst: Curl_llist_destroy
      Src: /src/curl/lib/thrdqueue.c:190,1
    - Dst: curlx_free
      Src: /src/curl/lib/thrdqueue.c:191,1
    - Dst: Curl_cond_destroy
      Src: /src/curl/lib/thrdqueue.c:192,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdqueue.c:194,1
    - Dst: Curl_mutex_destroy
      Src: /src/curl/lib/thrdqueue.c:195,1
    - Dst: curlx_free
      Src: /src/curl/lib/thrdqueue.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - tqueue
    - locked
    - join
    argTypes:
    - struct curl_thrdq*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 197
    functionName: thrdq_unlink
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_mutex_acquire
    - Curl_cond_destroy
    - Curl_thrdpool_destroy
    - curlx_free
    - Curl_mutex_destroy
    - Curl_mutex_release
    - Curl_llist_destroy
    linkageType: ''
    returnType: void
    signature: void thrdq_unlink(struct curl_thrdq *tqueue, bool locked, bool join)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/thrdqueue.c:213,1
    - Dst: Curl_mutex_init
      Src: /src/curl/lib/thrdqueue.c:217,1
    - Dst: Curl_cond_init
      Src: /src/curl/lib/thrdqueue.c:218,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/thrdqueue.c:219,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/thrdqueue.c:220,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/thrdqueue.c:227,1
    - Dst: Curl_thrdpool_create
      Src: /src/curl/lib/thrdqueue.c:231,1
    - Dst: thrdq_unlink
      Src: /src/curl/lib/thrdqueue.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 10
    argNames:
    - ptqueue
    - name
    - max_len
    - min_threads
    - max_threads
    - idle_time_ms
    - fn_free
    - fn_process
    - fn_event
    - user_data
    argTypes:
    - struct curl_thrdq**
    - char*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - Curl_thrdq_item_free_cb*
    - Curl_thrdq_item_process_cb*
    - Curl_thrdq_ev_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 246
    functionName: Curl_thrdq_create
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 1
    functionsReached:
    - Curl_thrdpool_create
    - Curl_cond_init
    - curlx_strdup
    - thrdq_unlink
    - Curl_llist_init
    - curlx_calloc
    - Curl_mutex_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_thrdq_create(struct curl_thrdq **ptqueue,\n                           const
      char *name,\n                           uint32_t max_len,\n                           uint32_t
      min_threads,\n                           uint32_t max_threads,\n                           uint32_t
      idle_time_ms,\n                           Curl_thrdq_item_free_cb *fn_free,\n
      \                          Curl_thrdq_item_process_cb *fn_process,\n                           Curl_thrdq_ev_cb
      *fn_event,\n                           void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdqueue.c:250,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdqueue.c:251,1
    - Dst: thrdq_unlink
      Src: /src/curl/lib/thrdqueue.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tqueue
    - join
    argTypes:
    - struct curl_thrdq*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: Curl_thrdq_destroy
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 1
    functionsReached:
    - Curl_mutex_acquire
    - DEBUGASSERT
    - thrdq_unlink
    linkageType: ''
    returnType: void
    signature: void Curl_thrdq_destroy(struct curl_thrdq *tqueue, bool join)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdqueue.c:262,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdqueue.c:264,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdqueue.c:274,1
    - Dst: thrdq_item_create
      Src: /src/curl/lib/thrdqueue.c:275,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/thrdqueue.c:282,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdqueue.c:283,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdqueue.c:288,1
    - Dst: Curl_thrdpool_signal
      Src: /src/curl/lib/thrdqueue.c:294,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - tqueue
    - item
    - description
    - timeout_ms
    argTypes:
    - struct curl_thrdq*
    - void*
    - char*
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 296
    functionName: Curl_thrdq_send
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 1
    functionsReached:
    - Curl_llist_count
    - thrdq_item_create
    - DEBUGASSERT
    - Curl_mutex_acquire
    - Curl_llist_append
    - Curl_thrdpool_signal
    - Curl_mutex_release
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_thrdq_send(struct curl_thrdq *tqueue, void *item,\n
      \                        const char *description, timediff_t timeout_ms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdqueue.c:304,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdqueue.c:306,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdqueue.c:311,1
    - Dst: Curl_node_take_elem
      Src: /src/curl/lib/thrdqueue.c:313,1
    - Dst: thrdq_item_destroy
      Src: /src/curl/lib/thrdqueue.c:316,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdqueue.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - tqueue
    - pitem
    argTypes:
    - struct curl_thrdq*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 322
    functionName: Curl_thrdq_recv
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 1
    functionsReached:
    - Curl_node_take_elem
    - DEBUGASSERT
    - Curl_mutex_acquire
    - Curl_llist_head
    - thrdq_item_destroy
    - Curl_mutex_release
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_thrdq_recv(struct curl_thrdq *tqueue, void **pitem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdqueue.c:331,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/thrdqueue.c:332,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/thrdqueue.c:333,1
    - Dst: fn_match
      Src: /src/curl/lib/thrdqueue.c:334,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/thrdqueue.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - llist
    - fn_match
    - match_data
    argTypes:
    - struct Curl_llist*
    - Curl_thrdq_item_match_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: thrdq_llist_clean_matches
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - Curl_node_remove
    - fn_match
    linkageType: ''
    returnType: void
    signature: "void thrdq_llist_clean_matches(struct Curl_llist *llist,\n                                      Curl_thrdq_item_match_cb
      *fn_match,\n                                      void *match_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdqueue.c:343,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdqueue.c:345,1
    - Dst: thrdq_llist_clean_matches
      Src: /src/curl/lib/thrdqueue.c:348,1
    - Dst: thrdq_llist_clean_matches
      Src: /src/curl/lib/thrdqueue.c:349,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdqueue.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - tqueue
    - fn_match
    - match_data
    argTypes:
    - struct curl_thrdq*
    - Curl_thrdq_item_match_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 352
    functionName: Curl_thrdq_clear
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - Curl_mutex_acquire
    - Curl_mutex_release
    - thrdq_llist_clean_matches
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_thrdq_clear(struct curl_thrdq *tqueue,\n                      Curl_thrdq_item_match_cb
      *fn_match,\n                      void *match_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_thrdpool_await_idle
      Src: /src/curl/lib/thrdqueue.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tqueue
    - timeout_ms
    argTypes:
    - struct curl_thrdq*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: thrdq_await_done
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 1
    functionsReached:
    - Curl_thrdpool_await_idle
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST thrdq_await_done(struct curl_thrdq *tqueue,\n                                   uint32_t
      timeout_ms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdqueue.c:374,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdqueue.c:376,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdqueue.c:377,1
    - Dst: Curl_thrdpool_set_props
      Src: /src/curl/lib/thrdqueue.c:379,1
    - Dst: Curl_thrdpool_signal
      Src: /src/curl/lib/thrdqueue.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - tqueue
    - max_len
    - min_threads
    - max_threads
    - idle_time_ms
    argTypes:
    - struct curl_thrdq*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 384
    functionName: Curl_thrdq_set_props
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_thrdpool_set_props
    - Curl_mutex_acquire
    - Curl_thrdpool_signal
    - Curl_mutex_release
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_thrdq_set_props(struct curl_thrdq *tqueue,\n                              uint32_t
      max_len,\n                              uint32_t min_threads,\n                              uint32_t
      max_threads,\n                              uint32_t idle_time_ms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/thrdqueue.c:391,1
    - Dst: Curl_thrdpool_trace
      Src: /src/curl/lib/thrdqueue.c:395,1
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdqueue.c:396,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdqueue.c:397,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdqueue.c:398,1
    - Dst: Curl_trc_feat_infof
      Src: /src/curl/lib/thrdqueue.c:399,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdqueue.c:401,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/thrdqueue.c:401,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/thrdqueue.c:402,1
    - Dst: Curl_trc_feat_infof
      Src: /src/curl/lib/thrdqueue.c:403,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdqueue.c:406,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/thrdqueue.c:406,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/thrdqueue.c:407,1
    - Dst: Curl_trc_feat_infof
      Src: /src/curl/lib/thrdqueue.c:408,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdqueue.c:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - tqueue
    - data
    argTypes:
    - struct curl_thrdq*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 413
    functionName: Curl_thrdq_trace
    functionSourceFile: /src/curl/lib/thrdqueue.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_mutex_acquire
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - Curl_trc_feat_infof
    - Curl_mutex_release
    - Curl_trc_ft_is_verbose
    - Curl_thrdpool_trace
    linkageType: ''
    returnType: void
    signature: "void Curl_thrdq_trace(struct curl_thrdq *tqueue,\n                      struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/fileinfo.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: Curl_fileinfo_alloc
    functionSourceFile: /src/curl/lib/fileinfo.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    linkageType: ''
    returnType: struct fileinfo
    signature: struct fileinfo *Curl_fileinfo_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/fileinfo.c:40,1
    - Dst: curlx_free
      Src: /src/curl/lib/fileinfo.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - finfo
    argTypes:
    - struct fileinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: Curl_fileinfo_cleanup
    functionSourceFile: /src/curl/lib/fileinfo.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void Curl_fileinfo_cleanup(struct fileinfo *finfo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/noproxy.c:60,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/noproxy.c:62,1
    - Dst: htonl
      Src: /src/curl/lib/noproxy.c:67,1
    - Dst: htonl
      Src: /src/curl/lib/noproxy.c:68,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/noproxy.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ipv4
    - network
    - bits
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: cidr4_match
    functionSourceFile: /src/curl/lib/noproxy.c
    functionUses: 1
    functionsReached:
    - htonl
    - curl_mfprintf
    - curlx_inet_pton
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST cidr4_match(const char *ipv4,    /* 1.2.3.4 address */\n
      \                         const char *network, /* 1.2.3.4 address */\n                          unsigned
      int bits)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/noproxy.c:101,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/noproxy.c:103,1
    - Dst: memcmp
      Src: /src/curl/lib/noproxy.c:105,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - ipv6
    - network
    - bits
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 117
    functionName: cidr6_match
    functionSourceFile: /src/curl/lib/noproxy.c
    functionUses: 1
    functionsReached:
    - memcmp
    - curlx_inet_pton
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST cidr6_match(const char *ipv6, const char *network,\n                          unsigned
      int bits)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/noproxy.c:145,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/noproxy.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - token
    - tokenlen
    - name
    - namelen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 153
    functionName: match_host
    functionSourceFile: /src/curl/lib/noproxy.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: "bool match_host(const char *token, size_t tokenlen,\n                       const
      char *name, size_t namelen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/noproxy.c:165,1
    - Dst: strchr
      Src: /src/curl/lib/noproxy.c:168,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/noproxy.c:173,1
    - Dst: cidr6_match
      Src: /src/curl/lib/noproxy.c:180,1
    - Dst: cidr4_match
      Src: /src/curl/lib/noproxy.c:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - type
    - token
    - tokenlen
    - name
    argTypes:
    - int
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 183
    functionName: match_ip
    functionSourceFile: /src/curl/lib/noproxy.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cidr6_match
    - cidr4_match
    - curlx_str_number
    - strchr
    linkageType: ''
    returnType: bool
    signature: "bool match_ip(int type, const char *token, size_t tokenlen,\n                     const
      char *name)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/noproxy.c:208,1
    - Dst: strlen
      Src: /src/curl/lib/noproxy.c:214,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/noproxy.c:215,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/noproxy.c:218,1
    - Dst: if
      Src: /src/curl/lib/noproxy.c:223,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/noproxy.c:232,1
    - Dst: ISBLANK
      Src: /src/curl/lib/noproxy.c:236,1
    - Dst: match_host
      Src: /src/curl/lib/noproxy.c:244,1
    - Dst: match_ip
      Src: /src/curl/lib/noproxy.c:246,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/noproxy.c:253,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 2
    argNames:
    - name
    - no_proxy
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 261
    functionName: Curl_check_noproxy
    functionSourceFile: /src/curl/lib/noproxy.c
    functionUses: 1
    functionsReached:
    - match_host
    - match_ip
    - curlx_str_passblanks
    - strcmp
    - curlx_inet_pton
    - strlen
    - ISBLANK
    - if
    linkageType: ''
    returnType: bool
    signature: bool Curl_check_noproxy(const char *name, const char *no_proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: CURLM_NTFY
    functionSourceFile: /src/curl/lib/multi_ntfy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLM_NTFY(d, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: CURL_MNTFY_HAS_ENTRIES
    functionSourceFile: /src/curl/lib/multi_ntfy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_MNTFY_HAS_ENTRIES(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - host
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: IDN2_LOOKUP
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDN2_LOOKUP(name, host, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - host
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: IDN2_LOOKUP
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDN2_LOOKUP(name, host, flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: iconv_open
      Src: /src/curl/lib/idn.c:56,1
    - Dst: nl_langinfo
      Src: /src/curl/lib/idn.c:56,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/idn.c:59,1
    - Dst: iconv
      Src: /src/curl/lib/idn.c:61,1
    - Dst: iconv_close
      Src: /src/curl/lib/idn.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - in
    - inlen
    - out
    - outlen
    argTypes:
    - char*
    - size_t
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: iconv_to_utf8
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - iconv_close
    - CURL_UNCONST
    - iconv_open
    - iconv
    - nl_langinfo
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode iconv_to_utf8(const char *in, size_t inlen,\n                              char
      **out, size_t *outlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/idn.c:86,1
    - Dst: iconv_to_utf8
      Src: /src/curl/lib/idn.c:91,1
    - Dst: uidna_openUTS46
      Src: /src/curl/lib/idn.c:95,1
    - Dst: U_FAILURE
      Src: /src/curl/lib/idn.c:97,1
    - Dst: uidna_nameToASCII_UTF8
      Src: /src/curl/lib/idn.c:100,1
    - Dst: uidna_close
      Src: /src/curl/lib/idn.c:102,1
    - Dst: U_FAILURE
      Src: /src/curl/lib/idn.c:103,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/idn.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 116
    functionName: mac_idn_to_ascii
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - uidna_openUTS46
    - curlx_strdup
    - iconv_to_utf8
    - U_FAILURE
    - strlen
    - uidna_close
    - uidna_nameToASCII_UTF8
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mac_idn_to_ascii(const char *in, char **out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/idn.c:120,1
    - Dst: uidna_openUTS46
      Src: /src/curl/lib/idn.c:123,1
    - Dst: U_FAILURE
      Src: /src/curl/lib/idn.c:125,1
    - Dst: uidna_nameToUnicodeUTF8
      Src: /src/curl/lib/idn.c:128,1
    - Dst: uidna_close
      Src: /src/curl/lib/idn.c:130,1
    - Dst: U_FAILURE
      Src: /src/curl/lib/idn.c:131,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/idn.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 141
    functionName: mac_ascii_to_idn
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - uidna_openUTS46
    - curlx_strdup
    - uidna_nameToUnicodeUTF8
    - U_FAILURE
    - strlen
    - uidna_close
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mac_ascii_to_idn(const char *in, char **out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WideCharToMultiByte
      Src: /src/curl/lib/idn.c:152,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/idn.c:155,1
    - Dst: WideCharToMultiByte
      Src: /src/curl/lib/idn.c:157,1
    - Dst: curlx_free
      Src: /src/curl/lib/idn.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - str_w
    - chars
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 165
    functionName: idn_curlx_convert_wchar_to_UTF8
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - curlx_free
    - WideCharToMultiByte
    linkageType: ''
    returnType: char
    signature: char *idn_curlx_convert_wchar_to_UTF8(const wchar_t *str_w, int chars)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/curl/lib/idn.c:175,1
    - Dst: IdnToAscii
      Src: /src/curl/lib/idn.c:178,1
    - Dst: idn_curlx_convert_wchar_to_UTF8
      Src: /src/curl/lib/idn.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 191
    functionName: win32_idn_to_ascii
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - IdnToAscii
    - idn_curlx_convert_wchar_to_UTF8
    - MultiByteToWideChar
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode win32_idn_to_ascii(const char *in, char **out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/curl/lib/idn.c:201,1
    - Dst: IdnToUnicode
      Src: /src/curl/lib/idn.c:204,1
    - Dst: idn_curlx_convert_wchar_to_UTF8
      Src: /src/curl/lib/idn.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 217
    functionName: win32_ascii_to_idn
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - IdnToUnicode
    - idn_curlx_convert_wchar_to_UTF8
    - MultiByteToWideChar
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode win32_ascii_to_idn(const char *in, char **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/idn.c:229,1
    - Dst: Curl_is_ASCII_str
      Src: /src/curl/lib/idn.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: Curl_is_ASCII_name
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - Curl_is_ASCII_str
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool Curl_is_ASCII_name(const char *hostname)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 246
    functionName: Curl_is_ASCII_str
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_is_ASCII_str(struct Curl_str *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: idn2_check_version
      Src: /src/curl/lib/idn.c:262,1
    - Dst: IDN2_LOOKUP
      Src: /src/curl/lib/idn.c:271,1
    - Dst: IDN2_LOOKUP
      Src: /src/curl/lib/idn.c:275,1
    - Dst: win32_idn_to_ascii
      Src: /src/curl/lib/idn.c:283,1
    - Dst: mac_idn_to_ascii
      Src: /src/curl/lib/idn.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 290
    functionName: idn_decode
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - idn2_check_version
    - win32_idn_to_ascii
    - mac_idn_to_ascii
    - IDN2_LOOKUP
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode idn_decode(const char *input, char **output)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: idn2_to_unicode_8z8z
      Src: /src/curl/lib/idn.c:296,1
    - Dst: win32_ascii_to_idn
      Src: /src/curl/lib/idn.c:300,1
    - Dst: mac_ascii_to_idn
      Src: /src/curl/lib/idn.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - puny
    - output
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: idn_encode
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - idn2_to_unicode_8z8z
    - win32_ascii_to_idn
    - mac_ascii_to_idn
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode idn_encode(const char *puny, char **output)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: idn_decode
      Src: /src/curl/lib/idn.c:315,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/idn.c:318,1
    - Dst: idn2_free
      Src: /src/curl/lib/idn.c:319,1
    - Dst: curlx_free
      Src: /src/curl/lib/idn.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 335
    functionName: Curl_idn_decode
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - idn_decode
    - curlx_free
    - curlx_strdup
    - idn2_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_idn_decode(const char *input, char **output)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: idn_encode
      Src: /src/curl/lib/idn.c:340,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/idn.c:343,1
    - Dst: idn2_free
      Src: /src/curl/lib/idn.c:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - puny
    - output
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 354
    functionName: Curl_idn_encode
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - idn2_free
    - curlx_strdup
    - idn_encode
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_idn_encode(const char *puny, char **output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/idn.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - host
    argTypes:
    - struct hostname*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: Curl_free_idnconverted_hostname
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void Curl_free_idnconverted_hostname(struct hostname *host)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/idn.c:376,1
    - Dst: Curl_idn_decode
      Src: /src/curl/lib/idn.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - host
    argTypes:
    - struct hostname*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 386
    functionName: Curl_idnconvert_hostname
    functionSourceFile: /src/curl/lib/idn.c
    functionUses: 0
    functionsReached:
    - Curl_idn_decode
    - Curl_is_ASCII_name
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_idnconvert_hostname(struct hostname *host)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/http.c:90,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - data
    - neg
    argTypes:
    - struct Curl_easy*
    - struct http_negotiation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 124
    functionName: Curl_http_neg_init
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_http_neg_init(struct Curl_easy *data, struct http_negotiation
      *neg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_may_http3
      Src: /src/curl/lib/http.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: Curl_http_setup_conn
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_conn_may_http3
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_setup_conn(struct Curl_easy *data,\n                              struct
      connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/http.c:160,1
    - Dst: Curl_headersep
      Src: /src/curl/lib/http.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - data
    - conn
    - thisheader
    - thislen
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: Curl_checkProxyheaders
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_headersep
    - curl_strnequal
    linkageType: ''
    returnType: char
    signature: "char *Curl_checkProxyheaders(struct Curl_easy *data,\n                             const
      struct connectdata *conn,\n                             const char *thisheader,\n
      \                            const size_t thislen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_cspn
      Src: /src/curl/lib/http.c:174,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:175,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:175,1
    - Dst: curlx_str_untilnl
      Src: /src/curl/lib/http.c:178,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/http.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - headerp
    - outp
    argTypes:
    - char**
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: header_has_value
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_str_untilnl
    - curlx_str_trimblanks
    - curlx_str_single
    - curlx_str_cspn
    linkageType: ''
    returnType: bool
    signature: bool header_has_value(const char **headerp, struct Curl_str *outp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: header_has_value
      Src: /src/curl/lib/http.c:188,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - header
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: http_header_is_empty
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - header_has_value
    - curlx_strlen
    linkageType: ''
    returnType: bool
    signature: bool http_header_is_empty(const char *header)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: header_has_value
      Src: /src/curl/lib/http.c:207,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/http.c:208,1
    - Dst: curlx_str
      Src: /src/curl/lib/http.c:208,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - header
    - valp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 216
    functionName: copy_custom_value
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - header_has_value
    - curlx_strlen
    - curlx_str
    - curlx_memdup0
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode copy_custom_value(const char *header, char **valp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_until
      Src: /src/curl/lib/http.c:233,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:234,1
    - Dst: curlx_str_untilnl
      Src: /src/curl/lib/http.c:235,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/http.c:236,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/http.c:237,1
    - Dst: curlx_str
      Src: /src/curl/lib/http.c:237,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http.c:237,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - header
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 242
    functionName: Curl_copy_header_value
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 1
    functionsReached:
    - curlx_str_single
    - DEBUGASSERT
    - curlx_str_until
    - curlx_str
    - curlx_str_untilnl
    - curlx_strlen
    - curlx_memdup0
    - curlx_str_trimblanks
    linkageType: ''
    returnType: char
    signature: char *Curl_copy_header_value(const char *header)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:280,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:284,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/http.c:288,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:288,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:298,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:299,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:302,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - data
    - conn
    - proxy
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 311
    functionName: http_output_basic
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - DEBUGASSERT
    - curlx_base64_encode
    - curlx_free
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_output_basic(struct Curl_easy *data,\n                                  struct
      connectdata *conn, bool proxy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:327,1
    - Dst: Curl_creds_has_oauth_bearer
      Src: /src/curl/lib/http.c:327,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:329,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:330,1
    - Dst: Curl_creds_oauth_bearer
      Src: /src/curl/lib/http.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 340
    functionName: http_output_bearer
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - DEBUGASSERT
    - curlx_free
    - Curl_creds_has_oauth_bearer
    - Curl_creds_oauth_bearer
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode http_output_bearer(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pick
    - mask
    argTypes:
    - struct auth*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 382
    functionName: pickoneauth
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pickoneauth(struct auth *pick, unsigned long mask)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_total_length
      Src: /src/curl/lib/http.c:400,1
    - Dst: Curl_creader_needs_rewind
      Src: /src/curl/lib/http.c:403,1
    - Dst: infof
      Src: /src/curl/lib/http.c:417,1
    - Dst: Curl_creader_set_rewind
      Src: /src/curl/lib/http.c:418,1
    - Dst: VERBOSE
      Src: /src/curl/lib/http.c:430,1
    - Dst: VERBOSE
      Src: /src/curl/lib/http.c:443,1
    - Dst: infof
      Src: /src/curl/lib/http.c:456,1
    - Dst: infof
      Src: /src/curl/lib/http.c:461,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:466,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 471
    functionName: http_perhapsrewind
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_creader_total_length
    - Curl_creader_set_rewind
    - streamclose
    - infof
    - VERBOSE
    - Curl_creader_needs_rewind
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_perhapsrewind(struct Curl_easy *data,\n                                   struct
      connectdata *conn)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:483,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:484,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:517,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 2
    argNames:
    - data
    - httpcode
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 542
    functionName: http_should_fail
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: bool http_should_fail(struct Curl_easy *data, int httpcode)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_oauth_bearer
      Src: /src/curl/lib/http.c:558,1
    - Dst: pickoneauth
      Src: /src/curl/lib/http.c:571,1
    - Dst: infof
      Src: /src/curl/lib/http.c:578,1
    - Dst: connclose
      Src: /src/curl/lib/http.c:579,1
    - Dst: pickoneauth
      Src: /src/curl/lib/http.c:588,1
    - Dst: http_perhapsrewind
      Src: /src/curl/lib/http.c:598,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:605,1
    - Dst: Curl_bufref_dup
      Src: /src/curl/lib/http.c:607,1
    - Dst: Curl_bufref_dup
      Src: /src/curl/lib/http.c:621,1
    - Dst: http_should_fail
      Src: /src/curl/lib/http.c:627,1
    - Dst: failf
      Src: /src/curl/lib/http.c:628,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 47
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 634
    functionName: Curl_http_auth_act
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - failf
    - http_perhapsrewind
    - infof
    - pickoneauth
    - Curl_creds_has_oauth_bearer
    - curlx_free
    - http_should_fail
    - Curl_bufref_dup
    - connclose
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_http_auth_act(struct Curl_easy *data)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_output_aws_sigv4
      Src: /src/curl/lib/http.c:660,1
    - Dst: Curl_output_negotiate
      Src: /src/curl/lib/http.c:669,1
    - Dst: Curl_output_ntlm
      Src: /src/curl/lib/http.c:678,1
    - Dst: Curl_output_digest
      Src: /src/curl/lib/http.c:687,1
    - Dst: CURL_DISABLE_PROXY
      Src: /src/curl/lib/http.c:700,1
    - Dst: Curl_checkProxyheaders
      Src: /src/curl/lib/http.c:702,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:703,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:706,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:706,1
    - Dst: http_output_basic
      Src: /src/curl/lib/http.c:708,1
    - Dst: Curl_creds_has_oauth_bearer
      Src: /src/curl/lib/http.c:721,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:722,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:722,1
    - Dst: http_output_bearer
      Src: /src/curl/lib/http.c:724,1
    - Dst: infof
      Src: /src/curl/lib/http.c:741,1
    - Dst: infof
      Src: /src/curl/lib/http.c:749,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 6
    argNames:
    - data
    - conn
    - authstatus
    - request
    - path
    - proxy
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - struct auth*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 764
    functionName: output_auth_headers
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_output_bearer
    - Curl_output_digest
    - STRCONST
    - http_output_basic
    - Curl_checkheaders
    - infof
    - Curl_creds_has_oauth_bearer
    - Curl_output_aws_sigv4
    - CURL_DISABLE_PROXY
    - Curl_output_ntlm
    - Curl_checkProxyheaders
    - Curl_output_negotiate
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode output_auth_headers(struct Curl_easy *data,\n                                    struct
      connectdata *conn,\n                                    struct auth *authstatus,\n
      \                                   const char *request,\n                                    const
      char *path,\n                                    bool proxy)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:780,1
    - Dst: CURL_DISABLE_PROXY
      Src: /src/curl/lib/http.c:785,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:801,1
    - Dst: output_auth_headers
      Src: /src/curl/lib/http.c:824,1
    - Dst: Curl_auth_allowed_to_host
      Src: /src/curl/lib/http.c:839,1
    - Dst: output_auth_headers
      Src: /src/curl/lib/http.c:840,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:857,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 43
    argCount: 7
    argNames:
    - data
    - conn
    - request
    - httpreq
    - path
    - query
    - is_connect
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - Curl_HttpReq
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 859
    functionName: Curl_http_output_auth
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - DEBUGASSERT
    - output_auth_headers
    - Curl_auth_allowed_to_host
    - curlx_free
    - CURL_DISABLE_PROXY
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_output_auth(struct Curl_easy *data,\n                               struct
      connectdata *conn,\n                               const char *request,\n                               Curl_HttpReq
      httpreq,\n                               const char *path,\n                               const
      char *query,\n                               bool is_connect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - data
    - conn
    - request
    - httpreq
    - path
    - query
    - is_connect
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - Curl_HttpReq
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 879
    functionName: Curl_http_output_auth
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_output_auth(struct Curl_easy *data,\n                               struct
      connectdata *conn,\n                               const char *request,\n                               Curl_HttpReq
      httpreq,\n                               const char *path,\n                               const
      char *query,\n                               bool is_connect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/http.c:889,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/http.c:890,1
    - Dst: ISALNUM
      Src: /src/curl/lib/http.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - auth
    - line
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 891
    functionName: authcmp
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - ISALNUM
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: bool authcmp(const char *auth, const char *line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_is_spnego_supported
      Src: /src/curl/lib/http.c:901,1
    - Dst: Curl_input_negotiate
      Src: /src/curl/lib/http.c:907,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:911,1
    - Dst: Curl_bufref_dup
      Src: /src/curl/lib/http.c:912,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - data
    - proxy
    - auth
    - authp
    - availp
    argTypes:
    - struct Curl_easy*
    - bool
    - char*
    - struct auth*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 924
    functionName: auth_spnego
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_input_negotiate
    - Curl_auth_is_spnego_supported
    - Curl_bufref_dup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode auth_spnego(struct Curl_easy *data,\n                            bool
      proxy,\n                            const char *auth,\n                            struct
      auth *authp,\n                            uint32_t *availp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_is_ntlm_supported
      Src: /src/curl/lib/http.c:935,1
    - Dst: Curl_input_ntlm
      Src: /src/curl/lib/http.c:941,1
    - Dst: infof
      Src: /src/curl/lib/http.c:947,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - data
    - proxy
    - auth
    - authp
    - availp
    argTypes:
    - struct Curl_easy*
    - bool
    - char*
    - struct auth*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 953
    functionName: auth_ntlm
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_input_ntlm
    - Curl_auth_is_ntlm_supported
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode auth_ntlm(struct Curl_easy *data,\n                          bool
      proxy,\n                          const char *auth,\n                          struct
      auth *authp,\n                          uint32_t *availp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/http.c:965,1
    - Dst: Curl_auth_is_digest_supported
      Src: /src/curl/lib/http.c:967,1
    - Dst: Curl_input_digest
      Src: /src/curl/lib/http.c:977,1
    - Dst: infof
      Src: /src/curl/lib/http.c:981,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - data
    - proxy
    - auth
    - authp
    - availp
    argTypes:
    - struct Curl_easy*
    - bool
    - char*
    - struct auth*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 986
    functionName: auth_digest
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_input_digest
    - Curl_auth_is_digest_supported
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode auth_digest(struct Curl_easy *data,\n                            bool
      proxy,\n                            const char *auth,\n                            struct
      auth *authp,\n                            uint32_t *availp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/http.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - data
    - authp
    - availp
    argTypes:
    - struct Curl_easy*
    - struct auth*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1004
    functionName: auth_basic
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode auth_basic(struct Curl_easy *data,\n                           struct
      auth *authp,\n                           uint32_t *availp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/http.c:1018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - data
    - authp
    - availp
    argTypes:
    - struct Curl_easy*
    - struct auth*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1022
    functionName: auth_bearer
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 3
    functionsReached:
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode auth_bearer(struct Curl_easy *data,\n                            struct
      auth *authp,\n                            uint32_t *availp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1047,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1048,1
    - Dst: authcmp
      Src: /src/curl/lib/http.c:1077,1
    - Dst: auth_spnego
      Src: /src/curl/lib/http.c:1078,1
    - Dst: authcmp
      Src: /src/curl/lib/http.c:1081,1
    - Dst: auth_ntlm
      Src: /src/curl/lib/http.c:1082,1
    - Dst: authcmp
      Src: /src/curl/lib/http.c:1085,1
    - Dst: auth_digest
      Src: /src/curl/lib/http.c:1086,1
    - Dst: authcmp
      Src: /src/curl/lib/http.c:1089,1
    - Dst: auth_basic
      Src: /src/curl/lib/http.c:1090,1
    - Dst: authcmp
      Src: /src/curl/lib/http.c:1093,1
    - Dst: auth_bearer
      Src: /src/curl/lib/http.c:1094,1
    - Dst: strchr
      Src: /src/curl/lib/http.c:1101,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http.c:1106,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 3
    argNames:
    - data
    - proxy
    - auth
    argTypes:
    - struct Curl_easy*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1032
    functionDepth: 2
    functionLinenumber: 1032
    functionLinenumberEnd: 1116
    functionName: Curl_http_input_auth
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - auth_spnego
    - DEBUGASSERT
    - auth_digest
    - curlx_str_passblanks
    - auth_basic
    - authcmp
    - auth_bearer
    - strchr
    - auth_ntlm
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_input_auth(struct Curl_easy *data, bool proxy,\n
      \                             const char *auth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NOVERBOSE
      Src: /src/curl/lib/http.c:1124,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1125,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1129,1
    - Dst: Curl_creader_set_rewind
      Src: /src/curl/lib/http.c:1132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - data
    - code
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1133
    functionName: http_switch_to_get
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - NOVERBOSE
    - Curl_creader_set_rewind
    - infof
    linkageType: ''
    returnType: void
    signature: void http_switch_to_get(struct Curl_easy *data, int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1139
    functionName: HTTPREQ_IS_POST
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTPREQ_IS_POST(data)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1150,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/http.c:1172,1
    - Dst: curl_url
      Src: /src/curl/lib/http.c:1175,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:1179,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/http.c:1180,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:1182,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:1184,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:1186,1
    - Dst: curl_url_get
      Src: /src/curl/lib/http.c:1188,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:1190,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/http.c:1195,1
    - Dst: Curl_is_absolute_url
      Src: /src/curl/lib/http.c:1202,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1208,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:1209,1
    - Dst: failf
      Src: /src/curl/lib/http.c:1216,1
    - Dst: curl_url_strerror
      Src: /src/curl/lib/http.c:1217,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/http.c:1218,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/http.c:1223,1
    - Dst: curl_url
      Src: /src/curl/lib/http.c:1228,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:1231,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/http.c:1232,1
    - Dst: curl_url_get
      Src: /src/curl/lib/http.c:1235,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:1237,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/http.c:1238,1
    - Dst: Curl_url_same_origin
      Src: /src/curl/lib/http.c:1243,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:1244,1
    - Dst: Curl_auth_digest_cleanup
      Src: /src/curl/lib/http.c:1246,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:1249,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1252,1
    - Dst: failf
      Src: /src/curl/lib/http.c:1260,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/http.c:1269,1
    - Dst: Curl_req_soft_reset
      Src: /src/curl/lib/http.c:1270,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1271,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1276,1
    - Dst: HTTPREQ_IS_POST
      Src: /src/curl/lib/http.c:1316,1
    - Dst: http_switch_to_get
      Src: /src/curl/lib/http.c:1317,1
    - Dst: HTTPREQ_IS_POST
      Src: /src/curl/lib/http.c:1338,1
    - Dst: http_switch_to_get
      Src: /src/curl/lib/http.c:1339,1
    - Dst: HTTPREQ_IS_POST
      Src: /src/curl/lib/http.c:1349,1
    - Dst: http_switch_to_get
      Src: /src/curl/lib/http.c:1350,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/http.c:1375,1
    - Dst: Curl_pgrsResetTransferSizes
      Src: /src/curl/lib/http.c:1376,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 109
    argCount: 3
    argNames:
    - data
    - newurl
    - type
    argTypes:
    - struct Curl_easy*
    - char*
    - followtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1140
    functionDepth: 2
    functionLinenumber: 1140
    functionLinenumberEnd: 1379
    functionName: Curl_http_follow
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - Curl_bufref_set
    - DEBUGASSERT
    - HTTPREQ_IS_POST
    - Curl_pgrsTime
    - http_switch_to_get
    - Curl_bufref_ptr
    - curl_url_get
    - Curl_uc_to_curlcode
    - curl_url_strerror
    - Curl_url_same_origin
    - failf
    - curl_url_cleanup
    - Curl_bufref_free
    - Curl_pgrsResetTransferSizes
    - Curl_req_soft_reset
    - curlx_strdup
    - infof
    - Curl_is_absolute_url
    - Curl_auth_digest_cleanup
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_follow(struct Curl_easy *data, const char *newurl,\n
      \                         followtype type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1402,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1403,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1404,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1405,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/http.c:1407,1
    - Dst: curlx_str_untilnl
      Src: /src/curl/lib/http.c:1413,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/http.c:1415,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http.c:1418,1
    - Dst: curlx_str
      Src: /src/curl/lib/http.c:1420,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http.c:1421,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/http.c:1425,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http.c:1426,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/http.c:1426,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/http.c:1430,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:1431,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http.c:1436,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:1437,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 5
    argNames:
    - headerline
    - header
    - hlen
    - content
    - clen
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1442
    functionName: Curl_compareheader
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 1
    functionsReached:
    - curlx_str_single
    - DEBUGASSERT
    - ISNEWLINE
    - curlx_str_until
    - curlx_str
    - curl_strnequal
    - curlx_str_untilnl
    - curlx_str_passblanks
    - curlx_strlen
    - curlx_str_trimblanks
    - ISBLANK
    linkageType: ''
    returnType: bool
    signature: "bool Curl_compareheader(const char *headerline, /* line to check */\n
      \                       const char *header, /* header keyword _with_ colon */\n
      \                       const size_t hlen, /* len of the keyword in bytes */\n
      \                       const char *content, /* content string to find */\n
      \                       const size_t clen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_expire_done
      Src: /src/curl/lib/http.c:1458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1460
    functionName: http_exp100_continue
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_expire_done
    linkageType: ''
    returnType: void
    signature: "void http_exp100_continue(struct Curl_easy *data,\n                                 struct
      Curl_creader *reader)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_req_sendbuf_empty
      Src: /src/curl/lib/http.c:1472,1
    - Dst: DEBUGF
      Src: /src/curl/lib/http.c:1475,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1475,1
    - Dst: DEBUGF
      Src: /src/curl/lib/http.c:1482,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1482,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/http.c:1485,1
    - Dst: Curl_expire
      Src: /src/curl/lib/http.c:1486,1
    - Dst: DEBUGF
      Src: /src/curl/lib/http.c:1491,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1491,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/http.c:1496,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/http.c:1496,1
    - Dst: DEBUGF
      Src: /src/curl/lib/http.c:1498,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1498,1
    - Dst: http_exp100_continue
      Src: /src/curl/lib/http.c:1504,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1505,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/http.c:1506,1
    - Dst: DEBUGF
      Src: /src/curl/lib/http.c:1508,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1508,1
    - Dst: Curl_creader_read
      Src: /src/curl/lib/http.c:1509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - nread
    - eos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1462
    functionDepth: 2
    functionLinenumber: 1462
    functionLinenumberEnd: 1511
    functionName: cr_exp100_read
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_req_sendbuf_empty
    - Curl_creader_read
    - infof
    - Curl_expire
    - http_exp100_continue
    - DEBUGF
    - curlx_ptimediff_ms
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_exp100_read(struct Curl_easy *data,\n                               struct
      Curl_creader *reader,\n                               char *buf, size_t blen,\n
      \                              size_t *nread, bool *eos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_expire_done
      Src: /src/curl/lib/http.c:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - reader
    - premature
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1513
    functionDepth: 1
    functionLinenumber: 1513
    functionLinenumberEnd: 1519
    functionName: cr_exp100_done
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_expire_done
    linkageType: ''
    returnType: void
    signature: "void cr_exp100_done(struct Curl_easy *data,\n                           struct
      Curl_creader *reader, int premature)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_create
      Src: /src/curl/lib/http.c:1540,1
    - Dst: Curl_creader_add
      Src: /src/curl/lib/http.c:1542,1
    - Dst: Curl_creader_free
      Src: /src/curl/lib/http.c:1549,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1551
    functionName: http_exp100_add_reader
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_creader_create
    - Curl_creader_add
    - Curl_creader_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode http_exp100_add_reader(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_get_by_type
      Src: /src/curl/lib/http.c:1555,1
    - Dst: http_exp100_continue
      Src: /src/curl/lib/http.c:1557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1558
    functionName: http_exp100_got100
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_exp100_continue
    - Curl_creader_get_by_type
    linkageType: ''
    returnType: void
    signature: void http_exp100_got100(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_get_by_type
      Src: /src/curl/lib/http.c:1562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1568
    functionName: http_exp100_is_waiting
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_creader_get_by_type
    linkageType: ''
    returnType: bool
    signature: bool http_exp100_is_waiting(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_get_by_type
      Src: /src/curl/lib/http.c:1572,1
    - Dst: http_exp100_continue
      Src: /src/curl/lib/http.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1575
    functionName: http_exp100_send_anyway
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_exp100_continue
    - Curl_creader_get_by_type
    linkageType: ''
    returnType: void
    signature: void http_exp100_send_anyway(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_get_by_type
      Src: /src/curl/lib/http.c:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1581
    functionName: http_exp100_is_selected
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_creader_get_by_type
    linkageType: ''
    returnType: bool
    signature: bool http_exp100_is_selected(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_add_out
      Src: /src/curl/lib/http.c:1590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1591
    functionName: Curl_http_doing_pollset
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_add_out
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_doing_pollset(struct Curl_easy *data,\n                                 struct
      easy_pollset *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_REQ_WANT_RECV
      Src: /src/curl/lib/http.c:1599,1
    - Dst: Curl_pollset_add_in
      Src: /src/curl/lib/http.c:1600,1
    - Dst: Curl_req_want_send
      Src: /src/curl/lib/http.c:1604,1
    - Dst: http_exp100_is_waiting
      Src: /src/curl/lib/http.c:1604,1
    - Dst: Curl_pollset_add_out
      Src: /src/curl/lib/http.c:1605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1593
    functionDepth: 2
    functionLinenumber: 1593
    functionLinenumberEnd: 1608
    functionName: Curl_http_perform_pollset
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_exp100_is_waiting
    - Curl_pollset_add_in
    - Curl_req_want_send
    - CURL_REQ_WANT_RECV
    - Curl_pollset_add_out
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_perform_pollset(struct Curl_easy *data,\n                                   struct
      easy_pollset *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_debug
      Src: /src/curl/lib/http.c:1618,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/http.c:1623,1
    - Dst: Curl_bump_headersize
      Src: /src/curl/lib/http.c:1627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1635
    functionName: http_write_header
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_debug
    - Curl_client_write
    - Curl_bump_headersize
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_write_header(struct Curl_easy *data,\n                                  const
      char *hd, size_t hdlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:1652,1
    - Dst: http_write_header
      Src: /src/curl/lib/http.c:1653,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http.c:1653,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:1654,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http.c:1656,1
    - Dst: failf
      Src: /src/curl/lib/http.c:1671,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:1673,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1642
    functionDepth: 2
    functionLinenumber: 1642
    functionLinenumberEnd: 1678
    functionName: Curl_http_done
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - failf
    - http_write_header
    - streamclose
    - curlx_dyn_len
    - curlx_dyn_ptr
    - curlx_dyn_reset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_done(struct Curl_easy *data,\n                        CURLcode
      status, bool premature)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1681
    functionDepth: 0
    functionLinenumber: 1681
    functionLinenumberEnd: 1698
    functionName: http_may_use_1_1
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool http_may_use_1_1(const struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http.c:1702,1
    - Dst: http_may_use_1_1
      Src: /src/curl/lib/http.c:1705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1700
    functionDepth: 1
    functionLinenumber: 1700
    functionLinenumberEnd: 1708
    functionName: http_request_version
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_conn_http_version
    - http_may_use_1_1
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char http_request_version(struct Curl_easy *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - httpversion
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1722
    functionName: get_http_string
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_http_string(int httpversion)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_until
      Src: /src/curl/lib/http.c:1783,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:1784,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:1785,1
    - Dst: memchr
      Src: /src/curl/lib/http.c:1786,1
    - Dst: curlx_str
      Src: /src/curl/lib/http.c:1786,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http.c:1786,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/http.c:1790,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:1791,1
    - Dst: curlx_str_untilnl
      Src: /src/curl/lib/http.c:1793,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/http.c:1794,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http.c:1795,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http.c:1810,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http.c:1814,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http.c:1818,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http.c:1823,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http.c:1825,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http.c:1829,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http.c:1832,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http.c:1833,1
    - Dst: Curl_auth_allowed_to_host
      Src: /src/curl/lib/http.c:1836,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:1839,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http.c:1839,1
    - Dst: curlx_str
      Src: /src/curl/lib/http.c:1840,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:1842,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 63
    argCount: 4
    argNames:
    - data
    - is_connect
    - httpversion
    - req
    argTypes:
    - struct Curl_easy*
    - bool
    - int
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1724
    functionDepth: 1
    functionLinenumber: 1724
    functionLinenumberEnd: 1850
    functionName: Curl_add_custom_headers
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - curlx_str_until
    - curlx_str_casecompare
    - curlx_str
    - memchr
    - curlx_str_untilnl
    - Curl_auth_allowed_to_host
    - curlx_strlen
    - curlx_dyn_addf
    - curlx_str_trimblanks
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_add_custom_headers(struct Curl_easy *data,\n                                 bool
      is_connect, int httpversion,\n                                 struct dynbuf
      *req)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_gmtime
      Src: /src/curl/lib/http.c:1867,1
    - Dst: failf
      Src: /src/curl/lib/http.c:1869,1
    - Dst: DEBUGF
      Src: /src/curl/lib/http.c:1876,1
    - Dst: infof
      Src: /src/curl/lib/http.c:1876,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:1893,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http.c:1906,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:1917,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - data
    - req
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1919
    functionName: Curl_add_timecondition
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - failf
    - curlx_gmtime
    - curlx_dyn_add
    - Curl_checkheaders
    - infof
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_add_timecondition(struct Curl_easy *data,\n                                struct
      dynbuf *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - req
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1928
    functionName: Curl_add_timecondition
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_add_timecondition(struct Curl_easy *data,\n                                struct
      dynbuf *req)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:1954,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - data
    - method
    - reqp
    argTypes:
    - struct Curl_easy*
    - char**
    - Curl_HttpReq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1931
    functionDepth: 1
    functionLinenumber: 1931
    functionLinenumberEnd: 1976
    functionName: Curl_http_method
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_http_method(struct Curl_easy *data,\n                      const
      char **method, Curl_HttpReq *reqp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:1984,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:1984,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/http.c:1985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 1987
    functionName: http_useragent
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - STRCONST
    - Curl_checkheaders
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode http_useragent(struct Curl_easy *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/http.c:1995,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/http.c:1997,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2000,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2000,1
    - Dst: Curl_peer_equal
      Src: /src/curl/lib/http.c:2002,1
    - Dst: copy_custom_value
      Src: /src/curl/lib/http.c:2010,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:2015,1
    - Dst: memmove
      Src: /src/curl/lib/http.c:2023,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:2023,1
    - Dst: strchr
      Src: /src/curl/lib/http.c:2024,1
    - Dst: strchr
      Src: /src/curl/lib/http.c:2030,1
    - Dst: curl_strequal
      Src: /src/curl/lib/http.c:2038,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:2039,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:2055,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:2057,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 1989
    functionDepth: 3
    functionLinenumber: 1989
    functionLinenumberEnd: 2064
    functionName: http_set_aptr_host
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_maprintf
    - copy_custom_value
    - STRCONST
    - memmove
    - Curl_checkheaders
    - curlx_free
    - curl_strequal
    - strchr
    - strlen
    - Curl_peer_equal
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode http_set_aptr_host(struct Curl_easy *data)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: curl_url_dup
      Src: /src/curl/lib/http.c:2095,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:2100,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:2102,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:2106,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:2108,1
    - Dst: curl_strequal
      Src: /src/curl/lib/http.c:2112,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:2114,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:2116,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:2119,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:2121,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:2127,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http.c:2130,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:2133,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/http.c:2134,1
    - Dst: curl_url_get
      Src: /src/curl/lib/http.c:2139,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:2141,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http.c:2145,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2148,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:2150,1
    - Dst: curl_strequal
      Src: /src/curl/lib/http.c:2154,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:2157,1
    - Dst: memcmp
      Src: /src/curl/lib/http.c:2159,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/http.c:2160,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2169,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2180,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2184,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 2
    argNames:
    - data
    - r
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2069
    functionDepth: 1
    functionLinenumber: 2069
    functionLinenumberEnd: 2188
    functionName: http_target
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curlx_dyn_add
    - curlx_dyn_addf
    - memcmp
    - curl_url_cleanup
    - Curl_raw_toupper
    - curl_strequal
    - curl_url_dup
    - curlx_free
    - curl_url_get
    - Curl_uc_to_curlcode
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_target(struct Curl_easy *data,\n                            struct
      dynbuf *r)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/http.c:2206,1
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/http.c:2209,1
    - Dst: Curl_getformdata
      Src: /src/curl/lib/http.c:2210,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/http.c:2213,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2231,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2231,1
    - Dst: curl_mime_headers
      Src: /src/curl/lib/http.c:2244,1
    - Dst: Curl_mime_prepare_headers
      Src: /src/curl/lib/http.c:2245,1
    - Dst: curl_mime_headers
      Src: /src/curl/lib/http.c:2249,1
    - Dst: Curl_creader_set_mime
      Src: /src/curl/lib/http.c:2250,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/http.c:2257,1
    - Dst: Curl_creader_total_length
      Src: /src/curl/lib/http.c:2259,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/http.c:2263,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - data
    - httpreq
    argTypes:
    - struct Curl_easy*
    - Curl_HttpReq
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2266
    functionName: set_post_reader
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_creader_total_length
    - Curl_getformdata
    - STRCONST
    - curl_mime_headers
    - Curl_mime_cleanpart
    - Curl_checkheaders
    - Curl_creader_set_mime
    - Curl_creader_set_null
    - curlx_calloc
    - Curl_mime_prepare_headers
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode set_post_reader(struct Curl_easy *data, Curl_HttpReq httpreq)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:2274,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/http.c:2277,1
    - Dst: Curl_creader_set_fread
      Src: /src/curl/lib/http.c:2282,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/http.c:2283,1
    - Dst: set_post_reader
      Src: /src/curl/lib/http.c:2288,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/http.c:2295,1
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/http.c:2298,1
    - Dst: Curl_creader_set_buf
      Src: /src/curl/lib/http.c:2302,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/http.c:2304,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2312,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2312,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/http.c:2315,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2315,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2316,1
    - Dst: Curl_creader_set_fread
      Src: /src/curl/lib/http.c:2318,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/http.c:2325,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - data
    - httpreq
    argTypes:
    - struct Curl_easy*
    - Curl_HttpReq
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2269
    functionDepth: 2
    functionLinenumber: 2269
    functionLinenumberEnd: 2328
    functionName: set_reader
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_creader_set_fread
    - Curl_compareheader
    - STRCONST
    - DEBUGASSERT
    - curlx_sotouz_range
    - Curl_checkheaders
    - Curl_creader_set_null
    - set_post_reader
    - Curl_creader_set_buf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode set_reader(struct Curl_easy *data, Curl_HttpReq httpreq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_resume_from
      Src: /src/curl/lib/http.c:2354,1
    - Dst: failf
      Src: /src/curl/lib/http.c:2356,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - data
    - httpreq
    argTypes:
    - struct Curl_easy*
    - Curl_HttpReq
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2330
    functionDepth: 1
    functionLinenumber: 2330
    functionLinenumberEnd: 2363
    functionName: http_resume
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_creader_resume_from
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode http_resume(struct Curl_easy *data, Curl_HttpReq httpreq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2372,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2372,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/http.c:2376,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2377,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2377,1
    - Dst: infof
      Src: /src/curl/lib/http.c:2379,1
    - Dst: Curl_creader_total_length
      Src: /src/curl/lib/http.c:2385,1
    - Dst: failf
      Src: /src/curl/lib/http.c:2395,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - data
    - req
    - httpversion
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2365
    functionDepth: 2
    functionLinenumber: 2365
    functionLinenumberEnd: 2408
    functionName: http_req_set_TE
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_compareheader
    - Curl_creader_total_length
    - STRCONST
    - failf
    - curlx_dyn_add
    - Curl_checkheaders
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_req_set_TE(struct Curl_easy *data,\n                                struct
      dynbuf *req,\n                                int httpversion)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2425,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2425,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/http.c:2428,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2428,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2428,1
    - Dst: Curl_creader_client_length
      Src: /src/curl/lib/http.c:2434,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:2436,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2436,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - data
    - r
    - httpversion
    - announced_exp100
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2410
    functionDepth: 2
    functionLinenumber: 2410
    functionLinenumberEnd: 2443
    functionName: addexpect
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_compareheader
    - Curl_creader_client_length
    - STRCONST
    - curlx_dyn_addn
    - Curl_checkheaders
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode addexpect(struct Curl_easy *data, struct dynbuf *r,\n                          int
      httpversion, bool *announced_exp100)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:2454,1
    - Dst: Curl_httpchunk_add_reader
      Src: /src/curl/lib/http.c:2456,1
    - Dst: Curl_creader_total_length
      Src: /src/curl/lib/http.c:2462,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2478,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2478,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2481,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2494,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2501,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2501,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:2502,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2502,1
    - Dst: addexpect
      Src: /src/curl/lib/http.c:2508,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/http.c:2516,1
    - Dst: http_exp100_add_reader
      Src: /src/curl/lib/http.c:2518,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 4
    argNames:
    - data
    - r
    - httpversion
    - httpreq
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    - int
    - Curl_HttpReq
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2445
    functionDepth: 3
    functionLinenumber: 2445
    functionLinenumberEnd: 2522
    functionName: http_add_content_hds
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_creader_total_length
    - STRCONST
    - http_exp100_add_reader
    - DEBUGASSERT
    - Curl_httpchunk_add_reader
    - curlx_dyn_addn
    - addexpect
    - Curl_checkheaders
    - Curl_pgrsSetUploadSize
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_add_content_hds(struct Curl_easy *data,\n                                     struct
      dynbuf *r,\n                                     int httpversion,\n                                     Curl_HttpReq
      httpreq)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2533,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2533,1
    - Dst: Curl_auth_allowed_to_host
      Src: /src/curl/lib/http.c:2534,1
    - Dst: Curl_share_lock
      Src: /src/curl/lib/http.c:2545,1
    - Dst: Curl_cookie_getlist
      Src: /src/curl/lib/http.c:2546,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/http.c:2552,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/http.c:2552,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/http.c:2553,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:2557,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2557,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:2561,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:2561,1
    - Dst: infof
      Src: /src/curl/lib/http.c:2563,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2568,1
    - Dst: Curl_llist_destroy
      Src: /src/curl/lib/http.c:2576,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/http.c:2578,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:2582,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2582,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2584,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:2589,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2589,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 46
    argCount: 2
    argNames:
    - data
    - r
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2526
    functionDepth: 1
    functionLinenumber: 2526
    functionLinenumberEnd: 2595
    functionName: http_cookies
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - STRCONST
    - curlx_dyn_addn
    - Curl_share_lock
    - Curl_share_unlock
    - Curl_node_elem
    - Curl_checkheaders
    - Curl_node_next
    - Curl_auth_allowed_to_host
    - Curl_cookie_getlist
    - Curl_llist_head
    - infof
    - curlx_dyn_addf
    - strlen
    - Curl_llist_destroy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_cookies(struct Curl_easy *data,\n                             struct
      dynbuf *r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2597
    functionDepth: 0
    functionLinenumber: 2597
    functionLinenumberEnd: 2598
    functionName: http_cookies
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: http_cookies(a, b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2610,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2610,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:2612,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:2613,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2619,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2619,1
    - Dst: Curl_creader_total_length
      Src: /src/curl/lib/http.c:2620,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:2622,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:2629,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:2641,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http.c:2649,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - data
    - httpreq
    argTypes:
    - struct Curl_easy*
    - Curl_HttpReq
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2600
    functionDepth: 1
    functionLinenumber: 2600
    functionLinenumberEnd: 2657
    functionName: http_range
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_creader_total_length
    - curl_maprintf
    - STRCONST
    - Curl_checkheaders
    - curlx_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_range(struct Curl_easy *data,\n                           Curl_HttpReq
      httpreq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CURL_REQ_CLEAR_RECV
      Src: /src/curl/lib/http.c:2668,1
    - Dst: infof
      Src: /src/curl/lib/http.c:2675,1
    - Dst: infof
      Src: /src/curl/lib/http.c:2684,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:2685,1
    - Dst: CURL_REQ_CLEAR_RECV
      Src: /src/curl/lib/http.c:2687,1
    - Dst: failf
      Src: /src/curl/lib/http.c:2695,1
    - Dst: Curl_meets_timecondition
      Src: /src/curl/lib/http.c:2705,1
    - Dst: infof
      Src: /src/curl/lib/http.c:2710,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:2713,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2719
    functionName: http_firstwrite
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_meets_timecondition
    - failf
    - streamclose
    - infof
    - CURL_REQ_CLEAR_RECV
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode http_firstwrite(struct Curl_easy *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_get_alpn_negotiated
      Src: /src/curl/lib/http.c:2728,1
    - Dst: strcmp
      Src: /src/curl/lib/http.c:2729,1
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http.c:2731,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:2734,1
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http.c:2734,1
    - Dst: strcmp
      Src: /src/curl/lib/http.c:2737,1
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http.c:2739,1
    - Dst: Curl_http2_switch
      Src: /src/curl/lib/http.c:2741,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:2747,1
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http.c:2747,1
    - Dst: Curl_http2_may_switch
      Src: /src/curl/lib/http.c:2752,1
    - Dst: DEBUGF
      Src: /src/curl/lib/http.c:2753,1
    - Dst: infof
      Src: /src/curl/lib/http.c:2753,1
    - Dst: Curl_http2_switch
      Src: /src/curl/lib/http.c:2754,1
    - Dst: Curl_conn_set_multiplex
      Src: /src/curl/lib/http.c:2760,1
    - Dst: infof
      Src: /src/curl/lib/http.c:2767,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2721
    functionDepth: 1
    functionLinenumber: 2721
    functionLinenumberEnd: 2769
    functionName: http_check_new_conn
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_conn_http_version
    - Curl_conn_get_alpn_negotiated
    - DEBUGASSERT
    - Curl_http2_switch
    - infof
    - Curl_conn_set_multiplex
    - strcmp
    - Curl_http2_may_switch
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode http_check_new_conn(struct Curl_easy *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:2777,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/http.c:2782,1
    - Dst: Curl_headersep
      Src: /src/curl/lib/http.c:2783,1
    - Dst: http_header_is_empty
      Src: /src/curl/lib/http.c:2784,1
    - Dst: copy_custom_value
      Src: /src/curl/lib/http.c:2786,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2789,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:2791,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2798,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2802,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2806,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:2808,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:2809,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2809,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/http.c:2816,1
    - Dst: Curl_headersep
      Src: /src/curl/lib/http.c:2817,1
    - Dst: http_header_is_empty
      Src: /src/curl/lib/http.c:2818,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2823,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 2
    argNames:
    - data
    - req
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2771
    functionDepth: 3
    functionLinenumber: 2771
    functionLinenumberEnd: 2830
    functionName: http_add_connection_hd
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - copy_custom_value
    - Curl_headersep
    - curlx_dyn_addn
    - http_header_is_empty
    - STRCONST
    - curlx_dyn_len
    - curl_strnequal
    - curlx_free
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_add_connection_hd(struct Curl_easy *data,\n                                       struct
      dynbuf *req)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2879,1
    - Dst: http_target
      Src: /src/curl/lib/http.c:2881,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2883,1
    - Dst: get_http_string
      Src: /src/curl/lib/http.c:2884,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2889,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2895,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2901,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2906,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2913,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2917,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2917,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2918,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2923,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2923,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2926,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/http.c:2932,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2933,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2933,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2935,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/http.c:2940,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/http.c:2941,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2942,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2942,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2943,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/http.c:2944,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2951,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2951,1
    - Dst: Curl_checkProxyheaders
      Src: /src/curl/lib/http.c:2952,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2952,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:2953,1
    - Dst: http_req_set_TE
      Src: /src/curl/lib/http.c:2958,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:2964,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:2964,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:2965,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/http.c:2971,1
    - Dst: Curl_http2_request_upgrade
      Src: /src/curl/lib/http.c:2976,1
    - Dst: Curl_ws_request
      Src: /src/curl/lib/http.c:2980,1
    - Dst: http_cookies
      Src: /src/curl/lib/http.c:2985,1
    - Dst: Curl_add_timecondition
      Src: /src/curl/lib/http.c:2989,1
    - Dst: Curl_add_custom_headers
      Src: /src/curl/lib/http.c:2993,1
    - Dst: http_add_content_hds
      Src: /src/curl/lib/http.c:2997,1
    - Dst: http_add_connection_hd
      Src: /src/curl/lib/http.c:3001,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:3006,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:3006,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 88
    argCount: 6
    argNames:
    - data
    - req
    - id
    - httpversion
    - method
    - httpreq
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    - http_hd_t
    - unsigned char
    - char*
    - Curl_HttpReq
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 2862
    functionDepth: 4
    functionLinenumber: 2862
    functionLinenumberEnd: 3010
    functionName: http_add_hd
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_dyn_add
    - http_cookies
    - Curl_checkheaders
    - http_add_content_hds
    - curlx_dyn_addf
    - Curl_http2_request_upgrade
    - get_http_string
    - curlx_dyn_addn
    - http_target
    - Curl_bufref_ptr
    - http_req_set_TE
    - Curl_ws_request
    - Curl_conn_is_ssl
    - STRCONST
    - Curl_add_custom_headers
    - Curl_add_timecondition
    - Curl_checkProxyheaders
    - http_add_connection_hd
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_add_hd(struct Curl_easy *data,\n                            struct
      dynbuf *req,\n                            http_hd_t id,\n                            unsigned
      char httpversion,\n                            const char *method,\n                            Curl_HttpReq
      httpreq)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http.c:3031,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http.c:3034,1
    - Dst: http_check_new_conn
      Src: /src/curl/lib/http.c:3038,1
    - Dst: Curl_headers_init
      Src: /src/curl/lib/http.c:3046,1
    - Dst: Curl_http_method
      Src: /src/curl/lib/http.c:3055,1
    - Dst: http_set_aptr_host
      Src: /src/curl/lib/http.c:3058,1
    - Dst: Curl_http_output_auth
      Src: /src/curl/lib/http.c:3061,1
    - Dst: http_useragent
      Src: /src/curl/lib/http.c:3065,1
    - Dst: set_reader
      Src: /src/curl/lib/http.c:3068,1
    - Dst: http_resume
      Src: /src/curl/lib/http.c:3070,1
    - Dst: http_range
      Src: /src/curl/lib/http.c:3072,1
    - Dst: http_request_version
      Src: /src/curl/lib/http.c:3076,1
    - Dst: http_add_hd
      Src: /src/curl/lib/http.c:3079,1
    - Dst: Curl_xfer_setup_sendrecv
      Src: /src/curl/lib/http.c:3086,1
    - Dst: Curl_req_send
      Src: /src/curl/lib/http.c:3087,1
    - Dst: failf
      Src: /src/curl/lib/http.c:3097,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http.c:3099,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3101
      start: 3017
    functionDepth: 5
    functionLinenumber: 3017
    functionLinenumberEnd: 3101
    functionName: Curl_http
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - http_range
    - http_add_hd
    - Curl_headers_init
    - http_resume
    - failf
    - set_reader
    - curlx_dyn_free
    - Curl_req_send
    - http_request_version
    - curlx_dyn_reset
    - http_set_aptr_host
    - http_useragent
    - Curl_http_method
    - Curl_http_output_auth
    - http_check_new_conn
    - Curl_xfer_setup_sendrecv
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_http(struct Curl_easy *data, bool *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURLMIN
      Src: /src/curl/lib/http.c:3112,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:3112,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/http.c:3113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prefix
    - buffer
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3110
    functionDepth: 1
    functionLinenumber: 3110
    functionLinenumberEnd: 3114
    functionName: checkprefixmax
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - strlen
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: bool checkprefixmax(const char *prefix, const char *buffer, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: checkprefixmax
      Src: /src/curl/lib/http.c:3129,1
    - Dst: checkprefixmax
      Src: /src/curl/lib/http.c:3136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - data
    - s
    - len
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3121
    functionDepth: 2
    functionLinenumber: 3121
    functionLinenumberEnd: 3140
    functionName: checkhttpprefix
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - checkprefixmax
    linkageType: ''
    returnType: statusline
    signature: "statusline checkhttpprefix(struct Curl_easy *data,\n                                  const
      char *s, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: checkprefixmax
      Src: /src/curl/lib/http.c:3149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - s
    - len
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3153
      start: 3143
    functionDepth: 2
    functionLinenumber: 3143
    functionLinenumberEnd: 3153
    functionName: checkrtspprefix
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - checkprefixmax
    linkageType: ''
    returnType: statusline
    signature: "statusline checkrtspprefix(struct Curl_easy *data,\n                                  const
      char *s, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: checkrtspprefix
      Src: /src/curl/lib/http.c:3162,1
    - Dst: checkhttpprefix
      Src: /src/curl/lib/http.c:3167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - data
    - conn
    - s
    - len
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3168
      start: 3156
    functionDepth: 3
    functionLinenumber: 3156
    functionLinenumberEnd: 3168
    functionName: checkprotoprefix
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - checkhttpprefix
    - checkrtspprefix
    linkageType: ''
    returnType: statusline
    signature: "statusline checkprotoprefix(struct Curl_easy *data,\n                                   struct
      connectdata *conn,\n                                   const char *s, size_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hd
    - ','
    - hdlen
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3173
      start: 3171
    functionDepth: 0
    functionLinenumber: 3171
    functionLinenumberEnd: 3173
    functionName: HD_IS
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HD_IS(hd, hdlen, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hd
    - ','
    - hdlen
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3174
    functionDepth: 0
    functionLinenumber: 3174
    functionLinenumberEnd: 3177
    functionName: HD_VAL
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HD_VAL(hd, hdlen, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - hd
    - ','
    - hdlen
    - ','
    - n
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3184
      start: 3180
    functionDepth: 0
    functionLinenumber: 3180
    functionLinenumberEnd: 3184
    functionName: HD_IS_AND_SAYS
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HD_IS_AND_SAYS(hd, hdlen, n, v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_is_secure
      Src: /src/curl/lib/http.c:3195,1
    - Dst: getenv
      Src: /src/curl/lib/http.c:3198,1
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3202,1
    - Dst: Curl_altsvc_parse
      Src: /src/curl/lib/http.c:3208,1
    - Dst: curlx_uitous
      Src: /src/curl/lib/http.c:3209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3217
      start: 3188
    functionDepth: 1
    functionLinenumber: 3188
    functionLinenumberEnd: 3217
    functionName: http_header_a
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - getenv
    - HD_VAL
    - curlx_uitous
    - Curl_xfer_is_secure
    - Curl_altsvc_parse
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_header_a(struct Curl_easy *data,\n                              const
      char *hd, size_t hdlen)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3235,1
    - Dst: curlx_str_numblanks
      Src: /src/curl/lib/http.c:3239,1
    - Dst: failf
      Src: /src/curl/lib/http.c:3244,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:3247,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3248,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http.c:3257,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:3260,1
    - Dst: curlx_str_newline
      Src: /src/curl/lib/http.c:3263,1
    - Dst: failf
      Src: /src/curl/lib/http.c:3269,1
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3275,1
    - Dst: Curl_build_unencoding_stack
      Src: /src/curl/lib/http.c:3283,1
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3286,1
    - Dst: Curl_copy_header_value
      Src: /src/curl/lib/http.c:3288,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:3293,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:3295,1
    - Dst: HD_IS_AND_SAYS
      Src: /src/curl/lib/http.c:3301,1
    - Dst: connclose
      Src: /src/curl/lib/http.c:3308,1
    - Dst: HD_IS_AND_SAYS
      Src: /src/curl/lib/http.c:3312,1
    - Dst: connkeep
      Src: /src/curl/lib/http.c:3319,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3320,1
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3323,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/http.c:3339,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/http.c:3343,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/http.c:3344,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 64
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3353
      start: 3222
    functionDepth: 2
    functionLinenumber: 3222
    functionLinenumberEnd: 3353
    functionName: http_header_c
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_build_unencoding_stack
    - curlx_str_single
    - failf
    - curlx_str_newline
    - streamclose
    - Curl_copy_header_value
    - HD_IS_AND_SAYS
    - curlx_str_number
    - infof
    - curlx_str_numblanks
    - curlx_str_passblanks
    - curlx_free
    - HD_VAL
    - ISDIGIT
    - connclose
    - connkeep
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_header_c(struct Curl_easy *data,\n                              const
      char *hd, size_t hdlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3365,1
    - Dst: Curl_getdate_capped
      Src: /src/curl/lib/http.c:3367,1
    - Dst: HD_IS
      Src: /src/curl/lib/http.c:3373,1
    - Dst: Curl_copy_header_value
      Src: /src/curl/lib/http.c:3375,1
    - Dst: strcmp
      Src: /src/curl/lib/http.c:3379,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:3381,1
    - Dst: failf
      Src: /src/curl/lib/http.c:3387,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:3388,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:3396,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/http.c:3397,1
    - Dst: http_perhapsrewind
      Src: /src/curl/lib/http.c:3403,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3358
    functionDepth: 2
    functionLinenumber: 3358
    functionLinenumberEnd: 3413
    functionName: http_header_l
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - http_perhapsrewind
    - Curl_copy_header_value
    - curlx_strdup
    - HD_IS
    - strcmp
    - curlx_free
    - HD_VAL
    - Curl_getdate_capped
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_header_l(struct Curl_easy *data,\n                              const
      char *hd, size_t hdlen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3424,1
    - Dst: HD_IS_AND_SAYS
      Src: /src/curl/lib/http.c:3428,1
    - Dst: connkeep
      Src: /src/curl/lib/http.c:3435,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3436,1
    - Dst: HD_IS_AND_SAYS
      Src: /src/curl/lib/http.c:3439,1
    - Dst: connclose
      Src: /src/curl/lib/http.c:3444,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3445,1
    - Dst: HD_IS
      Src: /src/curl/lib/http.c:3450,1
    - Dst: Curl_copy_header_value
      Src: /src/curl/lib/http.c:3451,1
    - Dst: Curl_http_input_auth
      Src: /src/curl/lib/http.c:3454,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:3455,1
    - Dst: HD_IS
      Src: /src/curl/lib/http.c:3460,1
    - Dst: Curl_auth_nego_get
      Src: /src/curl/lib/http.c:3462,1
    - Dst: Curl_copy_header_value
      Src: /src/curl/lib/http.c:3467,1
    - Dst: checkprefix
      Src: /src/curl/lib/http.c:3470,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3472,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:3474,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3479
      start: 3418
    functionDepth: 3
    functionLinenumber: 3418
    functionLinenumberEnd: 3479
    functionName: http_header_p
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_http_input_auth
    - connclose
    - checkprefix
    - Curl_copy_header_value
    - HD_IS_AND_SAYS
    - infof
    - HD_IS
    - curlx_free
    - Curl_auth_nego_get
    - HD_VAL
    - connkeep
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_header_p(struct Curl_easy *data,\n                              const
      char *hd, size_t hdlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3487,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http.c:3492,1
    - Dst: Curl_getdate_capped
      Src: /src/curl/lib/http.c:3496,1
    - Dst: time
      Src: /src/curl/lib/http.c:3497,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/http.c:3504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3484
    functionDepth: 1
    functionLinenumber: 3484
    functionLinenumberEnd: 3512
    functionName: http_header_r
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_str_number
    - curlx_str_passblanks
    - time
    - HD_VAL
    - Curl_getdate_capped
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_header_r(struct Curl_easy *data,\n                              const
      char *hd, size_t hdlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3531,1
    - Dst: Curl_secure_context
      Src: /src/curl/lib/http.c:3537,1
    - Dst: Curl_share_lock
      Src: /src/curl/lib/http.c:3539,1
    - Dst: Curl_cookie_add
      Src: /src/curl/lib/http.c:3540,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/http.c:3542,1
    - Dst: Curl_xfer_is_secure
      Src: /src/curl/lib/http.c:3549,1
    - Dst: getenv
      Src: /src/curl/lib/http.c:3552,1
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3557,1
    - Dst: Curl_hsts_parse
      Src: /src/curl/lib/http.c:3560,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3564,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/http.c:3569,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3517
    functionDepth: 1
    functionLinenumber: 3517
    functionLinenumberEnd: 3575
    functionName: http_header_s
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_secure_context
    - Curl_cookie_add
    - Curl_hsts_parse
    - Curl_share_lock
    - Curl_share_unlock
    - getenv
    - infof
    - HD_VAL
    - Curl_xfer_is_secure
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_header_s(struct Curl_easy *data,\n                              const
      char *hd, size_t hdlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3599,1
    - Dst: Curl_build_unencoding_stack
      Src: /src/curl/lib/http.c:3603,1
    - Dst: connclose
      Src: /src/curl/lib/http.c:3610,1
    - Dst: HD_VAL
      Src: /src/curl/lib/http.c:3615,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3621
      start: 3580
    functionDepth: 1
    functionLinenumber: 3580
    functionLinenumberEnd: 3621
    functionName: http_header_t
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - connclose
    - Curl_build_unencoding_stack
    - HD_VAL
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_header_t(struct Curl_easy *data,\n                              const
      char *hd, size_t hdlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HD_IS
      Src: /src/curl/lib/http.c:3632,1
    - Dst: Curl_copy_header_value
      Src: /src/curl/lib/http.c:3633,1
    - Dst: Curl_http_input_auth
      Src: /src/curl/lib/http.c:3637,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:3638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3642
      start: 3626
    functionDepth: 3
    functionLinenumber: 3626
    functionLinenumberEnd: 3642
    functionName: http_header_w
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - HD_IS
    - Curl_copy_header_value
    - Curl_http_input_auth
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_header_w(struct Curl_easy *data,\n                              const
      char *hd, size_t hdlen)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: http_header_a
      Src: /src/curl/lib/http.c:3655,1
    - Dst: http_header_c
      Src: /src/curl/lib/http.c:3659,1
    - Dst: http_header_l
      Src: /src/curl/lib/http.c:3663,1
    - Dst: http_header_p
      Src: /src/curl/lib/http.c:3667,1
    - Dst: http_header_r
      Src: /src/curl/lib/http.c:3671,1
    - Dst: http_header_s
      Src: /src/curl/lib/http.c:3675,1
    - Dst: http_header_t
      Src: /src/curl/lib/http.c:3679,1
    - Dst: http_header_w
      Src: /src/curl/lib/http.c:3683,1
    - Dst: Curl_rtsp_parseheader
      Src: /src/curl/lib/http.c:3690,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3693
      start: 3647
    functionDepth: 4
    functionLinenumber: 3647
    functionLinenumberEnd: 3693
    functionName: http_header
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_header_l
    - http_header_s
    - http_header_r
    - Curl_rtsp_parseheader
    - http_header_w
    - http_header_t
    - http_header_a
    - http_header_p
    - http_header_c
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_header(struct Curl_easy *data,\n                            const
      char *hd, size_t hdlen)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/http.c:3716,1
    - Dst: failf
      Src: /src/curl/lib/http.c:3722,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3755,1
    - Dst: connclose
      Src: /src/curl/lib/http.c:3756,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/http.c:3768,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3783
      start: 3699
    functionDepth: 1
    functionLinenumber: 3699
    functionLinenumberEnd: 3783
    functionName: http_statusline
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - connclose
    - FALLTHROUGH
    - failf
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_statusline(struct Curl_easy *data,\n                                struct
      connectdata *conn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/http.c:3800,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3804,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/http.c:3805,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3809
      start: 3790
    functionDepth: 1
    functionLinenumber: 3790
    functionLinenumberEnd: 3809
    functionName: http_size
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_pgrsSetDownloadSize
    - failf
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode http_size(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/curl/lib/http.c:3815,1
    - Dst: failf
      Src: /src/curl/lib/http.c:3818,1
    - Dst: memchr
      Src: /src/curl/lib/http.c:3822,1
    - Dst: failf
      Src: /src/curl/lib/http.c:3825,1
    - Dst: memchr
      Src: /src/curl/lib/http.c:3836,1
    - Dst: failf
      Src: /src/curl/lib/http.c:3839,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - data
    - hd
    - hdlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3811
    functionDepth: 0
    functionLinenumber: 3811
    functionLinenumberEnd: 3844
    functionName: Curl_verify_header
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - memchr
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_verify_header(struct Curl_easy *data,\n                            const
      char *hd, size_t hdlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/http.c:3867,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - data
    - delta
    - connect_only
    argTypes:
    - struct Curl_easy*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3871
      start: 3846
    functionDepth: 0
    functionLinenumber: 3846
    functionLinenumberEnd: 3871
    functionName: Curl_bump_headersize
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 1
    functionsReached:
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_bump_headersize(struct Curl_easy *data,\n                              size_t
      delta,\n                              bool connect_only)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/http.c:3896,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3911,1
    - Dst: Curl_http2_upgrade
      Src: /src/curl/lib/http.c:3912,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3922,1
    - Dst: Curl_ws_accept
      Src: /src/curl/lib/http.c:3923,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - data
    - buf
    - blen
    - pconsumed
    - conn_changed
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3934
      start: 3877
    functionDepth: 1
    functionLinenumber: 3877
    functionLinenumberEnd: 3934
    functionName: http_on_101_upgrade
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_http2_upgrade
    - Curl_ws_accept
    - failf
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_on_101_upgrade(struct Curl_easy *data,\n                                    const
      char *buf, size_t blen,\n                                    size_t *pconsumed,\n
      \                                   bool *conn_changed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_exp100_got100
      Src: /src/curl/lib/http.c:3956,1
    - Dst: http_on_101_upgrade
      Src: /src/curl/lib/http.c:3959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - data
    - buf
    - blen
    - pconsumed
    - conn_changed
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3940
    functionDepth: 3
    functionLinenumber: 3940
    functionLinenumberEnd: 3967
    functionName: http_on_1xx_response
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_on_101_upgrade
    - http_exp100_got100
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_on_1xx_response(struct Curl_easy *data,\n                                     const
      char *buf, size_t blen,\n                                     size_t *pconsumed,\n
      \                                    bool *conn_changed)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/http.c:3985,1
    - Dst: infof
      Src: /src/curl/lib/http.c:3995,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4007
      start: 3974
    functionDepth: 1
    functionLinenumber: 3974
    functionLinenumberEnd: 4007
    functionName: http_check_auth_closure
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - infof
    linkageType: ''
    returnType: void
    signature: "void http_check_auth_closure(struct Curl_easy *data,\n                                    struct
      connectdata *conn)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_will_rewind
      Src: /src/curl/lib/http.c:4024,1
    - Dst: Curl_req_done_sending
      Src: /src/curl/lib/http.c:4045,1
    - Dst: http_exp100_is_selected
      Src: /src/curl/lib/http.c:4046,1
    - Dst: http_exp100_is_waiting
      Src: /src/curl/lib/http.c:4049,1
    - Dst: infof
      Src: /src/curl/lib/http.c:4050,1
    - Dst: infof
      Src: /src/curl/lib/http.c:4053,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:4054,1
    - Dst: http_perhapsrewind
      Src: /src/curl/lib/http.c:4055,1
    - Dst: Curl_req_abort_sending
      Src: /src/curl/lib/http.c:4060,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:4061,1
    - Dst: Curl_bufref_dup
      Src: /src/curl/lib/http.c:4062,1
    - Dst: infof
      Src: /src/curl/lib/http.c:4067,1
    - Dst: http_exp100_send_anyway
      Src: /src/curl/lib/http.c:4068,1
    - Dst: infof
      Src: /src/curl/lib/http.c:4071,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:4072,1
    - Dst: Curl_req_abort_sending
      Src: /src/curl/lib/http.c:4073,1
    - Dst: Curl_creader_will_rewind
      Src: /src/curl/lib/http.c:4085,1
    - Dst: Curl_req_done_sending
      Src: /src/curl/lib/http.c:4085,1
    - Dst: infof
      Src: /src/curl/lib/http.c:4087,1
    - Dst: CURL_REQ_SET_SEND
      Src: /src/curl/lib/http.c:4088,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4091
      start: 4017
    functionDepth: 3
    functionLinenumber: 4017
    functionLinenumberEnd: 4091
    functionName: http_handle_send_error
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_exp100_is_waiting
    - Curl_creader_will_rewind
    - http_exp100_send_anyway
    - DEBUGASSERT
    - http_perhapsrewind
    - streamclose
    - infof
    - Curl_req_abort_sending
    - Curl_bufref_dup
    - http_exp100_is_selected
    - Curl_req_done_sending
    - CURL_REQ_SET_SEND
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode http_handle_send_error(struct Curl_easy *data)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/http.c:4109,1
    - Dst: http_write_header
      Src: /src/curl/lib/http.c:4115,1
    - Dst: failf
      Src: /src/curl/lib/http.c:4122,1
    - Dst: http_on_1xx_response
      Src: /src/curl/lib/http.c:4127,1
    - Dst: infof
      Src: /src/curl/lib/http.c:4147,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:4148,1
    - Dst: http_check_auth_closure
      Src: /src/curl/lib/http.c:4151,1
    - Dst: failf
      Src: /src/curl/lib/http.c:4156,1
    - Dst: http_should_fail
      Src: /src/curl/lib/http.c:4163,1
    - Dst: failf
      Src: /src/curl/lib/http.c:4164,1
    - Dst: Curl_http_auth_act
      Src: /src/curl/lib/http.c:4173,1
    - Dst: http_handle_send_error
      Src: /src/curl/lib/http.c:4178,1
    - Dst: http_firstwrite
      Src: /src/curl/lib/http.c:4184,1
    - Dst: http_size
      Src: /src/curl/lib/http.c:4190,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/http.c:4210,1
    - Dst: http_write_header
      Src: /src/curl/lib/http.c:4211,1
    - Dst: Curl_multi_connchanged
      Src: /src/curl/lib/http.c:4214,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 76
    argCount: 6
    argNames:
    - data
    - last_hd
    - last_hd_len
    - buf
    - blen
    - pconsumed
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4216
      start: 4093
    functionDepth: 4
    functionLinenumber: 4093
    functionLinenumberEnd: 4216
    functionName: http_on_response
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_on_1xx_response
    - failf
    - http_write_header
    - http_check_auth_closure
    - Curl_http_auth_act
    - http_firstwrite
    - streamclose
    - Curl_1st_fatal
    - Curl_multi_connchanged
    - infof
    - http_handle_send_error
    - http_should_fail
    - http_size
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_on_response(struct Curl_easy *data,\n                                 const
      char *last_hd, size_t last_hd_len,\n                                 const char
      *buf, size_t blen,\n                                 size_t *pconsumed)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:4226,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http.c:4234,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:4235,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http.c:4243,1
    - Dst: http_on_response
      Src: /src/curl/lib/http.c:4244,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http.c:4244,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:4245,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http.c:4248,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http.c:4273,1
    - Dst: strncmp
      Src: /src/curl/lib/http.c:4274,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http.c:4280,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/http.c:4283,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/http.c:4283,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/http.c:4283,1
    - Dst: failf
      Src: /src/curl/lib/http.c:4293,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http.c:4299,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/http.c:4303,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/http.c:4303,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/http.c:4303,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http.c:4307,1
    - Dst: failf
      Src: /src/curl/lib/http.c:4313,1
    - Dst: checkhttpprefix
      Src: /src/curl/lib/http.c:4322,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/http.c:4336,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http.c:4337,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/http.c:4338,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/http.c:4339,1
    - Dst: curlx_str_cmp
      Src: /src/curl/lib/http.c:4340,1
    - Dst: http_statusline
      Src: /src/curl/lib/http.c:4351,1
    - Dst: Curl_verify_header
      Src: /src/curl/lib/http.c:4362,1
    - Dst: http_header
      Src: /src/curl/lib/http.c:4366,1
    - Dst: Curl_debug
      Src: /src/curl/lib/http.c:4373,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/http.c:4377,1
    - Dst: Curl_bump_headersize
      Src: /src/curl/lib/http.c:4381,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 104
    argCount: 6
    argNames:
    - data
    - hd
    - hdlen
    - buf_remain
    - blen
    - pconsumed
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4386
      start: 4218
    functionDepth: 5
    functionLinenumber: 4218
    functionLinenumberEnd: 4386
    functionName: http_rw_hd
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_str_single
    - DEBUGASSERT
    - curlx_str_until
    - curlx_str_passblanks
    - curlx_dyn_ptr
    - ISDIGIT
    - Curl_verify_header
    - strncmp
    - Curl_debug
    - ISBLANK
    - curlx_dyn_addn
    - http_header
    - curlx_dyn_free
    - Curl_client_write
    - curlx_str_number
    - Curl_bump_headersize
    - curlx_str_trimblanks
    - failf
    - curlx_str_cmp
    - curlx_dyn_len
    - checkhttpprefix
    - http_statusline
    - curlx_dyn_reset
    - http_on_response
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_rw_hd(struct Curl_easy *data,\n                           const
      char *hd, size_t hdlen,\n                           const char *buf_remain,
      size_t blen,\n                           size_t *pconsumed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:4391,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http.c:4392,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http.c:4397,1
    - Dst: curlx_dyn_setlen
      Src: /src/curl/lib/http.c:4399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - bf
    argTypes:
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4400
      start: 4389
    functionDepth: 1
    functionLinenumber: 4389
    functionLinenumberEnd: 4400
    functionName: Curl_http_to_fold
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - ISBLANK
    - curlx_dyn_len
    - curlx_dyn_setlen
    linkageType: ''
    returnType: void
    signature: void Curl_http_to_fold(struct dynbuf *bf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_to_fold
      Src: /src/curl/lib/http.c:4404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4406
      start: 4402
    functionDepth: 2
    functionLinenumber: 4402
    functionLinenumberEnd: 4406
    functionName: unfold_header
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_http_to_fold
    linkageType: ''
    returnType: void
    signature: void unfold_header(struct Curl_easy *data)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/lib/http.c:4424,1
    - Dst: unfold_header
      Src: /src/curl/lib/http.c:4426,1
    - Dst: http_rw_hd
      Src: /src/curl/lib/http.c:4431,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http.c:4431,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:4432,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http.c:4434,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http.c:4451,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:4458,1
    - Dst: memchr
      Src: /src/curl/lib/http.c:4465,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:4469,1
    - Dst: checkprotoprefix
      Src: /src/curl/lib/http.c:4477,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http.c:4478,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:4479,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:4485,1
    - Dst: failf
      Src: /src/curl/lib/http.c:4487,1
    - Dst: failf
      Src: /src/curl/lib/http.c:4491,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http.c:4504,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:4515,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http.c:4516,1
    - Dst: checkprotoprefix
      Src: /src/curl/lib/http.c:4520,1
    - Dst: streamclose
      Src: /src/curl/lib/http.c:4522,1
    - Dst: failf
      Src: /src/curl/lib/http.c:4526,1
    - Dst: failf
      Src: /src/curl/lib/http.c:4530,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/http.c:4539,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http.c:4543,1
    - Dst: unfold_header
      Src: /src/curl/lib/http.c:4545,1
    - Dst: http_rw_hd
      Src: /src/curl/lib/http.c:4556,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http.c:4560,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http.c:4575,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 106
    argCount: 4
    argNames:
    - data
    - buf
    - blen
    - pconsumed
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4578
      start: 4411
    functionDepth: 6
    functionLinenumber: 4411
    functionLinenumberEnd: 4578
    functionName: http_parse_headers
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_rw_hd
    - curlx_dyn_addn
    - failf
    - ISNEWLINE
    - streamclose
    - memchr
    - curlx_dyn_len
    - curlx_dyn_free
    - curlx_dyn_ptr
    - curlx_dyn_reset
    - unfold_header
    - checkprotoprefix
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_parse_headers(struct Curl_easy *data,\n                                   const
      char *buf, size_t blen,\n                                   size_t *pconsumed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:4587,1
    - Dst: http_rw_hd
      Src: /src/curl/lib/http.c:4589,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/http.c:4591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - data
    - hd
    - hdlen
    - is_eos
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4580
    functionDepth: 6
    functionLinenumber: 4580
    functionLinenumberEnd: 4595
    functionName: Curl_http_write_resp_hd
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_client_write
    - http_rw_hd
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_write_resp_hd(struct Curl_easy *data,\n                                 const
      char *hd, size_t hdlen,\n                                 bool is_eos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_parse_headers
      Src: /src/curl/lib/http.c:4612,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:4614,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/http.c:4618,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http.c:4619,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http.c:4620,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http.c:4622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - data
    - buf
    - blen
    - pconsumed
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4601
    functionDepth: 7
    functionLinenumber: 4601
    functionLinenumberEnd: 4626
    functionName: Curl_http_write_resp_hds
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - http_parse_headers
    - Curl_client_write
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_ptr
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_write_resp_hds(struct Curl_easy *data,\n                                  const
      char *buf, size_t blen,\n                                  size_t *pconsumed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_write_resp_hds
      Src: /src/curl/lib/http.c:4636,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:4640,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:4645,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/http.c:4651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - data
    - buf
    - blen
    - is_eos
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4655
      start: 4628
    functionDepth: 8
    functionLinenumber: 4628
    functionLinenumberEnd: 4655
    functionName: Curl_http_write_resp
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_client_write
    - Curl_http_write_resp_hds
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_write_resp(struct Curl_easy *data,\n                              const
      char *buf, size_t blen,\n                              bool is_eos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - pstatus
    - s
    - len
    argTypes:
    - int*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4658
    functionDepth: 0
    functionLinenumber: 4658
    functionLinenumberEnd: 4680
    functionName: Curl_http_decode_status
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_http_decode_status(int *pstatus, const char *s, size_t
      len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:4691,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/http.c:4693,1
    - Dst: memcpy
      Src: /src/curl/lib/http.c:4703,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/http.c:4708,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/http.c:4713,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/http.c:4718,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/http.c:4722,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/http.c:4723,1
    - Dst: Curl_http_req_free
      Src: /src/curl/lib/http.c:4728,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 9
    argNames:
    - preq
    - method
    - m_len
    - scheme
    - s_len
    - authority
    - a_len
    - path
    - p_len
    argTypes:
    - struct httpreq**
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4731
      start: 4682
    functionDepth: 1
    functionLinenumber: 4682
    functionLinenumberEnd: 4731
    functionName: Curl_http_req_make
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - Curl_http_req_free
    - curlx_calloc
    - curlx_memdup0
    - Curl_dynhds_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_req_make(struct httpreq **preq,\n                            const
      char *method, size_t m_len,\n                            const char *scheme,
      size_t s_len,\n                            const char *authority, size_t a_len,\n
      \                           const char *path, size_t p_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http.c:4741,1
    - Dst: curl_url_get
      Src: /src/curl/lib/http.c:4743,1
    - Dst: curl_url_get
      Src: /src/curl/lib/http.c:4752,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:4756,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:4760,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http.c:4764,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:4766,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:4767,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http.c:4769,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - req
    - url
    argTypes:
    - struct httpreq*
    - CURLU*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4771
      start: 4733
    functionDepth: 1
    functionLinenumber: 4733
    functionLinenumberEnd: 4771
    functionName: req_assign_url_authority
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_add
    - curlx_dyn_free
    - curlx_dyn_ptr
    - curlx_free
    - curl_url_get
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode req_assign_url_authority(struct httpreq *req, CURLU *url)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http.c:4781,1
    - Dst: curl_url_get
      Src: /src/curl/lib/http.c:4783,1
    - Dst: curl_url_get
      Src: /src/curl/lib/http.c:4786,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http.c:4795,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http.c:4797,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http.c:4800,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:4805,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:4806,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http.c:4808,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - req
    - url
    argTypes:
    - struct httpreq*
    - CURLU*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4810
      start: 4773
    functionDepth: 1
    functionLinenumber: 4773
    functionLinenumberEnd: 4810
    functionName: req_assign_url_path
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_add
    - curlx_dyn_free
    - curlx_dyn_ptr
    - curlx_free
    - curl_url_get
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode req_assign_url_path(struct httpreq *req, CURLU *url)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:4820,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/http.c:4822,1
    - Dst: memcpy
      Src: /src/curl/lib/http.c:4825,1
    - Dst: curl_url_get
      Src: /src/curl/lib/http.c:4827,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/http.c:4831,1
    - Dst: req_assign_url_authority
      Src: /src/curl/lib/http.c:4836,1
    - Dst: req_assign_url_path
      Src: /src/curl/lib/http.c:4839,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/http.c:4843,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/http.c:4844,1
    - Dst: Curl_http_req_free
      Src: /src/curl/lib/http.c:4849,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 5
    argNames:
    - preq
    - method
    - m_len
    - url
    - scheme_default
    argTypes:
    - struct httpreq**
    - char*
    - size_t
    - CURLU*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4812
    functionDepth: 2
    functionLinenumber: 4812
    functionLinenumberEnd: 4852
    functionName: Curl_http_req_make2
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - Curl_http_req_free
    - curlx_strdup
    - req_assign_url_authority
    - curlx_calloc
    - curl_url_get
    - req_assign_url_path
    - Curl_dynhds_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_req_make2(struct httpreq **preq,\n                             const
      char *method, size_t m_len,\n                             CURLU *url, const
      char *scheme_default)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:4857,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:4858,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:4859,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/http.c:4860,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/http.c:4861,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:4862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct httpreq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4864
      start: 4854
    functionDepth: 1
    functionLinenumber: 4854
    functionLinenumberEnd: 4864
    functionName: Curl_http_req_free
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 2
    functionsReached:
    - curlx_free
    - Curl_dynhds_free
    linkageType: ''
    returnType: void
    signature: void Curl_http_req_free(struct httpreq *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/http.c:4883,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/http.c:4885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct dynhds_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4889
      start: 4880
    functionDepth: 1
    functionLinenumber: 4880
    functionLinenumberEnd: 4889
    functionName: h2_permissible_field
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: bool
    signature: bool h2_permissible_field(struct dynhds_entry *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/lib/http.c:4897,1
    - Dst: curlx_str_cspn
      Src: /src/curl/lib/http.c:4899,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http.c:4901,1
    - Dst: curlx_str_quotedword
      Src: /src/curl/lib/http.c:4910,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - fvalue
    - token
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4918
      start: 4891
    functionDepth: 1
    functionLinenumber: 4891
    functionLinenumberEnd: 4918
    functionName: http_TE_has_token
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - curlx_str_casecompare
    - curlx_str_quotedword
    - ISBLANK
    - curlx_str_cspn
    linkageType: ''
    returnType: bool
    signature: bool http_TE_has_token(const char *fvalue, const char *token)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:4928,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http.c:4929,1
    - Dst: strcmp
      Src: /src/curl/lib/http.c:4934,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http.c:4935,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:4935,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http.c:4938,1
    - Dst: infof
      Src: /src/curl/lib/http.c:4939,1
    - Dst: Curl_xfer_is_secure
      Src: /src/curl/lib/http.c:4942,1
    - Dst: Curl_dynhds_get
      Src: /src/curl/lib/http.c:4950,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:4950,1
    - Dst: Curl_dynhds_reset
      Src: /src/curl/lib/http.c:4955,1
    - Dst: Curl_dynhds_set_opts
      Src: /src/curl/lib/http.c:4956,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/http.c:4957,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:4957,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:4958,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/http.c:4960,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:4960,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:4961,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/http.c:4964,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:4964,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:4965,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/http.c:4968,1
    - Dst: STRCONST
      Src: /src/curl/lib/http.c:4968,1
    - Dst: strlen
      Src: /src/curl/lib/http.c:4969,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/lib/http.c:4971,1
    - Dst: Curl_dynhds_getn
      Src: /src/curl/lib/http.c:4972,1
    - Dst: curl_strequal
      Src: /src/curl/lib/http.c:4975,1
    - Dst: http_TE_has_token
      Src: /src/curl/lib/http.c:4976,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/http.c:4977,1
    - Dst: h2_permissible_field
      Src: /src/curl/lib/http.c:4980,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/http.c:4981,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - h2_headers
    - req
    - data
    argTypes:
    - struct dynhds*
    - struct httpreq*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4987
      start: 4920
    functionDepth: 2
    functionLinenumber: 4920
    functionLinenumberEnd: 4987
    functionName: Curl_http_req_to_h2
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_dynhds_add
    - STRCONST
    - Curl_dynhds_reset
    - DEBUGASSERT
    - h2_permissible_field
    - Curl_dynhds_getn
    - Curl_checkheaders
    - curlx_str_passblanks
    - infof
    - strcmp
    - Curl_dynhds_get
    - Curl_dynhds_count
    - curl_strequal
    - http_TE_has_token
    - Curl_xfer_is_secure
    - Curl_dynhds_set_opts
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_req_to_h2(struct dynhds *h2_headers,\n                             struct
      httpreq *req, struct Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/http.c:4996,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/http.c:5002,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/http.c:5006,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/http.c:5007,1
    - Dst: Curl_http_resp_free
      Src: /src/curl/lib/http.c:5012,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - presp
    - status
    - description
    argTypes:
    - struct http_resp**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5015
      start: 4989
    functionDepth: 1
    functionLinenumber: 4989
    functionLinenumberEnd: 5015
    functionName: Curl_http_resp_make
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 0
    functionsReached:
    - Curl_dynhds_init
    - curlx_calloc
    - Curl_http_resp_free
    - curlx_strdup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_resp_make(struct http_resp **presp,\n                             int
      status,\n                             const char *description)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:5020,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/http.c:5021,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/http.c:5022,1
    - Dst: Curl_http_resp_free
      Src: /src/curl/lib/http.c:5024,1
    - Dst: curlx_free
      Src: /src/curl/lib/http.c:5025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - resp
    argTypes:
    - struct http_resp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5027
      start: 5017
    functionDepth: 1
    functionLinenumber: 5017
    functionLinenumberEnd: 5027
    functionName: Curl_http_resp_free
    functionSourceFile: /src/curl/lib/http.c
    functionUses: 2
    functionsReached:
    - curlx_free
    - Curl_dynhds_free
    - Curl_http_resp_free
    linkageType: ''
    returnType: void
    signature: void Curl_http_resp_free(struct http_resp *resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: GOOD_EASY_HANDLE
    functionSourceFile: /src/curl/lib/urldata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOOD_EASY_HANDLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: GOOD_EASY_HANDLE
    functionSourceFile: /src/curl/lib/urldata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOOD_EASY_HANDLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: CUR_IP_QUAD_HAS_PORTS
    functionSourceFile: /src/curl/lib/urldata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUR_IP_QUAD_HAS_PORTS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: CONN_INUSE
    functionSourceFile: /src/curl/lib/urldata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONN_INUSE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: CONN_SOCK_IDX_VALID
    functionSourceFile: /src/curl/lib/urldata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONN_SOCK_IDX_VALID(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 404
    functionName: CURL_CONN_HOST_DISPNAME
    functionSourceFile: /src/curl/lib/urldata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_CONN_HOST_DISPNAME(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: CURL_CONN_HOST_DISPNAME
    functionSourceFile: /src/curl/lib/urldata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_CONN_HOST_DISPNAME(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1225
    functionName: IS_MIME_POST
    functionSourceFile: /src/curl/lib/urldata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_MIME_POST(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1227
    functionName: IS_MIME_POST
    functionSourceFile: /src/curl/lib/urldata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_MIME_POST(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: ISLOWHEXALPHA
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISLOWHEXALPHA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: ISUPHEXALPHA
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISUPHEXALPHA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: ISLOWCNTRL
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISLOWCNTRL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: IS7F
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS7F(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: ISLOWPRINT
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISLOWPRINT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: ISPRINT
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISPRINT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: ISGRAPH
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISGRAPH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ISCNTRL
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISCNTRL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: ISALPHA
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISALPHA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: ISXDIGIT
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISXDIGIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: ISODIGIT
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISODIGIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: ISALNUM
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISALNUM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: ISUPPER
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISUPPER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: ISLOWER
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISLOWER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: ISDIGIT
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISDIGIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: ISBLANK
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISBLANK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: ISSPACE
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISSPACE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: ISURLPUNTCS
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISURLPUNTCS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: ISUNRESERVED
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISUNRESERVED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: ISNEWLINE
    functionSourceFile: /src/curl/lib/curl_ctype.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISNEWLINE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: VERIFYNODE
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFYNODE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct Curl_llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: verifynode
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: struct Curl_llist_node
    signature: struct Curl_llist_node *verifynode(struct Curl_llist_node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: VERIFYNODE
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFYNODE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - l
    - dtor
    argTypes:
    - struct Curl_llist*
    - Curl_llist_dtor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: Curl_llist_init
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_llist_init(struct Curl_llist *l, Curl_llist_dtor dtor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:72,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:73,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:74,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/llist.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - list
    - e
    - p
    - ne
    argTypes:
    - struct Curl_llist*
    - struct Curl_llist_node*
    - void*
    - struct Curl_llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 106
    functionName: Curl_llist_insert_next
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: "void Curl_llist_insert_next(struct Curl_llist *list,\n                            struct
      Curl_llist_node *e, /* may be NULL */\n                            const void
      *p,\n                            struct Curl_llist_node *ne)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:120,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:121,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:122,1
    - Dst: Curl_llist_insert_next
      Src: /src/curl/lib/llist.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - list
    - p
    - ne
    argTypes:
    - struct Curl_llist*
    - void*
    - struct Curl_llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: Curl_llist_append
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 4
    functionsReached:
    - Curl_llist_insert_next
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_llist_append(struct Curl_llist *list, const void *p,\n                       struct
      Curl_llist_node *ne)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:134,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:135,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:136,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct Curl_llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 169
    functionName: Curl_node_take_elem
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void *Curl_node_take_elem(struct Curl_llist_node *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:179,1
    - Dst: Curl_node_take_elem
      Src: /src/curl/lib/llist.c:181,1
    - Dst: struct Curl_llist*::_dtor
      Src: /src/curl/lib/llist.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - e
    - user
    argTypes:
    - struct Curl_llist_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 185
    functionName: node_uremove
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 0
    functionsReached:
    - Curl_node_take_elem
    - struct Curl_llist*::_dtor
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void node_uremove(struct Curl_llist_node *e, void *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_uremove
      Src: /src/curl/lib/llist.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct Curl_llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: Curl_node_remove
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 2
    functionsReached:
    - node_uremove
    linkageType: ''
    returnType: void
    signature: void Curl_node_remove(struct Curl_llist_node *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:195,1
    - Dst: node_uremove
      Src: /src/curl/lib/llist.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - list
    - user
    argTypes:
    - struct Curl_llist*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: Curl_llist_destroy
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 3
    functionsReached:
    - node_uremove
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_llist_destroy(struct Curl_llist *list, void *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:205,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:206,1
    - Dst: VERIFYNODE
      Src: /src/curl/lib/llist.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct Curl_llist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: Curl_llist_head
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 6
    functionsReached:
    - VERIFYNODE
    - DEBUGASSERT
    linkageType: ''
    returnType: struct Curl_llist_node
    signature: struct Curl_llist_node *Curl_llist_head(const struct Curl_llist *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:219,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:220,1
    - Dst: VERIFYNODE
      Src: /src/curl/lib/llist.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct Curl_llist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: llist_tail
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 1
    functionsReached:
    - VERIFYNODE
    - DEBUGASSERT
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST *llist_tail(const struct Curl_llist *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:228,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct Curl_llist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: Curl_llist_count
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 9
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_llist_count(const struct Curl_llist *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:236,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct Curl_llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: Curl_node_elem
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 4
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void *Curl_node_elem(const struct Curl_llist_node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:245,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:246,1
    - Dst: VERIFYNODE
      Src: /src/curl/lib/llist.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct Curl_llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: Curl_node_next
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 4
    functionsReached:
    - VERIFYNODE
    - DEBUGASSERT
    linkageType: ''
    returnType: struct Curl_llist_node
    signature: struct Curl_llist_node *Curl_node_next(const struct Curl_llist_node
      *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:261,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:262,1
    - Dst: VERIFYNODE
      Src: /src/curl/lib/llist.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct Curl_llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: llist_node_prev
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 1
    functionsReached:
    - VERIFYNODE
    - DEBUGASSERT
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST *llist_node_prev(\n  const struct Curl_llist_node *n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:269,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/llist.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct Curl_llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: Curl_node_llist
    functionSourceFile: /src/curl/lib/llist.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: struct Curl_llist
    signature: struct Curl_llist *Curl_node_llist(const struct Curl_llist_node *n)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/creds.c:43,1
    - Dst: strlen
      Src: /src/curl/lib/creds.c:44,1
    - Dst: strlen
      Src: /src/curl/lib/creds.c:45,1
    - Dst: strlen
      Src: /src/curl/lib/creds.c:46,1
    - Dst: strlen
      Src: /src/curl/lib/creds.c:47,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/creds.c:51,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/creds.c:67,1
    - Dst: memcpy
      Src: /src/curl/lib/creds.c:80,1
    - Dst: memcpy
      Src: /src/curl/lib/creds.c:83,1
    - Dst: memcpy
      Src: /src/curl/lib/creds.c:86,1
    - Dst: memcpy
      Src: /src/curl/lib/creds.c:89,1
    - Dst: memcpy
      Src: /src/curl/lib/creds.c:92,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/creds.c:98,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 7
    argNames:
    - user
    - passwd
    - oauth_bearer
    - sasl_authzid
    - sasl_service
    - source
    - pcreds
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - uint8_t
    - struct Curl_creds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 100
    functionName: Curl_creds_create
    functionSourceFile: /src/curl/lib/creds.c
    functionUses: 0
    functionsReached:
    - strlen
    - curlx_calloc
    - Curl_creds_unlink
    - memcpy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creds_create(const char *user,\n                           const
      char *passwd,\n                           const char *oauth_bearer,\n                           const
      char *sasl_authzid,\n                           const char *sasl_service,\n
      \                          uint8_t source,\n                           struct
      Curl_creds **pcreds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_user
      Src: /src/curl/lib/creds.c:112,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/creds.c:114,1
    - Dst: Curl_creds_create
      Src: /src/curl/lib/creds.c:115,1
    - Dst: Curl_creds_oauth_bearer
      Src: /src/curl/lib/creds.c:116,1
    - Dst: Curl_creds_sasl_authzid
      Src: /src/curl/lib/creds.c:117,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/creds.c:118,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/creds.c:120,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/creds.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - user
    - passwd
    - creds_in
    - source
    - pcreds_out
    argTypes:
    - char*
    - char*
    - struct Curl_creds*
    - uint8_t
    - struct Curl_creds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: Curl_creds_merge
    functionSourceFile: /src/curl/lib/creds.c
    functionUses: 0
    functionsReached:
    - Curl_creds_passwd
    - Curl_creds_create
    - Curl_creds_link
    - Curl_creds_unlink
    - Curl_creds_sasl_service
    - Curl_creds_sasl_authzid
    - Curl_creds_user
    - Curl_creds_oauth_bearer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creds_merge(const char *user,\n                          const
      char *passwd,\n                          struct Curl_creds *creds_in,\n                          uint8_t
      source,\n                          struct Curl_creds **pcreds_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/creds.c:128,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/creds.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pdest
    - src
    argTypes:
    - struct Curl_creds**
    - struct Curl_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: Curl_creds_link
    functionSourceFile: /src/curl/lib/creds.c
    functionUses: 1
    functionsReached:
    - Curl_creds_unlink
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_creds_link(struct Curl_creds **pdest, struct Curl_creds *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/creds.c:142,1
    - Dst: curlx_free
      Src: /src/curl/lib/creds.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pcreds
    argTypes:
    - struct Curl_creds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: Curl_creds_unlink
    functionSourceFile: /src/curl/lib/creds.c
    functionUses: 4
    functionsReached:
    - curlx_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_creds_unlink(struct Curl_creds **pcreds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/creds.c:156,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/creds.c:157,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/creds.c:158,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/creds.c:159,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/creds.c:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - struct Curl_creds*
    - struct Curl_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: Curl_creds_same
    functionSourceFile: /src/curl/lib/creds.c
    functionUses: 0
    functionsReached:
    - Curl_timestrcmp
    linkageType: ''
    returnType: bool
    signature: bool Curl_creds_same(struct Curl_creds *c1, struct Curl_creds *c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_same
      Src: /src/curl/lib/creds.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - struct Curl_creds*
    - struct Curl_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: Curl_creds_equal
    functionSourceFile: /src/curl/lib/creds.c
    functionUses: 0
    functionsReached:
    - Curl_creds_same
    linkageType: ''
    returnType: bool
    signature: bool Curl_creds_equal(struct Curl_creds *c1, struct Curl_creds *c2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/creds.c:174,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/creds.c:177,1
    - Dst: Curl_creds_has_passwd
      Src: /src/curl/lib/creds.c:178,1
    - Dst: Curl_creds_sasl_authzid
      Src: /src/curl/lib/creds.c:179,1
    - Dst: Curl_creds_has_oauth_bearer
      Src: /src/curl/lib/creds.c:180,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/creds.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - creds
    - msg
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: Curl_creds_trace
    functionSourceFile: /src/curl/lib/creds.c
    functionUses: 0
    functionsReached:
    - Curl_creds_has_passwd
    - Curl_creds_sasl_authzid
    - Curl_creds_has_oauth_bearer
    - Curl_creds_user
    - CURL_TRC_M
    linkageType: ''
    returnType: void
    signature: "void Curl_creds_trace(struct Curl_easy *data, struct Curl_creds *creds,\n
      \                     const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: CURL_CONC_MACROS_
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_CONC_MACROS_(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: CURL_CONC_MACROS
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_CONC_MACROS(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: CURL_PRINTF
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_PRINTF(fmt, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: CURL_PRINTF
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_PRINTF(fmt, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 457
    functionName: select
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(a, b, c, d, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 459
    functionName: select
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(a, b, c, d, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - offset
    - ','
    - whence
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 530
    functionName: curl_lseek
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_lseek(fd, offset, whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n
    - ','
    - r
    - ','
    - w
    - ','
    - x
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 667
    functionName: select
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(n, r, w, x, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 668
    functionName: ioctl
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioctl(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 822
    functionName: FALLTHROUGH
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FALLTHROUGH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 824
    functionName: FALLTHROUGH
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FALLTHROUGH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 867
    functionName: CURL_UNCONST
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_UNCONST(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 869
    functionName: CURL_UNCONST
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_UNCONST(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 929
    functionName: sread
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sread(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 958
    functionName: sread
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sread(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 969
    functionName: swrite
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swrite(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: swrite
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swrite(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 980
    functionName: swrite
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swrite(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 992
    functionName: CURL_SCLOSE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SCLOSE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 994
    functionName: CURL_SCLOSE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SCLOSE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 996
    functionName: CURL_SCLOSE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SCLOSE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 998
    functionName: CURL_SCLOSE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SCLOSE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1000
    functionName: CURL_SCLOSE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SCLOSE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1047
    functionName: BIT
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1068
    functionName: DEBUGF
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUGF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1070
    functionName: DEBUGF
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUGF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1080
    functionName: DEBUGASSERT
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 105
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUGASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1082
    functionName: DEBUGASSERT
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 105
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUGASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1085
    functionName: DEBUGASSERT
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 105
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUGASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1094
    functionName: SET_SOCKERRNO
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SOCKERRNO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1097
    functionName: SET_SOCKERRNO
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SOCKERRNO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - buf
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1165
    functionName: read
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 87
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read(fd, buf, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - buf
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1167
    functionName: write
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write(fd, buf, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fh
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1170
    functionName: fileno
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fileno(fh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1172
    functionName: unlink
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlink(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1174
    functionName: isatty
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isatty(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1210
    functionName: S_ISREG
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1215
    functionName: S_ISDIR
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1240
    functionDepth: 0
    functionLinenumber: 1240
    functionLinenumberEnd: 1241
    functionName: CURL_BINMODE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_BINMODE(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1243
    functionName: CURL_BINMODE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_BINMODE(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1245
    functionName: CURL_BINMODE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_BINMODE(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1287
    functionName: CURLMAX
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLMAX(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1288
    functionName: CURLMIN
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLMIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1293
    functionName: STRCONST
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRCONST(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1295
    functionName: CURL_ARRAYSIZE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_ARRAYSIZE(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1331
    functionName: curlx_safefree
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_safefree(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1338
    functionName: curlx_safefreezero
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_safefreezero(ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1345
    functionName: curlx_safefreezeroz
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_safefreezeroz(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1357
    functionName: ALLOC_SIZE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_SIZE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1358
    functionName: ALLOC_SIZE2
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_SIZE2(n, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1365
    functionName: ALLOC_SIZE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_SIZE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1366
    functionName: ALLOC_SIZE2
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_SIZE2(n, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sockfd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1429
    functionName: sclose
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sclose(sockfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sockfd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1429
    functionDepth: 0
    functionLinenumber: 1429
    functionLinenumberEnd: 1430
    functionName: fake_sclose
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fake_sclose(sockfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - host
    - ','
    - serv
    - ','
    - hint
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1433
    functionName: CURL_GETADDRINFO
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_GETADDRINFO(host, serv, hint, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1435
    functionName: CURL_FREEADDRINFO
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_FREEADDRINFO(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - domain
    - ','
    - type
    - ','
    - protocol
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1437
    functionName: CURL_SOCKET
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SOCKET(domain, type, protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - domain
    - ','
    - type
    - ','
    - protocol
    - ','
    - socket_vector
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1441
    functionName: CURL_SOCKETPAIR
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SOCKETPAIR(domain, type, protocol, socket_vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sock
    - ','
    - addr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1444
    functionName: CURL_ACCEPT
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_ACCEPT(sock, addr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - sock
    - ','
    - addr
    - ','
    - len
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: CURL_ACCEPT4
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_ACCEPT4(sock, addr, len, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1452
    functionName: sclose
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sclose(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1453
    functionName: fake_sclose
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fake_sclose(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1478
    functionName: curlx_strdup
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_strdup(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1478
    functionDepth: 0
    functionLinenumber: 1478
    functionLinenumberEnd: 1479
    functionName: curlx_malloc
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_malloc(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nbelem
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1479
    functionDepth: 0
    functionLinenumber: 1479
    functionLinenumberEnd: 1481
    functionName: curlx_calloc
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_calloc(nbelem, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1481
    functionDepth: 0
    functionLinenumber: 1481
    functionLinenumberEnd: 1483
    functionName: curlx_realloc
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_realloc(ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1484
    functionName: curlx_free
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 108
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_free(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1488
    functionName: curlx_tcsdup
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_tcsdup(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1618
    functionDepth: 0
    functionLinenumber: 1618
    functionLinenumberEnd: 1619
    functionName: VERBOSE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERBOSE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1620
    functionName: NOVERBOSE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOVERBOSE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1621
    functionDepth: 0
    functionLinenumber: 1621
    functionLinenumberEnd: 1622
    functionName: VERBOSE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERBOSE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1623
    functionName: NOVERBOSE
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOVERBOSE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1636
    functionDepth: 0
    functionLinenumber: 1636
    functionLinenumberEnd: 1637
    functionName: curlx_memzero
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_memzero(buf, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1639
    functionName: curlx_memzero
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_memzero(buf, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1642
    functionName: curlx_memzero
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_memzero(buf, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1643
    functionDepth: 0
    functionLinenumber: 1643
    functionLinenumberEnd: 1644
    functionName: curlx_memzero
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_memzero(buf, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1650
    functionDepth: 0
    functionLinenumber: 1650
    functionLinenumberEnd: 1651
    functionName: curlx_memzero
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_memzero(buf, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1653
    functionName: curlx_memzero
    functionSourceFile: /src/curl/lib/curl_setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_memzero(buf, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/curl_addrinfo.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cahead
    argTypes:
    - struct Curl_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Curl_freeaddrinfo
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 2
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void Curl_freeaddrinfo(struct Curl_addrinfo *cahead)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CURL_GETADDRINFO
      Src: /src/curl/lib/curl_addrinfo.c:111,1
    - Dst: strlen
      Src: /src/curl/lib/curl_addrinfo.c:118,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/curl_addrinfo.c:138,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:157,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:161,1
    - Dst: CURL_FREEADDRINFO
      Src: /src/curl/lib/curl_addrinfo.c:176,1
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:180,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/lib/curl_addrinfo.c:192,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 4
    argNames:
    - nodename
    - servname
    - hints
    - result
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct Curl_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 200
    functionName: Curl_getaddrinfo_ex
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Curl_freeaddrinfo
    - CURL_FREEADDRINFO
    - curlx_malloc
    - CURL_GETADDRINFO
    - SET_SOCKERRNO
    - strlen
    linkageType: ''
    returnType: int
    signature: "int Curl_getaddrinfo_ex(const char *nodename,\n                        const
      char *servname,\n                        const struct addrinfo *hints,\n                        struct
      Curl_addrinfo **result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_addrinfo.c:260,1
    - Dst: strlen
      Src: /src/curl/lib/curl_addrinfo.c:264,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/curl_addrinfo.c:273,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:282,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:306,1
    - Dst: htons
      Src: /src/curl/lib/curl_addrinfo.c:308,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:315,1
    - Dst: htons
      Src: /src/curl/lib/curl_addrinfo.c:317,1
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:326,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 2
    argNames:
    - he
    - port
    argTypes:
    - struct hostent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 331
    functionName: Curl_he2ai
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 0
    functionsReached:
    - htons
    - memcpy
    - DEBUGASSERT
    - Curl_freeaddrinfo
    - curlx_calloc
    - strlen
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: struct Curl_addrinfo *Curl_he2ai(const struct hostent *he, int port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_addrinfo.c:353,1
    - Dst: strlen
      Src: /src/curl/lib/curl_addrinfo.c:355,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/curl_addrinfo.c:368,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:375,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:385,1
    - Dst: htons
      Src: /src/curl/lib/curl_addrinfo.c:387,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:394,1
    - Dst: htons
      Src: /src/curl/lib/curl_addrinfo.c:396,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - addrp
    - af
    - inaddr
    - hostname
    - port
    argTypes:
    - struct Curl_addrinfo**
    - int
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 402
    functionName: ip2addr
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 0
    functionsReached:
    - htons
    - memcpy
    - DEBUGASSERT
    - curlx_calloc
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ip2addr(struct Curl_addrinfo **addrp, int af,\n                        const
      void *inaddr, const char *hostname, int port)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/curl_addrinfo.c:412,1
    - Dst: ip2addr
      Src: /src/curl/lib/curl_addrinfo.c:414,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/curl_addrinfo.c:418,1
    - Dst: ip2addr
      Src: /src/curl/lib/curl_addrinfo.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - dotted
    - port
    - addrp
    argTypes:
    - char*
    - uint16_t
    - struct Curl_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 424
    functionName: Curl_str2addr
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 1
    functionsReached:
    - ip2addr
    - curlx_inet_pton
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_str2addr(const char *dotted, uint16_t port,\n                       struct
      Curl_addrinfo **addrp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/curl_addrinfo.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: Curl_is_ipv4addr
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 1
    functionsReached:
    - curlx_inet_pton
    linkageType: ''
    returnType: bool
    signature: bool Curl_is_ipv4addr(const char *address)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_is_ipv4addr
      Src: /src/curl/lib/curl_addrinfo.c:434,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/curl_addrinfo.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - address
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 445
    functionName: Curl_is_ipaddr
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 2
    functionsReached:
    - Curl_is_ipv4addr
    - curlx_inet_pton
    linkageType: ''
    returnType: bool
    signature: bool Curl_is_ipaddr(const char *address)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/curl_addrinfo.c:454,1
    - Dst: memset
      Src: /src/curl/lib/curl_addrinfo.c:456,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/curl_addrinfo.c:459,1
    - Dst: strncmp
      Src: /src/curl/lib/curl_addrinfo.c:465,1
    - Dst: ISALPHA
      Src: /src/curl/lib/curl_addrinfo.c:470,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/curl_addrinfo.c:470,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 30
    argCount: 5
    argNames:
    - s
    - len
    - maybe_url_encoded
    - host
    - zone
    argTypes:
    - char*
    - size_t
    - bool
    - struct Curl_str*
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 487
    functionName: Curl_looks_like_ipv6
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ISXDIGIT
    - ISALPHA
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool Curl_looks_like_ipv6(const char *s, size_t len, bool maybe_url_encoded,\n
      \                         struct Curl_str *host, struct Curl_str *zone)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/curl_addrinfo.c:505,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/curl_addrinfo.c:509,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:525,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_addrinfo.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - path
    - abstract
    - paddr
    argTypes:
    - char*
    - bool
    - struct Curl_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 531
    functionName: Curl_unix2addr
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 1
    functionsReached:
    - strlen
    - curlx_calloc
    - memcpy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_unix2addr(const char *path, bool abstract,\n                        struct
      Curl_addrinfo **paddr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_dbg_log
      Src: /src/curl/lib/curl_addrinfo.c:546,1
    - Dst: lwip_freeaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:549,1
    - Dst: getenv
      Src: /src/curl/lib/curl_addrinfo.c:552,1
    - Dst: r_freeaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:554,1
    - Dst: freeaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:557,1
    - Dst: freeaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - freethis
    - line
    - source
    argTypes:
    - struct addrinfo*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 563
    functionName: curl_dbg_freeaddrinfo
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 0
    functionsReached:
    - lwip_freeaddrinfo
    - getenv
    - freeaddrinfo
    - curl_dbg_log
    - r_freeaddrinfo
    linkageType: ''
    returnType: void
    signature: "void curl_dbg_freeaddrinfo(struct addrinfo *freethis,\n                           int
      line, const char *source)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lwip_getaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:581,1
    - Dst: getenv
      Src: /src/curl/lib/curl_addrinfo.c:584,1
    - Dst: r_getaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:586,1
    - Dst: getaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:589,1
    - Dst: getaddrinfo
      Src: /src/curl/lib/curl_addrinfo.c:592,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/curl_addrinfo.c:596,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/curl_addrinfo.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - hostname
    - service
    - hints
    - result
    - line
    - source
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 601
    functionName: curl_dbg_getaddrinfo
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 0
    functionsReached:
    - r_getaddrinfo
    - lwip_getaddrinfo
    - getenv
    - curl_dbg_log
    - getaddrinfo
    linkageType: ''
    returnType: int
    signature: "int curl_dbg_getaddrinfo(const char *hostname,\n                         const
      char *service,\n                         const struct addrinfo *hints,\n                         struct
      addrinfo **result,\n                         int line, const char *source)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/curl/lib/curl_addrinfo.c:620,1
    - Dst: htons
      Src: /src/curl/lib/curl_addrinfo.c:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - addrinfo
    - port
    argTypes:
    - struct Curl_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 631
    functionName: Curl_addrinfo_set_port
    functionSourceFile: /src/curl/lib/curl_addrinfo.c
    functionUses: 0
    functionsReached:
    - htons
    linkageType: ''
    returnType: void
    signature: void Curl_addrinfo_set_port(struct Curl_addrinfo *addrinfo, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: CURL_TRC_M_is_verbose
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_M_is_verbose(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: CURL_TRC_DNS_is_verbose
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_DNS_is_verbose(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: CURL_TRC_TIMER_is_verbose
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_TIMER_is_verbose(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: infof
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: infof(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: CURL_TRC_M
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_M(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - cf
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: CURL_TRC_CF
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_CF(data, cf, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: CURL_TRC_WRITE
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_WRITE(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: CURL_TRC_READ
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_READ(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: CURL_TRC_DNS
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_DNS(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - tid
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: CURL_TRC_TIMER
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_TIMER(data, tid, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: CURL_TRC_FTP
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_FTP(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: CURL_TRC_SMTP
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_SMTP(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: CURL_TRC_SSLS
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_SSLS(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: CURL_TRC_SSH
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_SSH(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: CURL_TRC_WS
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_WS(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: infof
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: infof(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: CURL_TRC_M
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_M(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - cf
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: CURL_TRC_CF
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_CF(data, cf, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: CURL_TRC_WRITE
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_WRITE(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: CURL_TRC_READ
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_READ(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: CURL_TRC_DNS
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_DNS(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - tid
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: CURL_TRC_TIMER
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_TIMER(data, tid, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: CURL_TRC_FTP
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_FTP(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: CURL_TRC_SMTP
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_SMTP(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: CURL_TRC_SSLS
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_SSLS(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: CURL_TRC_SSH
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_SSH(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: CURL_TRC_WS
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_WS(data, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: Curl_trc_is_verbose
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_trc_is_verbose(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cf
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: Curl_trc_cf_is_verbose
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_trc_cf_is_verbose(cf, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - ft
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: Curl_trc_ft_is_verbose
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_trc_ft_is_verbose(data, ft)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: CURL_MSTATE_NAME
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_MSTATE_NAME(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: CURL_TRC_EASY_TIMERS
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_EASY_TIMERS(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: Curl_trc_is_verbose
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_trc_is_verbose(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: Curl_trc_cf_is_verbose
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_trc_cf_is_verbose(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 340
    functionName: Curl_trc_ft_is_verbose
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_trc_ft_is_verbose(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: CURL_MSTATE_NAME
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_MSTATE_NAME(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: CURL_TRC_EASY_TIMERS
    functionSourceFile: /src/curl/lib/curl_trc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_EASY_TIMERS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: Curl_headersep
    functionSourceFile: /src/curl/lib/transfer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_headersep(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: Curl_rand
    functionSourceFile: /src/curl/lib/rand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_rand(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Curl_rand
    functionSourceFile: /src/curl/lib/rand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_rand(a, b, c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_realloc
      Src: /src/curl/lib/getenv.c:42,1
    - Dst: curlx_free
      Src: /src/curl/lib/getenv.c:44,1
    - Dst: GetEnvironmentVariableA
      Src: /src/curl/lib/getenv.c:53,1
    - Dst: curlx_free
      Src: /src/curl/lib/getenv.c:55,1
    - Dst: getenv
      Src: /src/curl/lib/getenv.c:66,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/getenv.c:67,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - variable
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 69
    functionName: curl_getenv
    functionSourceFile: /src/curl/lib/getenv.c
    functionUses: 7
    functionsReached:
    - getenv
    - curlx_strdup
    - curlx_free
    - GetEnvironmentVariableA
    - curlx_realloc
    linkageType: ''
    returnType: char
    signature: char *curl_getenv(const char *variable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/curl/lib/system_win32.c:45,1
    - Dst: WSAStartup
      Src: /src/curl/lib/system_win32.c:46,1
    - Dst: LOBYTE
      Src: /src/curl/lib/system_win32.c:59,1
    - Dst: LOBYTE
      Src: /src/curl/lib/system_win32.c:59,1
    - Dst: HIBYTE
      Src: /src/curl/lib/system_win32.c:60,1
    - Dst: HIBYTE
      Src: /src/curl/lib/system_win32.c:60,1
    - Dst: WSACleanup
      Src: /src/curl/lib/system_win32.c:64,1
    - Dst: lwip_init
      Src: /src/curl/lib/system_win32.c:69,1
    - Dst: Curl_sspi_global_init
      Src: /src/curl/lib/system_win32.c:75,1
    - Dst: curlx_verify_windows_init
      Src: /src/curl/lib/system_win32.c:81,1
    - Dst: curlx_now_init
      Src: /src/curl/lib/system_win32.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - flags
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 84
    functionName: Curl_win32_init
    functionSourceFile: /src/curl/lib/system_win32.c
    functionUses: 0
    functionsReached:
    - WSAStartup
    - lwip_init
    - HIBYTE
    - MAKEWORD
    - LOBYTE
    - curlx_verify_windows_init
    - Curl_sspi_global_init
    - WSACleanup
    - curlx_now_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_win32_init(long flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sspi_global_cleanup
      Src: /src/curl/lib/system_win32.c:90,1
    - Dst: WSACleanup
      Src: /src/curl/lib/system_win32.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - init_flags
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: Curl_win32_cleanup
    functionSourceFile: /src/curl/lib/system_win32.c
    functionUses: 0
    functionsReached:
    - WSACleanup
    - Curl_sspi_global_cleanup
    linkageType: ''
    returnType: void
    signature: void Curl_win32_cleanup(long init_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/uint-table.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tbl
    - entry_dtor
    argTypes:
    - struct uint32_tbl*
    - Curl_uint32_tbl_entry_dtor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: Curl_uint32_tbl_init
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void Curl_uint32_tbl_init(struct uint32_tbl *tbl,\n                          Curl_uint32_tbl_entry_dtor
      *entry_dtor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURLMIN
      Src: /src/curl/lib/uint-table.c:49,1
    - Dst: struct uint32_tbl*::entry_dtor
      Src: /src/curl/lib/uint-table.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - tbl
    - from
    - upto_excluding
    argTypes:
    - struct uint32_tbl*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: uint32_tbl_clear_rows
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - struct uint32_tbl*::entry_dtor
    linkageType: ''
    returnType: void
    signature: "void uint32_tbl_clear_rows(struct uint32_tbl *tbl,\n                                  uint32_t
      from,\n                                  uint32_t upto_excluding)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-table.c:63,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/uint-table.c:67,1
    - Dst: memcpy
      Src: /src/curl/lib/uint-table.c:71,1
    - Dst: CURLMIN
      Src: /src/curl/lib/uint-table.c:71,1
    - Dst: uint32_tbl_clear_rows
      Src: /src/curl/lib/uint-table.c:73,1
    - Dst: curlx_free
      Src: /src/curl/lib/uint-table.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - tbl
    - nrows
    argTypes:
    - struct uint32_tbl*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: Curl_uint32_tbl_resize
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 2
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - uint32_tbl_clear_rows
    - CURLMIN
    - curlx_free
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_uint32_tbl_resize(struct uint32_tbl *tbl, uint32_t nrows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-table.c:89,1
    - Dst: uint32_tbl_clear_rows
      Src: /src/curl/lib/uint-table.c:90,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-table.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tbl
    argTypes:
    - struct uint32_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: uint32_tbl_clear
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached:
    - uint32_tbl_clear_rows
    - DEBUGASSERT
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST uint32_tbl_clear(struct uint32_tbl *tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-table.c:97,1
    - Dst: uint32_tbl_clear
      Src: /src/curl/lib/uint-table.c:98,1
    - Dst: curlx_free
      Src: /src/curl/lib/uint-table.c:99,1
    - Dst: memset
      Src: /src/curl/lib/uint-table.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tbl
    argTypes:
    - struct uint32_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: Curl_uint32_tbl_destroy
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached:
    - curlx_free
    - uint32_tbl_clear
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_tbl_destroy(struct uint32_tbl *tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tbl
    argTypes:
    - struct uint32_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Curl_uint32_tbl_capacity
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Curl_uint32_tbl_capacity(struct uint32_tbl *tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tbl
    argTypes:
    - struct uint32_tbl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: Curl_uint32_tbl_count
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Curl_uint32_tbl_count(struct uint32_tbl *tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tbl
    - key
    argTypes:
    - struct uint32_tbl*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: Curl_uint32_tbl_get
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *Curl_uint32_tbl_get(struct uint32_tbl *tbl, uint32_t key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-table.c:122,1
    - Dst: CURLMIN
      Src: /src/curl/lib/uint-table.c:129,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-table.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - tbl
    - entry
    - pkey
    argTypes:
    - struct uint32_tbl*
    - void*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 152
    functionName: Curl_uint32_tbl_add
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached:
    - CURLMIN
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_tbl_add(struct uint32_tbl *tbl, void *entry, uint32_t
      *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint32_tbl_clear_rows
      Src: /src/curl/lib/uint-table.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tbl
    - key
    argTypes:
    - struct uint32_tbl*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Curl_uint32_tbl_remove
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached:
    - uint32_tbl_clear_rows
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_tbl_remove(struct uint32_tbl *tbl, uint32_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tbl
    - key
    argTypes:
    - struct uint32_tbl*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: Curl_uint32_tbl_contains
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_tbl_contains(struct uint32_tbl *tbl, uint32_t key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - tbl
    - key
    - pkey
    - pentry
    argTypes:
    - struct uint32_tbl*
    - uint32_t
    - uint32_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 177
    functionName: uint32_tbl_next_at
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool uint32_tbl_next_at(struct uint32_tbl *tbl, uint32_t key,\n                               uint32_t
      *pkey, void **pentry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uint32_tbl_next_at
      Src: /src/curl/lib/uint-table.c:184,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-table.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - tbl
    - pkey
    - pentry
    argTypes:
    - struct uint32_tbl*
    - uint32_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: Curl_uint32_tbl_first
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached:
    - uint32_tbl_next_at
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool Curl_uint32_tbl_first(struct uint32_tbl *tbl,\n                           uint32_t
      *pkey, void **pentry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uint32_tbl_next_at
      Src: /src/curl/lib/uint-table.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - tbl
    - last_key
    - pkey
    - pentry
    argTypes:
    - struct uint32_tbl*
    - uint32_t
    - uint32_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: Curl_uint32_tbl_next
    functionSourceFile: /src/curl/lib/uint-table.c
    functionUses: 1
    functionsReached:
    - uint32_tbl_next_at
    linkageType: ''
    returnType: bool
    signature: "bool Curl_uint32_tbl_next(struct uint32_tbl *tbl, uint32_t last_key,\n
      \                         uint32_t *pkey, void **pentry)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/easygetopt.c:33,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/easygetopt.c:34,1
    - Dst: Curl_easyopts_check
      Src: /src/curl/lib/easygetopt.c:34,1
    - Dst: curl_strequal
      Src: /src/curl/lib/easygetopt.c:39,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - name
    - id
    argTypes:
    - char*
    - CURLoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 51
    functionName: lookup
    functionSourceFile: /src/curl/lib/easygetopt.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - Curl_easyopts_check
    - DEBUGASSERT
    linkageType: ''
    returnType: struct curl_easyoption
    signature: struct curl_easyoption *lookup(const char *name, CURLoption id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/curl/lib/easygetopt.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: curl_easy_option_by_name
    functionSourceFile: /src/curl/lib/easygetopt.c
    functionUses: 1
    functionsReached:
    - lookup
    linkageType: ''
    returnType: struct curl_easyoption
    signature: struct curl_easyoption *curl_easy_option_by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/curl/lib/easygetopt.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - CURLoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: curl_easy_option_by_id
    functionSourceFile: /src/curl/lib/easygetopt.c
    functionUses: 1
    functionsReached:
    - lookup
    linkageType: ''
    returnType: struct curl_easyoption
    signature: struct curl_easyoption *curl_easy_option_by_id(CURLoption id)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - prev
    argTypes:
    - struct curl_easyoption*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: curl_easy_option_next
    functionSourceFile: /src/curl/lib/easygetopt.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct curl_easyoption
    signature: "struct curl_easyoption *curl_easy_option_next(\n  const struct curl_easyoption
      *prev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: curl_easy_option_by_name
    functionSourceFile: /src/curl/lib/easygetopt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct curl_easyoption
    signature: struct curl_easyoption *curl_easy_option_by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - CURLoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: curl_easy_option_by_id
    functionSourceFile: /src/curl/lib/easygetopt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct curl_easyoption
    signature: struct curl_easyoption *curl_easy_option_by_id(CURLoption id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prev
    argTypes:
    - struct curl_easyoption*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: curl_easy_option_next
    functionSourceFile: /src/curl/lib/easygetopt.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct curl_easyoption
    signature: "struct curl_easyoption *curl_easy_option_next(\n  const struct curl_easyoption
      *prev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:90,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:91,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/transfer.c:94,1
    - Dst: Curl_headersep
      Src: /src/curl/lib/transfer.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - data
    - thisheader
    - thislen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 100
    functionName: Curl_checkheaders
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 13
    functionsReached:
    - Curl_headersep
    - DEBUGASSERT
    - curl_strnequal
    linkageType: ''
    returnType: char
    signature: "char *Curl_checkheaders(const struct Curl_easy *data,\n                        const
      char *thisheader,\n                        const size_t thislen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_data_pending
      Src: /src/curl/lib/transfer.c:108,1
    - Dst: Curl_conn_data_pending
      Src: /src/curl/lib/transfer.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - data
    - rcvd_eagain
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: data_pending
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 2
    functionsReached:
    - Curl_conn_data_pending
    linkageType: ''
    returnType: int
    signature: int data_pending(struct Curl_easy *data, bool rcvd_eagain)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/transfer.c:130,1
    - Dst: infof
      Src: /src/curl/lib/transfer.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - data
    - timeofdoc
    argTypes:
    - struct Curl_easy*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: Curl_meets_timecondition
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 2
    functionsReached:
    - infof
    linkageType: ''
    returnType: bool
    signature: bool Curl_meets_timecondition(struct Curl_easy *data, time_t timeofdoc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_shutdown
      Src: /src/curl/lib/transfer.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: xfer_recv_shutdown
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 2
    functionsReached:
    - Curl_conn_shutdown
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode xfer_recv_shutdown(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_shutdown_started
      Src: /src/curl/lib/transfer.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: xfer_recv_shutdown_started
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_shutdown_started
    linkageType: ''
    returnType: bool
    signature: bool xfer_recv_shutdown_started(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_shutdown
      Src: /src/curl/lib/transfer.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: Curl_xfer_send_shutdown
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_conn_shutdown
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_xfer_send_shutdown(struct Curl_easy *data, bool *done)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:183,1
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/transfer.c:188,1
    - Dst: xfer_recv_shutdown_started
      Src: /src/curl/lib/transfer.c:190,1
    - Dst: Curl_xfer_recv
      Src: /src/curl/lib/transfer.c:196,1
    - Dst: xfer_recv_shutdown
      Src: /src/curl/lib/transfer.c:204,1
    - Dst: DEBUGF
      Src: /src/curl/lib/transfer.c:211,1
    - Dst: infof
      Src: /src/curl/lib/transfer.c:211,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - data
    - buf
    - blen
    - eos_reliable
    - pnread
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 214
    functionName: xfer_recv_resp
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_recv
    - DEBUGASSERT
    - curlx_sotouz_range
    - infof
    - xfer_recv_shutdown_started
    - xfer_recv_shutdown
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode xfer_recv_resp(struct Curl_easy *data,\n                               char
      *buf, size_t blen,\n                               bool eos_reliable,\n                               size_t
      *pnread)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_xfer_buf_borrow
      Src: /src/curl/lib/transfer.c:233,1
    - Dst: Curl_conn_is_multiplex
      Src: /src/curl/lib/transfer.c:246,1
    - Dst: Curl_rlimit_active
      Src: /src/curl/lib/transfer.c:252,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/lib/transfer.c:253,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/transfer.c:254,1
    - Dst: DEBUGF
      Src: /src/curl/lib/transfer.c:256,1
    - Dst: infof
      Src: /src/curl/lib/transfer.c:256,1
    - Dst: xfer_recv_resp
      Src: /src/curl/lib/transfer.c:271,1
    - Dst: DEBUGF
      Src: /src/curl/lib/transfer.c:279,1
    - Dst: infof
      Src: /src/curl/lib/transfer.c:279,1
    - Dst: Curl_req_stop_send_recv
      Src: /src/curl/lib/transfer.c:292,1
    - Dst: Curl_xfer_write_resp
      Src: /src/curl/lib/transfer.c:299,1
    - Dst: CURL_REQ_CLEAR_RECV
      Src: /src/curl/lib/transfer.c:307,1
    - Dst: CURL_REQ_WANT_RECV
      Src: /src/curl/lib/transfer.c:310,1
    - Dst: CURL_REQ_WANT_RECV
      Src: /src/curl/lib/transfer.c:315,1
    - Dst: data_pending
      Src: /src/curl/lib/transfer.c:316,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/transfer.c:319,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/transfer.c:320,1
    - Dst: CURL_REQ_WANT_RECV
      Src: /src/curl/lib/transfer.c:323,1
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/transfer.c:323,1
    - Dst: infof
      Src: /src/curl/lib/transfer.c:328,1
    - Dst: Curl_req_abort_sending
      Src: /src/curl/lib/transfer.c:329,1
    - Dst: Curl_multi_xfer_buf_release
      Src: /src/curl/lib/transfer.c:333,1
    - Dst: DEBUGF
      Src: /src/curl/lib/transfer.c:335,1
    - Dst: infof
      Src: /src/curl/lib/transfer.c:335,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 67
    argCount: 2
    argNames:
    - data
    - k
    argTypes:
    - struct Curl_easy*
    - struct SingleRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 337
    functionName: sendrecv_dl
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_req_stop_send_recv
    - data_pending
    - CURL_REQ_WANT_SEND
    - Curl_multi_mark_dirty
    - Curl_rlimit_avail
    - Curl_multi_xfer_buf_borrow
    - Curl_multi_xfer_buf_release
    - infof
    - CURL_REQ_WANT_RECV
    - Curl_xfer_write_resp
    - CURL_REQ_CLEAR_RECV
    - Curl_conn_is_multiplex
    - Curl_req_abort_sending
    - xfer_recv_resp
    - DEBUGF
    - Curl_rlimit_active
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sendrecv_dl(struct Curl_easy *data,\n                            struct
      SingleRequest *k)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:345,1
    - Dst: Curl_req_done_sending
      Src: /src/curl/lib/transfer.c:345,1
    - Dst: Curl_req_done_sending
      Src: /src/curl/lib/transfer.c:347,1
    - Dst: Curl_req_send_more
      Src: /src/curl/lib/transfer.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 350
    functionName: sendrecv_ul
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_req_done_sending
    - Curl_req_send_more
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode sendrecv_ul(struct Curl_easy *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_is_blocked
      Src: /src/curl/lib/transfer.c:361,1
    - Dst: CURL_REQ_WANT_RECV
      Src: /src/curl/lib/transfer.c:368,1
    - Dst: sendrecv_dl
      Src: /src/curl/lib/transfer.c:369,1
    - Dst: Curl_req_want_send
      Src: /src/curl/lib/transfer.c:375,1
    - Dst: sendrecv_ul
      Src: /src/curl/lib/transfer.c:376,1
    - Dst: Curl_pgrsCheck
      Src: /src/curl/lib/transfer.c:381,1
    - Dst: CURL_REQ_WANT_IO
      Src: /src/curl/lib/transfer.c:385,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/transfer.c:386,1
    - Dst: failf
      Src: /src/curl/lib/transfer.c:388,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/transfer.c:391,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/transfer.c:391,1
    - Dst: failf
      Src: /src/curl/lib/transfer.c:396,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/transfer.c:398,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/transfer.c:398,1
    - Dst: failf
      Src: /src/curl/lib/transfer.c:413,1
    - Dst: CURL_REQ_WANT_IO
      Src: /src/curl/lib/transfer.c:421,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/transfer.c:424,1
    - Dst: DEBUGF
      Src: /src/curl/lib/transfer.c:428,1
    - Dst: infof
      Src: /src/curl/lib/transfer.c:428,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 430
    functionName: Curl_sendrecv
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - sendrecv_ul
    - sendrecv_dl
    - failf
    - CURL_REQ_WANT_IO
    - Curl_pgrsUpdate
    - Curl_pgrsCheck
    - Curl_req_want_send
    - infof
    - CURL_REQ_WANT_RECV
    - Curl_timeleft_ms
    - DEBUGF
    - curlx_ptimediff_ms
    - Curl_xfer_is_blocked
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sendrecv(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 439
    functionName: Curl_init_CONNECT
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_init_CONNECT(struct Curl_easy *data)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/transfer.c:460,1
    - Dst: curlx_free
      Src: /src/curl/lib/transfer.c:468,1
    - Dst: curl_url_get
      Src: /src/curl/lib/transfer.c:469,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/transfer.c:473,1
    - Dst: failf
      Src: /src/curl/lib/transfer.c:474,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/transfer.c:479,1
    - Dst: failf
      Src: /src/curl/lib/transfer.c:483,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/transfer.c:495,1
    - Dst: Curl_http_neg_init
      Src: /src/curl/lib/transfer.c:502,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/transfer.c:507,1
    - Dst: Curl_data_priority_clear_state
      Src: /src/curl/lib/transfer.c:508,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/transfer.c:510,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/transfer.c:512,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/transfer.c:515,1
    - Dst: strlen
      Src: /src/curl/lib/transfer.c:523,1
    - Dst: Curl_cookie_loadfiles
      Src: /src/curl/lib/transfer.c:529,1
    - Dst: Curl_cookie_run
      Src: /src/curl/lib/transfer.c:531,1
    - Dst: Curl_loadhostpairs
      Src: /src/curl/lib/transfer.c:535,1
    - Dst: Curl_hsts_loadfiles
      Src: /src/curl/lib/transfer.c:539,1
    - Dst: signal
      Src: /src/curl/lib/transfer.c:552,1
    - Dst: Curl_initinfo
      Src: /src/curl/lib/transfer.c:555,1
    - Dst: Curl_pgrsResetTransferSizes
      Src: /src/curl/lib/transfer.c:556,1
    - Dst: Curl_pgrsStartNow
      Src: /src/curl/lib/transfer.c:557,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/transfer.c:570,1
    - Dst: struct WildcardData*::dtor
      Src: /src/curl/lib/transfer.c:577,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/transfer.c:578,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/transfer.c:579,1
    - Dst: Curl_wildcard_init
      Src: /src/curl/lib/transfer.c:580,1
    - Dst: Curl_hsts_loadcb
      Src: /src/curl/lib/transfer.c:584,1
    - Dst: curlx_free
      Src: /src/curl/lib/transfer.c:592,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/transfer.c:594,1
    - Dst: Curl_headers_cleanup
      Src: /src/curl/lib/transfer.c:600,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 602
    functionName: Curl_pretransfer
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_bufref_set
    - struct WildcardData*::dtor
    - curl_maprintf
    - Curl_cookie_run
    - Curl_wildcard_init
    - Curl_peer_unlink
    - curl_url_get
    - Curl_http_neg_init
    - Curl_headers_cleanup
    - failf
    - Curl_initinfo
    - Curl_hsts_loadcb
    - curlx_free
    - Curl_cookie_loadfiles
    - curlx_calloc
    - Curl_hsts_loadfiles
    - Curl_bufref_free
    - Curl_data_priority_clear_state
    - Curl_pgrsResetTransferSizes
    - signal
    - Curl_pgrsStartNow
    - strlen
    - Curl_loadhostpairs
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_pretransfer(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/transfer.c:643,1
    - Dst: failf
      Src: /src/curl/lib/transfer.c:650,1
    - Dst: infof
      Src: /src/curl/lib/transfer.c:655,1
    - Dst: Curl_bufref_dup
      Src: /src/curl/lib/transfer.c:657,1
    - Dst: connclose
      Src: /src/curl/lib/transfer.c:661,1
    - Dst: Curl_creader_set_rewind
      Src: /src/curl/lib/transfer.c:666,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 2
    argNames:
    - data
    - url
    argTypes:
    - struct Curl_easy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 669
    functionName: Curl_retry_request
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_creader_set_rewind
    - failf
    - infof
    - Curl_bufref_dup
    - connclose
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_retry_request(struct Curl_easy *data, char **url)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:681,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:683,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:684,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:686,1
    - Dst: Curl_req_want_send
      Src: /src/curl/lib/transfer.c:686,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:692,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/transfer.c:703,1
    - Dst: CURL_REQ_SET_RECV
      Src: /src/curl/lib/transfer.c:708,1
    - Dst: CURL_REQ_SET_SEND
      Src: /src/curl/lib/transfer.c:710,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/transfer.c:712,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 4
    argNames:
    - data
    - send_idx
    - recv_idx
    - recv_size
    argTypes:
    - struct Curl_easy*
    - int
    - int
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 714
    functionName: xfer_setup
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_pgrsSetDownloadSize
    - Curl_req_want_send
    - CURL_REQ_SET_RECV
    - CURL_REQ_SET_SEND
    - CURL_TRC_M
    linkageType: ''
    returnType: void
    signature: "void xfer_setup(\n  struct Curl_easy *data,   /* transfer */\n  int
      send_idx,             /* sockindex to send on or -1 */\n  int recv_idx,             /*
      sockindex to receive on or -1 */\n  curl_off_t recv_size      /* how much to
      receive, -1 if unknown */\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfer_setup
      Src: /src/curl/lib/transfer.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 719
    functionName: Curl_xfer_setup_nop
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - xfer_setup
    linkageType: ''
    returnType: void
    signature: void Curl_xfer_setup_nop(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfer_setup
      Src: /src/curl/lib/transfer.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - sockindex
    - recv_size
    argTypes:
    - struct Curl_easy*
    - int
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: Curl_xfer_setup_sendrecv
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 1
    functionsReached:
    - xfer_setup
    linkageType: ''
    returnType: void
    signature: "void Curl_xfer_setup_sendrecv(struct Curl_easy *data,\n                              int
      sockindex,\n                              curl_off_t recv_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfer_setup
      Src: /src/curl/lib/transfer.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 732
    functionName: Curl_xfer_setup_send
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - xfer_setup
    linkageType: ''
    returnType: void
    signature: "void Curl_xfer_setup_send(struct Curl_easy *data,\n                          int
      sockindex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfer_setup
      Src: /src/curl/lib/transfer.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - sockindex
    - recv_size
    argTypes:
    - struct Curl_easy*
    - int
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 739
    functionName: Curl_xfer_setup_recv
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - xfer_setup
    linkageType: ''
    returnType: void
    signature: "void Curl_xfer_setup_recv(struct Curl_easy *data,\n                          int
      sockindex,\n                          curl_off_t recv_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - data
    - shutdown
    - ignore_errors
    argTypes:
    - struct Curl_easy*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 750
    functionName: Curl_xfer_set_shutdown
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_xfer_set_shutdown(struct Curl_easy *data,\n                            bool
      shutdown,\n                            bool ignore_errors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_easy*::conn::scheme::run::write_resp
      Src: /src/curl/lib/transfer.c:761,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/transfer.c:770,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/transfer.c:779,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - data
    - buf
    - blen
    - is_eos
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 782
    functionName: Curl_xfer_write_resp
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 1
    functionsReached:
    - CURL_TRC_WRITE
    - Curl_client_write
    - struct Curl_easy*::conn::scheme::run::write_resp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_xfer_write_resp(struct Curl_easy *data,\n                              const
      char *buf, size_t blen,\n                              bool is_eos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_is_paused
      Src: /src/curl/lib/transfer.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 787
    functionName: Curl_xfer_write_is_paused
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_is_paused
    linkageType: ''
    returnType: bool
    signature: bool Curl_xfer_write_is_paused(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:793,1
    - Dst: struct Curl_easy*::conn::scheme::run::write_resp_hd
      Src: /src/curl/lib/transfer.c:796,1
    - Dst: Curl_xfer_write_resp
      Src: /src/curl/lib/transfer.c:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - data
    - hd0
    - hdlen
    - is_eos
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 800
    functionName: Curl_xfer_write_resp_hd
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - struct Curl_easy*::conn::scheme::run::write_resp_hd
    - DEBUGASSERT
    - Curl_xfer_write_resp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_xfer_write_resp_hd(struct Curl_easy *data,\n                                 const
      char *hd0, size_t hdlen, bool is_eos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cw_out_done
      Src: /src/curl/lib/transfer.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - premature
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 802
    functionDepth: 7
    functionLinenumber: 802
    functionLinenumberEnd: 806
    functionName: Curl_xfer_write_done
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_cw_out_done
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_xfer_write_done(struct Curl_easy *data, bool premature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_needs_flush
      Src: /src/curl/lib/transfer.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 811
    functionName: Curl_xfer_needs_flush
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_conn_needs_flush
    linkageType: ''
    returnType: bool
    signature: bool Curl_xfer_needs_flush(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_flush
      Src: /src/curl/lib/transfer.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 816
    functionName: Curl_xfer_flush
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_conn_flush
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_xfer_flush(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:824,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:825,1
    - Dst: Curl_conn_send
      Src: /src/curl/lib/transfer.c:827,1
    - Dst: DEBUGF
      Src: /src/curl/lib/transfer.c:836,1
    - Dst: infof
      Src: /src/curl/lib/transfer.c:836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - data
    - buf
    - blen
    - eos
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - void*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 839
    functionName: Curl_xfer_send
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_conn_send
    - DEBUGF
    - DEBUGASSERT
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_xfer_send(struct Curl_easy *data,\n                        const
      void *buf, size_t blen, bool eos,\n                        size_t *pnwritten)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:845,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:846,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:847,1
    - Dst: curlx_uitouz
      Src: /src/curl/lib/transfer.c:849,1
    - Dst: curlx_uitouz
      Src: /src/curl/lib/transfer.c:850,1
    - Dst: Curl_conn_recv
      Src: /src/curl/lib/transfer.c:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - data
    - buf
    - blen
    - pnrcvd
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 852
    functionName: Curl_xfer_recv
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 1
    functionsReached:
    - curlx_uitouz
    - DEBUGASSERT
    - Curl_conn_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_xfer_recv(struct Curl_easy *data,\n                        char
      *buf, size_t blen,\n                        size_t *pnrcvd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_ev_data_done_send
      Src: /src/curl/lib/transfer.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 858
    functionName: Curl_xfer_send_close
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_conn_ev_data_done_send
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_xfer_send_close(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/transfer.c:862,1
    - Dst: CURL_REQ_WANT_RECV
      Src: /src/curl/lib/transfer.c:863,1
    - Dst: Curl_xfer_recv_is_paused
      Src: /src/curl/lib/transfer.c:865,1
    - Dst: Curl_xfer_send_is_paused
      Src: /src/curl/lib/transfer.c:867,1
    - Dst: Curl_xfer_recv_is_paused
      Src: /src/curl/lib/transfer.c:869,1
    - Dst: Curl_xfer_send_is_paused
      Src: /src/curl/lib/transfer.c:869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 870
    functionName: Curl_xfer_is_blocked
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 1
    functionsReached:
    - CURL_REQ_WANT_RECV
    - Curl_xfer_recv_is_paused
    - CURL_REQ_WANT_SEND
    - Curl_xfer_send_is_paused
    linkageType: ''
    returnType: bool
    signature: bool Curl_xfer_is_blocked(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_is_blocked
      Src: /src/curl/lib/transfer.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 875
    functionName: Curl_xfer_send_is_paused
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 1
    functionsReached:
    - Curl_rlimit_is_blocked
    linkageType: ''
    returnType: bool
    signature: bool Curl_xfer_send_is_paused(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_is_blocked
      Src: /src/curl/lib/transfer.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 880
    functionName: Curl_xfer_recv_is_paused
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 1
    functionsReached:
    - Curl_rlimit_is_blocked
    linkageType: ''
    returnType: bool
    signature: bool Curl_xfer_recv_is_paused(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_block
      Src: /src/curl/lib/transfer.c:885,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/transfer.c:885,1
    - Dst: Curl_creader_is_paused
      Src: /src/curl/lib/transfer.c:886,1
    - Dst: Curl_creader_unpause
      Src: /src/curl/lib/transfer.c:887,1
    - Dst: Curl_pgrsSendPause
      Src: /src/curl/lib/transfer.c:888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - enable
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 890
    functionName: Curl_xfer_pause_send
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_creader_unpause
    - Curl_pgrsSendPause
    - Curl_creader_is_paused
    - Curl_rlimit_block
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_xfer_pause_send(struct Curl_easy *data, bool enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_block
      Src: /src/curl/lib/transfer.c:895,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/transfer.c:895,1
    - Dst: Curl_cwriter_is_paused
      Src: /src/curl/lib/transfer.c:896,1
    - Dst: Curl_cwriter_unpause
      Src: /src/curl/lib/transfer.c:897,1
    - Dst: Curl_conn_ev_data_pause
      Src: /src/curl/lib/transfer.c:898,1
    - Dst: Curl_pgrsRecvPause
      Src: /src/curl/lib/transfer.c:899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - enable
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 901
    functionName: Curl_xfer_pause_recv
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - Curl_cwriter_unpause
    - Curl_cwriter_is_paused
    - Curl_pgrsRecvPause
    - Curl_rlimit_block
    - Curl_conn_ev_data_pause
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_xfer_pause_recv(struct Curl_easy *data, bool enable)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/transfer.c:912,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/transfer.c:913,1
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/transfer.c:917,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/transfer.c:920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 923
    functionName: Curl_xfer_is_secure
    functionSourceFile: /src/curl/lib/transfer.c
    functionUses: 3
    functionsReached:
    - Curl_conn_is_connected
    - Curl_conn_is_ssl
    - DEBUGASSERT
    - Curl_get_scheme
    linkageType: ''
    returnType: bool
    signature: bool Curl_xfer_is_secure(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:36,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:37,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/dynhds.c:38,1
    - Dst: memcpy
      Src: /src/curl/lib/dynhds.c:42,1
    - Dst: memcpy
      Src: /src/curl/lib/dynhds.c:45,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/dynhds.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - name
    - namelen
    - value
    - valuelen
    - opts
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: entry_new
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 0
    functionsReached:
    - Curl_strntolower
    - curlx_calloc
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: struct dynhds_entry
    signature: "struct dynhds_entry *entry_new(const char *name, size_t namelen,\n
      \                                     const char *value, size_t valuelen,\n
      \                                     int opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/dynhds.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct dynhds_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: entry_free
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void entry_free(struct dynhds_entry *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:60,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - dynhds
    - max_entries
    - max_strs_size
    argTypes:
    - struct dynhds*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: Curl_dynhds_init
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 4
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_dynhds_init(struct dynhds *dynhds, size_t max_entries,\n
      \                     size_t max_strs_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:71,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:74,1
    - Dst: entry_free
      Src: /src/curl/lib/dynhds.c:76,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/dynhds.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - dynhds
    argTypes:
    - struct dynhds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: Curl_dynhds_free
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 3
    functionsReached:
    - curlx_safefree
    - entry_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_dynhds_free(struct dynhds *dynhds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:85,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:88,1
    - Dst: entry_free
      Src: /src/curl/lib/dynhds.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dynhds
    argTypes:
    - struct dynhds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: Curl_dynhds_reset
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 2
    functionsReached:
    - entry_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_dynhds_reset(struct dynhds *dynhds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dynhds
    argTypes:
    - struct dynhds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: Curl_dynhds_count
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_dynhds_count(struct dynhds *dynhds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dynhds
    - opts
    argTypes:
    - struct dynhds*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: Curl_dynhds_set_opts
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_dynhds_set_opts(struct dynhds *dynhds, int opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dynhds
    - n
    argTypes:
    - struct dynhds*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: Curl_dynhds_getn
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: struct dynhds_entry
    signature: struct dynhds_entry *Curl_dynhds_getn(struct dynhds *dynhds, size_t
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/dynhds.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - dynhds
    - name
    - namelen
    argTypes:
    - struct dynhds*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: Curl_dynhds_get
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 2
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: struct dynhds_entry
    signature: "struct dynhds_entry *Curl_dynhds_get(struct dynhds *dynhds, const
      char *name,\n                                     size_t namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dynhds_get
      Src: /src/curl/lib/dynhds.c:128,1
    - Dst: strlen
      Src: /src/curl/lib/dynhds.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dynhds
    - name
    argTypes:
    - struct dynhds*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: Curl_dynhds_cget
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - strlen
    - Curl_dynhds_get
    linkageType: ''
    returnType: struct dynhds_entry
    signature: struct dynhds_entry *Curl_dynhds_cget(struct dynhds *dynhds, const
      char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:138,1
    - Dst: entry_new
      Src: /src/curl/lib/dynhds.c:144,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/dynhds.c:155,1
    - Dst: memcpy
      Src: /src/curl/lib/dynhds.c:159,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/dynhds.c:161,1
    - Dst: entry_free
      Src: /src/curl/lib/dynhds.c:173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - dynhds
    - name
    - namelen
    - value
    - valuelen
    argTypes:
    - struct dynhds*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 175
    functionName: Curl_dynhds_add
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - entry_new
    - memcpy
    - DEBUGASSERT
    - curlx_calloc
    - entry_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_dynhds_add(struct dynhds *dynhds,\n                         const
      char *name, size_t namelen,\n                         const char *value, size_t
      valuelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/dynhds.c:180,1
    - Dst: strlen
      Src: /src/curl/lib/dynhds.c:180,1
    - Dst: strlen
      Src: /src/curl/lib/dynhds.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dynhds
    - name
    - value
    argTypes:
    - struct dynhds*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: Curl_dynhds_cadd
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - Curl_dynhds_add
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_dynhds_cadd(struct dynhds *dynhds,\n                          const
      char *name, const char *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/curl/lib/dynhds.c:195,1
    - Dst: ISBLANK
      Src: /src/curl/lib/dynhds.c:202,1
    - Dst: memchr
      Src: /src/curl/lib/dynhds.c:208,1
    - Dst: memchr
      Src: /src/curl/lib/dynhds.c:210,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/dynhds.c:214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - dynhds
    - line
    - line_len
    argTypes:
    - struct dynhds*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 215
    functionName: Curl_dynhds_h1_add_line
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 0
    functionsReached:
    - ISBLANK
    - Curl_dynhds_add
    - memchr
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_dynhds_h1_add_line(struct dynhds *dynhds,\n                                 const
      char *line, size_t line_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dynhds_h1_add_line
      Src: /src/curl/lib/dynhds.c:219,1
    - Dst: strlen
      Src: /src/curl/lib/dynhds.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dynhds
    - line
    argTypes:
    - struct dynhds*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: Curl_dynhds_h1_cadd_line
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - strlen
    - Curl_dynhds_h1_add_line
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_dynhds_h1_cadd_line(struct dynhds *dynhds, const char
      *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dynhds_get
      Src: /src/curl/lib/dynhds.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dynhds
    - name
    - namelen
    argTypes:
    - struct dynhds*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: dynhds_contains
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - Curl_dynhds_get
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST dynhds_contains(struct dynhds *dynhds,\n                              const
      char *name, size_t namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynhds_contains
      Src: /src/curl/lib/dynhds.c:240,1
    - Dst: strlen
      Src: /src/curl/lib/dynhds.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dynhds
    - name
    argTypes:
    - struct dynhds*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: dynhds_ccontains
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - dynhds_contains
    - strlen
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST dynhds_ccontains(struct dynhds *dynhds, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/dynhds.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - dynhds
    - name
    - namelen
    argTypes:
    - struct dynhds*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: dynhds_count_name
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST dynhds_count_name(struct dynhds *dynhds,\n                                  const
      char *name, size_t namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynhds_count_name
      Src: /src/curl/lib/dynhds.c:277,1
    - Dst: strlen
      Src: /src/curl/lib/dynhds.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dynhds
    - name
    argTypes:
    - struct dynhds*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: dynhds_ccount_name
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - dynhds_count_name
    - strlen
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST dynhds_ccount_name(struct dynhds *dynhds,\n                                        const
      char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/dynhds.c:296,1
    - Dst: entry_free
      Src: /src/curl/lib/dynhds.c:301,1
    - Dst: memmove
      Src: /src/curl/lib/dynhds.c:304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - dynhds
    - name
    - namelen
    argTypes:
    - struct dynhds*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 312
    functionName: dynhds_remove
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - memmove
    - entry_free
    - curl_strnequal
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST dynhds_remove(struct dynhds *dynhds,\n                              const
      char *name, size_t namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynhds_remove
      Src: /src/curl/lib/dynhds.c:328,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/dynhds.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - dynhds
    - name
    - namelen
    - value
    - valuelen
    argTypes:
    - struct dynhds*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: dynhds_set
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - Curl_dynhds_add
    - dynhds_remove
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST dynhds_set(struct dynhds *dynhds,\n                             const
      char *name, size_t namelen,\n                             const char *value,
      size_t valuelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynhds_remove
      Src: /src/curl/lib/dynhds.c:336,1
    - Dst: strlen
      Src: /src/curl/lib/dynhds.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dynhds
    - name
    argTypes:
    - struct dynhds*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: dynhds_cremove
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - strlen
    - dynhds_remove
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST dynhds_cremove(struct dynhds *dynhds, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/dynhds.c:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - dynhds
    - dbuf
    argTypes:
    - struct dynhds*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 359
    functionName: Curl_dynhds_h1_dprint
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_dynhds_h1_dprint(struct dynhds *dynhds, struct dynbuf
      *dbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/dynhds.c:365,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dynhds.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - dynhds
    - pcount
    argTypes:
    - struct dynhds*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 383
    functionName: Curl_dynhds_to_nva
    functionSourceFile: /src/curl/lib/dynhds.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    - DEBUGASSERT
    linkageType: ''
    returnType: nghttp2_nv
    signature: nghttp2_nv *Curl_dynhds_to_nva(struct dynhds *dynhds, size_t *pcount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: OUTCHAR
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTCHAR(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/lib/mprintf.c:141,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/mprintf.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - p
    - end
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: dollarstring
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - curlx_str_number
    linkageType: ''
    returnType: int
    signature: int dollarstring(const char *p, const char **end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: is_arg_used
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_arg_used(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: mark_arg_used
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mark_arg_used(x, y)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: dollarstring
      Src: /src/curl/lib/mprintf.c:204,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/mprintf.c:220,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/mprintf.c:286,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/mprintf.c:299,1
    - Dst: dollarstring
      Src: /src/curl/lib/mprintf.c:307,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 115
    argCount: 5
    argNames:
    - fmtp
    - flagsp
    - use_dollar
    - precp
    - widthp
    argTypes:
    - char**
    - unsigned int*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 327
    functionName: parse_flags
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - dollarstring
    - curlx_str_number
    - FALLTHROUGH
    linkageType: ''
    returnType: int
    signature: "int parse_flags(const char **fmtp, unsigned int *flagsp, int use_dollar,\n
      \                      int *precp, int *widthp)"
  - BBCount: 28
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 84
    argCount: 3
    argNames:
    - f
    - flagp
    - typep
    argTypes:
    - char
    - unsigned int*
    - FormatType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 424
    functionName: parse_conversion
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool parse_conversion(const char f, unsigned int *flagp,\n                             FormatType
      *typep)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/mprintf.c:444,1
    - Dst: dollarstring
      Src: /src/curl/lib/mprintf.c:475,1
    - Dst: parse_flags
      Src: /src/curl/lib/mprintf.c:489,1
    - Dst: parse_conversion
      Src: /src/curl/lib/mprintf.c:493,1
    - Dst: is_arg_used
      Src: /src/curl/lib/mprintf.c:501,1
    - Dst: mark_arg_used
      Src: /src/curl/lib/mprintf.c:511,1
    - Dst: is_arg_used
      Src: /src/curl/lib/mprintf.c:519,1
    - Dst: mark_arg_used
      Src: /src/curl/lib/mprintf.c:528,1
    - Dst: mark_arg_used
      Src: /src/curl/lib/mprintf.c:543,1
    - Dst: is_arg_used
      Src: /src/curl/lib/mprintf.c:576,1
    - Dst: va_arg
      Src: /src/curl/lib/mprintf.c:583,1
    - Dst: va_arg
      Src: /src/curl/lib/mprintf.c:588,1
    - Dst: va_arg
      Src: /src/curl/lib/mprintf.c:592,1
    - Dst: va_arg
      Src: /src/curl/lib/mprintf.c:596,1
    - Dst: va_arg
      Src: /src/curl/lib/mprintf.c:600,1
    - Dst: va_arg
      Src: /src/curl/lib/mprintf.c:604,1
    - Dst: va_arg
      Src: /src/curl/lib/mprintf.c:608,1
    - Dst: va_arg
      Src: /src/curl/lib/mprintf.c:614,1
    - Dst: va_arg
      Src: /src/curl/lib/mprintf.c:618,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mprintf.c:622,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 136
    argCount: 6
    argNames:
    - format
    - out
    - in
    - opieces
    - ipieces
    - arglist
    argTypes:
    - char*
    - struct outsegment*
    - struct va_input*
    - int*
    - int*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 630
    functionName: parsefmt
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - parse_conversion
    - va_arg
    - DEBUGASSERT
    - dollarstring
    - mark_arg_used
    - parse_flags
    - is_arg_used
    - memset
    linkageType: ''
    returnType: int
    signature: "int parsefmt(const char *format,\n                    struct outsegment
      *out,\n                    struct va_input *in,\n                    int *opieces,\n
      \                   int *ipieces, va_list arglist)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/mprintf.c:646,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/mprintf.c:667,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/mprintf.c:691,1
    - Dst: curlx_win32_snprintf
      Src: /src/curl/lib/mprintf.c:713,1
    - Dst: snprintf
      Src: /src/curl/lib/mprintf.c:718,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mprintf.c:723,1
    - Dst: strlen
      Src: /src/curl/lib/mprintf.c:723,1
    - Dst: stream
      Src: /src/curl/lib/mprintf.c:725,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 5
    argNames:
    - userp
    - p
    - dnum
    - work
    - donep
    argTypes:
    - void*
    - struct mproperty*
    - double
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 730
    functionName: out_double
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curlx_win32_snprintf
    - strlen
    - DEBUGASSERT
    - stream
    - snprintf
    linkageType: ''
    returnType: bool
    signature: "bool out_double(void *userp,\n                       int (*stream)(unsigned
      char, void *),\n                       struct mproperty *p,\n                       double
      dnum,\n                       char *work, int *donep)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:757,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:758,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:761,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mprintf.c:796,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:833,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:836,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:838,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:840,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:843,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:845,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:847,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:852,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:856,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:861,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 85
    argCount: 6
    argNames:
    - userp
    - p
    - num
    - nums
    - work
    - donep
    argTypes:
    - void*
    - struct mproperty*
    - uint64_t
    - int64_t
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 864
    functionName: out_number
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - OUTCHAR
    linkageType: ''
    returnType: bool
    signature: "bool out_number(void *userp,\n                       int (*stream)(unsigned
      char, void *),\n                       struct mproperty *p,\n                       uint64_t
      num,\n                       int64_t nums,\n                       char *work,
      int *donep)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/mprintf.c:897,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:902,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:906,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:909,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:912,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:915,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - userp
    - p
    - str
    - donep
    argTypes:
    - void*
    - struct mproperty*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 918
    functionName: out_string
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - strlen
    - OUTCHAR
    linkageType: ''
    returnType: bool
    signature: "bool out_string(void *userp,\n                       int (*stream)(unsigned
      char, void *),\n                       struct mproperty *p,\n                       const
      char *str,\n                       int *donep)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: out_number
      Src: /src/curl/lib/mprintf.c:933,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:945,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:947,1
    - Dst: OUTCHAR
      Src: /src/curl/lib/mprintf.c:950,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - userp
    - p
    - ptr
    - work
    - donep
    argTypes:
    - void*
    - struct mproperty*
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 953
    functionName: out_pointer
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - out_number
    - OUTCHAR
    linkageType: ''
    returnType: bool
    signature: "bool out_pointer(void *userp,\n                        int (*stream)(unsigned
      char, void *),\n                        struct mproperty *p,\n                        const
      char *ptr,\n                        char *work,\n                        int
      *donep)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: parsefmt
      Src: /src/curl/lib/mprintf.c:987,1
    - Dst: stream
      Src: /src/curl/lib/mprintf.c:999,1
    - Dst: out_number
      Src: /src/curl/lib/mprintf.c:1045,1
    - Dst: out_number
      Src: /src/curl/lib/mprintf.c:1052,1
    - Dst: out_string
      Src: /src/curl/lib/mprintf.c:1058,1
    - Dst: out_pointer
      Src: /src/curl/lib/mprintf.c:1063,1
    - Dst: out_double
      Src: /src/curl/lib/mprintf.c:1068,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 3
    argNames:
    - userp
    - format
    - ap_save
    argTypes:
    - void*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 970
    functionDepth: 4
    functionLinenumber: 970
    functionLinenumberEnd: 1089
    functionName: formatf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - parsefmt
    - out_double
    - stream
    - out_number
    - out_pointer
    - out_string
    linkageType: ''
    returnType: int
    signature: "int formatf(void *userp, /* untouched by format(), sent to the\n                                   stream()
      function in the second argument */\n                   /* function pointer called
      for each output character */\n                   int (*stream)(unsigned char,
      void *),\n                   const char *format, /* %-formatted string */\n
      \                  va_list ap_save)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - outc
    - f
    argTypes:
    - unsigned char
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1102
    functionName: addbyter
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int addbyter(unsigned char outc, void *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: formatf
      Src: /src/curl/lib/mprintf.c:1114,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mprintf.c:1120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - buffer
    - maxlength
    - format
    - args
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1104
    functionDepth: 5
    functionLinenumber: 1104
    functionLinenumberEnd: 1127
    functionName: curl_mvsnprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - formatf
    linkageType: ''
    returnType: int
    signature: "int curl_mvsnprintf(char *buffer, size_t maxlength, const char *format,\n
      \                   va_list args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/mprintf.c:1133,1
    - Dst: curl_mvsnprintf
      Src: /src/curl/lib/mprintf.c:1134,1
    - Dst: va_end
      Src: /src/curl/lib/mprintf.c:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buffer
    - maxlength
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1129
    functionDepth: 6
    functionLinenumber: 1129
    functionLinenumberEnd: 1137
    functionName: curl_msnprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 79
    functionsReached:
    - va_start
    - va_end
    - curl_mvsnprintf
    linkageType: ''
    returnType: int
    signature: int curl_msnprintf(char *buffer, size_t maxlength, const char *format,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/mprintf.c:1143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - outc
    - f
    argTypes:
    - unsigned char
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1149
    functionName: alloc_addbyter
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    linkageType: ''
    returnType: int
    signature: int alloc_addbyter(unsigned char outc, void *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: formatf
      Src: /src/curl/lib/mprintf.c:1158,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/mprintf.c:1160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - dyn
    - format
    - args
    argTypes:
    - struct dynbuf*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1152
    functionDepth: 5
    functionLinenumber: 1152
    functionLinenumberEnd: 1164
    functionName: curlx_dyn_vprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_free
    - formatf
    linkageType: ''
    returnType: int
    signature: int curlx_dyn_vprintf(struct dynbuf *dyn, const char *format, va_list
      args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/mprintf.c:1171,1
    - Dst: formatf
      Src: /src/curl/lib/mprintf.c:1174,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/mprintf.c:1176,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mprintf.c:1179,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/mprintf.c:1180,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/mprintf.c:1181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1166
    functionDepth: 5
    functionLinenumber: 1166
    functionLinenumberEnd: 1182
    functionName: curl_mvaprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_strdup
    - formatf
    - curlx_dyn_ptr
    linkageType: ''
    returnType: char
    signature: char *curl_mvaprintf(const char *format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/mprintf.c:1188,1
    - Dst: curl_mvaprintf
      Src: /src/curl/lib/mprintf.c:1189,1
    - Dst: va_end
      Src: /src/curl/lib/mprintf.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1184
    functionDepth: 6
    functionLinenumber: 1184
    functionLinenumberEnd: 1192
    functionName: curl_maprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 21
    functionsReached:
    - va_start
    - va_end
    - curl_mvaprintf
    linkageType: ''
    returnType: char
    signature: char *curl_maprintf(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - outc
    - f
    argTypes:
    - unsigned char
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1200
    functionName: storebuffer
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int storebuffer(unsigned char outc, void *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/mprintf.c:1206,1
    - Dst: formatf
      Src: /src/curl/lib/mprintf.c:1207,1
    - Dst: va_end
      Src: /src/curl/lib/mprintf.c:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - format
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1202
    functionDepth: 5
    functionLinenumber: 1202
    functionLinenumberEnd: 1211
    functionName: curl_msprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 9
    functionsReached:
    - va_start
    - va_end
    - formatf
    linkageType: ''
    returnType: int
    signature: int curl_msprintf(char *buffer, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/curl/lib/mprintf.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outc
    - f
    argTypes:
    - unsigned char
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1219
    functionName: fputc_wrapper
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - fputc
    linkageType: ''
    returnType: int
    signature: int fputc_wrapper(unsigned char outc, void *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/mprintf.c:1225,1
    - Dst: formatf
      Src: /src/curl/lib/mprintf.c:1226,1
    - Dst: va_end
      Src: /src/curl/lib/mprintf.c:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1221
    functionDepth: 5
    functionLinenumber: 1221
    functionLinenumberEnd: 1229
    functionName: curl_mprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 143
    functionsReached:
    - va_start
    - va_end
    - formatf
    linkageType: ''
    returnType: int
    signature: int curl_mprintf(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/mprintf.c:1235,1
    - Dst: formatf
      Src: /src/curl/lib/mprintf.c:1236,1
    - Dst: va_end
      Src: /src/curl/lib/mprintf.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - format
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1231
    functionDepth: 5
    functionLinenumber: 1231
    functionLinenumberEnd: 1239
    functionName: curl_mfprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 364
    functionsReached:
    - va_start
    - va_end
    - formatf
    linkageType: ''
    returnType: int
    signature: int curl_mfprintf(FILE *fd, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: formatf
      Src: /src/curl/lib/mprintf.c:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buffer
    - format
    - args
    argTypes:
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1241
    functionDepth: 5
    functionLinenumber: 1241
    functionLinenumberEnd: 1246
    functionName: curl_mvsprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - formatf
    linkageType: ''
    returnType: int
    signature: int curl_mvsprintf(char *buffer, const char *format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: formatf
      Src: /src/curl/lib/mprintf.c:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1248
    functionDepth: 5
    functionLinenumber: 1248
    functionLinenumberEnd: 1251
    functionName: curl_mvprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 0
    functionsReached:
    - formatf
    linkageType: ''
    returnType: int
    signature: int curl_mvprintf(const char *format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: formatf
      Src: /src/curl/lib/mprintf.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - format
    - args
    argTypes:
    - FILE*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1253
    functionDepth: 5
    functionLinenumber: 1253
    functionLinenumberEnd: 1256
    functionName: curl_mvfprintf
    functionSourceFile: /src/curl/lib/mprintf.c
    functionUses: 1
    functionsReached:
    - formatf
    linkageType: ''
    returnType: int
    signature: int curl_mvfprintf(FILE *fd, const char *format, va_list args)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ptimeout_ms
    - secs
    argTypes:
    - timediff_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: setopt_set_timeout_sec
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setopt_set_timeout_sec(timediff_t *ptimeout_ms, long secs)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ptimeout_ms
    - ms
    argTypes:
    - timediff_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: setopt_set_timeout_ms
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setopt_set_timeout_ms(timediff_t *ptimeout_ms, long ms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:87,1
    - Dst: strlen
      Src: /src/curl/lib/setopt.c:90,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/setopt.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - charp
    - s
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 99
    functionName: Curl_setstropt
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - strlen
    - curlx_strdup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_setstropt(char **charp, const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:107,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/setopt.c:114,1
    - Dst: memcpy
      Src: /src/curl/lib/setopt.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - blobp
    - blob
    argTypes:
    - struct curl_blob**
    - struct curl_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: Curl_setblobopt
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - memcpy
    - curlx_malloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_setblobopt(struct curl_blob **blobp,\n                         const
      struct curl_blob *blob)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/setopt.c:138,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/setopt.c:139,1
    - Dst: strlen
      Src: /src/curl/lib/setopt.c:144,1
    - Dst: Curl_parse_login_details
      Src: /src/curl/lib/setopt.c:149,1
    - Dst: curlx_free
      Src: /src/curl/lib/setopt.c:154,1
    - Dst: curlx_free
      Src: /src/curl/lib/setopt.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - option
    - userp
    - passwdp
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 161
    functionName: setstropt_userpwd
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_parse_login_details
    - strlen
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setstropt_userpwd(const char *option, char **userp,\n                                  char
      **passwdp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/setopt.c:171,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/setopt.c:172,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/setopt.c:173,1
    - Dst: Curl_parse_interface
      Src: /src/curl/lib/setopt.c:177,1
    - Dst: curlx_free
      Src: /src/curl/lib/setopt.c:181,1
    - Dst: curlx_free
      Src: /src/curl/lib/setopt.c:184,1
    - Dst: curlx_free
      Src: /src/curl/lib/setopt.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - option
    - devp
    - ifacep
    - hostp
    argTypes:
    - char*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 191
    functionName: setstropt_interface
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - DEBUGASSERT
    - Curl_parse_interface
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setstropt_interface(char *option, char **devp,\n                                    char
      **ifacep, char **hostp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: C_SSLVERSION_VALUE
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C_SSLVERSION_VALUE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: C_SSLVERSION_MAX_VALUE
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C_SSLVERSION_MAX_VALUE(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/setopt.c:209,1
    - Dst: strchr
      Src: /src/curl/lib/setopt.c:218,1
    - Dst: strlen
      Src: /src/curl/lib/setopt.c:219,1
    - Dst: Curl_getn_scheme
      Src: /src/curl/lib/setopt.c:221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - str
    - val
    argTypes:
    - char*
    - curl_prot_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 234
    functionName: protocol2num
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - strlen
    - strchr
    - Curl_getn_scheme
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode protocol2num(const char *str, curl_prot_t *val)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - data
    - proxy
    - auth
    argTypes:
    - struct Curl_easy*
    - bool
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 272
    functionName: httpauth
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode httpauth(struct Curl_easy *data, bool proxy,\n                         unsigned
      long auth)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - data
    - arg
    argTypes:
    - struct Curl_easy*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 311
    functionName: setopt_HTTP_VERSION
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setopt_HTTP_VERSION(struct Curl_easy *data, long arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: C_SSLVERSION_VALUE
      Src: /src/curl/lib/setopt.c:331,1
    - Dst: C_SSLVERSION_MAX_VALUE
      Src: /src/curl/lib/setopt.c:332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 348
    functionName: Curl_setopt_SSLVERSION
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - C_SSLVERSION_VALUE
    - C_SSLVERSION_MAX_VALUE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_setopt_SSLVERSION(struct Curl_easy *data, CURLoption
      option,\n                                long arg)"
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - data
    - arg
    argTypes:
    - struct Curl_easy*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 399
    functionName: setopt_RTSP_REQUEST
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setopt_RTSP_REQUEST(struct Curl_easy *data, long arg)
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_conn_config_update
      Src: /src/curl/lib/setopt.c:572,1
    - Dst: Curl_ssl_conn_config_update
      Src: /src/curl/lib/setopt.c:581,1
    - Dst: Curl_ssl_conn_config_update
      Src: /src/curl/lib/setopt.c:666,1
    - Dst: Curl_ssl_cert_status_request
      Src: /src/curl/lib/setopt.c:686,1
    - Dst: Curl_ssl_conn_config_update
      Src: /src/curl/lib/setopt.c:705,1
    - Dst: Curl_ssl_cert_status_request
      Src: /src/curl/lib/setopt.c:711,1
    - Dst: Curl_ssl_conn_config_update
      Src: /src/curl/lib/setopt.c:717,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:721,1
    - Dst: infof
      Src: /src/curl/lib/setopt.c:804,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 215
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 808
    functionName: setopt_long_bool
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_supports
    - Curl_ssl_conn_config_update
    - Curl_ssl_cert_status_request
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_long_bool(struct Curl_easy *data, CURLoption option,\n
      \                                long arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - value
    - below_error
    - min
    - max
    argTypes:
    - long*
    - long
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 819
    functionName: value_range
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode value_range(long *value, long below_error, long min, long
      max)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: setopt_set_timeout_sec
      Src: /src/curl/lib/setopt.c:830,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:834,1
    - Dst: setopt_set_timeout_sec
      Src: /src/curl/lib/setopt.c:839,1
    - Dst: setopt_set_timeout_ms
      Src: /src/curl/lib/setopt.c:841,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:849,1
    - Dst: setopt_set_timeout_sec
      Src: /src/curl/lib/setopt.c:859,1
    - Dst: setopt_set_timeout_ms
      Src: /src/curl/lib/setopt.c:861,1
    - Dst: setopt_set_timeout_sec
      Src: /src/curl/lib/setopt.c:863,1
    - Dst: setopt_set_timeout_ms
      Src: /src/curl/lib/setopt.c:865,1
    - Dst: curlx_sltous
      Src: /src/curl/lib/setopt.c:870,1
    - Dst: curlx_sltous
      Src: /src/curl/lib/setopt.c:875,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:879,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:884,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:919,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:924,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:929,1
    - Dst: setopt_set_timeout_ms
      Src: /src/curl/lib/setopt.c:934,1
    - Dst: setopt_set_timeout_ms
      Src: /src/curl/lib/setopt.c:936,1
    - Dst: setopt_set_timeout_sec
      Src: /src/curl/lib/setopt.c:938,1
    - Dst: setopt_set_timeout_sec
      Src: /src/curl/lib/setopt.c:940,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 110
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 948
    functionName: setopt_long_net
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - setopt_set_timeout_sec
    - curlx_sltous
    - setopt_set_timeout_ms
    - value_range
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_long_net(struct Curl_easy *data, CURLoption option,\n
      \                               long arg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:958,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:959,1
    - Dst: Curl_setopt_SSLVERSION
      Src: /src/curl/lib/setopt.c:970,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:991,1
    - Dst: Curl_ssl_set_engine_default
      Src: /src/curl/lib/setopt.c:992,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 1004
    functionName: setopt_long_ssl
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_ssl_set_engine_default
    - Curl_ssl_supports
    - value_range
    - Curl_setopt_SSLVERSION
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_long_ssl(struct Curl_easy *data, CURLoption option,\n
      \                               long arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_digest_cleanup
      Src: /src/curl/lib/setopt.c:1009,1
    - Dst: memset
      Src: /src/curl/lib/setopt.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1011
    functionName: changeproxy
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - Curl_auth_digest_cleanup
    - memset
    linkageType: ''
    returnType: void
    signature: void changeproxy(struct Curl_easy *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: changeproxy
      Src: /src/curl/lib/setopt.c:1023,1
    - Dst: httpauth
      Src: /src/curl/lib/setopt.c:1027,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1046
    functionName: setopt_long_proxy
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - changeproxy
    - httpauth
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_long_proxy(struct Curl_easy *data, CURLoption option,\n
      \                                 long arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1055
    functionName: setopt_long_proxy
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_long_proxy(struct Curl_easy *data, CURLoption option,\n
      \                                 long arg)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:1073,1
    - Dst: httpauth
      Src: /src/curl/lib/setopt.c:1090,1
    - Dst: setopt_HTTP_VERSION
      Src: /src/curl/lib/setopt.c:1092,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:1094,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1117
    functionName: setopt_long_http
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - setopt_HTTP_VERSION
    - httpauth
    - value_range
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_long_http(struct Curl_easy *data, CURLoption option,\n
      \                                long arg)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:1128,1
    - Dst: setopt_set_timeout_ms
      Src: /src/curl/lib/setopt.c:1161,1
    - Dst: setopt_RTSP_REQUEST
      Src: /src/curl/lib/setopt.c:1179,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:1181,1
    - Dst: value_range
      Src: /src/curl/lib/setopt.c:1186,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 73
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1218
    functionName: setopt_long_proto
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - setopt_RTSP_REQUEST
    - setopt_set_timeout_ms
    - value_range
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_long_proto(struct Curl_easy *data, CURLoption option,\n
      \                                 long arg)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:1239,1
    - Dst: Curl_hsts_init
      Src: /src/curl/lib/setopt.c:1266,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/lib/setopt.c:1273,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/setopt.c:1275,1
    - Dst: Curl_altsvc_ctrl
      Src: /src/curl/lib/setopt.c:1285,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1297
    functionName: setopt_long_misc
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_altsvc_ctrl
    - curl_slist_free_all
    - Curl_hsts_init
    - Curl_hsts_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_long_misc(struct Curl_easy *data, CURLoption option,\n
      \                                long arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/setopt.c:1315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - data
    - option
    - arg
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1321
    functionName: setopt_long
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 12
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_long(struct Curl_easy *data, CURLoption option,\n
      \                           long arg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - data
    - option
    - slist
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1418
    functionName: setopt_slist
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_slist(struct Curl_easy *data, CURLoption option,\n
      \                            struct curl_slist *slist)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/setopt.c:1431,1
    - Dst: Curl_mime_initpart
      Src: /src/curl/lib/setopt.c:1434,1
    - Dst: Curl_mime_set_subparts
      Src: /src/curl/lib/setopt.c:1437,1
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/setopt.c:1442,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:1443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - data
    - mimep
    argTypes:
    - struct Curl_easy*
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1448
    functionName: setopt_mimepost
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 1
    functionsReached:
    - Curl_mime_initpart
    - Curl_mime_set_subparts
    - curlx_safefree
    - Curl_mime_cleanpart
    - curlx_malloc
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setopt_mimepost(struct Curl_easy *data, curl_mime *mimep)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/setopt.c:1463,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:1464,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:1465,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:1473,1
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/setopt.c:1476,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:1477,1
    - Dst: setopt_mimepost
      Src: /src/curl/lib/setopt.c:1486,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:1486,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:1495,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:1500,1
    - Dst: Curl_share_easy_unlink
      Src: /src/curl/lib/setopt.c:1503,1
    - Dst: GOOD_SHARE_HANDLE
      Src: /src/curl/lib/setopt.c:1508,1
    - Dst: Curl_share_easy_link
      Src: /src/curl/lib/setopt.c:1509,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - data
    - option
    - param
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1453
    functionDepth: 4
    functionLinenumber: 1453
    functionLinenumberEnd: 1528
    functionName: setopt_pointers
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_bufref_free
    - va_arg
    - Curl_mime_cleanpart
    - setopt_mimepost
    - Curl_share_easy_link
    - Curl_share_easy_unlink
    - GOOD_SHARE_HANDLE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_pointers(struct Curl_easy *data, CURLoption option,\n
      \                               va_list param)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/setopt.c:1537,1
    - Dst: Curl_share_lock
      Src: /src/curl/lib/setopt.c:1539,1
    - Dst: Curl_cookie_clearall
      Src: /src/curl/lib/setopt.c:1540,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/setopt.c:1541,1
    - Dst: curl_strequal
      Src: /src/curl/lib/setopt.c:1543,1
    - Dst: Curl_share_lock
      Src: /src/curl/lib/setopt.c:1545,1
    - Dst: Curl_cookie_clearsess
      Src: /src/curl/lib/setopt.c:1546,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/setopt.c:1547,1
    - Dst: curl_strequal
      Src: /src/curl/lib/setopt.c:1549,1
    - Dst: Curl_flush_cookies
      Src: /src/curl/lib/setopt.c:1551,1
    - Dst: curl_strequal
      Src: /src/curl/lib/setopt.c:1553,1
    - Dst: Curl_cookie_loadfiles
      Src: /src/curl/lib/setopt.c:1555,1
    - Dst: Curl_cookie_init
      Src: /src/curl/lib/setopt.c:1560,1
    - Dst: strlen
      Src: /src/curl/lib/setopt.c:1567,1
    - Dst: Curl_share_lock
      Src: /src/curl/lib/setopt.c:1570,1
    - Dst: checkprefix
      Src: /src/curl/lib/setopt.c:1571,1
    - Dst: Curl_cookie_add
      Src: /src/curl/lib/setopt.c:1573,1
    - Dst: Curl_cookie_add
      Src: /src/curl/lib/setopt.c:1577,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/setopt.c:1579,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - data
    - ptr
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1582
    functionName: cookielist
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - Curl_cookie_init
    - Curl_cookie_add
    - checkprefix
    - Curl_share_lock
    - Curl_share_unlock
    - Curl_cookie_clearall
    - Curl_cookie_clearsess
    - curl_strequal
    - Curl_cookie_loadfiles
    - strlen
    - Curl_flush_cookies
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cookielist(struct Curl_easy *data, const char *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/setopt.c:1592,1
    - Dst: curl_slist_append
      Src: /src/curl/lib/setopt.c:1596,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/setopt.c:1598,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/setopt.c:1606,1
    - Dst: Curl_cookie_clearall
      Src: /src/curl/lib/setopt.c:1612,1
    - Dst: Curl_cookie_cleanup
      Src: /src/curl/lib/setopt.c:1613,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - data
    - ptr
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1619
    functionName: cookiefile
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - Curl_cookie_clearall
    - curl_slist_free_all
    - curl_slist_append
    - strlen
    - Curl_cookie_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cookiefile(struct Curl_easy *data, const char *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/setopt.c:1627,1
    - Dst: changeproxy
      Src: /src/curl/lib/setopt.c:1630,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - data
    - proxy
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1632
    functionName: setproxy
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - strcmp
    - changeproxy
    - Curl_setstropt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setproxy(struct Curl_easy *data, const char *proxy)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: setstropt_userpwd
      Src: /src/curl/lib/setopt.c:1646,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:1650,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:1651,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/setopt.c:1653,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/setopt.c:1657,1
    - Dst: curlx_free
      Src: /src/curl/lib/setopt.c:1659,1
    - Dst: curlx_free
      Src: /src/curl/lib/setopt.c:1660,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1667,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1673,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1679,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1684,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1689,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1694,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1699,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1704,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1706,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1708,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1713,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1715,1
    - Dst: setproxy
      Src: /src/curl/lib/setopt.c:1729,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1737,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1743,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1750,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1751,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1759,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1769,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1777,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1778,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1784,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1785,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1793,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1795,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 79
    argCount: 3
    argNames:
    - data
    - option
    - ptr
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1805
    functionName: setopt_cptr_proxy
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_urldecode
    - setstropt_userpwd
    - curlx_free
    - Curl_ssl_supports
    - setproxy
    - Curl_setstropt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_cptr_proxy(struct Curl_easy *data, CURLoption option,\n
      \                                 const char *ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1818,1
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/setopt.c:1824,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/setopt.c:1832,1
    - Dst: curlx_free
      Src: /src/curl/lib/setopt.c:1836,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ptr
    - s
    argTypes:
    - char*
    - struct UserDefined*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1814
    functionDepth: 2
    functionLinenumber: 1814
    functionLinenumberEnd: 1845
    functionName: setopt_copypostfields
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_setstropt
    - curlx_memdup0
    - curlx_sotouz_range
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setopt_copypostfields(const char *ptr, struct UserDefined
      *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/setopt.c:1854,1
    - Dst: strlen
      Src: /src/curl/lib/setopt.c:1857,1
    - Dst: strcmp
      Src: /src/curl/lib/setopt.c:1861,1
    - Dst: strcmp
      Src: /src/curl/lib/setopt.c:1863,1
    - Dst: strcmp
      Src: /src/curl/lib/setopt.c:1865,1
    - Dst: strncmp
      Src: /src/curl/lib/setopt.c:1867,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1870,1
    - Dst: strncmp
      Src: /src/curl/lib/setopt.c:1872,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1875,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - data
    - ptr
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1849
    functionDepth: 2
    functionLinenumber: 1849
    functionLinenumberEnd: 1882
    functionName: setopt_ech
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strlen
    - strncmp
    - Curl_setstropt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setopt_ech(struct Curl_easy *data, const char *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1885
    functionName: setopt_ech
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setopt_ech(x,y)
  - BBCount: 132
    BranchProfiles: []
    Callsites:
    - Dst: setopt_cptr_proxy
      Src: /src/curl/lib/setopt.c:1893,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1904,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1913,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1915,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1926,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1927,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1930,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1932,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:1936,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1938,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1947,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1953,1
    - Dst: setopt_copypostfields
      Src: /src/curl/lib/setopt.c:1958,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:1966,1
    - Dst: Curl_get_content_encodings
      Src: /src/curl/lib/setopt.c:1986,1
    - Dst: curlx_free
      Src: /src/curl/lib/setopt.c:1988,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:1995,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2003,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/setopt.c:2015,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2016,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2023,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2030,1
    - Dst: cookiefile
      Src: /src/curl/lib/setopt.c:2033,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2039,1
    - Dst: Curl_cookie_init
      Src: /src/curl/lib/setopt.c:2046,1
    - Dst: cookielist
      Src: /src/curl/lib/setopt.c:2055,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2064,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2073,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2125,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2172,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2177,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2180,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2195,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/setopt.c:2196,1
    - Dst: setstropt_userpwd
      Src: /src/curl/lib/setopt.c:2203,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2210,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2216,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2222,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2228,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2233,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2238,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2243,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2248,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2253,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2258,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2264,1
    - Dst: Curl_ssl_set_engine
      Src: /src/curl/lib/setopt.c:2266,1
    - Dst: setstropt_interface
      Src: /src/curl/lib/setopt.c:2275,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2284,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2285,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2299,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2300,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2307,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2308,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2315,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2316,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2324,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2329,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2342,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2348,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2353,1
    - Dst: protocol2num
      Src: /src/curl/lib/setopt.c:2367,1
    - Dst: protocol2num
      Src: /src/curl/lib/setopt.c:2378,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2388,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2392,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2395,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2399,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2406,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2412,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2417,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2424,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2426,1
    - Dst: curl_strequal
      Src: /src/curl/lib/setopt.c:2428,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2433,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2435,1
    - Dst: curl_strequal
      Src: /src/curl/lib/setopt.c:2437,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2444,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2447,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2450,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2453,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2459,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2463,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2469,1
    - Dst: Curl_hsts_init
      Src: /src/curl/lib/setopt.c:2483,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2488,1
    - Dst: curl_slist_append
      Src: /src/curl/lib/setopt.c:2494,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/setopt.c:2496,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/setopt.c:2504,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/lib/setopt.c:2508,1
    - Dst: Curl_altsvc_init
      Src: /src/curl/lib/setopt.c:2516,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/setopt.c:2520,1
    - Dst: Curl_altsvc_load
      Src: /src/curl/lib/setopt.c:2524,1
    - Dst: setopt_ech
      Src: /src/curl/lib/setopt.c:2528,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 338
    argCount: 3
    argNames:
    - data
    - option
    - ptr
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 1887
    functionDepth: 4
    functionLinenumber: 1887
    functionLinenumberEnd: 2533
    functionName: setopt_cptr
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_bufref_set
    - setstropt_interface
    - setopt_cptr_proxy
    - Curl_cookie_init
    - cookiefile
    - protocol2num
    - Curl_get_content_encodings
    - curl_slist_free_all
    - Curl_hsts_init
    - Curl_hsts_cleanup
    - Curl_ssl_set_engine
    - curlx_free
    - curl_strequal
    - Curl_bufref_free
    - cookielist
    - setstropt_userpwd
    - curl_slist_append
    - setopt_ech
    - Curl_ssl_supports
    - Curl_altsvc_init
    - Curl_setstropt
    - Curl_altsvc_load
    - setopt_copypostfields
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_cptr(struct Curl_easy *data, CURLoption option,\n
      \                           char *ptr)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2544,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2555,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2566,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2575,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2581,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2597,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2617,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2623,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2630,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2631,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2642,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2650,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2658,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2666,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2673,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2680,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2688,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2693,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2696,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2699,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2704,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2709,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2712,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2716,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 92
    argCount: 3
    argNames:
    - data
    - option
    - param
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2535
    functionDepth: 0
    functionLinenumber: 2535
    functionLinenumberEnd: 2722
    functionName: setopt_func
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - va_arg
    - Curl_ssl_supports
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_func(struct Curl_easy *data, CURLoption option,\n
      \                           va_list param)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/setopt.c:2749,1
    - Dst: Curl_rlimit_init
      Src: /src/curl/lib/setopt.c:2771,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/setopt.c:2772,1
    - Dst: Curl_rlimit_init
      Src: /src/curl/lib/setopt.c:2782,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/setopt.c:2783,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - data
    - option
    - offt
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2724
    functionDepth: 1
    functionLinenumber: 2724
    functionLinenumberEnd: 2806
    functionName: setopt_offt
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 3
    functionsReached:
    - curlx_safefree
    - Curl_pgrs_now
    - Curl_rlimit_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_offt(struct Curl_easy *data, CURLoption option,\n
      \                           curl_off_t offt)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Curl_setblobopt
      Src: /src/curl/lib/setopt.c:2817,1
    - Dst: Curl_setblobopt
      Src: /src/curl/lib/setopt.c:2823,1
    - Dst: Curl_setblobopt
      Src: /src/curl/lib/setopt.c:2828,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2835,1
    - Dst: Curl_setblobopt
      Src: /src/curl/lib/setopt.c:2836,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2846,1
    - Dst: Curl_setblobopt
      Src: /src/curl/lib/setopt.c:2847,1
    - Dst: Curl_setblobopt
      Src: /src/curl/lib/setopt.c:2854,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2861,1
    - Dst: Curl_setblobopt
      Src: /src/curl/lib/setopt.c:2862,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/setopt.c:2872,1
    - Dst: Curl_setblobopt
      Src: /src/curl/lib/setopt.c:2873,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - data
    - option
    - blob
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - struct curl_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2808
    functionDepth: 2
    functionLinenumber: 2808
    functionLinenumberEnd: 2880
    functionName: setopt_blob
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - Curl_setblobopt
    - Curl_ssl_supports
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setopt_blob(struct Curl_easy *data, CURLoption option,\n
      \                           struct curl_blob *blob)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: setopt_long
      Src: /src/curl/lib/setopt.c:2889,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2889,1
    - Dst: setopt_slist
      Src: /src/curl/lib/setopt.c:2904,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2904,1
    - Dst: setopt_pointers
      Src: /src/curl/lib/setopt.c:2912,1
    - Dst: setopt_cptr
      Src: /src/curl/lib/setopt.c:2917,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2917,1
    - Dst: setopt_func
      Src: /src/curl/lib/setopt.c:2920,1
    - Dst: setopt_offt
      Src: /src/curl/lib/setopt.c:2922,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2922,1
    - Dst: setopt_blob
      Src: /src/curl/lib/setopt.c:2923,1
    - Dst: va_arg
      Src: /src/curl/lib/setopt.c:2923,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - data
    - option
    - param
    argTypes:
    - struct Curl_easy*
    - CURLoption
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2886
    functionDepth: 5
    functionLinenumber: 2886
    functionLinenumberEnd: 2924
    functionName: Curl_vsetopt
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 0
    functionsReached:
    - va_arg
    - setopt_long
    - setopt_slist
    - setopt_pointers
    - setopt_cptr
    - setopt_blob
    - setopt_offt
    - setopt_func
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list
      param)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/setopt.c:2944,1
    - Dst: Curl_vsetopt
      Src: /src/curl/lib/setopt.c:2946,1
    - Dst: va_end
      Src: /src/curl/lib/setopt.c:2948,1
    - Dst: failf
      Src: /src/curl/lib/setopt.c:2950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - curl
    - option
    argTypes:
    - CURL*
    - CURLoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2935
    functionDepth: 6
    functionLinenumber: 2935
    functionLinenumberEnd: 2952
    functionName: curl_easy_setopt
    functionSourceFile: /src/curl/lib/setopt.c
    functionUses: 241
    functionsReached:
    - failf
    - va_start
    - va_end
    - Curl_vsetopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - k
    - ','
    - kl
    - ','
    - d
    - ','
    - dl
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: HMAC_SHA256
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HMAC_SHA256(k, kl, d, dl, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hexencode
      Src: /src/curl/lib/http_aws_sigv4.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - sha
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: sha256_to_hex
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - Curl_hexencode
    linkageType: ''
    returnType: void
    signature: void sha256_to_hex(char *dst, unsigned char *sha)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http_aws_sigv4.c:73,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:73,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http_aws_sigv4.c:77,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_aws_sigv4.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - sig_hdr
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: find_date_hdr
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - strlen
    - STRCONST
    - Curl_checkheaders
    linkageType: ''
    returnType: char
    signature: char *find_date_hdr(struct Curl_easy *data, const char *sig_hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/curl/lib/http_aws_sigv4.c:87,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/http_aws_sigv4.c:88,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/http_aws_sigv4.c:94,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http_aws_sigv4.c:97,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http_aws_sigv4.c:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 116
    functionName: trim_headers
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - Curl_strntolower
    - CURL_UNCONST
    - curlx_str_passblanks
    - strcspn
    - ISBLANK
    linkageType: ''
    returnType: void
    signature: void trim_headers(struct curl_slist *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http_aws_sigv4.c:126,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http_aws_sigv4.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pair_array
    - num_elements
    argTypes:
    - struct pair*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: pair_array_free
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void pair_array_free(struct pair *pair_array, size_t num_elements)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http_aws_sigv4.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - db
    - num_elements
    argTypes:
    - struct dynbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: dyn_array_free
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void dyn_array_free(struct dynbuf *db, size_t num_elements)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:155,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:167,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_aws_sigv4.c:168,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:187,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_aws_sigv4.c:188,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - source
    - db
    - num_splits_out
    argTypes:
    - char*
    - struct dynbuf[]
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 197
    functionName: split_to_dyn_array
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - strlen
    - curlx_dyn_addn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode split_to_dyn_array(const char *source,\n                                   struct
      dynbuf db[MAX_QUERY_COMPONENTS],\n                                   size_t
      *num_splits_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISALNUM
      Src: /src/curl/lib/http_aws_sigv4.c:201,1
    - Dst: ISURLPUNTCS
      Src: /src/curl/lib/http_aws_sigv4.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: is_reserved_char
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - ISURLPUNTCS
    - ISALNUM
    linkageType: ''
    returnType: bool
    signature: bool is_reserved_char(const char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:207,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:210,1
    - Dst: is_reserved_char
      Src: /src/curl/lib/http_aws_sigv4.c:214,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_aws_sigv4.c:215,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http_aws_sigv4.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - original_path
    - new_path
    argTypes:
    - struct Curl_str*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 223
    functionName: uri_encode_path
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - curlx_str
    - curlx_strlen
    - curlx_dyn_addf
    - is_reserved_char
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode uri_encode_path(struct Curl_str *original_path,\n                                struct
      dynbuf *new_path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ISXDIGIT
      Src: /src/curl/lib/http_aws_sigv4.c:236,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/http_aws_sigv4.c:236,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/http_aws_sigv4.c:238,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/http_aws_sigv4.c:239,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_aws_sigv4.c:244,1
    - Dst: is_reserved_char
      Src: /src/curl/lib/http_aws_sigv4.c:253,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_aws_sigv4.c:255,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http_aws_sigv4.c:258,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http_aws_sigv4.c:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - string
    - len
    - db
    argTypes:
    - char*
    - size_t
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 264
    functionName: normalize_query
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - curlx_dyn_add
    - ISXDIGIT
    - curlx_hexval
    - curlx_dyn_addf
    - is_reserved_char
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode normalize_query(const char *string, size_t len,\n                                struct
      dynbuf *db)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_cmp
      Src: /src/curl/lib/http_aws_sigv4.c:275,1
    - Dst: curlx_str_cmp
      Src: /src/curl/lib/http_aws_sigv4.c:276,1
    - Dst: curlx_str_cmp
      Src: /src/curl/lib/http_aws_sigv4.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: should_urlencode
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curlx_str_cmp
    linkageType: ''
    returnType: bool
    signature: bool should_urlencode(struct Curl_str *service_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/lib/http_aws_sigv4.c:301,1
    - Dst: strchr
      Src: /src/curl/lib/http_aws_sigv4.c:302,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_aws_sigv4.c:304,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_aws_sigv4.c:305,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:307,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:308,1
    - Dst: strncmp
      Src: /src/curl/lib/http_aws_sigv4.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 319
    functionName: compare_header_names
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    - strchr
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int compare_header_names(const char *a, const char *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: compare_header_names
      Src: /src/curl/lib/http_aws_sigv4.c:334,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:339,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http_aws_sigv4.c:341,1
    - Dst: strchr
      Src: /src/curl/lib/http_aws_sigv4.c:345,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_aws_sigv4.c:346,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_aws_sigv4.c:349,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http_aws_sigv4.c:353,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:357,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:358,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:361,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:362,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 370
    functionName: merge_duplicate_headers
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - DEBUGASSERT
    - compare_header_names
    - curlx_dyn_add
    - curlx_dyn_addn
    - curlx_dyn_ptr
    - curlx_free
    - strchr
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode merge_duplicate_headers(struct curl_slist *head)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http_aws_sigv4.c:391,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/http_aws_sigv4.c:394,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/http_aws_sigv4.c:395,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http_aws_sigv4.c:397,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/http_aws_sigv4.c:400,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http_aws_sigv4.c:402,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_aws_sigv4.c:402,1
    - Dst: strcspn
      Src: /src/curl/lib/http_aws_sigv4.c:407,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/http_aws_sigv4.c:408,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_aws_sigv4.c:411,1
    - Dst: Curl_slist_append_nodup
      Src: /src/curl/lib/http_aws_sigv4.c:414,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:416,1
    - Dst: curl_slist_append
      Src: /src/curl/lib/http_aws_sigv4.c:422,1
    - Dst: strchr
      Src: /src/curl/lib/http_aws_sigv4.c:446,1
    - Dst: strchr
      Src: /src/curl/lib/http_aws_sigv4.c:448,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http_aws_sigv4.c:451,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/http_aws_sigv4.c:455,1
    - Dst: Curl_slist_append_nodup
      Src: /src/curl/lib/http_aws_sigv4.c:459,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:461,1
    - Dst: trim_headers
      Src: /src/curl/lib/http_aws_sigv4.c:467,1
    - Dst: find_date_hdr
      Src: /src/curl/lib/http_aws_sigv4.c:469,1
    - Dst: curl_slist_append
      Src: /src/curl/lib/http_aws_sigv4.c:471,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_aws_sigv4.c:475,1
    - Dst: strchr
      Src: /src/curl/lib/http_aws_sigv4.c:482,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http_aws_sigv4.c:488,1
    - Dst: ISALNUM
      Src: /src/curl/lib/http_aws_sigv4.c:490,1
    - Dst: memcpy
      Src: /src/curl/lib/http_aws_sigv4.c:494,1
    - Dst: compare_header_names
      Src: /src/curl/lib/http_aws_sigv4.c:509,1
    - Dst: merge_duplicate_headers
      Src: /src/curl/lib/http_aws_sigv4.c:519,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http_aws_sigv4.c:526,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http_aws_sigv4.c:528,1
    - Dst: strchr
      Src: /src/curl/lib/http_aws_sigv4.c:531,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http_aws_sigv4.c:536,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http_aws_sigv4.c:539,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/http_aws_sigv4.c:545,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 117
    argCount: 9
    argNames:
    - data
    - hostname
    - timestamp
    - provider1
    - plen
    - date_header
    - content_sha256_header
    - canonical_headers
    - signed_headers
    argTypes:
    - struct Curl_easy*
    - char*
    - char*
    - char*
    - size_t
    - char**
    - char*
    - struct dynbuf*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 373
    functionDepth: 7
    functionLinenumber: 373
    functionLinenumberEnd: 548
    functionName: make_headers
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - trim_headers
    - curl_msnprintf
    - Curl_strntolower
    - merge_duplicate_headers
    - curlx_dyn_add
    - Curl_raw_toupper
    - Curl_checkheaders
    - curlx_str_passblanks
    - curlx_memdup0
    - strcspn
    - ISALNUM
    - ISBLANK
    - find_date_hdr
    - curl_maprintf
    - memcpy
    - curl_slist_free_all
    - compare_header_names
    - curlx_free
    - STRCONST
    - Curl_slist_append_nodup
    - curlx_strdup
    - curl_slist_append
    - strchr
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode make_headers(struct Curl_easy *data,\n                             const
      char *hostname,\n                             char *timestamp,\n                             const
      char *provider1,\n                             size_t plen, /* length of provider1
      */\n                             char **date_header,\n                             char
      *content_sha256_header,\n                             struct dynbuf *canonical_headers,\n
      \                            struct dynbuf *signed_headers)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http_aws_sigv4.c:565,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http_aws_sigv4.c:568,1
    - Dst: strchr
      Src: /src/curl/lib/http_aws_sigv4.c:572,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http_aws_sigv4.c:577,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:579,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http_aws_sigv4.c:580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - data
    - provider1
    - plen
    - value_len
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 555
    functionDepth: 7
    functionLinenumber: 555
    functionLinenumberEnd: 585
    functionName: parse_content_sha_hdr
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - Curl_checkheaders
    - curlx_str_passblanks
    - strchr
    - strlen
    - ISBLANK
    linkageType: ''
    returnType: char
    signature: "char *parse_content_sha_hdr(struct Curl_easy *data,\n                                         const
      char *provider1,\n                                         size_t plen,\n                                         size_t
      *value_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:596,1
    - Dst: Curl_sha256it
      Src: /src/curl/lib/http_aws_sigv4.c:600,1
    - Dst: sha256_to_hex
      Src: /src/curl/lib/http_aws_sigv4.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - data
    - sha_hash
    - sha_hex
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 605
    functionName: calc_payload_hash
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - strlen
    - sha256_to_hex
    - Curl_sha256it
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode calc_payload_hash(struct Curl_easy *data,\n                                  unsigned
      char *sha_hash, char *sha_hex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calc_payload_hash
      Src: /src/curl/lib/http_aws_sigv4.c:625,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_aws_sigv4.c:632,1
    - Dst: memcpy
      Src: /src/curl/lib/http_aws_sigv4.c:633,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http_aws_sigv4.c:638,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 7
    argNames:
    - data
    - httpreq
    - provider1
    - plen
    - sha_hash
    - sha_hex
    - header
    argTypes:
    - struct Curl_easy*
    - Curl_HttpReq
    - char*
    - size_t
    - unsigned char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 609
    functionDepth: 7
    functionLinenumber: 609
    functionLinenumberEnd: 644
    functionName: calc_s3_payload_hash
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - calc_payload_hash
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode calc_s3_payload_hash(struct Curl_easy *data,\n                                     Curl_HttpReq
      httpreq,\n                                     const char *provider1,\n                                     size_t
      plen,\n                                     unsigned char *sha_hash,\n                                     char
      *sha_hex, char *header)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http_aws_sigv4.c:650,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http_aws_sigv4.c:651,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http_aws_sigv4.c:652,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http_aws_sigv4.c:653,1
    - Dst: strcmp
      Src: /src/curl/lib/http_aws_sigv4.c:665,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:665,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:665,1
    - Dst: strcmp
      Src: /src/curl/lib/http_aws_sigv4.c:677,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:677,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:677,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 680
    functionName: compare_func
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - strcmp
    - curlx_dyn_len
    linkageType: ''
    returnType: int
    signature: int compare_func(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_assign
      Src: /src/curl/lib/http_aws_sigv4.c:694,1
    - Dst: uri_encode_path
      Src: /src/curl/lib/http_aws_sigv4.c:700,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_aws_sigv4.c:702,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http_aws_sigv4.c:705,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/http_aws_sigv4.c:706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - q
    - len
    - new_path
    - do_uri_encode
    argTypes:
    - char*
    - size_t
    - struct dynbuf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 710
    functionName: canon_path
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 1
    functionsReached:
    - curlx_str_assign
    - uri_encode_path
    - curlx_dyn_addn
    - curlx_dyn_add
    - curlx_dyn_len
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST canon_path(const char *q, size_t len,\n                             struct
      dynbuf *new_path,\n                             bool do_uri_encode)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: split_to_dyn_array
      Src: /src/curl/lib/http_aws_sigv4.c:727,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http_aws_sigv4.c:739,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:740,1
    - Dst: strchr
      Src: /src/curl/lib/http_aws_sigv4.c:744,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:747,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:753,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:755,1
    - Dst: normalize_query
      Src: /src/curl/lib/http_aws_sigv4.c:760,1
    - Dst: normalize_query
      Src: /src/curl/lib/http_aws_sigv4.c:771,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:779,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_aws_sigv4.c:780,1
    - Dst: qsort
      Src: /src/curl/lib/http_aws_sigv4.c:789,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_aws_sigv4.c:796,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:798,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:799,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http_aws_sigv4.c:800,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http_aws_sigv4.c:802,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http_aws_sigv4.c:806,1
    - Dst: pair_array_free
      Src: /src/curl/lib/http_aws_sigv4.c:816,1
    - Dst: dyn_array_free
      Src: /src/curl/lib/http_aws_sigv4.c:817,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 2
    argNames:
    - query
    - dq
    argTypes:
    - char*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 714
    functionDepth: 3
    functionLinenumber: 714
    functionLinenumberEnd: 819
    functionName: canon_query
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - split_to_dyn_array
    - curlx_dyn_addn
    - curlx_dyn_len
    - qsort
    - curlx_dyn_ptr
    - pair_array_free
    - strchr
    - curlx_dyn_addf
    - strlen
    - normalize_query
    - dyn_array_free
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST canon_query(const char *query, struct dynbuf *dq)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_user
      Src: /src/curl/lib/http_aws_sigv4.c:851,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/http_aws_sigv4.c:852,1
    - Dst: failf
      Src: /src/curl/lib/http_aws_sigv4.c:859,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/http_aws_sigv4.c:863,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_aws_sigv4.c:863,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:869,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:870,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:871,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_aws_sigv4.c:872,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/http_aws_sigv4.c:889,1
    - Dst: failf
      Src: /src/curl/lib/http_aws_sigv4.c:890,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http_aws_sigv4.c:894,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/http_aws_sigv4.c:895,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http_aws_sigv4.c:898,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/http_aws_sigv4.c:899,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http_aws_sigv4.c:900,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/http_aws_sigv4.c:901,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:905,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/http_aws_sigv4.c:907,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http_aws_sigv4.c:908,1
    - Dst: failf
      Src: /src/curl/lib/http_aws_sigv4.c:909,1
    - Dst: infof
      Src: /src/curl/lib/http_aws_sigv4.c:914,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:915,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:915,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:917,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/http_aws_sigv4.c:918,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http_aws_sigv4.c:919,1
    - Dst: failf
      Src: /src/curl/lib/http_aws_sigv4.c:920,1
    - Dst: infof
      Src: /src/curl/lib/http_aws_sigv4.c:924,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:925,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:925,1
    - Dst: Curl_http_method
      Src: /src/curl/lib/http_aws_sigv4.c:929,1
    - Dst: parse_content_sha_hdr
      Src: /src/curl/lib/http_aws_sigv4.c:932,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:932,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:933,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http_aws_sigv4.c:938,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http_aws_sigv4.c:939,1
    - Dst: calc_s3_payload_hash
      Src: /src/curl/lib/http_aws_sigv4.c:942,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:942,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:943,1
    - Dst: calc_payload_hash
      Src: /src/curl/lib/http_aws_sigv4.c:946,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:952,1
    - Dst: getenv
      Src: /src/curl/lib/http_aws_sigv4.c:957,1
    - Dst: time
      Src: /src/curl/lib/http_aws_sigv4.c:961,1
    - Dst: time
      Src: /src/curl/lib/http_aws_sigv4.c:964,1
    - Dst: curlx_gmtime
      Src: /src/curl/lib/http_aws_sigv4.c:966,1
    - Dst: strftime
      Src: /src/curl/lib/http_aws_sigv4.c:970,1
    - Dst: make_headers
      Src: /src/curl/lib/http_aws_sigv4.c:975,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:976,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:976,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:984,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_aws_sigv4.c:985,1
    - Dst: memcpy
      Src: /src/curl/lib/http_aws_sigv4.c:986,1
    - Dst: memcpy
      Src: /src/curl/lib/http_aws_sigv4.c:989,1
    - Dst: canon_query
      Src: /src/curl/lib/http_aws_sigv4.c:992,1
    - Dst: canon_path
      Src: /src/curl/lib/http_aws_sigv4.c:996,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:996,1
    - Dst: should_urlencode
      Src: /src/curl/lib/http_aws_sigv4.c:998,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_aws_sigv4.c:1004,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:1011,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:1012,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:1013,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:1014,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:1015,1
    - Dst: infof
      Src: /src/curl/lib/http_aws_sigv4.c:1020,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_aws_sigv4.c:1023,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1024,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1025,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/http_aws_sigv4.c:1031,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1031,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_aws_sigv4.c:1033,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1034,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1035,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1036,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1037,1
    - Dst: Curl_sha256it
      Src: /src/curl/lib/http_aws_sigv4.c:1042,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1043,1
    - Dst: sha256_to_hex
      Src: /src/curl/lib/http_aws_sigv4.c:1046,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_aws_sigv4.c:1052,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1056,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1057,1
    - Dst: Curl_strntoupper
      Src: /src/curl/lib/http_aws_sigv4.c:1065,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1065,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1066,1
    - Dst: infof
      Src: /src/curl/lib/http_aws_sigv4.c:1068,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_aws_sigv4.c:1071,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1071,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1072,1
    - Dst: Curl_strntoupper
      Src: /src/curl/lib/http_aws_sigv4.c:1076,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1076,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1076,1
    - Dst: HMAC_SHA256
      Src: /src/curl/lib/http_aws_sigv4.c:1078,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1078,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1078,1
    - Dst: HMAC_SHA256
      Src: /src/curl/lib/http_aws_sigv4.c:1079,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1080,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1080,1
    - Dst: HMAC_SHA256
      Src: /src/curl/lib/http_aws_sigv4.c:1081,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1082,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1082,1
    - Dst: HMAC_SHA256
      Src: /src/curl/lib/http_aws_sigv4.c:1083,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1083,1
    - Dst: HMAC_SHA256
      Src: /src/curl/lib/http_aws_sigv4.c:1084,1
    - Dst: strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1084,1
    - Dst: sha256_to_hex
      Src: /src/curl/lib/http_aws_sigv4.c:1086,1
    - Dst: infof
      Src: /src/curl/lib/http_aws_sigv4.c:1088,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_aws_sigv4.c:1090,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1101,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1102,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_aws_sigv4.c:1105,1
    - Dst: Curl_strntoupper
      Src: /src/curl/lib/http_aws_sigv4.c:1113,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_aws_sigv4.c:1114,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_aws_sigv4.c:1114,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:1116,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http_aws_sigv4.c:1122,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http_aws_sigv4.c:1123,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http_aws_sigv4.c:1124,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http_aws_sigv4.c:1125,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:1126,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:1127,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:1128,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:1129,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:1130,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_aws_sigv4.c:1131,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 149
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 821
    functionDepth: 8
    functionLinenumber: 821
    functionLinenumberEnd: 1133
    functionName: Curl_output_aws_sigv4
    functionSourceFile: /src/curl/lib/http_aws_sigv4.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - calc_payload_hash
    - curlx_str_single
    - strftime
    - DEBUGASSERT
    - curlx_str_until
    - getenv
    - Curl_strntolower
    - Curl_checkheaders
    - time
    - curlx_dyn_ptr
    - Curl_creds_user
    - Curl_creds_passwd
    - memcpy
    - curl_maprintf
    - sha256_to_hex
    - make_headers
    - curlx_str
    - curlx_dyn_free
    - parse_content_sha_hdr
    - calc_s3_payload_hash
    - failf
    - should_urlencode
    - Curl_strntoupper
    - curlx_free
    - curlx_strlen
    - canon_path
    - STRCONST
    - curlx_gmtime
    - curlx_str_casecompare
    - Curl_sha256it
    - infof
    - HMAC_SHA256
    - canon_query
    - Curl_http_method
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_output_aws_sigv4(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: Curl_doh_wanted
    functionSourceFile: /src/curl/lib/doh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_doh_wanted(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: Curl_doh
    functionSourceFile: /src/curl/lib/doh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_doh(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: Curl_doh_take_result
    functionSourceFile: /src/curl/lib/doh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_doh_take_result(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: Curl_doh_wanted
    functionSourceFile: /src/curl/lib/doh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_doh_wanted(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: global_init_lock
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: global_init_lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: global_init_unlock
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: global_init_unlock()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_init
      Src: /src/curl/lib/easy.c:138,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:139,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:139,1
    - Dst: Curl_ssl_init
      Src: /src/curl/lib/easy.c:143,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:144,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:144,1
    - Dst: Curl_vquic_init
      Src: /src/curl/lib/easy.c:148,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:149,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:149,1
    - Dst: Curl_win32_init
      Src: /src/curl/lib/easy.c:153,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:154,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:154,1
    - Dst: Curl_amiga_init
      Src: /src/curl/lib/easy.c:158,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:159,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:159,1
    - Dst: Curl_macos_init
      Src: /src/curl/lib/easy.c:163,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:164,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:164,1
    - Dst: Curl_async_global_init
      Src: /src/curl/lib/easy.c:168,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:169,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:169,1
    - Dst: Curl_ssh_init
      Src: /src/curl/lib/easy.c:173,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:174,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:174,1
    - Dst: getenv
      Src: /src/curl/lib/easy.c:181,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/easy.c:183,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 2
    argNames:
    - flags
    - memoryfuncs
    argTypes:
    - long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 191
    functionName: global_init
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 408
    functionsReached:
    - curl_mfprintf
    - Curl_ssh_init
    - Curl_win32_init
    - Curl_amiga_init
    - getenv
    - Curl_async_global_init
    - Curl_vquic_init
    - Curl_trc_init
    - curlx_malloc
    - DEBUGF
    - Curl_ssl_init
    - Curl_macos_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode global_init(long flags, bool memoryfuncs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init_lock
      Src: /src/curl/lib/easy.c:200,1
    - Dst: global_init
      Src: /src/curl/lib/easy.c:202,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - flags
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: curl_global_init
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 292
    functionsReached:
    - global_init
    - global_init_lock
    - global_init_unlock
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_global_init(long flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init_lock
      Src: /src/curl/lib/easy.c:223,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:230,1
    - Dst: global_init
      Src: /src/curl/lib/easy.c:243,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - flags
    - m
    - f
    - r
    - s
    - c
    argTypes:
    - long
    - curl_malloc_callback
    - curl_free_callback
    - curl_realloc_callback
    - curl_strdup_callback
    - curl_calloc_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 248
    functionName: curl_global_init_mem
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 2
    functionsReached:
    - global_init
    - global_init_lock
    - global_init_unlock
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_global_init_mem(long flags, curl_malloc_callback m,\n
      \                             curl_free_callback f, curl_realloc_callback r,\n
      \                             curl_strdup_callback s, curl_calloc_callback c)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_init_lock
      Src: /src/curl/lib/easy.c:257,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:260,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:265,1
    - Dst: Curl_ssl_cleanup
      Src: /src/curl/lib/easy.c:269,1
    - Dst: Curl_async_global_cleanup
      Src: /src/curl/lib/easy.c:270,1
    - Dst: Curl_win32_cleanup
      Src: /src/curl/lib/easy.c:273,1
    - Dst: Curl_amiga_cleanup
      Src: /src/curl/lib/easy.c:276,1
    - Dst: Curl_ssh_cleanup
      Src: /src/curl/lib/easy.c:278,1
    - Dst: curlx_free
      Src: /src/curl/lib/easy.c:281,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 287
    functionName: curl_global_cleanup
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 411
    functionsReached:
    - Curl_ssl_cleanup
    - Curl_win32_cleanup
    - curlx_free
    - Curl_ssh_cleanup
    - Curl_async_global_cleanup
    - Curl_amiga_cleanup
    - global_init_lock
    - global_init_unlock
    linkageType: ''
    returnType: void
    signature: void curl_global_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init_lock
      Src: /src/curl/lib/easy.c:296,1
    - Dst: Curl_trc_opt
      Src: /src/curl/lib/easy.c:298,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - config
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: curl_global_trace
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 10
    functionsReached:
    - Curl_trc_opt
    - global_init_lock
    - global_init_unlock
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_global_trace(const char *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_init_lock
      Src: /src/curl/lib/easy.c:317,1
    - Dst: Curl_init_sslset_nolock
      Src: /src/curl/lib/easy.c:319,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - id
    - name
    - avail
    argTypes:
    - curl_sslbackend
    - char*
    - curl_ssl_backend***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 324
    functionName: curl_global_sslset
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 2
    functionsReached:
    - Curl_init_sslset_nolock
    - global_init_lock
    - global_init_unlock
    linkageType: ''
    returnType: CURLsslset
    signature: "CURLsslset curl_global_sslset(curl_sslbackend id, const char *name,\n
      \                             const curl_ssl_backend ***avail)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: global_init_lock
      Src: /src/curl/lib/easy.c:336,1
    - Dst: global_init
      Src: /src/curl/lib/easy.c:339,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:342,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:342,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:343,1
    - Dst: global_init_unlock
      Src: /src/curl/lib/easy.c:347,1
    - Dst: Curl_open
      Src: /src/curl/lib/easy.c:350,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:352,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 330
    functionDepth: 6
    functionLinenumber: 330
    functionLinenumberEnd: 357
    functionName: curl_easy_init
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 328
    functionsReached:
    - curl_mfprintf
    - Curl_open
    - global_init
    - DEBUGF
    - global_init_lock
    - global_init_unlock
    linkageType: ''
    returnType: CURL
    signature: CURL *curl_easy_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - multi
    - timeout_ms
    - userp
    argTypes:
    - CURLM*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 381
    functionDepth: 6
    functionLinenumber: 381
    functionLinenumberEnd: 393
    functionName: events_timer
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: int
    signature: "int events_timer(CURLM *multi,    /* multi handle */\n                        long
      timeout_ms, /* see above */\n                        void *userp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pollmask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 409
    functionName: poll2cselect
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int poll2cselect(int pollmask)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pollmask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 423
    functionName: socketcb2poll
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short socketcb2poll(int pollmask)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/easy.c:460,1
    - Dst: infof
      Src: /src/curl/lib/easy.c:461,1
    - Dst: socketcb2poll
      Src: /src/curl/lib/easy.c:466,1
    - Dst: infof
      Src: /src/curl/lib/easy.c:467,1
    - Dst: DEBUGF
      Src: /src/curl/lib/easy.c:480,1
    - Dst: infof
      Src: /src/curl/lib/easy.c:480,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/easy.c:482,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/easy.c:485,1
    - Dst: socketcb2poll
      Src: /src/curl/lib/easy.c:489,1
    - Dst: infof
      Src: /src/curl/lib/easy.c:492,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 5
    argNames:
    - easy
    - s
    - what
    - userp
    - socketp
    argTypes:
    - CURL*
    - curl_socket_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 502
    functionName: events_socket
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - infof
    - curlx_malloc
    - curlx_free
    - DEBUGF
    - socketcb2poll
    linkageType: ''
    returnType: int
    signature: "int events_socket(CURL *easy,      /* easy handle */\n                         curl_socket_t
      s, /* socket */\n                         int what,        /* see above */\n
      \                        void *userp,     /* private callback\n                                             pointer
      */\n                         void *socketp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_setopt
      Src: /src/curl/lib/easy.c:512,1
    - Dst: curl_multi_setopt
      Src: /src/curl/lib/easy.c:513,1
    - Dst: curl_multi_setopt
      Src: /src/curl/lib/easy.c:516,1
    - Dst: curl_multi_setopt
      Src: /src/curl/lib/easy.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - multi
    - ev
    argTypes:
    - struct Curl_multi*
    - struct events*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 518
    functionName: events_setup
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - curl_multi_setopt
    linkageType: ''
    returnType: void
    signature: void events_setup(struct Curl_multi *multi, struct events *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fds
    - ev
    argTypes:
    - struct pollfd*
    - struct events*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 524
    functionDepth: 6
    functionLinenumber: 524
    functionLinenumberEnd: 542
    functionName: populate_fds
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int populate_fds(struct pollfd *fds, struct events *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:556,1
    - Dst: Curl_poll
      Src: /src/curl/lib/easy.c:558,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:560,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:568,1
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/easy.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ev
    - fds
    - numfds
    - pollrc
    argTypes:
    - struct events*
    - struct pollfd*
    - unsigned int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 548
    functionDepth: 6
    functionLinenumber: 548
    functionLinenumberEnd: 575
    functionName: poll_fds
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - Curl_poll
    - curl_mfprintf
    - curlx_wait_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode poll_fds(struct events *ev,\n                         struct
      pollfd *fds,\n                         const unsigned int numfds,\n                         int
      *pollrc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: populate_fds
      Src: /src/curl/lib/easy.c:592,1
    - Dst: curlx_pnow
      Src: /src/curl/lib/easy.c:595,1
    - Dst: poll_fds
      Src: /src/curl/lib/easy.c:597,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:607,1
    - Dst: curl_multi_socket_action
      Src: /src/curl/lib/easy.c:609,1
    - Dst: poll2cselect
      Src: /src/curl/lib/easy.c:619,1
    - Dst: infof
      Src: /src/curl/lib/easy.c:622,1
    - Dst: curl_multi_socket_action
      Src: /src/curl/lib/easy.c:624,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/lib/easy.c:633,1
    - Dst: curlx_now
      Src: /src/curl/lib/easy.c:633,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/easy.c:636,1
    - Dst: curl_multi_info_read
      Src: /src/curl/lib/easy.c:652,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - multi
    - ev
    argTypes:
    - struct Curl_multi*
    - struct events*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 581
    functionDepth: 7
    functionLinenumber: 581
    functionLinenumberEnd: 660
    functionName: wait_or_timeout
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - populate_fds
    - curl_mfprintf
    - poll2cselect
    - curlx_pnow
    - curlx_now
    - infof
    - curlx_timediff_ms
    - curl_multi_info_read
    - poll_fds
    - curl_multi_socket_action
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode wait_or_timeout(struct Curl_multi *multi, struct events *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: events_setup
      Src: /src/curl/lib/easy.c:673,1
    - Dst: wait_or_timeout
      Src: /src/curl/lib/easy.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 666
    functionDepth: 8
    functionLinenumber: 666
    functionLinenumberEnd: 676
    functionName: easy_events
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - events_setup
    - wait_or_timeout
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode easy_events(struct Curl_multi *multi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 680
    functionName: easy_events
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: easy_events(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_poll
      Src: /src/curl/lib/easy.c:691,1
    - Dst: curl_multi_perform
      Src: /src/curl/lib/easy.c:694,1
    - Dst: curl_multi_info_read
      Src: /src/curl/lib/easy.c:699,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 716
    functionName: easy_transfer
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - curl_multi_poll
    - curl_multi_perform
    - curl_multi_info_read
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode easy_transfer(struct Curl_multi *multi)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/easy.c:752,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/easy.c:761,1
    - Dst: Curl_getconnectinfo
      Src: /src/curl/lib/easy.c:762,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/easy.c:764,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/easy.c:766,1
    - Dst: Curl_multi_handle
      Src: /src/curl/lib/easy.c:774,1
    - Dst: curl_multi_setopt
      Src: /src/curl/lib/easy.c:783,1
    - Dst: curl_multi_setopt
      Src: /src/curl/lib/easy.c:784,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/lib/easy.c:787,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/lib/easy.c:789,1
    - Dst: sigpipe_init
      Src: /src/curl/lib/easy.c:798,1
    - Dst: sigpipe_apply
      Src: /src/curl/lib/easy.c:799,1
    - Dst: easy_events
      Src: /src/curl/lib/easy.c:802,1
    - Dst: easy_transfer
      Src: /src/curl/lib/easy.c:802,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/lib/easy.c:806,1
    - Dst: sigpipe_restore
      Src: /src/curl/lib/easy.c:808,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - data
    - events
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 735
    functionDepth: 9
    functionLinenumber: 735
    functionLinenumberEnd: 812
    functionName: easy_perform
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 305
    functionsReached:
    - Curl_getconnectinfo
    - DEBUGASSERT
    - failf
    - sigpipe_init
    - curl_multi_remove_handle
    - Curl_multi_handle
    - curl_multi_cleanup
    - easy_events
    - Curl_detach_connection
    - curl_multi_setopt
    - sigpipe_restore
    - Curl_conn_terminate
    - easy_transfer
    - curl_multi_add_handle
    - sigpipe_apply
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode easy_perform(struct Curl_easy *data, bool events)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: easy_perform
      Src: /src/curl/lib/easy.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 818
    functionDepth: 10
    functionLinenumber: 818
    functionLinenumberEnd: 821
    functionName: curl_easy_perform
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 305
    functionsReached:
    - easy_perform
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_perform(CURL *curl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: easy_perform
      Src: /src/curl/lib/easy.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 828
    functionDepth: 10
    functionLinenumber: 828
    functionLinenumberEnd: 831
    functionName: curl_easy_perform_ev
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 1
    functionsReached:
    - easy_perform
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_perform_ev(struct Curl_easy *easy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:841,1
    - Dst: sigpipe_ignore
      Src: /src/curl/lib/easy.c:843,1
    - Dst: Curl_close
      Src: /src/curl/lib/easy.c:844,1
    - Dst: sigpipe_restore
      Src: /src/curl/lib/easy.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 847
    functionName: curl_easy_cleanup
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 423
    functionsReached:
    - sigpipe_restore
    - sigpipe_ignore
    - Curl_close
    - GOOD_EASY_HANDLE
    linkageType: ''
    returnType: void
    signature: void curl_easy_cleanup(CURL *curl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:861,1
    - Dst: va_start
      Src: /src/curl/lib/easy.c:864,1
    - Dst: va_arg
      Src: /src/curl/lib/easy.c:865,1
    - Dst: Curl_getinfo
      Src: /src/curl/lib/easy.c:867,1
    - Dst: va_end
      Src: /src/curl/lib/easy.c:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - curl
    - info
    argTypes:
    - CURL*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 871
    functionName: curl_easy_getinfo
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 81
    functionsReached:
    - Curl_getinfo
    - va_arg
    - va_start
    - va_end
    - GOOD_EASY_HANDLE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/easy.c:887,1
    - Dst: memset
      Src: /src/curl/lib/easy.c:888,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/easy.c:892,1
    - Dst: Curl_setblobopt
      Src: /src/curl/lib/easy.c:899,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/easy.c:908,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/easy.c:911,1
    - Dst: curlx_sotouz
      Src: /src/curl/lib/easy.c:912,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/easy.c:922,1
    - Dst: Curl_mime_initpart
      Src: /src/curl/lib/easy.c:926,1
    - Dst: Curl_mime_duppart
      Src: /src/curl/lib/easy.c:927,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct Curl_easy*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 937
    functionName: dupset
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - Curl_mime_initpart
    - Curl_mime_duppart
    - curlx_memdup
    - curlx_strdup
    - curlx_sotouz
    - curlx_malloc
    - memset
    - Curl_setblobopt
    - Curl_setstropt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode dupset(struct Curl_easy *dst, struct Curl_easy *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/easy.c:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 946
    functionName: dupeasy_meta_freeentry
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void dupeasy_meta_freeentry(void *p)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:958,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/easy.c:960,1
    - Dst: Curl_hash_init
      Src: /src/curl/lib/easy.c:971,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/easy.c:973,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/easy.c:974,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/easy.c:975,1
    - Dst: Curl_netrc_init
      Src: /src/curl/lib/easy.c:976,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/easy.c:986,1
    - Dst: Curl_initinfo
      Src: /src/curl/lib/easy.c:988,1
    - Dst: dupset
      Src: /src/curl/lib/easy.c:991,1
    - Dst: Curl_cookie_init
      Src: /src/curl/lib/easy.c:1002,1
    - Dst: Curl_slist_duplicate
      Src: /src/curl/lib/easy.c:1009,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/easy.c:1015,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/easy.c:1016,1
    - Dst: Curl_bufref_dup
      Src: /src/curl/lib/easy.c:1017,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/easy.c:1019,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/easy.c:1022,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/easy.c:1023,1
    - Dst: Curl_bufref_dup
      Src: /src/curl/lib/easy.c:1024,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/easy.c:1026,1
    - Dst: Curl_ssl_set_engine
      Src: /src/curl/lib/easy.c:1033,1
    - Dst: Curl_altsvc_init
      Src: /src/curl/lib/easy.c:1039,1
    - Dst: Curl_altsvc_load
      Src: /src/curl/lib/easy.c:1043,1
    - Dst: Curl_hsts_init
      Src: /src/curl/lib/easy.c:1048,1
    - Dst: Curl_hsts_loadfile
      Src: /src/curl/lib/easy.c:1052,1
    - Dst: Curl_hsts_loadcb
      Src: /src/curl/lib/easy.c:1054,1
    - Dst: curlx_free
      Src: /src/curl/lib/easy.c:1068,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/easy.c:1070,1
    - Dst: Curl_altsvc_cleanup
      Src: /src/curl/lib/easy.c:1071,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/lib/easy.c:1072,1
    - Dst: Curl_freeset
      Src: /src/curl/lib/easy.c:1073,1
    - Dst: curlx_free
      Src: /src/curl/lib/easy.c:1074,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 87
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 953
    functionDepth: 3
    functionLinenumber: 953
    functionLinenumberEnd: 1078
    functionName: curl_easy_duphandle
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 14
    functionsReached:
    - curlx_dyn_init
    - Curl_bufref_set
    - Curl_bufref_dup
    - Curl_cookie_init
    - dupset
    - Curl_bufref_init
    - curlx_dyn_free
    - Curl_llist_init
    - Curl_bufref_ptr
    - Curl_hsts_init
    - Curl_hsts_loadfile
    - GOOD_EASY_HANDLE
    - Curl_hsts_cleanup
    - Curl_altsvc_cleanup
    - Curl_ssl_set_engine
    - Curl_hash_init
    - Curl_initinfo
    - Curl_hsts_loadcb
    - curlx_free
    - Curl_freeset
    - curlx_calloc
    - Curl_slist_duplicate
    - Curl_netrc_init
    - Curl_altsvc_init
    - Curl_altsvc_load
    linkageType: ''
    returnType: CURL
    signature: CURL *curl_easy_duphandle(CURL *curl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:1087,1
    - Dst: Curl_req_hard_reset
      Src: /src/curl/lib/easy.c:1090,1
    - Dst: Curl_hash_clean
      Src: /src/curl/lib/easy.c:1091,1
    - Dst: Curl_meta_reset
      Src: /src/curl/lib/easy.c:1094,1
    - Dst: Curl_freeset
      Src: /src/curl/lib/easy.c:1096,1
    - Dst: memset
      Src: /src/curl/lib/easy.c:1097,1
    - Dst: Curl_init_userdefined
      Src: /src/curl/lib/easy.c:1098,1
    - Dst: memset
      Src: /src/curl/lib/easy.c:1101,1
    - Dst: Curl_initinfo
      Src: /src/curl/lib/easy.c:1104,1
    - Dst: memset
      Src: /src/curl/lib/easy.c:1111,1
    - Dst: memset
      Src: /src/curl/lib/easy.c:1112,1
    - Dst: Curl_http_auth_cleanup_digest
      Src: /src/curl/lib/easy.c:1115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1118
    functionName: curl_easy_reset
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 17
    functionsReached:
    - Curl_req_hard_reset
    - Curl_initinfo
    - Curl_freeset
    - Curl_meta_reset
    - Curl_init_userdefined
    - GOOD_EASY_HANDLE
    - memset
    - Curl_hash_clean
    - Curl_http_auth_cleanup_digest
    linkageType: ''
    returnType: void
    signature: void curl_easy_reset(CURL *curl)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:1142,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/easy.c:1146,1
    - Dst: Curl_xfer_recv_is_paused
      Src: /src/curl/lib/easy.c:1149,1
    - Dst: Curl_xfer_send_is_paused
      Src: /src/curl/lib/easy.c:1151,1
    - Dst: Curl_creader_is_paused
      Src: /src/curl/lib/easy.c:1155,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/easy.c:1157,1
    - Dst: Curl_xfer_pause_send
      Src: /src/curl/lib/easy.c:1158,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/easy.c:1163,1
    - Dst: Curl_xfer_pause_recv
      Src: /src/curl/lib/easy.c:1164,1
    - Dst: Curl_xfer_is_blocked
      Src: /src/curl/lib/easy.c:1168,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/easy.c:1172,1
    - Dst: Curl_update_timer
      Src: /src/curl/lib/easy.c:1175,1
    - Dst: Curl_multi_ev_assess_xfer
      Src: /src/curl/lib/easy.c:1183,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/easy.c:1189,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 2
    argNames:
    - curl
    - action
    argTypes:
    - CURL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1133
    functionDepth: 2
    functionLinenumber: 1133
    functionLinenumberEnd: 1192
    functionName: curl_easy_pause
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 14
    functionsReached:
    - Curl_1st_fatal
    - Curl_multi_ev_assess_xfer
    - Curl_xfer_is_blocked
    - Curl_multi_mark_dirty
    - Curl_update_timer
    - Curl_is_in_callback
    - Curl_xfer_recv_is_paused
    - Curl_xfer_pause_send
    - GOOD_EASY_HANDLE
    - Curl_set_in_callback
    - Curl_creader_is_paused
    - Curl_xfer_pause_recv
    - Curl_xfer_send_is_paused
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_pause(CURL *curl, int action)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/easy.c:1204,1
    - Dst: Curl_getconnectinfo
      Src: /src/curl/lib/easy.c:1208,1
    - Dst: failf
      Src: /src/curl/lib/easy.c:1211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - connp
    argTypes:
    - struct Curl_easy*
    - struct connectdata**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1216
    functionName: easy_connection
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - Curl_getconnectinfo
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode easy_connection(struct Curl_easy *data,\n                                struct
      connectdata **connp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:1229,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/easy.c:1231,1
    - Dst: easy_connection
      Src: /src/curl/lib/easy.c:1234,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/easy.c:1241,1
    - Dst: Curl_conn_recv
      Src: /src/curl/lib/easy.c:1244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - curl
    - buffer
    - buflen
    - n
    argTypes:
    - CURL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1223
    functionDepth: 2
    functionLinenumber: 1223
    functionLinenumberEnd: 1245
    functionName: curl_easy_recv
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 4
    functionsReached:
    - easy_connection
    - Curl_attach_connection
    - Curl_is_in_callback
    - GOOD_EASY_HANDLE
    - Curl_conn_recv
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, size_t
      *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: easy_connection
      Src: /src/curl/lib/easy.c:1253,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/easy.c:1260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1263
    functionName: Curl_connect_only_attach
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - easy_connection
    - Curl_attach_connection
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_connect_only_attach(struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: easy_connection
      Src: /src/curl/lib/easy.c:1279,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/easy.c:1286,1
    - Dst: sigpipe_ignore
      Src: /src/curl/lib/easy.c:1288,1
    - Dst: Curl_conn_send
      Src: /src/curl/lib/easy.c:1289,1
    - Dst: sigpipe_restore
      Src: /src/curl/lib/easy.c:1290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - data
    - buffer
    - buflen
    - n
    argTypes:
    - struct Curl_easy*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1295
    functionName: Curl_senddata
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - easy_connection
    - Curl_attach_connection
    - sigpipe_restore
    - sigpipe_ignore
    - Curl_conn_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_senddata(struct Curl_easy *data, const void *buffer,\n
      \                      size_t buflen, size_t *n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:1307,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/easy.c:1309,1
    - Dst: Curl_senddata
      Src: /src/curl/lib/easy.c:1312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - curl
    - buffer
    - buflen
    - n
    argTypes:
    - CURL*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1301
    functionDepth: 3
    functionLinenumber: 1301
    functionLinenumberEnd: 1315
    functionName: curl_easy_send
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 4
    functionsReached:
    - Curl_senddata
    - Curl_is_in_callback
    - GOOD_EASY_HANDLE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_easy_send(CURL *curl, const void *buffer, size_t buflen,\n
      \                       size_t *n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:1324,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/easy.c:1327,1
    - Dst: Curl_cpool_upkeep
      Src: /src/curl/lib/easy.c:1331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1332
    functionName: curl_easy_upkeep
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - Curl_cpool_upkeep
    - Curl_is_in_callback
    - GOOD_EASY_HANDLE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_upkeep(CURL *curl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:1340,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/easy.c:1342,1
    - Dst: Curl_ssl_scache_is_locked
      Src: /src/curl/lib/easy.c:1342,1
    - Dst: Curl_ssl_session_import
      Src: /src/curl/lib/easy.c:1344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - curl
    - session_key
    - shmac
    - shmac_len
    - sdata
    - sdata_len
    argTypes:
    - CURL*
    - char*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1355
    functionName: curl_easy_ssls_import
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 1
    functionsReached:
    - Curl_ssl_scache_is_locked
    - Curl_ssl_session_import
    - Curl_is_in_callback
    - GOOD_EASY_HANDLE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_easy_ssls_import(CURL *curl, const char *session_key,\n
      \                              const unsigned char *shmac, size_t shmac_len,\n
      \                              const unsigned char *sdata, size_t sdata_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/easy.c:1363,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/easy.c:1365,1
    - Dst: Curl_ssl_scache_is_locked
      Src: /src/curl/lib/easy.c:1365,1
    - Dst: Curl_ssl_session_export
      Src: /src/curl/lib/easy.c:1367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - curl
    - export_fn
    - userptr
    argTypes:
    - CURL*
    - curl_ssls_export_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1374
    functionName: curl_easy_ssls_export
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 1
    functionsReached:
    - Curl_ssl_scache_is_locked
    - Curl_is_in_callback
    - GOOD_EASY_HANDLE
    - Curl_ssl_session_export
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_easy_ssls_export(CURL *curl,\n                               curl_ssls_export_cb
      *export_fn,\n                               void *userptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/easy.c:1379,1
    - Dst: Curl_hash_add2
      Src: /src/curl/lib/easy.c:1380,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/easy.c:1380,1
    - Dst: strlen
      Src: /src/curl/lib/easy.c:1380,1
    - Dst: meta_dtor
      Src: /src/curl/lib/easy.c:1382,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/easy.c:1382,1
    - Dst: strlen
      Src: /src/curl/lib/easy.c:1382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - data
    - key
    - meta_data
    - meta_dtor
    argTypes:
    - struct Curl_easy*
    - char*
    - void*
    - Curl_meta_dtor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1386
    functionName: Curl_meta_set
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - CURL_UNCONST
    - meta_dtor
    - strlen
    - Curl_hash_add2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_meta_set(struct Curl_easy *data, const char *key,\n
      \                      void *meta_data, Curl_meta_dtor *meta_dtor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_delete
      Src: /src/curl/lib/easy.c:1390,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/easy.c:1390,1
    - Dst: strlen
      Src: /src/curl/lib/easy.c:1390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - key
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1391
    functionName: Curl_meta_remove
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_hash_delete
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: void Curl_meta_remove(struct Curl_easy *data, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/easy.c:1395,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/easy.c:1395,1
    - Dst: strlen
      Src: /src/curl/lib/easy.c:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - key
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1396
    functionName: Curl_meta_get
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 3
    functionsReached:
    - strlen
    - Curl_hash_pick
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: void *Curl_meta_get(struct Curl_easy *data, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_clean
      Src: /src/curl/lib/easy.c:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1401
    functionName: Curl_meta_reset
    functionSourceFile: /src/curl/lib/easy.c
    functionUses: 1
    functionsReached:
    - Curl_hash_clean
    linkageType: ''
    returnType: void
    signature: void Curl_meta_reset(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/curl_memrchr.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: Curl_memrchr
    functionSourceFile: /src/curl/lib/curl_memrchr.c
    functionUses: 0
    functionsReached:
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: void *Curl_memrchr(const void *s, int c, size_t n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: checkprefix
      Src: /src/curl/lib/http_ntlm.c:63,1
    - Dst: Curl_auth_ntlm_get
      Src: /src/curl/lib/http_ntlm.c:64,1
    - Dst: strlen
      Src: /src/curl/lib/http_ntlm.c:68,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http_ntlm.c:69,1
    - Dst: curlx_base64_decode
      Src: /src/curl/lib/http_ntlm.c:74,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/http_ntlm.c:78,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/http_ntlm.c:79,1
    - Dst: Curl_auth_decode_ntlm_type2_message
      Src: /src/curl/lib/http_ntlm.c:80,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/http_ntlm.c:81,1
    - Dst: infof
      Src: /src/curl/lib/http_ntlm.c:90,1
    - Dst: Curl_auth_ntlm_remove
      Src: /src/curl/lib/http_ntlm.c:91,1
    - Dst: infof
      Src: /src/curl/lib/http_ntlm.c:94,1
    - Dst: Curl_auth_ntlm_remove
      Src: /src/curl/lib/http_ntlm.c:95,1
    - Dst: infof
      Src: /src/curl/lib/http_ntlm.c:100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - data
    - proxy
    - header
    argTypes:
    - struct Curl_easy*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 109
    functionName: Curl_input_ntlm
    functionSourceFile: /src/curl/lib/http_ntlm.c
    functionUses: 1
    functionsReached:
    - Curl_bufref_free
    - Curl_bufref_set
    - Curl_auth_decode_ntlm_type2_message
    - checkprefix
    - Curl_bufref_init
    - curlx_str_passblanks
    - Curl_auth_ntlm_get
    - infof
    - Curl_auth_ntlm_remove
    - strlen
    - curlx_base64_decode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_input_ntlm(struct Curl_easy *data,\n                         bool
      proxy,         /* if proxy or not */\n                         const char *header)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_ntlm.c:135,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_ntlm.c:136,1
    - Dst: Curl_auth_ntlm_get
      Src: /src/curl/lib/http_ntlm.c:157,1
    - Dst: Curl_sspi_global_init
      Src: /src/curl/lib/http_ntlm.c:165,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/http_ntlm.c:174,1
    - Dst: Curl_creds_same
      Src: /src/curl/lib/http_ntlm.c:187,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_ntlm.c:188,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/http_ntlm.c:191,1
    - Dst: Curl_auth_create_ntlm_type1_message
      Src: /src/curl/lib/http_ntlm.c:193,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_ntlm.c:196,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/http_ntlm.c:196,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/http_ntlm.c:197,1
    - Dst: Curl_bufref_uptr
      Src: /src/curl/lib/http_ntlm.c:197,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/http_ntlm.c:198,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_ntlm.c:200,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_ntlm.c:201,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_ntlm.c:203,1
    - Dst: Curl_auth_create_ntlm_type3_message
      Src: /src/curl/lib/http_ntlm.c:212,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/http_ntlm.c:213,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/http_ntlm.c:214,1
    - Dst: Curl_bufref_uptr
      Src: /src/curl/lib/http_ntlm.c:214,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/http_ntlm.c:215,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_ntlm.c:217,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_ntlm.c:218,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_ntlm.c:220,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/http_ntlm.c:238,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/http_ntlm.c:242,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 79
    argCount: 2
    argNames:
    - data
    - proxy
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 114
    functionDepth: 7
    functionLinenumber: 114
    functionLinenumberEnd: 245
    functionName: Curl_output_ntlm
    functionSourceFile: /src/curl/lib/http_ntlm.c
    functionUses: 1
    functionsReached:
    - Curl_creds_same
    - curlx_safefree
    - Curl_bufref_free
    - Curl_creds_link
    - curl_maprintf
    - DEBUGASSERT
    - Curl_bufref_init
    - curlx_base64_encode
    - Curl_auth_create_ntlm_type3_message
    - Curl_bufref_len
    - Curl_auth_ntlm_get
    - curlx_free
    - Curl_bufref_uptr
    - Curl_sspi_global_init
    - Curl_auth_create_ntlm_type1_message
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_output_ntlm(struct Curl_easy *data, bool proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdpool.c:76,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdpool.c:77,1
    - Dst: Curl_cond_destroy
      Src: /src/curl/lib/thrdpool.c:78,1
    - Dst: curlx_free
      Src: /src/curl/lib/thrdpool.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tslot
    argTypes:
    - struct thrdslot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: thrdslot_destroy
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_cond_destroy
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void thrdslot_destroy(struct thrdslot *tslot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdpool.c:86,1
    - Dst: Curl_node_llist
      Src: /src/curl/lib/thrdpool.c:86,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/thrdpool.c:87,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/thrdpool.c:89,1
    - Dst: Curl_cond_signal
      Src: /src/curl/lib/thrdpool.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tslot
    argTypes:
    - struct thrdslot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: thrdslot_done
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 0
    functionsReached:
    - Curl_cond_signal
    - DEBUGASSERT
    - Curl_llist_append
    - Curl_node_remove
    - Curl_node_llist
    linkageType: ''
    returnType: void
    signature: void thrdslot_done(struct thrdslot *tslot)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdpool.c:99,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdpool.c:100,1
    - Dst: Curl_node_llist
      Src: /src/curl/lib/thrdpool.c:100,1
    - Dst: struct curl_thrdpool*::fn_take
      Src: /src/curl/lib/thrdpool.c:105,1
    - Dst: curlx_now
      Src: /src/curl/lib/thrdpool.c:109,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdpool.c:111,1
    - Dst: struct curl_thrdpool*::fn_process
      Src: /src/curl/lib/thrdpool.c:113,1
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdpool.c:115,1
    - Dst: struct curl_thrdpool*::fn_return
      Src: /src/curl/lib/thrdpool.c:117,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdpool.c:121,1
    - Dst: curlx_now
      Src: /src/curl/lib/thrdpool.c:125,1
    - Dst: thrdpool_join_zombies
      Src: /src/curl/lib/thrdpool.c:126,1
    - Dst: Curl_cond_signal
      Src: /src/curl/lib/thrdpool.c:127,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdpool.c:132,1
    - Dst: Curl_cond_timedwait
      Src: /src/curl/lib/thrdpool.c:133,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdpool.c:136,1
    - Dst: Curl_cond_wait
      Src: /src/curl/lib/thrdpool.c:141,1
    - Dst: thrdslot_done
      Src: /src/curl/lib/thrdpool.c:146,1
    - Dst: thrdpool_unlink
      Src: /src/curl/lib/thrdpool.c:147,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdpool.c:149,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 152
    functionName: CURL_STDCALL::thrdslot_run
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_cond_signal
    - thrdpool_unlink
    - struct curl_thrdpool*::fn_return
    - DEBUGASSERT
    - Curl_mutex_acquire
    - curlx_now
    - Curl_cond_wait
    - struct curl_thrdpool*::fn_process
    - Curl_cond_timedwait
    - thrdslot_done
    - thrdpool_join_zombies
    - Curl_mutex_release
    - Curl_node_llist
    - struct curl_thrdpool*::fn_take
    linkageType: ''
    returnType: CURL_THREAD_RETURN_T
    signature: CURL_THREAD_RETURN_T CURL_STDCALL thrdslot_run(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/thrdpool.c:159,1
    - Dst: Curl_cond_init
      Src: /src/curl/lib/thrdpool.c:165,1
    - Dst: Curl_thread_create
      Src: /src/curl/lib/thrdpool.c:169,1
    - Dst: thrdpool_unlink
      Src: /src/curl/lib/thrdpool.c:172,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/thrdpool.c:177,1
    - Dst: thrdslot_destroy
      Src: /src/curl/lib/thrdpool.c:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - tpool
    argTypes:
    - struct curl_thrdpool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 185
    functionName: thrdslot_start
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 0
    functionsReached:
    - thrdpool_unlink
    - Curl_cond_init
    - Curl_thread_create
    - Curl_llist_append
    - curlx_calloc
    - thrdslot_destroy
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode thrdslot_start(struct curl_thrdpool *tpool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdpool.c:190,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/thrdpool.c:190,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/thrdpool.c:191,1
    - Dst: Curl_cond_signal
      Src: /src/curl/lib/thrdpool.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tpool
    argTypes:
    - struct curl_thrdpool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: thrdpool_wake_all
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 0
    functionsReached:
    - Curl_llist_head
    - Curl_cond_signal
    - Curl_node_elem
    - Curl_node_next
    linkageType: ''
    returnType: void
    signature: void thrdpool_wake_all(struct curl_thrdpool *tpool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdpool.c:200,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdpool.c:201,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/thrdpool.c:202,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/thrdpool.c:204,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdpool.c:206,1
    - Dst: Curl_thread_join
      Src: /src/curl/lib/thrdpool.c:207,1
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdpool.c:208,1
    - Dst: thrdslot_destroy
      Src: /src/curl/lib/thrdpool.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tpool
    argTypes:
    - struct curl_thrdpool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: thrdpool_join_zombies
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 1
    functionsReached:
    - Curl_mutex_acquire
    - Curl_thread_join
    - Curl_node_elem
    - Curl_llist_head
    - Curl_mutex_release
    - thrdslot_destroy
    - Curl_node_remove
    linkageType: ''
    returnType: void
    signature: void thrdpool_join_zombies(struct curl_thrdpool *tpool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdpool.c:217,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdpool.c:224,1
    - Dst: thrdpool_join_zombies
      Src: /src/curl/lib/thrdpool.c:225,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdpool.c:227,1
    - Dst: curlx_free
      Src: /src/curl/lib/thrdpool.c:228,1
    - Dst: Curl_cond_destroy
      Src: /src/curl/lib/thrdpool.c:229,1
    - Dst: Curl_mutex_destroy
      Src: /src/curl/lib/thrdpool.c:230,1
    - Dst: curlx_free
      Src: /src/curl/lib/thrdpool.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - tpool
    - locked
    argTypes:
    - struct curl_thrdpool*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 233
    functionName: thrdpool_unlink
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    - Curl_cond_destroy
    - curlx_free
    - Curl_mutex_destroy
    - thrdpool_join_zombies
    - Curl_mutex_release
    linkageType: ''
    returnType: bool
    signature: bool thrdpool_unlink(struct curl_thrdpool *tpool, bool locked)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdpool.c:241,1
    - Dst: thrdpool_join_zombies
      Src: /src/curl/lib/thrdpool.c:242,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdpool.c:244,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/thrdpool.c:245,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/thrdpool.c:246,1
    - Dst: Curl_cond_signal
      Src: /src/curl/lib/thrdpool.c:248,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdpool.c:258,1
    - Dst: thrdslot_start
      Src: /src/curl/lib/thrdpool.c:259,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - tpool
    - nthreads
    argTypes:
    - struct curl_thrdpool*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 235
    functionDepth: 5
    functionLinenumber: 235
    functionLinenumberEnd: 266
    functionName: thrdpool_signal
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 3
    functionsReached:
    - Curl_llist_count
    - Curl_cond_signal
    - thrdslot_start
    - DEBUGASSERT
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - thrdpool_join_zombies
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode thrdpool_signal(struct curl_thrdpool *tpool,\n                                uint32_t
      nthreads)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdpool.c:279,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdpool.c:283,1
    - Dst: thrdpool_signal
      Src: /src/curl/lib/thrdpool.c:285,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdpool.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - tpool
    - min_threads
    - max_threads
    - idle_time_ms
    argTypes:
    - struct curl_thrdpool*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 268
    functionDepth: 6
    functionLinenumber: 268
    functionLinenumberEnd: 290
    functionName: Curl_thrdpool_set_props
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 1
    functionsReached:
    - Curl_mutex_acquire
    - Curl_llist_count
    - Curl_mutex_release
    - thrdpool_signal
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_thrdpool_set_props(struct curl_thrdpool *tpool,\n                                 uint32_t
      min_threads,\n                                 uint32_t max_threads,\n                                 uint32_t
      idle_time_ms)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/thrdpool.c:305,1
    - Dst: Curl_mutex_init
      Src: /src/curl/lib/thrdpool.c:310,1
    - Dst: Curl_cond_init
      Src: /src/curl/lib/thrdpool.c:311,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/thrdpool.c:312,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/thrdpool.c:313,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/thrdpool.c:319,1
    - Dst: Curl_thrdpool_set_props
      Src: /src/curl/lib/thrdpool.c:323,1
    - Dst: thrdpool_unlink
      Src: /src/curl/lib/thrdpool.c:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 9
    argNames:
    - ptpool
    - name
    - min_threads
    - max_threads
    - idle_time_ms
    - fn_take
    - fn_process
    - fn_return
    - user_data
    argTypes:
    - struct curl_thrdpool**
    - char*
    - uint32_t
    - uint32_t
    - uint32_t
    - Curl_thrdpool_take_item_cb*
    - Curl_thrdpool_process_item_cb*
    - Curl_thrdpool_return_item_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 334
    functionName: Curl_thrdpool_create
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 2
    functionsReached:
    - Curl_thrdpool_set_props
    - thrdpool_unlink
    - Curl_cond_init
    - curlx_strdup
    - Curl_llist_init
    - curlx_calloc
    - Curl_mutex_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_thrdpool_create(struct curl_thrdpool **ptpool,\n                              const
      char *name,\n                              uint32_t min_threads,\n                              uint32_t
      max_threads,\n                              uint32_t idle_time_ms,\n                              Curl_thrdpool_take_item_cb
      *fn_take,\n                              Curl_thrdpool_process_item_cb *fn_process,\n
      \                             Curl_thrdpool_return_item_cb *fn_return,\n                              void
      *user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdpool.c:338,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdpool.c:342,1
    - Dst: thrdpool_wake_all
      Src: /src/curl/lib/thrdpool.c:343,1
    - Dst: Curl_cond_wait
      Src: /src/curl/lib/thrdpool.c:344,1
    - Dst: thrdpool_join_zombies
      Src: /src/curl/lib/thrdpool.c:347,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdpool.c:350,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdpool.c:352,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/thrdpool.c:352,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/thrdpool.c:353,1
    - Dst: Curl_thread_destroy
      Src: /src/curl/lib/thrdpool.c:355,1
    - Dst: thrdpool_unlink
      Src: /src/curl/lib/thrdpool.c:360,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdpool.c:362,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - tpool
    - join
    argTypes:
    - struct curl_thrdpool*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 364
    functionName: Curl_thrdpool_destroy
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 2
    functionsReached:
    - Curl_llist_count
    - thrdpool_unlink
    - Curl_mutex_acquire
    - Curl_node_elem
    - Curl_thread_destroy
    - Curl_node_next
    - Curl_llist_head
    - Curl_mutex_release
    - thrdpool_wake_all
    - thrdpool_join_zombies
    - Curl_cond_wait
    linkageType: ''
    returnType: void
    signature: void Curl_thrdpool_destroy(struct curl_thrdpool *tpool, bool join)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdpool.c:370,1
    - Dst: thrdpool_signal
      Src: /src/curl/lib/thrdpool.c:371,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdpool.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tpool
    - nthreads
    argTypes:
    - struct curl_thrdpool*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: Curl_thrdpool_signal
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 3
    functionsReached:
    - Curl_mutex_acquire
    - thrdpool_signal
    - Curl_mutex_release
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_thrdpool_signal(struct curl_thrdpool *tpool, uint32_t
      nthreads)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdpool.c:379,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/thrdpool.c:379,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/thrdpool.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tpool
    argTypes:
    - struct curl_thrdpool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 385
    functionName: thrdpool_all_idle
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 0
    functionsReached:
    - Curl_llist_head
    - Curl_node_elem
    - Curl_node_next
    linkageType: ''
    returnType: bool
    signature: bool thrdpool_all_idle(struct curl_thrdpool *tpool)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdpool.c:393,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/thrdpool.c:394,1
    - Dst: thrdpool_all_idle
      Src: /src/curl/lib/thrdpool.c:400,1
    - Dst: curlx_now
      Src: /src/curl/lib/thrdpool.c:406,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/lib/thrdpool.c:414,1
    - Dst: curlx_now
      Src: /src/curl/lib/thrdpool.c:414,1
    - Dst: Curl_cond_timedwait
      Src: /src/curl/lib/thrdpool.c:418,1
    - Dst: Curl_cond_wait
      Src: /src/curl/lib/thrdpool.c:426,1
    - Dst: thrdpool_join_zombies
      Src: /src/curl/lib/thrdpool.c:431,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdpool.c:432,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - tpool
    - timeout_ms
    argTypes:
    - struct curl_thrdpool*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 434
    functionName: Curl_thrdpool_await_idle
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    - Curl_mutex_acquire
    - curlx_now
    - thrdpool_join_zombies
    - Curl_cond_timedwait
    - curlx_timediff_ms
    - Curl_mutex_release
    - thrdpool_all_idle
    - Curl_cond_wait
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_thrdpool_await_idle(struct curl_thrdpool *tpool,\n                                  uint32_t
      timeout_ms)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/thrdpool.c:441,1
    - Dst: curlx_now
      Src: /src/curl/lib/thrdpool.c:443,1
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/thrdpool.c:445,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/thrdpool.c:446,1
    - Dst: Curl_trc_feat_infof
      Src: /src/curl/lib/thrdpool.c:447,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/thrdpool.c:450,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/thrdpool.c:450,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/thrdpool.c:451,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/thrdpool.c:452,1
    - Dst: Curl_trc_feat_infof
      Src: /src/curl/lib/thrdpool.c:454,1
    - Dst: Curl_trc_feat_infof
      Src: /src/curl/lib/thrdpool.c:458,1
    - Dst: Curl_trc_feat_infof
      Src: /src/curl/lib/thrdpool.c:462,1
    - Dst: Curl_trc_feat_infof
      Src: /src/curl/lib/thrdpool.c:469,1
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/thrdpool.c:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - tpool
    - data
    argTypes:
    - struct curl_thrdpool*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 478
    functionName: Curl_thrdpool_trace
    functionSourceFile: /src/curl/lib/thrdpool.c
    functionUses: 1
    functionsReached:
    - Curl_llist_count
    - Curl_mutex_acquire
    - curlx_now
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - Curl_trc_feat_infof
    - Curl_mutex_release
    - Curl_trc_ft_is_verbose
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: void
    signature: "void Curl_thrdpool_trace(struct curl_thrdpool *tpool,\n                         struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - DOHcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: doh_strerror
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *doh_strerror(DOHcode code)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/doh.c:86,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:113,1
    - Dst: strchr
      Src: /src/curl/lib/doh.c:140,1
    - Dst: strlen
      Src: /src/curl/lib/doh.c:144,1
    - Dst: memcpy
      Src: /src/curl/lib/doh.c:152,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 5
    argNames:
    - host
    - dnstype
    - dnsp
    - len
    - olen
    argTypes:
    - char*
    - DNStype
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 175
    functionName: doh_req_encode
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 4
    functionsReached:
    - strlen
    - memcpy
    - strchr
    - DEBUGASSERT
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST doh_req_encode(const char *host,\n                                DNStype
      dnstype,\n                                unsigned char *dnsp, /* buffer */\n
      \                               size_t len,   /* buffer size */\n                                size_t
      *olen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/doh.c:182,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/doh.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - contents
    - size
    - nmemb
    - userp
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: doh_probe_write_cb
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - curlx_dyn_addn
    linkageType: ''
    returnType: size_t
    signature: "size_t doh_probe_write_cb(char *contents, size_t size, size_t nmemb,\n
      \                                void *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hexencode
      Src: /src/curl/lib/doh.c:207,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:209,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - data
    - prefix
    - buf
    - len
    argTypes:
    - struct Curl_easy*
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 212
    functionName: doh_print_buf
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - Curl_hexencode
    - infof
    linkageType: ''
    returnType: void
    signature: "void doh_print_buf(struct Curl_easy *data,\n                          const
      char *prefix,\n                          unsigned char *buf, size_t len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/doh.c:227,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:229,1
    - Dst: Curl_async_get
      Src: /src/curl/lib/doh.c:233,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/doh.c:235,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:247,1
    - Dst: failf
      Src: /src/curl/lib/doh.c:248,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:253,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/doh.c:259,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/doh.c:260,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/doh.c:261,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/doh.c:262,1
    - Dst: Curl_meta_remove
      Src: /src/curl/lib/doh.c:264,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:267,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/doh.c:267,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/doh.c:271,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - data
    - doh
    - result
    argTypes:
    - struct Curl_easy*
    - struct Curl_easy*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 273
    functionName: doh_probe_done
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - curlx_dyn_addn
    - Curl_multi_mark_dirty
    - curlx_dyn_free
    - curlx_dyn_len
    - curl_easy_strerror
    - infof
    - curlx_dyn_ptr
    - Curl_meta_get
    - Curl_async_get
    - Curl_meta_remove
    - CURL_TRC_DNS
    linkageType: ''
    returnType: void
    signature: "void doh_probe_done(struct Curl_easy *data,\n                           struct
      Curl_easy *doh, CURLcode result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/doh.c:281,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/doh.c:282,1
    - Dst: curlx_free
      Src: /src/curl/lib/doh.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - key
    - klen
    - e
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: doh_probe_dtor
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_dyn_free
    - curl_slist_free_all
    linkageType: ''
    returnType: void
    signature: void doh_probe_dtor(void *key, size_t klen, void *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: ERROR_CHECK_SETOPT
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_CHECK_SETOPT(x, y)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/doh.c:311,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/doh.c:316,1
    - Dst: doh_req_encode
      Src: /src/curl/lib/doh.c:318,1
    - Dst: failf
      Src: /src/curl/lib/doh.c:322,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/doh.c:327,1
    - Dst: curl_slist_append
      Src: /src/curl/lib/doh.c:334,1
    - Dst: Curl_open
      Src: /src/curl/lib/doh.c:341,1
    - Dst: VERBOSE
      Src: /src/curl/lib/doh.c:347,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:348,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:349,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:350,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:351,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:352,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:353,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:354,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:356,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:357,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:361,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:364,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:366,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:367,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:369,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/doh.c:370,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:371,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:373,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:375,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:377,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:379,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:394,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:397,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:400,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:403,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:406,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:408,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:410,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:412,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:414,1
    - Dst: ERROR_CHECK_SETOPT
      Src: /src/curl/lib/doh.c:416,1
    - Dst: curl_easy_setopt
      Src: /src/curl/lib/doh.c:420,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/doh.c:427,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:436,1
    - Dst: curl_multi_add_handle
      Src: /src/curl/lib/doh.c:438,1
    - Dst: Curl_close
      Src: /src/curl/lib/doh.c:445,1
    - Dst: doh_probe_dtor
      Src: /src/curl/lib/doh.c:447,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 102
    argCount: 7
    argNames:
    - data
    - dnstype
    - host
    - url
    - multi
    - resolv_id
    - pmid
    argTypes:
    - struct Curl_easy*
    - DNStype
    - char*
    - char*
    - CURLM*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 449
    functionName: doh_probe_run
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - failf
    - Curl_open
    - DEBUGASSERT
    - doh_req_encode
    - Curl_meta_set
    - doh_probe_dtor
    - VERBOSE
    - curl_slist_append
    - curlx_calloc
    - Curl_close
    - curl_easy_setopt
    - Curl_timeleft_ms
    - ERROR_CHECK_SETOPT
    - Curl_trc_ft_is_verbose
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode doh_probe_run(struct Curl_easy *data,\n                              DNStype
      dnstype,\n                              const char *host,\n                              const
      char *url, CURLM *multi,\n                              uint32_t resolv_id,\n
      \                             uint32_t *pmid)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:463,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:464,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:466,1
    - Dst: Curl_doh_cleanup
      Src: /src/curl/lib/doh.c:467,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/doh.c:471,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/doh.c:477,1
    - Dst: doh_probe_run
      Src: /src/curl/lib/doh.c:488,1
    - Dst: doh_probe_run
      Src: /src/curl/lib/doh.c:500,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/doh.c:514,1
    - Dst: doh_probe_run
      Src: /src/curl/lib/doh.c:518,1
    - Dst: curlx_free
      Src: /src/curl/lib/doh.c:523,1
    - Dst: Curl_doh_cleanup
      Src: /src/curl/lib/doh.c:532,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 456
    functionDepth: 7
    functionLinenumber: 456
    functionLinenumberEnd: 534
    functionName: Curl_doh
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - curl_maprintf
    - DEBUGASSERT
    - Curl_doh_cleanup
    - curlx_free
    - curlx_calloc
    - doh_probe_run
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_doh(struct Curl_easy *data,\n                  struct
      Curl_resolv_async *async)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - doh
    - dohlen
    - indexp
    argTypes:
    - unsigned char*
    - size_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 558
    functionName: doh_skipqname
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DOHcode
    signature: "DOHcode doh_skipqname(const unsigned char *doh, size_t dohlen,\n                             unsigned
      int *indexp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - doh
    - index
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: doh_get16bit
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: "unsigned short doh_get16bit(const unsigned char *doh,\n                                   unsigned
      int index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - doh
    - index
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 577
    functionName: doh_get32bit
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int doh_get32bit(const unsigned char *doh, unsigned int index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/doh.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - doh
    - index
    - d
    argTypes:
    - unsigned char*
    - int
    - struct dohentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 589
    functionName: doh_store_a
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void doh_store_a(const unsigned char *doh, int index,\n                        struct
      dohentry *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/doh.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - doh
    - index
    - d
    argTypes:
    - unsigned char*
    - int
    - struct dohentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 601
    functionName: doh_store_aaaa
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void doh_store_aaaa(const unsigned char *doh, int index,\n                           struct
      dohentry *d)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_memdup
      Src: /src/curl/lib/doh.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - doh
    - index
    - d
    - len
    argTypes:
    - unsigned char*
    - int
    - struct dohentry*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 617
    functionName: doh_store_https
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - curlx_memdup
    linkageType: ''
    returnType: DOHcode
    signature: "DOHcode doh_store_https(const unsigned char *doh, int index,\n                               struct
      dohentry *d, uint16_t len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/doh.c:652,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/doh.c:653,1
    - Dst: STRCONST
      Src: /src/curl/lib/doh.c:653,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/doh.c:659,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 4
    argNames:
    - doh
    - dohlen
    - index
    - d
    argTypes:
    - unsigned char*
    - size_t
    - unsigned int
    - struct dohentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 668
    functionName: doh_store_cname
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - STRCONST
    - curlx_dyn_len
    - curlx_dyn_addn
    linkageType: ''
    returnType: DOHcode
    signature: "DOHcode doh_store_cname(const unsigned char *doh, size_t dohlen,\n
      \                              unsigned int index, struct dohentry *d)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: doh_store_a
      Src: /src/curl/lib/doh.c:688,1
    - Dst: doh_store_aaaa
      Src: /src/curl/lib/doh.c:693,1
    - Dst: doh_store_https
      Src: /src/curl/lib/doh.c:697,1
    - Dst: doh_store_cname
      Src: /src/curl/lib/doh.c:703,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 6
    argNames:
    - doh
    - dohlen
    - rdlength
    - type
    - index
    - d
    argTypes:
    - unsigned char*
    - size_t
    - unsigned short
    - unsigned short
    - int
    - struct dohentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 715
    functionName: doh_rdata
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - doh_store_cname
    - doh_store_a
    - doh_store_https
    - doh_store_aaaa
    linkageType: ''
    returnType: DOHcode
    signature: "DOHcode doh_rdata(const unsigned char *doh,\n                         size_t
      dohlen,\n                         unsigned short rdlength,\n                         unsigned
      short type,\n                         int index,\n                         struct
      dohentry *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/doh.c:722,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/doh.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - de
    argTypes:
    - struct dohentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: de_init
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 3
    functionsReached:
    - curlx_dyn_init
    - memset
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST de_init(struct dohentry *de)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:756,1
    - Dst: doh_skipqname
      Src: /src/curl/lib/doh.c:758,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:767,1
    - Dst: doh_skipqname
      Src: /src/curl/lib/doh.c:772,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:779,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:789,1
    - Dst: doh_get32bit
      Src: /src/curl/lib/doh.c:797,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:805,1
    - Dst: doh_rdata
      Src: /src/curl/lib/doh.c:810,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:817,1
    - Dst: doh_skipqname
      Src: /src/curl/lib/doh.c:819,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:831,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:839,1
    - Dst: doh_skipqname
      Src: /src/curl/lib/doh.c:841,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:853,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 94
    argCount: 4
    argNames:
    - doh
    - dohlen
    - dnstype
    - d
    argTypes:
    - unsigned char*
    - size_t
    - DNStype
    - struct dohentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 874
    functionName: doh_resp_decode
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 3
    functionsReached:
    - doh_get16bit
    - doh_get32bit
    - doh_rdata
    - doh_skipqname
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST doh_resp_decode(const unsigned char *doh,\n                                 size_t
      dohlen,\n                                 DNStype dnstype,\n                                 struct
      dohentry *d)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/doh.c:881,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:885,1
    - Dst: strlen
      Src: /src/curl/lib/doh.c:892,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/doh.c:897,1
    - Dst: strlen
      Src: /src/curl/lib/doh.c:900,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:904,1
    - Dst: doh_print_buf
      Src: /src/curl/lib/doh.c:910,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:912,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:917,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/doh.c:917,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - data
    - d
    argTypes:
    - struct Curl_easy*
    - struct dohentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 877
    functionDepth: 7
    functionLinenumber: 877
    functionLinenumberEnd: 919
    functionName: doh_show
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - infof
    - curlx_dyn_ptr
    - doh_print_buf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void doh_show(struct Curl_easy *data,\n                     const
      struct dohentry *d)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/doh.c:949,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:951,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/doh.c:973,1
    - Dst: memcpy
      Src: /src/curl/lib/doh.c:980,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:1003,1
    - Dst: memcpy
      Src: /src/curl/lib/doh.c:1004,1
    - Dst: htons
      Src: /src/curl/lib/doh.c:1006,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:1012,1
    - Dst: memcpy
      Src: /src/curl/lib/doh.c:1013,1
    - Dst: htons
      Src: /src/curl/lib/doh.c:1015,1
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/doh.c:1024,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 4
    argNames:
    - de
    - hostname
    - port
    - aip
    argTypes:
    - struct dohentry*
    - char*
    - int
    - struct Curl_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 1030
    functionName: doh2ai
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - htons
    - memcpy
    - DEBUGASSERT
    - Curl_freeaddrinfo
    - curlx_calloc
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode doh2ai(const struct dohentry *de, const char *hostname,\n
      \                      int port, struct Curl_addrinfo **aip)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - dnstype
    argTypes:
    - DNStype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1047
    functionName: doh_type2name
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *doh_type2name(DNStype dnstype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/doh.c:1056,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/doh.c:1060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dohentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1062
    functionName: de_cleanup
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 4
    functionsReached:
    - curlx_safefree
    - curlx_dyn_free
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST de_cleanup(struct dohentry *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:1088,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/doh.c:1091,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/doh.c:1097,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/doh.c:1102,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/doh.c:1105,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/doh.c:1106,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/doh.c:1112,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/doh.c:1119,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - buf
    - remaining
    - dnsname
    argTypes:
    - unsigned char**
    - size_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1121
    functionName: doh_decode_rdata_name
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - DEBUGASSERT
    - curlx_dyn_free
    - curlx_dyn_ptr
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode doh_decode_rdata_name(const unsigned char **buf,\n                                      size_t
      *remaining, char **dnsname)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/doh.c:1142,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:1145,1
    - Dst: doh_decode_rdata_name
      Src: /src/curl/lib/doh.c:1148,1
    - Dst: Curl_junkscan
      Src: /src/curl/lib/doh.c:1151,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:1157,1
    - Dst: doh_get16bit
      Src: /src/curl/lib/doh.c:1158,1
    - Dst: Curl_httpsrr_set
      Src: /src/curl/lib/doh.c:1165,1
    - Dst: Curl_httpsrr_trace
      Src: /src/curl/lib/doh.c:1168,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:1173,1
    - Dst: Curl_httpsrr_cleanup
      Src: /src/curl/lib/doh.c:1177,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/doh.c:1178,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - data
    - cp
    - len
    - hrr
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    - struct Curl_https_rrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1127
    functionDepth: 2
    functionLinenumber: 1127
    functionLinenumberEnd: 1180
    functionName: doh_resp_decode_httpsrr
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - Curl_httpsrr_trace
    - DEBUGASSERT
    - doh_decode_rdata_name
    - Curl_httpsrr_cleanup
    - doh_get16bit
    - Curl_junkscan
    - curlx_calloc
    - Curl_httpsrr_set
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST doh_resp_decode_httpsrr(struct Curl_easy *data,\n                                          const
      unsigned char *cp, size_t len,\n                                          struct
      Curl_https_rrinfo **hrr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:1186,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1187,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1189,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1192,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1194,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1196,1
    - Dst: doh_print_buf
      Src: /src/curl/lib/doh.c:1198,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1202,1
    - Dst: doh_print_buf
      Src: /src/curl/lib/doh.c:1204,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1208,1
    - Dst: doh_print_buf
      Src: /src/curl/lib/doh.c:1210,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - data
    - hrr
    argTypes:
    - struct Curl_easy*
    - struct Curl_https_rrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1215
    functionName: doh_print_httpsrr
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 0
    functionsReached:
    - doh_print_buf
    - DEBUGASSERT
    - infof
    linkageType: ''
    returnType: void
    signature: "void doh_print_httpsrr(struct Curl_easy *data,\n                              struct
      Curl_https_rrinfo *hrr)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/doh.c:1233,1
    - Dst: memset
      Src: /src/curl/lib/doh.c:1241,1
    - Dst: doh_close
      Src: /src/curl/lib/doh.c:1243,1
    - Dst: de_init
      Src: /src/curl/lib/doh.c:1245,1
    - Dst: doh_resp_decode
      Src: /src/curl/lib/doh.c:1250,1
    - Dst: curlx_dyn_uptr
      Src: /src/curl/lib/doh.c:1250,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/doh.c:1251,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/doh.c:1254,1
    - Dst: doh_strerror
      Src: /src/curl/lib/doh.c:1254,1
    - Dst: doh_type2name
      Src: /src/curl/lib/doh.c:1255,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/doh.c:1264,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/doh.c:1265,1
    - Dst: doh_show
      Src: /src/curl/lib/doh.c:1266,1
    - Dst: doh2ai
      Src: /src/curl/lib/doh.c:1269,1
    - Dst: Curl_dnscache_mk_entry
      Src: /src/curl/lib/doh.c:1274,1
    - Dst: doh_resp_decode_httpsrr
      Src: /src/curl/lib/doh.c:1285,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1288,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/doh.c:1289,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1292,1
    - Dst: doh_print_httpsrr
      Src: /src/curl/lib/doh.c:1294,1
    - Dst: Curl_dns_entry_set_https_rr
      Src: /src/curl/lib/doh.c:1296,1
    - Dst: Curl_dnscache_add
      Src: /src/curl/lib/doh.c:1301,1
    - Dst: de_cleanup
      Src: /src/curl/lib/doh.c:1315,1
    - Dst: Curl_doh_cleanup
      Src: /src/curl/lib/doh.c:1316,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 3
    argNames:
    - data
    - async
    - pdns
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1219
    functionDepth: 8
    functionLinenumber: 1219
    functionLinenumberEnd: 1318
    functionName: Curl_doh_take_result
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 1
    functionsReached:
    - Curl_dns_entry_set_https_rr
    - de_init
    - Curl_dnscache_mk_entry
    - doh_close
    - doh_resp_decode_httpsrr
    - failf
    - de_cleanup
    - curlx_dyn_len
    - doh_show
    - Curl_doh_cleanup
    - doh2ai
    - memset
    - doh_resp_decode
    - Curl_dnscache_add
    - doh_type2name
    - doh_print_httpsrr
    - doh_strerror
    - Curl_dns_entry_unlink
    - curlx_dyn_uptr
    - infof
    - CURL_TRC_DNS
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_doh_take_result(struct Curl_easy *data,\n                              struct
      Curl_resolv_async *async,\n                              struct Curl_dns_entry
      **pdns)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/doh.c:1334,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/doh.c:1335,1
    - Dst: DEBUGF
      Src: /src/curl/lib/doh.c:1337,1
    - Dst: infof
      Src: /src/curl/lib/doh.c:1337,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/lib/doh.c:1342,1
    - Dst: Curl_close
      Src: /src/curl/lib/doh.c:1343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1347
    functionName: doh_close
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - curl_multi_remove_handle
    - Curl_multi_get_easy
    - infof
    - Curl_close
    - DEBUGF
    linkageType: ''
    returnType: void
    signature: "void doh_close(struct Curl_easy *data,\n                      struct
      Curl_resolv_async *async)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doh_close
      Src: /src/curl/lib/doh.c:1355,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/doh.c:1357,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/doh.c:1359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1349
    functionDepth: 2
    functionLinenumber: 1349
    functionLinenumberEnd: 1361
    functionName: Curl_doh_cleanup
    functionSourceFile: /src/curl/lib/doh.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - curlx_dyn_free
    - doh_close
    linkageType: ''
    returnType: void
    signature: "void Curl_doh_cleanup(struct Curl_easy *data,\n                      struct
      Curl_resolv_async *async)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/parsedate.c:209,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/parsedate.c:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - check
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: checkday
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_strnequal
    linkageType: ''
    returnType: int
    signature: int checkday(const char *check, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/parsedate.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - check
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 231
    functionName: checkmonth
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: int
    signature: int checkmonth(const char *check, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/parsedate.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m1
    - m2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: tzcompare
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int tzcompare(const void *m1, const void *m2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strcopy
      Src: /src/curl/lib/parsedate.c:247,1
    - Dst: bsearch
      Src: /src/curl/lib/parsedate.c:248,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/parsedate.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - check
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: checktz
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached:
    - bsearch
    - curlx_strcopy
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: int
    signature: int checktz(const char *check, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISALNUM
      Src: /src/curl/lib/parsedate.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - date
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: skip
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 1
    functionsReached:
    - ISALNUM
    linkageType: ''
    returnType: void
    signature: void skip(const char **date)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct when*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 298
    functionName: time2epoch
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t time2epoch(struct when *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/curl/lib/parsedate.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - date
    - endp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: oneortwodigit
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached:
    - ISDIGIT
    linkageType: ''
    returnType: int
    signature: int oneortwodigit(const char *date, const char **endp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oneortwodigit
      Src: /src/curl/lib/parsedate.c:319,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/parsedate.c:320,1
    - Dst: oneortwodigit
      Src: /src/curl/lib/parsedate.c:321,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/parsedate.c:323,1
    - Dst: oneortwodigit
      Src: /src/curl/lib/parsedate.c:324,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/parsedate.c:341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - date
    - w
    - endp
    argTypes:
    - char*
    - struct when*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 343
    functionName: match_time
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached:
    - ISDIGIT
    - CURL_UNCONST
    - oneortwodigit
    linkageType: ''
    returnType: bool
    signature: bool match_time(const char *date, struct when *w, char **endp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct when*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: initwhen
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initwhen(struct when *w)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ISALPHA
      Src: /src/curl/lib/parsedate.c:371,1
    - Dst: checkday
      Src: /src/curl/lib/parsedate.c:378,1
    - Dst: checkmonth
      Src: /src/curl/lib/parsedate.c:383,1
    - Dst: checktz
      Src: /src/curl/lib/parsedate.c:390,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - datep
    - w
    argTypes:
    - char**
    - struct when*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 400
    functionName: datestring
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached:
    - checkmonth
    - checkday
    - ISALPHA
    - checktz
    linkageType: ''
    returnType: int
    signature: int datestring(const char **datep, struct when *w)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: match_time
      Src: /src/curl/lib/parsedate.c:411,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/parsedate.c:420,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 44
    argCount: 4
    argNames:
    - indate
    - datep
    - w
    - dignextp
    argTypes:
    - char*
    - char**
    - struct when*
    - enum assume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 486
    functionName: datenum
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached:
    - match_time
    - curlx_str_number
    linkageType: ''
    returnType: int
    signature: "int datenum(const char *indate, const char **datep, struct when *w,\n
      \                  enum assume *dignextp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct when*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 506
    functionName: datecheck
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int datecheck(struct when *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - tp
    - w
    argTypes:
    - curl_off_t*
    - struct when*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 519
    functionName: tzadjust
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tzadjust(curl_off_t *tp, struct when *w)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - seconds
    - output
    argTypes:
    - curl_off_t
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 540
    functionName: mktimet
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mktimet(curl_off_t seconds, time_t *output)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: initwhen
      Src: /src/curl/lib/parsedate.c:550,1
    - Dst: skip
      Src: /src/curl/lib/parsedate.c:553,1
    - Dst: ISALPHA
      Src: /src/curl/lib/parsedate.c:555,1
    - Dst: datestring
      Src: /src/curl/lib/parsedate.c:556,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/parsedate.c:557,1
    - Dst: datenum
      Src: /src/curl/lib/parsedate.c:558,1
    - Dst: datecheck
      Src: /src/curl/lib/parsedate.c:565,1
    - Dst: time2epoch
      Src: /src/curl/lib/parsedate.c:569,1
    - Dst: tzadjust
      Src: /src/curl/lib/parsedate.c:570,1
    - Dst: mktimet
      Src: /src/curl/lib/parsedate.c:571,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - date
    - output
    argTypes:
    - char*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 574
    functionName: parsedate
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached:
    - time2epoch
    - tzadjust
    - skip
    - datenum
    - mktimet
    - datestring
    - datecheck
    - initwhen
    - ISDIGIT
    - ISALPHA
    linkageType: ''
    returnType: int
    signature: int parsedate(const char *date, time_t *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - date
    - output
    argTypes:
    - char*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: parsedate
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parsedate(const char *date, time_t *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parsedate
      Src: /src/curl/lib/parsedate.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - unused
    argTypes:
    - char*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 585
    functionDepth: 5
    functionLinenumber: 585
    functionLinenumberEnd: 599
    functionName: curl_getdate
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 2
    functionsReached:
    - parsedate
    linkageType: ''
    returnType: time_t
    signature: time_t curl_getdate(const char *p, const time_t *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parsedate
      Src: /src/curl/lib/parsedate.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - tp
    argTypes:
    - char*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 605
    functionDepth: 5
    functionLinenumber: 605
    functionLinenumberEnd: 609
    functionName: Curl_getdate_capped
    functionSourceFile: /src/curl/lib/parsedate.c
    functionUses: 2
    functionsReached:
    - parsedate
    linkageType: ''
    returnType: int
    signature: int Curl_getdate_capped(const char *p, time_t *tp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/smtp.c:163,1
    - Dst: Curl_sasl_parse_url_auth_option
      Src: /src/curl/lib/smtp.c:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - smtpc
    argTypes:
    - struct connectdata*
    - struct smtp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 174
    functionName: smtp_parse_url_options
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_parse_url_auth_option
    - curl_strnequal
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_parse_url_options(struct connectdata *conn,\n                                       struct
      smtp_conn *smtpc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_gethostname
      Src: /src/curl/lib/smtp.c:191,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/smtp.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - smtpc
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 199
    functionName: smtp_parse_url_path
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_gethostname
    - Curl_urldecode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_parse_url_path(struct Curl_easy *data,\n                                    struct
      smtp_conn *smtpc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_urldecode
      Src: /src/curl/lib/smtp.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - smtp
    argTypes:
    - struct Curl_easy*
    - struct SMTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: smtp_parse_custom_request
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_urldecode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_parse_custom_request(struct Curl_easy *data,\n                                          struct
      SMTP *smtp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strdup
      Src: /src/curl/lib/smtp.c:262,1
    - Dst: strlen
      Src: /src/curl/lib/smtp.c:267,1
    - Dst: strrchr
      Src: /src/curl/lib/smtp.c:274,1
    - Dst: strpbrk
      Src: /src/curl/lib/smtp.c:282,1
    - Dst: Curl_idnconvert_hostname
      Src: /src/curl/lib/smtp.c:288,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - fqma
    - address
    - host
    - suffix
    argTypes:
    - char*
    - char**
    - struct hostname*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 299
    functionName: smtp_parse_address
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - curlx_strdup
    - strrchr
    - Curl_idnconvert_hostname
    - strpbrk
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_parse_address(const char *fqma, char **address,\n                                   struct
      hostname *host, const char **suffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/smtp.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 322
    functionName: cr_eob_init
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_eob_init(struct Curl_easy *data,\n                            struct
      Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/smtp.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: cr_eob_close
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void cr_eob_close(struct Curl_easy *data, struct Curl_creader *reader)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/smtp.c:346,1
    - Dst: Curl_creader_read
      Src: /src/curl/lib/smtp.c:348,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:349,1
    - Dst: memchr
      Src: /src/curl/lib/smtp.c:356,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/smtp.c:366,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/smtp.c:369,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/smtp.c:389,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:403,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/smtp.c:416,1
    - Dst: strlen
      Src: /src/curl/lib/smtp.c:416,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/smtp.c:422,1
    - Dst: Curl_bufq_cread
      Src: /src/curl/lib/smtp.c:423,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/smtp.c:428,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:430,1
    - Dst: DEBUGF
      Src: /src/curl/lib/smtp.c:434,1
    - Dst: infof
      Src: /src/curl/lib/smtp.c:434,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - pnread
    - peos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 437
    functionName: cr_eob_read
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - DEBUGF
    - Curl_creader_read
    - memchr
    - Curl_bufq_cread
    - infof
    - Curl_bufq_cwrite
    - Curl_bufq_is_empty
    - strlen
    - CURL_TRC_SMTP
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_eob_read(struct Curl_easy *data,\n                            struct
      Curl_creader *reader,\n                            char *buf, size_t blen,\n
      \                           size_t *pnread, bool *peos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: cr_eob_total_length
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t cr_eob_total_length(struct Curl_easy *data,\n                                      struct
      Curl_creader *reader)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_create
      Src: /src/curl/lib/smtp.c:467,1
    - Dst: Curl_creader_add
      Src: /src/curl/lib/smtp.c:469,1
    - Dst: Curl_creader_free
      Src: /src/curl/lib/smtp.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 474
    functionName: cr_eob_add
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_creader_create
    - Curl_creader_add
    - Curl_creader_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cr_eob_add(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:487,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/smtp.c:491,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/smtp.c:496,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/smtp.c:496,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/smtp.c:496,1
    - Dst: memcpy
      Src: /src/curl/lib/smtp.c:508,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/smtp.c:510,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 5
    argNames:
    - data
    - conn
    - line
    - len
    - resp
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 526
    functionName: smtp_endofresp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - curlx_str_number
    - Curl_conn_meta_get
    - ISDIGIT
    linkageType: ''
    returnType: bool
    signature: "bool smtp_endofresp(struct Curl_easy *data, struct connectdata *conn,\n
      \                          const char *line, size_t len, int *resp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:537,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/smtp.c:544,1
    - Dst: ISBLANK
      Src: /src/curl/lib/smtp.c:549,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/smtp.c:554,1
    - Dst: ISBLANK
      Src: /src/curl/lib/smtp.c:554,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/smtp.c:559,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/smtp.c:563,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 566
    functionName: smtp_get_message
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_set
    - ISNEWLINE
    - Curl_conn_meta_get
    - curlx_dyn_ptr
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smtp_get_message(struct Curl_easy *data, struct bufref *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - smtpc
    - newstate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 605
    functionName: smtp_state
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_SMTP
    linkageType: ''
    returnType: void
    signature: "void smtp_state(struct Curl_easy *data,\n                       struct
      smtp_conn *smtpc,\n                       smtpstate newstate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:626,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - smtpc
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 632
    functionName: smtp_perform_ehlo
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_ehlo(struct Curl_easy *data,\n                                  struct
      smtp_conn *smtpc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:649,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - smtpc
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 655
    functionName: smtp_perform_helo
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_helo(struct Curl_easy *data,\n                                  struct
      smtp_conn *smtpc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:667,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - smtpc
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 673
    functionName: smtp_perform_starttls
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_starttls(struct Curl_easy *data,\n                                      struct
      smtp_conn *smtpc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/smtp.c:690,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/smtp.c:691,1
    - Dst: Curl_ssl_cfilter_add
      Src: /src/curl/lib/smtp.c:692,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/smtp.c:699,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/smtp.c:700,1
    - Dst: DEBUGF
      Src: /src/curl/lib/smtp.c:701,1
    - Dst: infof
      Src: /src/curl/lib/smtp.c:701,1
    - Dst: smtp_perform_ehlo
      Src: /src/curl/lib/smtp.c:706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - data
    - smtpc
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 715
    functionName: smtp_perform_upgrade_tls
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - DEBUGF
    - Curl_conn_connect
    - Curl_ssl_cfilter_add
    - infof
    - Curl_conn_is_ssl
    - smtp_perform_ehlo
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_upgrade_tls(struct Curl_easy *data,\n                                         struct
      smtp_conn *smtpc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:730,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/smtp.c:731,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:738,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - mech
    - initresp
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 746
    functionName: smtp_perform_auth
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_bufref_ptr
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_auth(struct Curl_easy *data,\n                                  const
      char *mech,\n                                  const struct bufref *initresp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:759,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:764,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/smtp.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - mech
    - resp
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 765
    functionName: smtp_continue_auth
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_bufref_ptr
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_continue_auth(struct Curl_easy *data,\n                                   const
      char *mech,\n                                   const struct bufref *resp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:776,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - mech
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 782
    functionName: smtp_cancel_auth
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smtp_cancel_auth(struct Curl_easy *data, const char *mech)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sasl_can_authenticate
      Src: /src/curl/lib/smtp.c:800,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:801,1
    - Dst: Curl_sasl_start
      Src: /src/curl/lib/smtp.c:806,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:810,1
    - Dst: Curl_sasl_is_blocked
      Src: /src/curl/lib/smtp.c:812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - smtpc
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 816
    functionName: smtp_perform_authentication
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_can_authenticate
    - Curl_sasl_start
    - smtp_state
    - Curl_sasl_is_blocked
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_authentication(struct Curl_easy *data,\n                                            struct
      smtp_conn *smtpc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smtp_parse_address
      Src: /src/curl/lib/smtp.c:844,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/smtp.c:853,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/smtp.c:854,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:858,1
    - Dst: Curl_free_idnconverted_hostname
      Src: /src/curl/lib/smtp.c:864,1
    - Dst: curlx_free
      Src: /src/curl/lib/smtp.c:865,1
    - Dst: strcmp
      Src: /src/curl/lib/smtp.c:870,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:873,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:881,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:886,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - data
    - smtpc
    - smtp
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - struct SMTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 824
    functionDepth: 4
    functionLinenumber: 824
    functionLinenumberEnd: 889
    functionName: smtp_perform_command
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_parse_address
    - Curl_free_idnconverted_hostname
    - Curl_is_ASCII_name
    - Curl_pp_sendf
    - curlx_free
    - strcmp
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_command(struct Curl_easy *data,\n                                     struct
      smtp_conn *smtpc,\n                                     struct SMTP *smtp)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: smtp_parse_address
      Src: /src/curl/lib/smtp.c:920,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/smtp.c:929,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/smtp.c:930,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/smtp.c:933,1
    - Dst: Curl_free_idnconverted_hostname
      Src: /src/curl/lib/smtp.c:935,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/smtp.c:940,1
    - Dst: curlx_free
      Src: /src/curl/lib/smtp.c:942,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/smtp.c:946,1
    - Dst: smtp_parse_address
      Src: /src/curl/lib/smtp.c:962,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/smtp.c:971,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/smtp.c:972,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/smtp.c:976,1
    - Dst: Curl_free_idnconverted_hostname
      Src: /src/curl/lib/smtp.c:978,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/smtp.c:983,1
    - Dst: curlx_free
      Src: /src/curl/lib/smtp.c:984,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/smtp.c:988,1
    - Dst: IS_MIME_POST
      Src: /src/curl/lib/smtp.c:998,1
    - Dst: curl_mime_headers
      Src: /src/curl/lib/smtp.c:1005,1
    - Dst: Curl_mime_prepare_headers
      Src: /src/curl/lib/smtp.c:1006,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/smtp.c:1010,1
    - Dst: STRCONST
      Src: /src/curl/lib/smtp.c:1010,1
    - Dst: Curl_mime_add_header
      Src: /src/curl/lib/smtp.c:1011,1
    - Dst: Curl_creader_set_mime
      Src: /src/curl/lib/smtp.c:1015,1
    - Dst: Curl_creader_total_length
      Src: /src/curl/lib/smtp.c:1018,1
    - Dst: Curl_creader_set_fread
      Src: /src/curl/lib/smtp.c:1023,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/smtp.c:1030,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/smtp.c:1047,1
    - Dst: cr_eob_add
      Src: /src/curl/lib/smtp.c:1055,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:1060,1
    - Dst: curlx_free
      Src: /src/curl/lib/smtp.c:1071,1
    - Dst: curlx_free
      Src: /src/curl/lib/smtp.c:1072,1
    - Dst: curlx_free
      Src: /src/curl/lib/smtp.c:1073,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1076,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 89
    argCount: 3
    argNames:
    - data
    - smtpc
    - smtp
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - struct SMTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 897
    functionDepth: 7
    functionLinenumber: 897
    functionLinenumberEnd: 1079
    functionName: smtp_perform_mail
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_parse_address
    - Curl_creader_total_length
    - Curl_free_idnconverted_hostname
    - curl_maprintf
    - IS_MIME_POST
    - curl_mime_headers
    - Curl_is_ASCII_name
    - STRCONST
    - Curl_creader_set_fread
    - curlx_strdup
    - Curl_checkheaders
    - cr_eob_add
    - Curl_creader_set_mime
    - curlx_free
    - Curl_pp_sendf
    - Curl_mime_add_header
    - Curl_mime_prepare_headers
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_mail(struct Curl_easy *data,\n                                  struct
      smtp_conn *smtpc,\n                                  struct SMTP *smtp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smtp_parse_address
      Src: /src/curl/lib/smtp.c:1099,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:1106,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:1111,1
    - Dst: Curl_free_idnconverted_hostname
      Src: /src/curl/lib/smtp.c:1114,1
    - Dst: curlx_free
      Src: /src/curl/lib/smtp.c:1115,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - data
    - smtpc
    - smtp
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - struct SMTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1088
    functionDepth: 4
    functionLinenumber: 1088
    functionLinenumberEnd: 1121
    functionName: smtp_perform_rcpt_to
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_parse_address
    - Curl_free_idnconverted_hostname
    - Curl_pp_sendf
    - curlx_free
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_rcpt_to(struct Curl_easy *data,\n                                     struct
      smtp_conn *smtpc,\n                                     struct SMTP *smtp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:1133,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - smtpc
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1139
    functionName: smtp_perform_quit
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform_quit(struct Curl_easy *data,\n                                  struct
      smtp_conn *smtpc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1151,1
    - Dst: smtp_perform_ehlo
      Src: /src/curl/lib/smtp.c:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - data
    - smtpc
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1142
    functionDepth: 4
    functionLinenumber: 1142
    functionLinenumberEnd: 1158
    functionName: smtp_state_servergreet_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_perform_ehlo
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_servergreet_resp(struct Curl_easy *data,\n                                            struct
      smtp_conn *smtpc,\n                                            int smtpcode,\n
      \                                           smtpstate instate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1175,1
    - Dst: smtp_perform_authentication
      Src: /src/curl/lib/smtp.c:1179,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - data
    - smtpc
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1161
    functionDepth: 3
    functionLinenumber: 1161
    functionLinenumberEnd: 1185
    functionName: smtp_state_starttls_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_state
    - failf
    - smtp_perform_authentication
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_starttls_resp(struct Curl_easy *data,\n                                         struct
      smtp_conn *smtpc,\n                                         int smtpcode,\n
      \                                        smtpstate instate)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/smtp.c:1194,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/smtp.c:1201,1
    - Dst: smtp_perform_helo
      Src: /src/curl/lib/smtp.c:1202,1
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1204,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/smtp.c:1213,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/smtp.c:1217,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/smtp.c:1221,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/smtp.c:1225,1
    - Dst: ISBLANK
      Src: /src/curl/lib/smtp.c:1238,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/smtp.c:1238,1
    - Dst: ISBLANK
      Src: /src/curl/lib/smtp.c:1247,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/smtp.c:1248,1
    - Dst: Curl_sasl_decode_mech
      Src: /src/curl/lib/smtp.c:1252,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/smtp.c:1262,1
    - Dst: smtp_perform_starttls
      Src: /src/curl/lib/smtp.c:1266,1
    - Dst: smtp_perform_authentication
      Src: /src/curl/lib/smtp.c:1269,1
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1271,1
    - Dst: smtp_perform_authentication
      Src: /src/curl/lib/smtp.c:1276,1
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1280,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 55
    argCount: 4
    argNames:
    - data
    - smtpc
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1188
    functionDepth: 4
    functionLinenumber: 1188
    functionLinenumberEnd: 1285
    functionName: smtp_state_ehlo_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_perform_helo
    - failf
    - smtp_perform_authentication
    - ISNEWLINE
    - smtp_perform_starttls
    - curl_strnequal
    - curlx_dyn_ptr
    - Curl_conn_is_ssl
    - ISBLANK
    - Curl_sasl_decode_mech
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_ehlo_resp(struct Curl_easy *data,\n                                     struct
      smtp_conn *smtpc,\n                                     int smtpcode,\n                                     smtpstate
      instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1297,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - data
    - smtpc
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1305
    functionName: smtp_state_helo_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_state
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_helo_resp(struct Curl_easy *data,\n                                     struct
      smtp_conn *smtpc,\n                                     int smtpcode,\n                                     smtpstate
      instate)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sasl_continue
      Src: /src/curl/lib/smtp.c:1318,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1322,1
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - data
    - smtpc
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1308
    functionDepth: 2
    functionLinenumber: 1308
    functionLinenumberEnd: 1333
    functionName: smtp_state_auth_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_state
    - Curl_sasl_continue
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_auth_resp(struct Curl_easy *data,\n                                     struct
      smtp_conn *smtpc,\n                                     int smtpcode,\n                                     smtpstate
      instate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/smtp.c:1343,1
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1350,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/smtp.c:1355,1
    - Dst: smtp_perform_command
      Src: /src/curl/lib/smtp.c:1363,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1367,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1371,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 5
    argNames:
    - data
    - smtpc
    - smtp
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - struct SMTP*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1336
    functionDepth: 5
    functionLinenumber: 1336
    functionLinenumberEnd: 1376
    functionName: smtp_state_command_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_client_write
    - smtp_perform_command
    - curlx_dyn_ptr
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_command_resp(struct Curl_easy *data,\n                                        struct
      smtp_conn *smtpc,\n                                        struct SMTP *smtp,\n
      \                                       int smtpcode,\n                                        smtpstate
      instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1389,1
    - Dst: smtp_perform_rcpt_to
      Src: /src/curl/lib/smtp.c:1394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - data
    - smtpc
    - smtp
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - struct SMTP*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1379
    functionDepth: 5
    functionLinenumber: 1379
    functionLinenumberEnd: 1397
    functionName: smtp_state_mail_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_perform_rcpt_to
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_mail_resp(struct Curl_easy *data,\n                                     struct
      smtp_conn *smtpc,\n                                     struct SMTP *smtp,\n
      \                                    int smtpcode,\n                                     smtpstate
      instate)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1424,1
    - Dst: smtp_perform_rcpt_to
      Src: /src/curl/lib/smtp.c:1438,1
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1443,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/smtp.c:1448,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1451,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - data
    - smtpc
    - smtp
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - struct SMTP*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1400
    functionDepth: 5
    functionLinenumber: 1400
    functionLinenumberEnd: 1457
    functionName: smtp_state_rcpt_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_perform_rcpt_to
    - Curl_pp_sendf
    - smtp_state
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_rcpt_resp(struct Curl_easy *data,\n                                     struct
      smtp_conn *smtpc,\n                                     struct SMTP *smtp,\n
      \                                    int smtpcode,\n                                     smtpstate
      instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/smtp.c:1469,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/smtp.c:1474,1
    - Dst: Curl_xfer_setup_send
      Src: /src/curl/lib/smtp.c:1477,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - data
    - smtpc
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1460
    functionDepth: 3
    functionLinenumber: 1460
    functionLinenumberEnd: 1484
    functionName: smtp_state_data_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_setup_send
    - Curl_pgrsSetUploadSize
    - smtp_state
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_data_resp(struct Curl_easy *data,\n                                     struct
      smtp_conn *smtpc,\n                                     int smtpcode,\n                                     smtpstate
      instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - data
    - smtpc
    - smtpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - int
    - smtpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1504
    functionName: smtp_state_postdata_resp
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_state_postdata_resp(struct Curl_easy *data,\n                                         struct
      smtp_conn *smtpc,\n                                         int smtpcode,\n
      \                                        smtpstate instate)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:1511,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/smtp.c:1512,1
    - Dst: smtp_perform_upgrade_tls
      Src: /src/curl/lib/smtp.c:1521,1
    - Dst: Curl_pp_flushsend
      Src: /src/curl/lib/smtp.c:1528,1
    - Dst: Curl_pp_readresp
      Src: /src/curl/lib/smtp.c:1532,1
    - Dst: smtp_state_servergreet_resp
      Src: /src/curl/lib/smtp.c:1547,1
    - Dst: smtp_state_ehlo_resp
      Src: /src/curl/lib/smtp.c:1552,1
    - Dst: smtp_state_helo_resp
      Src: /src/curl/lib/smtp.c:1556,1
    - Dst: smtp_state_starttls_resp
      Src: /src/curl/lib/smtp.c:1560,1
    - Dst: smtp_state_auth_resp
      Src: /src/curl/lib/smtp.c:1568,1
    - Dst: smtp_state_command_resp
      Src: /src/curl/lib/smtp.c:1572,1
    - Dst: smtp_state_mail_resp
      Src: /src/curl/lib/smtp.c:1577,1
    - Dst: smtp_state_rcpt_resp
      Src: /src/curl/lib/smtp.c:1581,1
    - Dst: smtp_state_data_resp
      Src: /src/curl/lib/smtp.c:1585,1
    - Dst: smtp_state_postdata_resp
      Src: /src/curl/lib/smtp.c:1589,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1595,1
    - Dst: Curl_pp_moredata
      Src: /src/curl/lib/smtp.c:1599,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 61
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1506
    functionDepth: 6
    functionLinenumber: 1506
    functionLinenumberEnd: 1602
    functionName: smtp_pp_statemachine
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_state_postdata_resp
    - smtp_perform_upgrade_tls
    - Curl_pp_flushsend
    - smtp_state_starttls_resp
    - smtp_state_rcpt_resp
    - smtp_state_command_resp
    - Curl_pp_moredata
    - smtp_state_mail_resp
    - Curl_conn_meta_get
    - Curl_meta_get
    - smtp_state_servergreet_resp
    - smtp_state_auth_resp
    - smtp_state_data_resp
    - Curl_pp_readresp
    - smtp_state_helo_resp
    - smtp_state_ehlo_resp
    - smtp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_pp_statemachine(struct Curl_easy *data,\n                                     struct
      connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:1609,1
    - Dst: Curl_pp_statemach
      Src: /src/curl/lib/smtp.c:1615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1605
    functionDepth: 3
    functionLinenumber: 1605
    functionLinenumberEnd: 1618
    functionName: smtp_multi_statemach
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_statemach
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smtp_multi_statemach(struct Curl_easy *data, bool *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_statemach
      Src: /src/curl/lib/smtp.c:1627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - data
    - smtpc
    - disconnecting
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1620
    functionDepth: 3
    functionLinenumber: 1620
    functionLinenumberEnd: 1630
    functionName: smtp_block_statemach
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_block_statemach(struct Curl_easy *data,\n                                     struct
      smtp_conn *smtpc,\n                                     bool disconnecting)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:1637,1
    - Dst: Curl_pp_pollset
      Src: /src/curl/lib/smtp.c:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1639
    functionName: smtp_pollset
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_pollset
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_pollset(struct Curl_easy *data,\n                             struct
      easy_pollset *ps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:1668,1
    - Dst: PINGPONG_SETUP
      Src: /src/curl/lib/smtp.c:1675,1
    - Dst: Curl_sasl_init
      Src: /src/curl/lib/smtp.c:1678,1
    - Dst: Curl_pp_init
      Src: /src/curl/lib/smtp.c:1681,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/smtp.c:1681,1
    - Dst: smtp_parse_url_options
      Src: /src/curl/lib/smtp.c:1684,1
    - Dst: smtp_parse_url_path
      Src: /src/curl/lib/smtp.c:1689,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1694,1
    - Dst: smtp_multi_statemach
      Src: /src/curl/lib/smtp.c:1696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1665
    functionDepth: 4
    functionLinenumber: 1665
    functionLinenumberEnd: 1699
    functionName: smtp_connect
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_init
    - PINGPONG_SETUP
    - Curl_pgrs_now
    - smtp_multi_statemach
    - smtp_parse_url_path
    - Curl_conn_meta_get
    - smtp_state
    - Curl_pp_init
    - smtp_parse_url_options
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smtp_connect(struct Curl_easy *data, bool *done)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:1714,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/smtp.c:1717,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/smtp.c:1727,1
    - Dst: connclose
      Src: /src/curl/lib/smtp.c:1730,1
    - Dst: IS_MIME_POST
      Src: /src/curl/lib/smtp.c:1734,1
    - Dst: smtp_state
      Src: /src/curl/lib/smtp.c:1736,1
    - Dst: smtp_block_statemach
      Src: /src/curl/lib/smtp.c:1739,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:1744,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1710
    functionDepth: 4
    functionLinenumber: 1710
    functionLinenumberEnd: 1747
    functionName: smtp_done
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - IS_MIME_POST
    - Curl_conn_meta_get
    - CURL_TRC_SMTP
    - Curl_meta_get
    - connclose
    - smtp_state
    - smtp_block_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_done(struct Curl_easy *data, CURLcode status,\n                          bool
      premature)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:1765,1
    - Dst: IS_MIME_POST
      Src: /src/curl/lib/smtp.c:1789,1
    - Dst: smtp_perform_mail
      Src: /src/curl/lib/smtp.c:1791,1
    - Dst: smtp_perform_command
      Src: /src/curl/lib/smtp.c:1794,1
    - Dst: smtp_multi_statemach
      Src: /src/curl/lib/smtp.c:1800,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/smtp.c:1802,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:1805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - data
    - smtpc
    - smtp
    - connected
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - struct SMTP*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1756
    functionDepth: 8
    functionLinenumber: 1756
    functionLinenumberEnd: 1808
    functionName: smtp_perform
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - IS_MIME_POST
    - smtp_multi_statemach
    - smtp_perform_command
    - CURL_TRC_SMTP
    - smtp_perform_mail
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_perform(struct Curl_easy *data,\n                             struct
      smtp_conn *smtpc,\n                             struct SMTP *smtp,\n                             bool
      *connected,\n                             bool *dophase_done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/smtp.c:1819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - smtp
    - connected
    argTypes:
    - struct Curl_easy*
    - struct SMTP*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1822
    functionName: smtp_dophase_done
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_setup_nop
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_dophase_done(struct Curl_easy *data,\n                                  struct
      SMTP *smtp,\n                                  bool connected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsReset
      Src: /src/curl/lib/smtp.c:1845,1
    - Dst: smtp_perform
      Src: /src/curl/lib/smtp.c:1848,1
    - Dst: smtp_dophase_done
      Src: /src/curl/lib/smtp.c:1852,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:1854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - data
    - smtpc
    - smtp
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - struct smtp_conn*
    - struct SMTP*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1833
    functionDepth: 9
    functionLinenumber: 1833
    functionLinenumberEnd: 1857
    functionName: smtp_regular_transfer
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_dophase_done
    - Curl_pgrsReset
    - CURL_TRC_SMTP
    - smtp_perform
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_regular_transfer(struct Curl_easy *data,\n                                      struct
      smtp_conn *smtpc,\n                                      struct SMTP *smtp,\n
      \                                     bool *dophase_done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:1871,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/smtp.c:1872,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/smtp.c:1875,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/smtp.c:1876,1
    - Dst: smtp_parse_custom_request
      Src: /src/curl/lib/smtp.c:1882,1
    - Dst: smtp_regular_transfer
      Src: /src/curl/lib/smtp.c:1886,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:1887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1868
    functionDepth: 10
    functionLinenumber: 1868
    functionLinenumberEnd: 1889
    functionName: smtp_do
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_conn_meta_get
    - Curl_meta_get
    - smtp_parse_custom_request
    - CURL_TRC_SMTP
    - smtp_regular_transfer
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smtp_do(struct Curl_easy *data, bool *done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smtp.c:1902,1
    - Dst: Curl_pp_needs_flush
      Src: /src/curl/lib/smtp.c:1912,1
    - Dst: smtp_perform_quit
      Src: /src/curl/lib/smtp.c:1913,1
    - Dst: smtp_block_statemach
      Src: /src/curl/lib/smtp.c:1914,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:1917,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1898
    functionDepth: 4
    functionLinenumber: 1898
    functionLinenumberEnd: 1919
    functionName: smtp_disconnect
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_perform_quit
    - Curl_pp_needs_flush
    - Curl_conn_meta_get
    - smtp_block_statemach
    - CURL_TRC_SMTP
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_disconnect(struct Curl_easy *data,\n                                struct
      connectdata *conn,\n                                bool dead_connection)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/smtp.c:1924,1
    - Dst: smtp_multi_statemach
      Src: /src/curl/lib/smtp.c:1929,1
    - Dst: DEBUGF
      Src: /src/curl/lib/smtp.c:1931,1
    - Dst: infof
      Src: /src/curl/lib/smtp.c:1931,1
    - Dst: smtp_dophase_done
      Src: /src/curl/lib/smtp.c:1933,1
    - Dst: DEBUGF
      Src: /src/curl/lib/smtp.c:1935,1
    - Dst: infof
      Src: /src/curl/lib/smtp.c:1935,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:1938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1922
    functionDepth: 4
    functionLinenumber: 1922
    functionLinenumberEnd: 1940
    functionName: smtp_doing
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - smtp_multi_statemach
    - smtp_dophase_done
    - infof
    - Curl_meta_get
    - DEBUGF
    - CURL_TRC_SMTP
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smtp_doing(struct Curl_easy *data, bool *dophase_done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/smtp.c:1947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1942
    functionDepth: 1
    functionLinenumber: 1942
    functionLinenumberEnd: 1948
    functionName: smtp_easy_dtor
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void smtp_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_disconnect
      Src: /src/curl/lib/smtp.c:1955,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/smtp.c:1956,1
    - Dst: curlx_free
      Src: /src/curl/lib/smtp.c:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1950
    functionDepth: 2
    functionLinenumber: 1950
    functionLinenumberEnd: 1958
    functionName: smtp_conn_dtor
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    - Curl_pp_disconnect
    linkageType: ''
    returnType: void
    signature: void smtp_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/smtp.c:1967,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/smtp.c:1969,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/smtp.c:1974,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/smtp.c:1976,1
    - Dst: CURL_TRC_SMTP
      Src: /src/curl/lib/smtp.c:1980,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1960
    functionDepth: 2
    functionLinenumber: 1960
    functionLinenumberEnd: 1982
    functionName: smtp_setup_connection
    functionSourceFile: /src/curl/lib/smtp.c
    functionUses: 0
    functionsReached:
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_meta_set
    - CURL_TRC_SMTP
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smtp_setup_connection(struct Curl_easy *data,\n                                      struct
      connectdata *conn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - firstbyte
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 147
    functionName: ws_frame_name_of_op
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ws_frame_name_of_op(uint8_t firstbyte)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/ws.c:157,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:164,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:171,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:178,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:185,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:192,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:198,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:205,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:212,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:221,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 59
    argCount: 3
    argNames:
    - data
    - firstbyte
    - cont_flags
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 227
    functionName: ws_frame_firstbyte2flags
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - failf
    linkageType: ''
    returnType: int
    signature: "int ws_frame_firstbyte2flags(struct Curl_easy *data,\n                                    uint8_t
      firstbyte, int cont_flags)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:238,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:243,1
    - Dst: infof
      Src: /src/curl/lib/ws.c:247,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:252,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:272,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:278,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:284,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 4
    argNames:
    - data
    - flags
    - contfragment
    - pfirstbyte
    argTypes:
    - struct Curl_easy*
    - unsigned int
    - bool
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 290
    functionName: ws_frame_flags2firstbyte
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_WS
    - failf
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_frame_flags2firstbyte(struct Curl_easy *data,\n                                         unsigned
      int flags,\n                                         bool contfragment,\n                                         uint8_t
      *pfirstbyte)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NOVERBOSE
      Src: /src/curl/lib/ws.c:295,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:300,1
    - Dst: ws_frame_name_of_op
      Src: /src/curl/lib/ws.c:301,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:306,1
    - Dst: ws_frame_name_of_op
      Src: /src/curl/lib/ws.c:307,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:312,1
    - Dst: ws_frame_name_of_op
      Src: /src/curl/lib/ws.c:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - dec
    - data
    - msg
    argTypes:
    - struct ws_decoder*
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 320
    functionName: ws_dec_info
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - NOVERBOSE
    - ws_frame_name_of_op
    - CURL_TRC_WS
    linkageType: ''
    returnType: void
    signature: "void ws_dec_info(struct ws_decoder *dec, struct Curl_easy *data,\n
      \                       const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - dec
    argTypes:
    - struct ws_decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 342
    functionName: ws_dec_next_frame
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ws_dec_next_frame(struct ws_decoder *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - dec
    argTypes:
    - struct ws_decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 353
    functionName: ws_dec_reset
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ws_dec_reset(struct ws_decoder *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ws_dec_reset
      Src: /src/curl/lib/ws.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - struct ws_decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: ws_dec_init
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - ws_dec_reset
    linkageType: ''
    returnType: void
    signature: void ws_dec_init(struct ws_decoder *dec)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/ws.c:367,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/ws.c:370,1
    - Dst: ws_frame_firstbyte2flags
      Src: /src/curl/lib/ws.c:372,1
    - Dst: ws_dec_reset
      Src: /src/curl/lib/ws.c:375,1
    - Dst: ws_dec_info
      Src: /src/curl/lib/ws.c:387,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/ws.c:393,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:398,1
    - Dst: ws_dec_reset
      Src: /src/curl/lib/ws.c:399,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:405,1
    - Dst: ws_dec_reset
      Src: /src/curl/lib/ws.c:406,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:411,1
    - Dst: ws_dec_reset
      Src: /src/curl/lib/ws.c:412,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:416,1
    - Dst: ws_dec_reset
      Src: /src/curl/lib/ws.c:417,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/ws.c:437,1
    - Dst: ws_dec_info
      Src: /src/curl/lib/ws.c:441,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:447,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:457,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:472,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:473,1
    - Dst: ws_dec_info
      Src: /src/curl/lib/ws.c:479,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 3
    argNames:
    - dec
    - data
    - inraw
    argTypes:
    - struct ws_decoder*
    - struct Curl_easy*
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 483
    functionName: ws_dec_read_head
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - ws_dec_reset
    - failf
    - ws_frame_firstbyte2flags
    - DEBUGASSERT
    - Curl_bufq_skip
    - ws_dec_info
    - Curl_bufq_peek
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_dec_read_head(struct ws_decoder *dec,\n                                 struct
      Curl_easy *data,\n                                 struct bufq *inraw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/ws.c:495,1
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/ws.c:498,1
    - Dst: write_cb
      Src: /src/curl/lib/ws.c:501,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/ws.c:506,1
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/ws.c:508,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - dec
    - data
    - inraw
    - write_cb
    - write_ctx
    argTypes:
    - struct ws_decoder*
    - struct Curl_easy*
    - struct bufq*
    - ws_write_payload*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 515
    functionName: ws_dec_pass_payload
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - curlx_sotouz_range
    - write_cb
    - CURL_TRC_WS
    - Curl_bufq_peek
    - Curl_bufq_skip
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_dec_pass_payload(struct ws_decoder *dec,\n                                    struct
      Curl_easy *data,\n                                    struct bufq *inraw,\n
      \                                   ws_write_payload *write_cb,\n                                    void
      *write_ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:525,1
    - Dst: ws_dec_next_frame
      Src: /src/curl/lib/ws.c:530,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/ws.c:532,1
    - Dst: ws_dec_read_head
      Src: /src/curl/lib/ws.c:534,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:537,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:541,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:541,1
    - Dst: write_cb
      Src: /src/curl/lib/ws.c:550,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/ws.c:557,1
    - Dst: ws_dec_pass_payload
      Src: /src/curl/lib/ws.c:559,1
    - Dst: ws_dec_info
      Src: /src/curl/lib/ws.c:560,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 5
    argNames:
    - dec
    - data
    - inraw
    - write_cb
    - write_ctx
    argTypes:
    - struct ws_decoder*
    - struct Curl_easy*
    - struct bufq*
    - ws_write_payload*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 571
    functionName: ws_dec_pass
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - ws_dec_read_head
    - write_cb
    - ws_dec_next_frame
    - ws_dec_info
    - Curl_bufq_is_empty
    - FALLTHROUGH
    - ws_dec_pass_payload
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_dec_pass(struct ws_decoder *dec,\n                            struct
      Curl_easy *data,\n                            struct bufq *inraw,\n                            ws_write_payload
      *write_cb,\n                            void *write_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ws
    - frame_age
    - frame_flags
    - payload_offset
    - payload_len
    - cur_len
    argTypes:
    - struct websocket*
    - int
    - int
    - curl_off_t
    - curl_off_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 586
    functionName: update_meta
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void update_meta(struct websocket *ws,\n                        int
      frame_age, int frame_flags,\n                        curl_off_t payload_offset,\n
      \                       curl_off_t payload_len,\n                        size_t
      cur_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/ws.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 601
    functionName: ws_cw_init
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_cw_init(struct Curl_easy *data,\n                           struct
      Curl_cwriter *writer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/ws.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: ws_cw_close
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void ws_cw_close(struct Curl_easy *data, struct Curl_cwriter *writer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:636,1
    - Dst: memcpy
      Src: /src/curl/lib/ws.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - data
    - ws
    - payload
    - plen
    - frame_type
    argTypes:
    - struct Curl_easy*
    - struct websocket*
    - uint8_t*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 646
    functionName: ws_enc_add_cntrl
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_enc_add_cntrl(struct Curl_easy *data,\n                                 struct
      websocket *ws,\n                                 const uint8_t *payload,\n                                 size_t
      plen,\n                                 unsigned int frame_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_uztoso
      Src: /src/curl/lib/ws.c:655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - payload_total
    - payload_offset
    - payload_buffered
    argTypes:
    - curl_off_t
    - curl_off_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 659
    functionName: ws_payload_remain
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - curlx_uztoso
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t ws_payload_remain(curl_off_t payload_total,\n                                    curl_off_t
      payload_offset,\n                                    size_t payload_buffered)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ws_payload_remain
      Src: /src/curl/lib/ws.c:677,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:679,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:685,1
    - Dst: ws_enc_add_cntrl
      Src: /src/curl/lib/ws.c:688,1
    - Dst: update_meta
      Src: /src/curl/lib/ws.c:694,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/ws.c:697,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 8
    argNames:
    - buf
    - buflen
    - frame_age
    - frame_flags
    - payload_offset
    - payload_len
    - user_data
    - pnwritten
    argTypes:
    - uint8_t*
    - size_t
    - int
    - int
    - curl_off_t
    - curl_off_t
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 705
    functionName: ws_cw_dec_next
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - update_meta
    - DEBUGASSERT
    - ws_payload_remain
    - CURL_TRC_WS
    - ws_enc_add_cntrl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_cw_dec_next(const uint8_t *buf, size_t buflen,\n                               int
      frame_age, int frame_flags,\n                               curl_off_t payload_offset,\n
      \                              curl_off_t payload_len,\n                               void
      *user_data,\n                               size_t *pnwritten)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/ws.c:715,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/ws.c:717,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ws.c:719,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:721,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/ws.c:727,1
    - Dst: infof
      Src: /src/curl/lib/ws.c:730,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:735,1
    - Dst: ws_dec_pass
      Src: /src/curl/lib/ws.c:741,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:750,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:755,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:756,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/ws.c:757,1
    - Dst: ws_flush
      Src: /src/curl/lib/ws.c:763,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/ws.c:763,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 768
    functionName: ws_cw_write
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - ws_dec_pass
    - Curl_bufq_len
    - Curl_cwriter_write
    - failf
    - Curl_is_in_callback
    - Curl_conn_meta_get
    - infof
    - Curl_bufq_write
    - Curl_bufq_is_empty
    - CURL_TRC_WRITE
    - ws_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_cw_write(struct Curl_easy *data,\n                            struct
      Curl_cwriter *writer, int type,\n                            const char *buf,
      size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOVERBOSE
      Src: /src/curl/lib/ws.c:783,1
    - Dst: NOVERBOSE
      Src: /src/curl/lib/ws.c:784,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:785,1
    - Dst: ws_frame_name_of_op
      Src: /src/curl/lib/ws.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - enc
    - data
    - msg
    argTypes:
    - struct ws_encoder*
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 790
    functionName: ws_enc_info
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - NOVERBOSE
    - ws_frame_name_of_op
    - CURL_TRC_WS
    linkageType: ''
    returnType: void
    signature: "void ws_enc_info(struct ws_encoder *enc, struct Curl_easy *data,\n
      \                       const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - enc
    argTypes:
    - struct ws_encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 797
    functionName: ws_enc_reset
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ws_enc_reset(struct ws_encoder *enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ws_enc_reset
      Src: /src/curl/lib/ws.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enc
    argTypes:
    - struct ws_encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 802
    functionName: ws_enc_init
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - ws_enc_reset
    linkageType: ''
    returnType: void
    signature: void ws_enc_init(struct ws_encoder *enc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/ws.c:839,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:846,1
    - Dst: ws_frame_flags2firstbyte
      Src: /src/curl/lib/ws.c:851,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:863,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:867,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:871,1
    - Dst: ws_enc_info
      Src: /src/curl/lib/ws.c:900,1
    - Dst: Curl_rand
      Src: /src/curl/lib/ws.c:904,1
    - Dst: getenv
      Src: /src/curl/lib/ws.c:909,1
    - Dst: memset
      Src: /src/curl/lib/ws.c:911,1
    - Dst: memcpy
      Src: /src/curl/lib/ws.c:915,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/ws.c:920,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:925,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 5
    argNames:
    - data
    - enc
    - flags
    - payload_len
    - out
    argTypes:
    - struct Curl_easy*
    - struct ws_encoder*
    - unsigned int
    - curl_off_t
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 929
    functionName: ws_enc_add_frame
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - ws_enc_info
    - Curl_rand
    - memcpy
    - failf
    - DEBUGASSERT
    - getenv
    - ws_frame_flags2firstbyte
    - Curl_bufq_write
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_enc_add_frame(struct Curl_easy *data,\n                                 struct
      ws_encoder *enc,\n                                 unsigned int flags,\n                                 curl_off_t
      payload_len,\n                                 struct bufq *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ws_enc_add_pending
      Src: /src/curl/lib/ws.c:941,1
    - Dst: ws_enc_add_frame
      Src: /src/curl/lib/ws.c:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - data
    - ws
    - enc
    - flags
    - payload_len
    - out
    argTypes:
    - struct Curl_easy*
    - struct websocket*
    - struct ws_encoder*
    - unsigned int
    - curl_off_t
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 946
    functionName: ws_enc_write_head
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - ws_enc_add_frame
    - ws_enc_add_pending
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_enc_write_head(struct Curl_easy *data,\n                                  struct
      websocket *ws,\n                                  struct ws_encoder *enc,\n
      \                                 unsigned int flags,\n                                  curl_off_t
      payload_len,\n                                  struct bufq *out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_full
      Src: /src/curl/lib/ws.c:957,1
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/ws.c:962,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/ws.c:968,1
    - Dst: ws_enc_info
      Src: /src/curl/lib/ws.c:979,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - enc
    - data
    - buf
    - buflen
    - out
    - pnwritten
    argTypes:
    - struct ws_encoder*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - struct bufq*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 981
    functionName: ws_enc_write_payload
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - ws_enc_info
    - Curl_bufq_write
    - Curl_bufq_is_full
    - curlx_sotouz_range
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_enc_write_payload(struct ws_encoder *enc,\n                                     struct
      Curl_easy *data,\n                                     const uint8_t *buf, size_t
      buflen,\n                                     struct bufq *out, size_t *pnwritten)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ws_enc_add_frame
      Src: /src/curl/lib/ws.c:994,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:998,1
    - Dst: ws_enc_write_payload
      Src: /src/curl/lib/ws.c:1002,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1006,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1011,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1012,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1018,1
    - Dst: memset
      Src: /src/curl/lib/ws.c:1019,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - data
    - ws
    argTypes:
    - struct Curl_easy*
    - struct websocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 983
    functionDepth: 3
    functionLinenumber: 983
    functionLinenumberEnd: 1023
    functionName: ws_enc_add_pending
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 1
    functionsReached:
    - ws_enc_add_frame
    - ws_enc_write_payload
    - DEBUGASSERT
    - CURL_TRC_WS
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_enc_add_pending(struct Curl_easy *data,\n                                   struct
      websocket *ws)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1036,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:1039,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1045,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1053,1
    - Dst: ws_flush
      Src: /src/curl/lib/ws.c:1060,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/ws.c:1060,1
    - Dst: ws_enc_write_head
      Src: /src/curl/lib/ws.c:1064,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1069,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:1075,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/ws.c:1078,1
    - Dst: ws_enc_write_payload
      Src: /src/curl/lib/ws.c:1079,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/ws.c:1085,1
    - Dst: ws_flush
      Src: /src/curl/lib/ws.c:1092,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/ws.c:1092,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/ws.c:1100,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/ws.c:1103,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1111,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1113,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 7
    argNames:
    - data
    - ws
    - buffer
    - buflen
    - fragsize
    - flags
    - pnsent
    argTypes:
    - struct Curl_easy*
    - struct websocket*
    - uint8_t*
    - size_t
    - curl_off_t
    - unsigned int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1025
    functionDepth: 4
    functionLinenumber: 1025
    functionLinenumberEnd: 1121
    functionName: ws_enc_send
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - failf
    - DEBUGASSERT
    - ws_enc_write_payload
    - Curl_is_in_callback
    - ws_enc_write_head
    - CURL_TRC_WS
    - Curl_bufq_is_empty
    - ws_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_enc_send(struct Curl_easy *data,\n                            struct
      websocket *ws,\n                            const uint8_t *buffer,\n                            size_t
      buflen,\n                            curl_off_t fragsize,\n                            unsigned
      int flags,\n                            size_t *pnsent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1134
    functionName: cr_ws_init
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cr_ws_init(struct Curl_easy *data, struct Curl_creader *reader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1140
    functionName: cr_ws_close
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cr_ws_close(struct Curl_easy *data, struct Curl_creader *reader)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ws.c:1159,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1161,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:1165,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1173,1
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/ws.c:1175,1
    - Dst: Curl_creader_read
      Src: /src/curl/lib/ws.c:1178,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:1183,1
    - Dst: Curl_creader_clear_eos
      Src: /src/curl/lib/ws.c:1186,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:1197,1
    - Dst: ws_enc_write_head
      Src: /src/curl/lib/ws.c:1199,1
    - Dst: ws_enc_write_payload
      Src: /src/curl/lib/ws.c:1205,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/ws.c:1209,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1212,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:1212,1
    - Dst: Curl_bufq_cread
      Src: /src/curl/lib/ws.c:1214,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:1215,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/ws.c:1222,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - pnread
    - peos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1142
    functionDepth: 4
    functionLinenumber: 1142
    functionLinenumberEnd: 1225
    functionName: cr_ws_read
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - failf
    - ws_enc_write_payload
    - DEBUGASSERT
    - Curl_creader_clear_eos
    - Curl_creader_read
    - curlx_sotouz_range
    - Curl_conn_meta_get
    - CURL_TRC_READ
    - Curl_bufq_cread
    - ws_enc_write_head
    - CURL_TRC_WS
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_ws_read(struct Curl_easy *data,\n                           struct
      Curl_creader *reader,\n                           char *buf, size_t blen,\n
      \                          size_t *pnread, bool *peos)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand
      Src: /src/curl/lib/ws.c:1279,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/ws.c:1282,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1285,1
    - Dst: curlx_free
      Src: /src/curl/lib/ws.c:1287,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/ws.c:1290,1
    - Dst: curlx_free
      Src: /src/curl/lib/ws.c:1291,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/ws.c:1292,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/ws.c:1293,1
    - Dst: strlen
      Src: /src/curl/lib/ws.c:1293,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/ws.c:1294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - data
    - req
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1246
    functionDepth: 2
    functionLinenumber: 1246
    functionLinenumberEnd: 1301
    functionName: Curl_ws_request
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 1
    functionsReached:
    - Curl_rand
    - DEBUGASSERT
    - CURL_ARRAYSIZE
    - curlx_base64_encode
    - curlx_strcopy
    - Curl_checkheaders
    - curlx_free
    - curlx_dyn_addf
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_ws_request(struct Curl_easy *data, struct dynbuf *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/ws.c:1308,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/ws.c:1309,1
    - Dst: curlx_free
      Src: /src/curl/lib/ws.c:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1311
    functionName: ws_conn_dtor
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void ws_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1326,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ws.c:1327,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/ws.c:1330,1
    - Dst: getenv
      Src: /src/curl/lib/ws.c:1335,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ws.c:1338,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1343,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/ws.c:1344,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/ws.c:1346,1
    - Dst: ws_dec_init
      Src: /src/curl/lib/ws.c:1348,1
    - Dst: ws_enc_init
      Src: /src/curl/lib/ws.c:1349,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/ws.c:1350,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/ws.c:1356,1
    - Dst: ws_dec_reset
      Src: /src/curl/lib/ws.c:1357,1
    - Dst: ws_enc_reset
      Src: /src/curl/lib/ws.c:1358,1
    - Dst: infof
      Src: /src/curl/lib/ws.c:1379,1
    - Dst: Curl_cwriter_create
      Src: /src/curl/lib/ws.c:1382,1
    - Dst: Curl_cwriter_add
      Src: /src/curl/lib/ws.c:1386,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/ws.c:1398,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1402,1
    - Dst: CURL_REQ_CLEAR_RECV
      Src: /src/curl/lib/ws.c:1403,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1407,1
    - Dst: Curl_creader_set_fread
      Src: /src/curl/lib/ws.c:1408,1
    - Dst: Curl_creader_create
      Src: /src/curl/lib/ws.c:1414,1
    - Dst: Curl_creader_add
      Src: /src/curl/lib/ws.c:1418,1
    - Dst: CURL_REQ_SET_SEND
      Src: /src/curl/lib/ws.c:1427,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ws.c:1432,1
    - Dst: Curl_cwriter_free
      Src: /src/curl/lib/ws.c:1443,1
    - Dst: Curl_creader_free
      Src: /src/curl/lib/ws.c:1445,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1447,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1449,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 84
    argCount: 3
    argNames:
    - data
    - mem
    - nread
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1452
    functionName: Curl_ws_accept
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 1
    functionsReached:
    - Curl_creader_set_fread
    - ws_dec_init
    - DEBUGASSERT
    - getenv
    - Curl_cwriter_add
    - Curl_bufq_write
    - CURL_TRC_WS
    - Curl_cwriter_create
    - Curl_client_write
    - curlx_str_number
    - Curl_conn_meta_get
    - CURL_REQ_CLEAR_RECV
    - Curl_cwriter_free
    - Curl_creader_free
    - Curl_creader_create
    - ws_enc_reset
    - ws_dec_reset
    - curlx_calloc
    - Curl_conn_meta_set
    - CURL_REQ_SET_SEND
    - Curl_bufq_reset
    - infof
    - ws_enc_init
    - Curl_creader_add
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ws_accept(struct Curl_easy *data,\n                        const
      char *mem, size_t nread)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ws_payload_remain
      Src: /src/curl/lib/ws.c:1481,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1483,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1497,1
    - Dst: ws_enc_add_cntrl
      Src: /src/curl/lib/ws.c:1500,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1509,1
    - Dst: CURLMIN
      Src: /src/curl/lib/ws.c:1510,1
    - Dst: memcpy
      Src: /src/curl/lib/ws.c:1516,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 8
    argNames:
    - buf
    - buflen
    - frame_age
    - frame_flags
    - payload_offset
    - payload_len
    - userp
    - pnwritten
    argTypes:
    - uint8_t*
    - size_t
    - int
    - int
    - curl_off_t
    - curl_off_t
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1467
    functionDepth: 2
    functionLinenumber: 1467
    functionLinenumberEnd: 1521
    functionName: ws_client_collect
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - CURLMIN
    - ws_payload_remain
    - CURL_TRC_WS
    - ws_enc_add_cntrl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_client_collect(const uint8_t *buf, size_t buflen,\n                                  int
      frame_age, int frame_flags,\n                                  curl_off_t payload_offset,\n
      \                                 curl_off_t payload_len,\n                                  void
      *userp,\n                                  size_t *pnwritten)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_recv
      Src: /src/curl/lib/ws.c:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - reader_ctx
    - buf
    - buflen
    - pnread
    argTypes:
    - void*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1523
    functionDepth: 3
    functionLinenumber: 1523
    functionLinenumberEnd: 1529
    functionName: nw_in_recv
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - curl_easy_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode nw_in_recv(void *reader_ctx,\n                           uint8_t
      *buf, size_t buflen,\n                           size_t *pnread)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/ws.c:1542,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1549,1
    - Dst: Curl_getconnectinfo
      Src: /src/curl/lib/ws.c:1553,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1555,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ws.c:1559,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1561,1
    - Dst: memset
      Src: /src/curl/lib/ws.c:1565,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:1575,1
    - Dst: Curl_bufq_slurp
      Src: /src/curl/lib/ws.c:1577,1
    - Dst: infof
      Src: /src/curl/lib/ws.c:1582,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1585,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/ws.c:1586,1
    - Dst: ws_dec_pass
      Src: /src/curl/lib/ws.c:1589,1
    - Dst: ws_dec_info
      Src: /src/curl/lib/ws.c:1593,1
    - Dst: update_meta
      Src: /src/curl/lib/ws.c:1610,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1614,1
    - Dst: ws_enc_add_pending
      Src: /src/curl/lib/ws.c:1621,1
    - Dst: ws_flush
      Src: /src/curl/lib/ws.c:1623,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/ws.c:1623,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 5
    argNames:
    - curl
    - buffer
    - buflen
    - recv
    - metap
    argTypes:
    - CURL*
    - void*
    - size_t
    - size_t*
    - struct curl_ws_frame**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1531
    functionDepth: 4
    functionLinenumber: 1531
    functionLinenumberEnd: 1626
    functionName: curl_ws_recv
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 10
    functionsReached:
    - ws_dec_pass
    - Curl_bufq_len
    - update_meta
    - Curl_getconnectinfo
    - failf
    - Curl_bufq_slurp
    - Curl_is_in_callback
    - ws_enc_add_pending
    - Curl_conn_meta_get
    - infof
    - CURL_TRC_WS
    - GOOD_EASY_HANDLE
    - memset
    - Curl_bufq_is_empty
    - ws_dec_info
    - ws_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_ws_recv(CURL *curl, void *buffer,\n                      size_t
      buflen, size_t *recv,\n                      const struct curl_ws_frame **metap)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/ws.c:1634,1
    - Dst: ws_enc_add_pending
      Src: /src/curl/lib/ws.c:1635,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/ws.c:1640,1
    - Dst: getenv
      Src: /src/curl/lib/ws.c:1647,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ws.c:1650,1
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/ws.c:1655,1
    - Dst: ws_send_raw_blocking
      Src: /src/curl/lib/ws.c:1665,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/ws.c:1668,1
    - Dst: Curl_senddata
      Src: /src/curl/lib/ws.c:1669,1
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/ws.c:1671,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1677,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/ws.c:1678,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1682,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1686,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/ws.c:1687,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 3
    argNames:
    - data
    - ws
    - blocking
    argTypes:
    - struct Curl_easy*
    - struct websocket*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1628
    functionDepth: 4
    functionLinenumber: 1628
    functionLinenumberEnd: 1692
    functionName: ws_flush
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 3
    functionsReached:
    - Curl_bufq_len
    - Curl_senddata
    - failf
    - getenv
    - Curl_is_in_callback
    - ws_enc_add_pending
    - curlx_str_number
    - ws_send_raw_blocking
    - CURL_TRC_WS
    - Curl_bufq_peek
    - Curl_bufq_is_empty
    - Curl_bufq_skip
    - Curl_xfer_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_flush(struct Curl_easy *data, struct websocket *ws,\n
      \                        bool blocking)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/ws.c:1706,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ws.c:1709,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1717,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/ws.c:1719,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1721,1
    - Dst: SOCKET_WRITABLE
      Src: /src/curl/lib/ws.c:1728,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1730,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - data
    - ws
    - buffer
    - buflen
    argTypes:
    - struct Curl_easy*
    - struct websocket*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1694
    functionDepth: 2
    functionLinenumber: 1694
    functionLinenumberEnd: 1736
    functionName: ws_send_raw_blocking
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 1
    functionsReached:
    - failf
    - DEBUGASSERT
    - CURL_TRC_WS
    - Curl_timeleft_ms
    - Curl_xfer_send
    - SOCKET_WRITABLE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_send_raw_blocking(struct Curl_easy *data,\n                                     struct
      websocket *ws,\n                                     const char *buffer, size_t
      buflen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ws.c:1744,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1746,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/ws.c:1752,1
    - Dst: ws_flush
      Src: /src/curl/lib/ws.c:1757,1
    - Dst: ws_send_raw_blocking
      Src: /src/curl/lib/ws.c:1760,1
    - Dst: ws_flush
      Src: /src/curl/lib/ws.c:1766,1
    - Dst: Curl_senddata
      Src: /src/curl/lib/ws.c:1769,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1772,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - data
    - buffer
    - buflen
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1738
    functionDepth: 5
    functionLinenumber: 1738
    functionLinenumberEnd: 1775
    functionName: ws_send_raw
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - Curl_senddata
    - failf
    - Curl_is_in_callback
    - ws_send_raw_blocking
    - Curl_conn_meta_get
    - CURL_TRC_WS
    - ws_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_send_raw(struct Curl_easy *data, const void *buffer,\n
      \                           size_t buflen, size_t *pnwritten)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/ws.c:1789,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1791,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1798,1
    - Dst: Curl_connect_only_attach
      Src: /src/curl/lib/ws.c:1804,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1809,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ws.c:1813,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1815,1
    - Dst: ws_flush
      Src: /src/curl/lib/ws.c:1823,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1828,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1832,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1836,1
    - Dst: ws_send_raw
      Src: /src/curl/lib/ws.c:1839,1
    - Dst: ws_enc_send
      Src: /src/curl/lib/ws.c:1844,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1847,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 6
    argNames:
    - curl
    - buffer_arg
    - buflen
    - sent
    - fragsize
    - flags
    argTypes:
    - CURL*
    - void*
    - size_t
    - size_t*
    - curl_off_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1777
    functionDepth: 6
    functionLinenumber: 1777
    functionLinenumberEnd: 1852
    functionName: curl_ws_send
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 14
    functionsReached:
    - failf
    - ws_enc_send
    - Curl_conn_meta_get
    - CURL_TRC_WS
    - GOOD_EASY_HANDLE
    - ws_send_raw
    - Curl_connect_only_attach
    - ws_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_ws_send(CURL *curl, const void *buffer_arg,\n                      size_t
      buflen, size_t *sent,\n                      curl_off_t fragsize,\n                      unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_setup_conn
      Src: /src/curl/lib/ws.c:1862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1854
    functionDepth: 2
    functionLinenumber: 1854
    functionLinenumberEnd: 1863
    functionName: ws_setup_conn
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 0
    functionsReached:
    - Curl_http_setup_conn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ws_setup_conn(struct Curl_easy *data,\n                              struct
      connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/ws.c:1870,1
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/ws.c:1870,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ws.c:1873,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1878
    functionName: curl_ws_meta
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 7
    functionsReached:
    - Curl_is_in_callback
    - GOOD_EASY_HANDLE
    - Curl_conn_meta_get
    linkageType: ''
    returnType: struct curl_ws_frame
    signature: struct curl_ws_frame *curl_ws_meta(CURL *curl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/ws.c:1888,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1892,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1896,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1900,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ws.c:1904,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1906,1
    - Dst: failf
      Src: /src/curl/lib/ws.c:1912,1
    - Dst: ws_enc_write_head
      Src: /src/curl/lib/ws.c:1917,1
    - Dst: CURL_TRC_WS
      Src: /src/curl/lib/ws.c:1920,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - curl
    - flags
    - frame_len
    argTypes:
    - CURL*
    - unsigned int
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1880
    functionDepth: 4
    functionLinenumber: 1880
    functionLinenumberEnd: 1925
    functionName: curl_ws_start_frame
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 4
    functionsReached:
    - failf
    - Curl_conn_meta_get
    - ws_enc_write_head
    - CURL_TRC_WS
    - GOOD_EASY_HANDLE
    linkageType: ''
    returnType: CURL_EXTERN
    signature: "CURL_EXTERN curl_ws_start_frame(CURL *curl,\n                                         unsigned
      int flags,\n                                         curl_off_t frame_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - curl
    - buffer
    - buflen
    - recv
    - metap
    argTypes:
    - CURL*
    - void*
    - size_t
    - size_t*
    - struct curl_ws_frame**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1959
    functionName: curl_ws_recv
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_ws_recv(CURL *curl, void *buffer, size_t buflen,\n                      size_t
      *recv,\n                      const struct curl_ws_frame **metap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - curl
    - buffer
    - buflen
    - sent
    - fragsize
    - flags
    argTypes:
    - CURL*
    - void*
    - size_t
    - size_t*
    - curl_off_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1973
    functionName: curl_ws_send
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_ws_send(CURL *curl, const void *buffer,\n                      size_t
      buflen, size_t *sent,\n                      curl_off_t fragsize,\n                      unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1979
    functionName: curl_ws_meta
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: struct curl_ws_frame
    signature: struct curl_ws_frame *curl_ws_meta(CURL *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - curl
    - flags
    - frame_len
    argTypes:
    - CURL*
    - unsigned int
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 1989
    functionName: curl_ws_start_frame
    functionSourceFile: /src/curl/lib/ws.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: CURL_EXTERN
    signature: "CURL_EXTERN curl_ws_start_frame(CURL *curl,\n                                         unsigned
      int flags,\n                                         curl_off_t frame_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:90,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:91,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - cf
    - data
    - sockfd
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: tcpnodelay
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - curlx_strerror
    - setsockopt
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void tcpnodelay(struct Curl_cfilter *cf,\n                       struct
      Curl_easy *data,\n                       curl_socket_t sockfd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: KEEPALIVE_FACTOR
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEEPALIVE_FACTOR(x)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:122,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:124,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/cf-socket.c:131,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:133,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:134,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:150,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:152,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:155,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:156,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:158,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:161,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:162,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:164,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:181,1
    - Dst: KEEPALIVE_FACTOR
      Src: /src/curl/lib/cf-socket.c:182,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:184,1
    - Dst: KEEPALIVE_FACTOR
      Src: /src/curl/lib/cf-socket.c:185,1
    - Dst: WSAIoctl
      Src: /src/curl/lib/cf-socket.c:187,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:189,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:195,1
    - Dst: KEEPALIVE_FACTOR
      Src: /src/curl/lib/cf-socket.c:196,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:197,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:199,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:204,1
    - Dst: KEEPALIVE_FACTOR
      Src: /src/curl/lib/cf-socket.c:205,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:206,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:208,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:213,1
    - Dst: KEEPALIVE_FACTOR
      Src: /src/curl/lib/cf-socket.c:214,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:215,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:217,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:222,1
    - Dst: KEEPALIVE_FACTOR
      Src: /src/curl/lib/cf-socket.c:223,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:224,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:226,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:242,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:243,1
    - Dst: KEEPALIVE_FACTOR
      Src: /src/curl/lib/cf-socket.c:250,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:251,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:253,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/cf-socket.c:258,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:259,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:261,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 3
    argNames:
    - cf
    - data
    - sockfd
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 267
    functionName: tcpkeepalive
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - WSAIoctl
    - curlx_sltosi
    - curlx_verify_windows_version
    - KEEPALIVE_FACTOR
    - setsockopt
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void tcpkeepalive(struct Curl_cfilter *cf,\n                         struct
      Curl_easy *data,\n                         curl_socket_t sockfd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_socktype_for_transport
      Src: /src/curl/lib/cf-socket.c:285,1
    - Dst: Curl_protocol_for_transport
      Src: /src/curl/lib/cf-socket.c:286,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:289,1
    - Dst: memcpy
      Src: /src/curl/lib/cf-socket.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - addr
    - ai
    - transport
    argTypes:
    - struct Curl_sockaddr_ex*
    - struct Curl_addrinfo*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 295
    functionName: Curl_socket_addr_from_ai
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_protocol_for_transport
    - memcpy
    - DEBUGASSERT
    - Curl_socktype_for_transport
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_socket_addr_from_ai(struct Curl_sockaddr_ex *addr,\n
      \                                 const struct Curl_addrinfo *ai,\n                                  uint8_t
      transport)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: Curl_sock_nosigpipe
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int Curl_sock_nosigpipe(curl_socket_t sockfd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IN6_IS_ADDR_LINKLOCAL
      Src: /src/curl/lib/cf-socket.c:315,1
    - Dst: getifaddrs
      Src: /src/curl/lib/cf-socket.c:325,1
    - Dst: IN6_IS_ADDR_LINKLOCAL
      Src: /src/curl/lib/cf-socket.c:331,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:333,1
    - Dst: freeifaddrs
      Src: /src/curl/lib/cf-socket.c:341,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 2
    argNames:
    - data
    - sa6
    argTypes:
    - struct Curl_easy*
    - struct sockaddr_in6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 346
    functionName: get_scope_id
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - freeifaddrs
    - getifaddrs
    - IN6_IS_ADDR_LINKLOCAL
    - infof
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t get_scope_id(struct Curl_easy *data,\n                             struct
      sockaddr_in6 *sa6)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:359,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:360,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/cf-socket.c:371,1
    - Dst: struct Curl_easy*::set::fopensocket
      Src: /src/curl/lib/cf-socket.c:372,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/cf-socket.c:375,1
    - Dst: getenv
      Src: /src/curl/lib/cf-socket.c:380,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:381,1
    - Dst: CURL_SOCKET
      Src: /src/curl/lib/cf-socket.c:385,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:392,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:393,1
    - Dst: Curl_sock_nosigpipe
      Src: /src/curl/lib/cf-socket.c:398,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:399,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:400,1
    - Dst: sclose
      Src: /src/curl/lib/cf-socket.c:401,1
    - Dst: fcntl
      Src: /src/curl/lib/cf-socket.c:408,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:409,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:410,1
    - Dst: sclose
      Src: /src/curl/lib/cf-socket.c:411,1
    - Dst: get_scope_id
      Src: /src/curl/lib/cf-socket.c:420,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - data
    - addr
    - sockfd
    argTypes:
    - struct Curl_easy*
    - struct Curl_sockaddr_ex*
    - curl_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 424
    functionName: socket_open
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - fcntl
    - failf
    - DEBUGASSERT
    - getenv
    - struct Curl_easy*::set::fopensocket
    - curlx_strerror
    - CURL_SOCKET
    - Curl_set_in_callback
    - get_scope_id
    - Curl_sock_nosigpipe
    - sclose
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socket_open(struct Curl_easy *data,\n                            struct
      Curl_sockaddr_ex *addr,\n                            curl_socket_t *sockfd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_socket_addr_from_ai
      Src: /src/curl/lib/cf-socket.c:448,1
    - Dst: socket_open
      Src: /src/curl/lib/cf-socket.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - data
    - ai
    - addr
    - transport
    - sockfd
    argTypes:
    - struct Curl_easy*
    - struct Curl_addrinfo*
    - struct Curl_sockaddr_ex*
    - uint8_t
    - curl_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 453
    functionName: Curl_socket_open
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_socket_addr_from_ai
    - socket_open
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_socket_open(struct Curl_easy *data,\n                          const
      struct Curl_addrinfo *ai,\n                          struct Curl_sockaddr_ex
      *addr,\n                          uint8_t transport,\n                          curl_socket_t
      *sockfd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_will_close
      Src: /src/curl/lib/cf-socket.c:463,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/cf-socket.c:464,1
    - Dst: struct connectdata*::fclosesocket
      Src: /src/curl/lib/cf-socket.c:465,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/cf-socket.c:466,1
    - Dst: Curl_multi_will_close
      Src: /src/curl/lib/cf-socket.c:472,1
    - Dst: sclose
      Src: /src/curl/lib/cf-socket.c:474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - data
    - conn
    - use_callback
    - sock
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 477
    functionName: socket_close
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 1
    functionsReached:
    - Curl_multi_will_close
    - sclose
    - Curl_set_in_callback
    - struct connectdata*::fclosesocket
    linkageType: ''
    returnType: int
    signature: "int socket_close(struct Curl_easy *data, struct connectdata *conn,\n
      \                       int use_callback, curl_socket_t sock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket_close
      Src: /src/curl/lib/cf-socket.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - conn
    - sock
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 488
    functionName: Curl_socket_close
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - socket_close
    linkageType: ''
    returnType: int
    signature: "int Curl_socket_close(struct Curl_easy *data, struct connectdata *conn,\n
      \                     curl_socket_t sock)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:523,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:524,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:525,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:527,1
    - Dst: strncmp
      Src: /src/curl/lib/cf-socket.c:531,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:531,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:532,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cf-socket.c:535,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:535,1
    - Dst: strncmp
      Src: /src/curl/lib/cf-socket.c:538,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:538,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:539,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cf-socket.c:542,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:542,1
    - Dst: strncmp
      Src: /src/curl/lib/cf-socket.c:545,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:545,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:547,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:548,1
    - Dst: memchr
      Src: /src/curl/lib/cf-socket.c:549,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cf-socket.c:552,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cf-socket.c:556,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-socket.c:558,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cf-socket.c:566,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - input
    - dev
    - iface
    - host
    argTypes:
    - char*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 568
    functionName: Curl_parse_interface
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - memchr
    - curlx_memdup0
    - strlen
    - strncmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_parse_interface(const char *input,\n                              char
      **dev, char **iface, char **host)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:607,1
    - Dst: memset
      Src: /src/curl/lib/cf-socket.c:610,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:629,1
    - Dst: strlen
      Src: /src/curl/lib/cf-socket.c:630,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:637,1
    - Dst: Curl_if2ip
      Src: /src/curl/lib/cf-socket.c:645,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:657,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:658,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:670,1
    - Dst: Curl_resolv_blocking
      Src: /src/curl/lib/cf-socket.c:691,1
    - Dst: Curl_printable_address
      Src: /src/curl/lib/cf-socket.c:695,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:696,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/cf-socket.c:698,1
    - Dst: strchr
      Src: /src/curl/lib/cf-socket.c:720,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/cf-socket.c:724,1
    - Dst: htons
      Src: /src/curl/lib/cf-socket.c:726,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/cf-socket.c:734,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/cf-socket.c:734,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/cf-socket.c:747,1
    - Dst: htons
      Src: /src/curl/lib/cf-socket.c:749,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:761,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:762,1
    - Dst: htons
      Src: /src/curl/lib/cf-socket.c:771,1
    - Dst: htons
      Src: /src/curl/lib/cf-socket.c:778,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:783,1
    - Dst: bind
      Src: /src/curl/lib/cf-socket.c:786,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:788,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:797,1
    - Dst: htons
      Src: /src/curl/lib/cf-socket.c:800,1
    - Dst: htons
      Src: /src/curl/lib/cf-socket.c:803,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:812,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:813,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 111
    argCount: 6
    argNames:
    - data
    - conn
    - sockfd
    - af
    - scope
    - transport
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - curl_socket_t
    - int
    - unsigned int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 571
    functionDepth: 6
    functionLinenumber: 571
    functionLinenumberEnd: 817
    functionName: bindlocal
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - htons
    - failf
    - Curl_printable_address
    - Curl_dns_entry_unlink
    - bind
    - curlx_strerror
    - infof
    - curlx_str_number
    - CURL_UNCONST
    - Curl_if2ip
    - curlx_inet_pton
    - strchr
    - memset
    - Curl_resolv_blocking
    - strlen
    - setsockopt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode bindlocal(struct Curl_easy *data, struct connectdata *conn,\n
      \                         curl_socket_t sockfd, int af, unsigned int scope,\n
      \                         uint8_t transport)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SleepEx
      Src: /src/curl/lib/cf-socket.c:846,1
    - Dst: getsockopt
      Src: /src/curl/lib/cf-socket.c:849,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/lib/cf-socket.c:854,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - sockfd
    - error
    argTypes:
    - curl_socket_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 872
    functionName: verifyconnect
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - SET_SOCKERRNO
    - getsockopt
    - SleepEx
    linkageType: ''
    returnType: bool
    signature: bool verifyconnect(curl_socket_t sockfd, int *error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:898,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:899,1
    - Dst: NOVERBOSE
      Src: /src/curl/lib/cf-socket.c:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - data
    - ipaddress
    - error
    argTypes:
    - struct Curl_easy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 906
    functionName: socket_connect_result
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - NOVERBOSE
    - curlx_strerror
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socket_connect_result(struct Curl_easy *data,\n                                      const
      char *ipaddress, int error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/cf-socket.c:938,1
    - Dst: getenv
      Src: /src/curl/lib/cf-socket.c:945,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/cf-socket.c:948,1
    - Dst: getenv
      Src: /src/curl/lib/cf-socket.c:951,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/cf-socket.c:954,1
    - Dst: getenv
      Src: /src/curl/lib/cf-socket.c:957,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/cf-socket.c:960,1
    - Dst: getenv
      Src: /src/curl/lib/cf-socket.c:963,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/cf-socket.c:966,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - addr
    - transport
    argTypes:
    - struct cf_socket_ctx*
    - struct Curl_sockaddr_ex*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 973
    functionName: cf_socket_ctx_init
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - getenv
    - curlx_str_number
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_socket_ctx_init(struct cf_socket_ctx *ctx,\n                                   struct
      Curl_sockaddr_ex *addr,\n                                   uint8_t transport)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:982,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/cf-socket.c:988,1
    - Dst: sread
      Src: /src/curl/lib/cf-socket.c:990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 995
    functionName: cf_socket_shutdown
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - curlx_nonblock
    - CURL_TRC_CF
    - sread
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_socket_shutdown(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   bool *done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1001,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1004,1
    - Dst: socket_close
      Src: /src/curl/lib/cf-socket.c:1007,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-socket.c:1009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1011
    functionName: cf_socket_destroy
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - socket_close
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: void cf_socket_destroy(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/cf-socket.c:1028,1
    - Dst: getsockname
      Src: /src/curl/lib/cf-socket.c:1029,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:1031,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:1032,1
    - Dst: Curl_addr2string
      Src: /src/curl/lib/cf-socket.c:1034,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:1036,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:1037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1043
    functionName: set_local_ip
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - getsockname
    - Curl_addr2string
    - curlx_strerror
    - infof
    - memset
    linkageType: ''
    returnType: void
    signature: "void set_local_ip(struct Curl_cfilter *cf,\n                         struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_addr2string
      Src: /src/curl/lib/cf-socket.c:1052,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:1059,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1064
    functionName: set_remote_ip
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - curlx_strerror
    - Curl_addr2string
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode set_remote_ip(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1077
    functionName: cf_socktype
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cf_socktype(int x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_available
      Src: /src/curl/lib/cf-socket.c:1250,1
    - Dst: connectx
      Src: /src/curl/lib/cf-socket.c:1258,1
    - Dst: connect
      Src: /src/curl/lib/cf-socket.c:1263,1
    - Dst: connect
      Src: /src/curl/lib/cf-socket.c:1266,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:1269,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1271,1
    - Dst: connect
      Src: /src/curl/lib/cf-socket.c:1274,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/cf-socket.c:1276,1
    - Dst: connect
      Src: /src/curl/lib/cf-socket.c:1277,1
    - Dst: connect
      Src: /src/curl/lib/cf-socket.c:1283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - cf
    - data
    - is_tcp_fastopen
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1287
    functionName: do_connect
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - connectx
    - connect
    - Curl_conn_is_ssl
    - __builtin_available
    - setsockopt
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int do_connect(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                     bool is_tcp_fastopen)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cf_socket_open
      Src: /src/curl/lib/cf-socket.c:1306,1
    - Dst: do_connect
      Src: /src/curl/lib/cf-socket.c:1316,1
    - Dst: set_local_ip
      Src: /src/curl/lib/cf-socket.c:1318,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1319,1
    - Dst: socket_connect_result
      Src: /src/curl/lib/cf-socket.c:1323,1
    - Dst: verifyconnect
      Src: /src/curl/lib/cf-socket.c:1333,1
    - Dst: SOCKET_WRITABLE
      Src: /src/curl/lib/cf-socket.c:1336,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1339,1
    - Dst: verifyconnect
      Src: /src/curl/lib/cf-socket.c:1343,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-socket.c:1345,1
    - Dst: set_local_ip
      Src: /src/curl/lib/cf-socket.c:1346,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1349,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1354,1
    - Dst: verifyconnect
      Src: /src/curl/lib/cf-socket.c:1355,1
    - Dst: set_local_ip
      Src: /src/curl/lib/cf-socket.c:1362,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/lib/cf-socket.c:1365,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-socket.c:1366,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:1366,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-socket.c:1369,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/cf-socket.c:1369,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-socket.c:1369,1
    - Dst: socket_close
      Src: /src/curl/lib/cf-socket.c:1372,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:1375,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:1378,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1289
    functionDepth: 2
    functionLinenumber: 1289
    functionLinenumberEnd: 1382
    functionName: cf_tcp_connect
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - set_local_ip
    - STRCONST
    - socket_close
    - curlx_strerror
    - curlx_strcopy
    - SOCKET_WRITABLE
    - VERBOSE
    - infof
    - socket_connect_result
    - verifyconnect
    - SET_SOCKERRNO
    - cf_socket_open
    - do_connect
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_tcp_connect(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               bool *done)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_set_in_only
      Src: /src/curl/lib/cf-socket.c:1397,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1398,1
    - Dst: Curl_pollset_set_out_only
      Src: /src/curl/lib/cf-socket.c:1402,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1403,1
    - Dst: Curl_pollset_add_in
      Src: /src/curl/lib/cf-socket.c:1407,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1384
    functionDepth: 1
    functionLinenumber: 1384
    functionLinenumberEnd: 1413
    functionName: cf_socket_adjust_pollset
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_add_in
    - Curl_pollset_set_out_only
    - Curl_pollset_set_in_only
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_socket_adjust_pollset(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data,\n                                         struct easy_pollset
      *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-socket.c:1428,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-socket.c:1428,1
    - Dst: WSAIoctl
      Src: /src/curl/lib/cf-socket.c:1430,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:1433,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-socket.c:1437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - data
    - ctx
    argTypes:
    - struct Curl_easy*
    - struct cf_socket_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1439
    functionName: win_update_sndbuf_size
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - WSAIoctl
    - setsockopt
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: void
    signature: "void win_update_sndbuf_size(struct Curl_easy *data,\n                                   struct
      cf_socket_ctx *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand_bytes
      Src: /src/curl/lib/cf-socket.c:1462,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1464,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1473,1
    - Dst: sendto
      Src: /src/curl/lib/cf-socket.c:1480,1
    - Dst: swrite
      Src: /src/curl/lib/cf-socket.c:1486,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/cf-socket.c:1488,1
    - Dst: USE_WINSOCK
      Src: /src/curl/lib/cf-socket.c:1492,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:1509,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:1510,1
    - Dst: win_update_sndbuf_size
      Src: /src/curl/lib/cf-socket.c:1518,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1521,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1443
    functionDepth: 2
    functionLinenumber: 1443
    functionLinenumberEnd: 1525
    functionName: cf_socket_send
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_rand_bytes
    - win_update_sndbuf_size
    - failf
    - sendto
    - curlx_strerror
    - USE_WINSOCK
    - curlx_sztouz
    - swrite
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_socket_send(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                               const uint8_t *buf, size_t len, bool
      eos,\n                               size_t *pnwritten)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand
      Src: /src/curl/lib/cf-socket.c:1539,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1541,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1546,1
    - Dst: sread
      Src: /src/curl/lib/cf-socket.c:1552,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/cf-socket.c:1554,1
    - Dst: USE_WINSOCK
      Src: /src/curl/lib/cf-socket.c:1558,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:1574,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:1575,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1581,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-socket.c:1583,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1527
    functionDepth: 1
    functionLinenumber: 1527
    functionLinenumberEnd: 1587
    functionName: cf_socket_recv
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_rand
    - failf
    - curlx_strerror
    - sread
    - USE_WINSOCK
    - curlx_sztouz
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_socket_recv(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                               char *buf, size_t len, size_t *pnread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1599
    functionName: cf_socket_update_data
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cf_socket_update_data(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_local_ip
      Src: /src/curl/lib/cf-socket.c:1607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1601
    functionDepth: 2
    functionLinenumber: 1601
    functionLinenumberEnd: 1613
    functionName: cf_socket_active
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - set_local_ip
    linkageType: ''
    returnType: void
    signature: void cf_socket_active(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_socket_active
      Src: /src/curl/lib/cf-socket.c:1625,1
    - Dst: cf_socket_update_data
      Src: /src/curl/lib/cf-socket.c:1626,1
    - Dst: cf_socket_update_data
      Src: /src/curl/lib/cf-socket.c:1629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1615
    functionDepth: 3
    functionLinenumber: 1615
    functionLinenumberEnd: 1636
    functionName: cf_socket_cntrl
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - cf_socket_update_data
    - cf_socket_active
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_socket_cntrl(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                int event, int arg1, void
      *arg2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_poll
      Src: /src/curl/lib/cf-socket.c:1656,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1658,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1662,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1666,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1670,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1638
    functionDepth: 1
    functionLinenumber: 1638
    functionLinenumberEnd: 1673
    functionName: cf_socket_conn_is_alive
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_poll
    - CURL_TRC_CF
    linkageType: ''
    returnType: bool
    signature: "bool cf_socket_conn_is_alive(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    bool *input_pending)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:1683,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:1687,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:1691,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-socket.c:1697,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-socket.c:1715,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/cf-socket.c:1734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1675
    functionDepth: 1
    functionLinenumber: 1675
    functionLinenumberEnd: 1736
    functionName: cf_socket_query
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - FALLTHROUGH
    - curlx_ptimediff_ms
    - DEBUGASSERT
    - struct Curl_cfilter*::next::cft::query
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_socket_query(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                int query, int *pres1, void
      *pres2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:1769,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-socket.c:1775,1
    - Dst: cf_socket_ctx_init
      Src: /src/curl/lib/cf-socket.c:1781,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-socket.c:1785,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-socket.c:1790,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-socket.c:1791,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - pcf
    - data
    - conn
    - addr
    - transport_in
    - transport_out
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_ex*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1755
    functionDepth: 2
    functionLinenumber: 1755
    functionLinenumberEnd: 1795
    functionName: Curl_cf_tcp_create
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - Curl_cf_create
    - curlx_calloc
    - cf_socket_ctx_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_tcp_create(struct Curl_cfilter **pcf,\n                            struct
      Curl_easy *data,\n                            struct connectdata *conn,\n                            struct
      Curl_sockaddr_ex *addr,\n                            uint8_t transport_in,\n
      \                           uint8_t transport_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:1805,1
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:1812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_socket_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1817
    functionName: linux_quic_mtu
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void linux_quic_mtu(struct cf_socket_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/curl/lib/cf-socket.c:1828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_socket_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1830
    functionName: linux_quic_gro
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void linux_quic_gro(struct cf_socket_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:1842,1
    - Dst: connect
      Src: /src/curl/lib/cf-socket.c:1846,1
    - Dst: socket_connect_result
      Src: /src/curl/lib/cf-socket.c:1849,1
    - Dst: set_local_ip
      Src: /src/curl/lib/cf-socket.c:1852,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1853,1
    - Dst: linux_quic_mtu
      Src: /src/curl/lib/cf-socket.c:1864,1
    - Dst: linux_quic_gro
      Src: /src/curl/lib/cf-socket.c:1865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1835
    functionDepth: 2
    functionLinenumber: 1835
    functionLinenumberEnd: 1868
    functionName: cf_udp_setup_quic
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - set_local_ip
    - DEBUGASSERT
    - socket_connect_result
    - linux_quic_gro
    - connect
    - linux_quic_mtu
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_udp_setup_quic(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_socket_open
      Src: /src/curl/lib/cf-socket.c:1884,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1886,1
    - Dst: cf_udp_setup_quic
      Src: /src/curl/lib/cf-socket.c:1891,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:1894,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1870
    functionDepth: 3
    functionLinenumber: 1870
    functionLinenumberEnd: 1903
    functionName: cf_udp_connect
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - cf_udp_setup_quic
    - cf_socket_open
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_udp_connect(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               bool *done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:1936,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-socket.c:1937,1
    - Dst: cf_socket_ctx_init
      Src: /src/curl/lib/cf-socket.c:1943,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-socket.c:1947,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-socket.c:1952,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-socket.c:1953,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - pcf
    - data
    - conn
    - addr
    - transport_in
    - transport_out
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_ex*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1922
    functionDepth: 2
    functionLinenumber: 1922
    functionLinenumberEnd: 1957
    functionName: Curl_cf_udp_create
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - Curl_cf_create
    - curlx_calloc
    - cf_socket_ctx_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_udp_create(struct Curl_cfilter **pcf,\n                            struct
      Curl_easy *data,\n                            struct connectdata *conn,\n                            struct
      Curl_sockaddr_ex *addr,\n                            uint8_t transport_in,\n
      \                           uint8_t transport_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:1991,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-socket.c:1992,1
    - Dst: cf_socket_ctx_init
      Src: /src/curl/lib/cf-socket.c:1998,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-socket.c:2002,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-socket.c:2007,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-socket.c:2008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 6
    argNames:
    - pcf
    - data
    - conn
    - addr
    - transport_in
    - transport_out
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_ex*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1977
    functionDepth: 2
    functionLinenumber: 1977
    functionLinenumberEnd: 2012
    functionName: Curl_cf_unix_create
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - Curl_cf_create
    - curlx_calloc
    - cf_socket_ctx_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_unix_create(struct Curl_cfilter **pcf,\n                             struct
      Curl_easy *data,\n                             struct connectdata *conn,\n                             struct
      Curl_sockaddr_ex *addr,\n                             uint8_t transport_in,\n
      \                            uint8_t transport_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/cf-socket.c:2027,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-socket.c:2034,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-socket.c:2034,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2014
    functionDepth: 1
    functionLinenumber: 2014
    functionLinenumberEnd: 2040
    functionName: cf_tcp_accept_timeleft
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_timeleft_ms
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t cf_tcp_accept_timeleft(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/cf-socket.c:2054,1
    - Dst: getpeername
      Src: /src/curl/lib/cf-socket.c:2055,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:2057,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:2058,1
    - Dst: Curl_addr2string
      Src: /src/curl/lib/cf-socket.c:2061,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:2063,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:2064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2072
    functionName: cf_tcp_set_accepted_remote_ip
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_addr2string
    - curlx_strerror
    - memset
    - getpeername
    linkageType: ''
    returnType: void
    signature: "void cf_tcp_set_accepted_remote_ip(struct Curl_cfilter *cf,\n                                          struct
      Curl_easy *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cf_tcp_accept_timeleft
      Src: /src/curl/lib/cf-socket.c:2099,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:2102,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:2106,1
    - Dst: SOCKET_READABLE
      Src: /src/curl/lib/cf-socket.c:2108,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:2109,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:2113,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:2117,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:2124,1
    - Dst: CURL_ACCEPT4
      Src: /src/curl/lib/cf-socket.c:2130,1
    - Dst: CURL_ACCEPT
      Src: /src/curl/lib/cf-socket.c:2133,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:2137,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:2138,1
    - Dst: fcntl
      Src: /src/curl/lib/cf-socket.c:2143,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:2144,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:2145,1
    - Dst: Curl_socket_close
      Src: /src/curl/lib/cf-socket.c:2146,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/cf-socket.c:2150,1
    - Dst: failf
      Src: /src/curl/lib/cf-socket.c:2151,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/cf-socket.c:2152,1
    - Dst: Curl_socket_close
      Src: /src/curl/lib/cf-socket.c:2153,1
    - Dst: infof
      Src: /src/curl/lib/cf-socket.c:2157,1
    - Dst: socket_close
      Src: /src/curl/lib/cf-socket.c:2162,1
    - Dst: cf_tcp_set_accepted_remote_ip
      Src: /src/curl/lib/cf-socket.c:2166,1
    - Dst: set_local_ip
      Src: /src/curl/lib/cf-socket.c:2167,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-socket.c:2169,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:2171,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/cf-socket.c:2179,1
    - Dst: struct Curl_easy*::set::fsockopt
      Src: /src/curl/lib/cf-socket.c:2180,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/cf-socket.c:2182,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 68
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2074
    functionDepth: 3
    functionLinenumber: 2074
    functionLinenumberEnd: 2189
    functionName: cf_tcp_accept_connect
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - CURL_ACCEPT
    - curlx_nonblock
    - fcntl
    - CURL_ACCEPT4
    - set_local_ip
    - failf
    - Curl_socket_close
    - socket_close
    - cf_tcp_set_accepted_remote_ip
    - curlx_strerror
    - infof
    - SOCKET_READABLE
    - Curl_set_in_callback
    - struct Curl_easy*::set::fsockopt
    - cf_tcp_accept_timeleft
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_tcp_accept_connect(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      bool *done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_discard_all
      Src: /src/curl/lib/cf-socket.c:2217,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-socket.c:2218,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-socket.c:2220,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-socket.c:2229,1
    - Dst: Curl_conn_cf_add
      Src: /src/curl/lib/cf-socket.c:2232,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-socket.c:2234,1
    - Dst: set_local_ip
      Src: /src/curl/lib/cf-socket.c:2236,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-socket.c:2237,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-socket.c:2243,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-socket.c:2244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - data
    - conn
    - sockindex
    - s
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - curl_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2208
    functionDepth: 2
    functionLinenumber: 2208
    functionLinenumberEnd: 2247
    functionName: Curl_conn_tcp_listen_set
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_conn_cf_discard_all
    - set_local_ip
    - curlx_safefree
    - DEBUGASSERT
    - Curl_cf_create
    - curlx_calloc
    - Curl_conn_cf_add
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_tcp_listen_set(struct Curl_easy *data,\n                                  struct
      connectdata *conn,\n                                  int sockindex, curl_socket_t
      *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2249
    functionDepth: 0
    functionLinenumber: 2249
    functionLinenumberEnd: 2259
    functionName: Curl_conn_is_tcp_listen
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_conn_is_tcp_listen(struct Curl_easy *data,\n                             int
      sockindex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2270
    functionName: cf_is_socket
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_is_socket(struct Curl_cfilter *cf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_is_socket
      Src: /src/curl/lib/cf-socket.c:2279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - cf
    - data
    - psock
    - paddr
    - pip
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - curl_socket_t*
    - struct Curl_sockaddr_ex**
    - struct ip_quadruple*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2272
    functionDepth: 1
    functionLinenumber: 2272
    functionLinenumberEnd: 2291
    functionName: Curl_cf_socket_peek
    functionSourceFile: /src/curl/lib/cf-socket.c
    functionUses: 0
    functionsReached:
    - cf_is_socket
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_socket_peek(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             curl_socket_t *psock,\n                             const
      struct Curl_sockaddr_ex **paddr,\n                             struct ip_quadruple
      *pip)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:144,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct Curl_scheme*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: get_protocol_family
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: curl_prot_t
    signature: curl_prot_t get_protocol_family(const struct Curl_scheme *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:156,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:160,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/url.c:163,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/url.c:164,1
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/url.c:167,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:168,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/url.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 175
    functionName: Curl_freeset
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 3
    functionsReached:
    - curlx_safefree
    - Curl_bufref_free
    - curl_slist_free_all
    - Curl_mime_cleanpart
    linkageType: ''
    returnType: void
    signature: void Curl_freeset(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:181,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:182,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:183,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:184,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:185,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:186,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:187,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:188,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/url.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 191
    functionName: up_free
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_url_cleanup
    linkageType: ''
    returnType: void
    signature: void up_free(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_remove_handle
      Src: /src/curl/lib/url.c:214,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/url.c:219,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/lib/url.c:223,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:227,1
    - Dst: Curl_expire_clear
      Src: /src/curl/lib/url.c:229,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:232,1
    - Dst: Curl_resolv_destroy_all
      Src: /src/curl/lib/url.c:235,1
    - Dst: Curl_req_free
      Src: /src/curl/lib/url.c:244,1
    - Dst: Curl_ssl_close_all
      Src: /src/curl/lib/url.c:247,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/url.c:248,1
    - Dst: Curl_ssl_free_certinfo
      Src: /src/curl/lib/url.c:249,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/url.c:251,1
    - Dst: up_free
      Src: /src/curl/lib/url.c:253,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/url.c:254,1
    - Dst: Curl_flush_cookies
      Src: /src/curl/lib/url.c:255,1
    - Dst: Curl_altsvc_save
      Src: /src/curl/lib/url.c:257,1
    - Dst: Curl_altsvc_cleanup
      Src: /src/curl/lib/url.c:258,1
    - Dst: Curl_hsts_save
      Src: /src/curl/lib/url.c:261,1
    - Dst: Curl_hsts_cleanup
      Src: /src/curl/lib/url.c:263,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/url.c:264,1
    - Dst: Curl_http_auth_cleanup_digest
      Src: /src/curl/lib/url.c:267,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:269,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:270,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:271,1
    - Dst: Curl_share_easy_unlink
      Src: /src/curl/lib/url.c:274,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:275,1
    - Dst: Curl_hash_destroy
      Src: /src/curl/lib/url.c:277,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/url.c:278,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:279,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:280,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:281,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:282,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:283,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:285,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:288,1
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/url.c:292,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:293,1
    - Dst: Curl_wildcard_dtor
      Src: /src/curl/lib/url.c:297,1
    - Dst: Curl_freeset
      Src: /src/curl/lib/url.c:298,1
    - Dst: Curl_headers_cleanup
      Src: /src/curl/lib/url.c:299,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/lib/url.c:300,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:302,1
    - Dst: Curl_ssl_config_cleanup
      Src: /src/curl/lib/url.c:304,1
    - Dst: Curl_ssl_config_cleanup
      Src: /src/curl/lib/url.c:306,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:308,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 1
    argNames:
    - datap
    argTypes:
    - struct Curl_easy**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 310
    functionName: Curl_close
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 5
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - Curl_mime_cleanpart
    - curl_multi_remove_handle
    - Curl_ssl_free_certinfo
    - Curl_resolv_destroy_all
    - Curl_share_easy_unlink
    - curlx_dyn_free
    - curl_slist_free_all
    - Curl_creds_unlink
    - Curl_peer_unlink
    - up_free
    - Curl_altsvc_save
    - Curl_http_auth_cleanup_digest
    - Curl_hsts_cleanup
    - Curl_altsvc_cleanup
    - Curl_netrc_cleanup
    - curlx_free
    - Curl_freeset
    - Curl_wildcard_dtor
    - Curl_req_free
    - Curl_ssl_close_all
    - Curl_flush_cookies
    - Curl_ssl_config_cleanup
    - Curl_bufref_free
    - Curl_expire_clear
    - Curl_hash_destroy
    - Curl_hsts_save
    - Curl_detach_connection
    - curl_multi_cleanup
    - Curl_headers_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_close(struct Curl_easy **datap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_config_init
      Src: /src/curl/lib/url.c:362,1
    - Dst: Curl_ssl_config_init
      Src: /src/curl/lib/url.c:364,1
    - Dst: Curl_setopt_SSLVERSION
      Src: /src/curl/lib/url.c:396,1
    - Dst: Curl_setopt_SSLVERSION
      Src: /src/curl/lib/url.c:398,1
    - Dst: memset
      Src: /src/curl/lib/url.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 64
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 435
    functionName: Curl_init_userdefined
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 1
    functionsReached:
    - memset
    - Curl_setopt_SSLVERSION
    - Curl_ssl_config_init
    linkageType: ''
    returnType: void
    signature: void Curl_init_userdefined(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: easy_meta_freeentry
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void easy_meta_freeentry(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/url.c:461,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:464,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/url.c:464,1
    - Dst: Curl_hash_init
      Src: /src/curl/lib/url.c:479,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/url.c:481,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/url.c:482,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/url.c:483,1
    - Dst: Curl_req_init
      Src: /src/curl/lib/url.c:484,1
    - Dst: Curl_initinfo
      Src: /src/curl/lib/url.c:485,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/url.c:487,1
    - Dst: Curl_netrc_init
      Src: /src/curl/lib/url.c:489,1
    - Dst: Curl_init_userdefined
      Src: /src/curl/lib/url.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - curl
    argTypes:
    - struct Curl_easy**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 494
    functionName: Curl_open
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 3
    functionsReached:
    - curlx_dyn_init
    - curl_mfprintf
    - Curl_req_init
    - Curl_bufref_init
    - Curl_hash_init
    - Curl_initinfo
    - Curl_llist_init
    - curlx_calloc
    - Curl_netrc_init
    - Curl_init_userdefined
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_open(struct Curl_easy **curl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:500,1
    - Dst: struct connectdata*::scheme::run::disconnect
      Src: /src/curl/lib/url.c:504,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/url.c:506,1
    - Dst: Curl_conn_cf_discard_all
      Src: /src/curl/lib/url.c:507,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/url.c:511,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/url.c:512,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/url.c:513,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/url.c:514,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/url.c:516,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:517,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:518,1
    - Dst: Curl_ssl_conn_config_cleanup
      Src: /src/curl/lib/url.c:519,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:521,1
    - Dst: Curl_hash_destroy
      Src: /src/curl/lib/url.c:522,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/url.c:523,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/url.c:524,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/url.c:525,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/url.c:526,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 529
    functionName: Curl_conn_free
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_conn_cf_discard_all
    - Curl_hash_destroy
    - DEBUGASSERT
    - CURL_ARRAYSIZE
    - Curl_ssl_conn_config_cleanup
    - Curl_creds_unlink
    - curlx_free
    - Curl_peer_unlink
    - struct connectdata*::scheme::run::disconnect
    linkageType: ''
    returnType: void
    signature: void Curl_conn_free(struct Curl_easy *data, struct connectdata *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multiplex_wanted
      Src: /src/curl/lib/url.c:545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 555
    functionName: xfer_may_multiplex
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_multiplex_wanted
    linkageType: ''
    returnType: bool
    signature: "bool xfer_may_multiplex(const struct Curl_easy *data,\n                               const
      struct connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_same_destination
      Src: /src/curl/lib/url.c:562,1
    - Dst: Curl_creds_same
      Src: /src/curl/lib/url.c:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - data
    - needle
    argTypes:
    - struct proxy_info*
    - struct proxy_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 567
    functionName: proxy_info_matches
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_creds_same
    - Curl_peer_same_destination
    linkageType: ''
    returnType: bool
    signature: "bool proxy_info_matches(const struct proxy_info *data,\n                               const
      struct proxy_info *needle)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/url.c:580,1
    - Dst: infof
      Src: /src/curl/lib/url.c:582,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/url.c:590,1
    - Dst: infof
      Src: /src/curl/lib/url.c:592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - data
    - conn
    - now
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - struct curltime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 601
    functionName: conn_maxage
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curlx_ptimediff_ms
    - infof
    linkageType: ''
    returnType: bool
    signature: "bool conn_maxage(struct Curl_easy *data,\n                        struct
      connectdata *conn,\n                        struct curltime now)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:609,1
    - Dst: CONN_INUSE
      Src: /src/curl/lib/url.c:610,1
    - Dst: conn_maxage
      Src: /src/curl/lib/url.c:615,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/url.c:615,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/url.c:623,1
    - Dst: struct connectdata*::scheme::run::connection_is_dead
      Src: /src/curl/lib/url.c:624,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/url.c:625,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/url.c:630,1
    - Dst: Curl_conn_is_alive
      Src: /src/curl/lib/url.c:631,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:641,1
    - Dst: infof
      Src: /src/curl/lib/url.c:641,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/url.c:644,1
    - Dst: infof
      Src: /src/curl/lib/url.c:649,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - conn
    - data
    argTypes:
    - struct connectdata*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 655
    functionName: Curl_conn_seems_dead
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_attach_connection
    - CONN_INUSE
    - Curl_detach_connection
    - infof
    - struct connectdata*::scheme::run::connection_is_dead
    - Curl_conn_is_alive
    - DEBUGF
    - conn_maxage
    linkageType: ''
    returnType: bool
    signature: "bool Curl_conn_seems_dead(struct connectdata *conn,\n                          struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/url.c:661,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/url.c:661,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/url.c:666,1
    - Dst: Curl_conn_keep_alive
      Src: /src/curl/lib/url.c:667,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/url.c:668,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/url.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 672
    functionName: Curl_conn_upkeep
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_attach_connection
    - Curl_detach_connection
    - Curl_conn_keep_alive
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_upkeep(struct Curl_easy *data,\n                          struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/url.c:680,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/url.c:681,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/url.c:682,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/url.c:683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - struct connectdata*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 684
    functionName: ssh_config_matches
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_safecmp
    - Curl_conn_meta_get
    linkageType: ''
    returnType: bool
    signature: "bool ssh_config_matches(struct connectdata *one,\n                               struct
      connectdata *two)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/url.c:735,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 745
    functionName: url_match_connect_config
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool url_match_connect_config(struct connectdata *conn,\n                                     struct
      url_conn_match *m)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/url.c:750,1
    - Dst: infof
      Src: /src/curl/lib/url.c:757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 764
    functionName: url_match_fully_connected
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - infof
    linkageType: ''
    returnType: bool
    signature: "bool url_match_fully_connected(struct connectdata *conn,\n                                      struct
      url_conn_match *m)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONN_INUSE
      Src: /src/curl/lib/url.c:769,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 775
    functionName: url_match_multi
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - CONN_INUSE
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool url_match_multi(struct connectdata *conn,\n                            struct
      url_conn_match *m)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONN_INUSE
      Src: /src/curl/lib/url.c:780,1
    - Dst: url_match_multi
      Src: /src/curl/lib/url.c:787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 792
    functionName: url_match_multiplex_needs
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - url_match_multi
    - CONN_INUSE
    linkageType: ''
    returnType: bool
    signature: "bool url_match_multiplex_needs(struct connectdata *conn,\n                                      struct
      url_conn_match *m)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONN_INUSE
      Src: /src/curl/lib/url.c:797,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:798,1
    - Dst: Curl_multi_max_concurrent_streams
      Src: /src/curl/lib/url.c:801,1
    - Dst: infof
      Src: /src/curl/lib/url.c:802,1
    - Dst: Curl_conn_get_max_concurrent
      Src: /src/curl/lib/url.c:807,1
    - Dst: infof
      Src: /src/curl/lib/url.c:808,1
    - Dst: infof
      Src: /src/curl/lib/url.c:813,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 816
    functionName: url_match_multiplex_limits
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - CONN_INUSE
    - infof
    - Curl_conn_get_max_concurrent
    - Curl_multi_max_concurrent_streams
    linkageType: ''
    returnType: bool
    signature: "bool url_match_multiplex_limits(struct connectdata *conn,\n                                       struct
      url_conn_match *m)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/url.c:823,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/url.c:826,1
    - Dst: get_protocol_family
      Src: /src/curl/lib/url.c:830,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 837
    functionName: url_match_ssl_use
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_ssl
    - get_protocol_family
    linkageType: ''
    returnType: bool
    signature: "bool url_match_ssl_use(struct connectdata *conn,\n                              struct
      url_conn_match *m)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: proxy_info_matches
      Src: /src/curl/lib/url.c:848,1
    - Dst: proxy_info_matches
      Src: /src/curl/lib/url.c:855,1
    - Dst: IS_HTTPS_PROXY
      Src: /src/curl/lib/url.c:858,1
    - Dst: Curl_ssl_conn_config_match
      Src: /src/curl/lib/url.c:863,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:864,1
    - Dst: infof
      Src: /src/curl/lib/url.c:864,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 840
    functionDepth: 3
    functionLinenumber: 840
    functionLinenumberEnd: 875
    functionName: url_match_proxy_use
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - proxy_info_matches
    - infof
    - IS_HTTPS_PROXY
    - Curl_ssl_conn_config_match
    - DEBUGF
    linkageType: ''
    returnType: bool
    signature: "bool url_match_proxy_use(struct connectdata *conn,\n                                struct
      url_conn_match *m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 878
    functionName: url_match_proxy_use
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: url_match_proxy_use(c, m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/url.c:889,1
    - Dst: infof
      Src: /src/curl/lib/url.c:894,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 898
    functionName: url_match_http_multiplex
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - infof
    linkageType: ''
    returnType: bool
    signature: "bool url_match_http_multiplex(struct connectdata *conn,\n                                     struct
      url_conn_match *m)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/url.c:906,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:909,1
    - Dst: infof
      Src: /src/curl/lib/url.c:909,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:916,1
    - Dst: infof
      Src: /src/curl/lib/url.c:916,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:923,1
    - Dst: infof
      Src: /src/curl/lib/url.c:923,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 931
    functionName: url_match_http_version
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_conn_http_version
    - DEBUGF
    - infof
    linkageType: ''
    returnType: bool
    signature: "bool url_match_http_version(struct connectdata *conn,\n                                   struct
      url_conn_match *m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 934
    functionName: url_match_http_multiplex
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: url_match_http_multiplex(c, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 935
    functionName: url_match_http_version
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: url_match_http_version(c, m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: url_match_http_version
      Src: /src/curl/lib/url.c:940,1
    - Dst: get_protocol_family
      Src: /src/curl/lib/url.c:944,1
    - Dst: ssh_config_matches
      Src: /src/curl/lib/url.c:945,1
    - Dst: get_protocol_family
      Src: /src/curl/lib/url.c:950,1
    - Dst: ftp_conns_match
      Src: /src/curl/lib/url.c:951,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 956
    functionName: url_match_proto_config
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - url_match_http_version
    - get_protocol_family
    - ftp_conns_match
    - ssh_config_matches
    linkageType: ''
    returnType: bool
    signature: "bool url_match_proto_config(struct connectdata *conn,\n                                   struct
      url_conn_match *m)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_same
      Src: /src/curl/lib/url.c:961,1
    - Dst: Curl_creds_same
      Src: /src/curl/lib/url.c:964,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 975
    functionName: url_match_auth
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_creds_same
    linkageType: ''
    returnType: bool
    signature: "bool url_match_auth(struct connectdata *conn,\n                           struct
      url_conn_match *m)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_same_destination
      Src: /src/curl/lib/url.c:981,1
    - Dst: Curl_peer_equal
      Src: /src/curl/lib/url.c:987,1
    - Dst: get_protocol_family
      Src: /src/curl/lib/url.c:997,1
    - Dst: Curl_peer_same_destination
      Src: /src/curl/lib/url.c:1003,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 977
    functionDepth: 2
    functionLinenumber: 977
    functionLinenumberEnd: 1004
    functionName: url_match_destination
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_peer_equal
    - Curl_peer_same_destination
    - get_protocol_family
    linkageType: ''
    returnType: bool
    signature: "bool url_match_destination(struct connectdata *conn,\n                                  struct
      url_conn_match *m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_conn_config_match
      Src: /src/curl/lib/url.c:1011,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:1012,1
    - Dst: infof
      Src: /src/curl/lib/url.c:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1018
    functionName: url_match_ssl_config
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - DEBUGF
    - Curl_ssl_conn_config_match
    - infof
    linkageType: ''
    returnType: bool
    signature: "bool url_match_ssl_config(struct connectdata *conn,\n                                 struct
      url_conn_match *m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1088
    functionName: url_match_auth_ntlm
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: url_match_auth_ntlm(c, m)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_same
      Src: /src/curl/lib/url.c:1098,1
    - Dst: Curl_creds_same
      Src: /src/curl/lib/url.c:1114,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 2
    argNames:
    - conn
    - m
    argTypes:
    - struct connectdata*
    - struct url_conn_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1138
    functionName: url_match_auth_nego
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_creds_same
    linkageType: ''
    returnType: bool
    signature: "bool url_match_auth_nego(struct connectdata *conn,\n                                struct
      url_conn_match *m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1141
    functionName: url_match_auth_nego
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: url_match_auth_nego(c, m)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: url_match_connect_config
      Src: /src/curl/lib/url.c:1149,1
    - Dst: url_match_destination
      Src: /src/curl/lib/url.c:1153,1
    - Dst: url_match_fully_connected
      Src: /src/curl/lib/url.c:1156,1
    - Dst: url_match_multiplex_needs
      Src: /src/curl/lib/url.c:1159,1
    - Dst: url_match_ssl_use
      Src: /src/curl/lib/url.c:1162,1
    - Dst: url_match_proxy_use
      Src: /src/curl/lib/url.c:1165,1
    - Dst: url_match_ssl_config
      Src: /src/curl/lib/url.c:1167,1
    - Dst: url_match_http_multiplex
      Src: /src/curl/lib/url.c:1170,1
    - Dst: url_match_auth
      Src: /src/curl/lib/url.c:1176,1
    - Dst: url_match_proto_config
      Src: /src/curl/lib/url.c:1179,1
    - Dst: url_match_auth_ntlm
      Src: /src/curl/lib/url.c:1182,1
    - Dst: url_match_auth_nego
      Src: /src/curl/lib/url.c:1187,1
    - Dst: url_match_multiplex_limits
      Src: /src/curl/lib/url.c:1192,1
    - Dst: CONN_INUSE
      Src: /src/curl/lib/url.c:1195,1
    - Dst: Curl_conn_seems_dead
      Src: /src/curl/lib/url.c:1195,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/url.c:1197,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 2
    argNames:
    - conn
    - userdata
    argTypes:
    - struct connectdata*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1143
    functionDepth: 4
    functionLinenumber: 1143
    functionLinenumberEnd: 1204
    functionName: url_match_conn
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - url_match_auth_ntlm
    - url_match_multiplex_needs
    - url_match_auth
    - url_match_multiplex_limits
    - url_match_destination
    - url_match_ssl_config
    - url_match_proto_config
    - CONN_INUSE
    - url_match_fully_connected
    - url_match_auth_nego
    - url_match_http_multiplex
    - url_match_connect_config
    - Curl_conn_terminate
    - url_match_proxy_use
    - Curl_conn_seems_dead
    - url_match_ssl_use
    linkageType: ''
    returnType: bool
    signature: bool url_match_conn(struct connectdata *conn, void *userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/url.c:1212,1
    - Dst: infof
      Src: /src/curl/lib/url.c:1222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1228
    functionName: url_match_result
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_attach_connection
    - infof
    linkageType: ''
    returnType: bool
    signature: bool url_match_result(void *userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:1246,1
    - Dst: memset
      Src: /src/curl/lib/url.c:1247,1
    - Dst: xfer_may_multiplex
      Src: /src/curl/lib/url.c:1250,1
    - Dst: Curl_cpool_find
      Src: /src/curl/lib/url.c:1280,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - data
    - needle
    - waitpipe
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1239
    functionDepth: 2
    functionLinenumber: 1239
    functionLinenumberEnd: 1287
    functionName: url_attach_existing
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_cpool_find
    - xfer_may_multiplex
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool url_attach_existing(struct Curl_easy *data,\n                                struct
      connectdata *needle,\n                                bool *waitpipe)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/url.c:1294,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/url.c:1308,1
    - Dst: IS_HTTPS_PROXY
      Src: /src/curl/lib/url.c:1324,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/url.c:1345,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:1362,1
    - Dst: infof
      Src: /src/curl/lib/url.c:1362,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:1366,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:1367,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1369
    functionName: allocate_conn
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - curlx_strdup
    - infof
    - IS_HTTPS_PROXY
    - curlx_free
    - curlx_calloc
    - DEBUGF
    linkageType: ''
    returnType: struct connectdata
    signature: struct connectdata *allocate_conn(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/url.c:1386,1
    - Dst: failf
      Src: /src/curl/lib/url.c:1388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - conn
    - scheme
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_scheme*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1391
    functionName: url_set_conn_scheme
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode url_set_conn_scheme(struct Curl_easy *data,\n                                    struct
      connectdata *conn,\n                                    const struct Curl_scheme
      *scheme)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - uc
    argTypes:
    - CURLUcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1405
    functionName: Curl_uc_to_curlcode
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_uc_to_curlcode(CURLUcode uc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hsts_applies
      Src: /src/curl/lib/url.c:1416,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:1421,1
    - Dst: curl_url_set
      Src: /src/curl/lib/url.c:1422,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:1424,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/url.c:1425,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:1427,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:1429,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/url.c:1430,1
    - Dst: Curl_peer_from_url
      Src: /src/curl/lib/url.c:1432,1
    - Dst: infof
      Src: /src/curl/lib/url.c:1436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - data
    - conn
    - uh
    - port_override
    - scope_id
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - CURLU*
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1439
    functionName: hsts_upgrade
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_hsts_applies
    - curl_url_set
    - Curl_bufref_free
    - Curl_bufref_set
    - infof
    - curl_url_get
    - Curl_uc_to_curlcode
    - Curl_peer_from_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode hsts_upgrade(struct Curl_easy *data,\n                             struct
      connectdata *conn,\n                             CURLU *uh,\n                             uint16_t
      port_override,\n                             uint32_t scope_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1442
    functionName: hsts_upgrade
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsts_upgrade(x, y, z, a, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1456
    functionName: str_has_ctrl
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool str_has_ctrl(const char *input)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/url.c:1486,1
    - Dst: Curl_creds_has_passwd
      Src: /src/curl/lib/url.c:1487,1
    - Dst: Curl_netrc_scan
      Src: /src/curl/lib/url.c:1502,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/url.c:1504,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:1507,1
    - Dst: infof
      Src: /src/curl/lib/url.c:1514,1
    - Dst: Curl_netrc_strerror
      Src: /src/curl/lib/url.c:1520,1
    - Dst: failf
      Src: /src/curl/lib/url.c:1521,1
    - Dst: str_has_ctrl
      Src: /src/curl/lib/url.c:1529,1
    - Dst: str_has_ctrl
      Src: /src/curl/lib/url.c:1530,1
    - Dst: failf
      Src: /src/curl/lib/url.c:1531,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/url.c:1536,1
    - Dst: Curl_creds_merge
      Src: /src/curl/lib/url.c:1538,1
    - Dst: curl_url_set
      Src: /src/curl/lib/url.c:1543,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/url.c:1544,1
    - Dst: curl_url_set
      Src: /src/curl/lib/url.c:1546,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/url.c:1547,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:1550,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:1553,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/url.c:1557,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 3
    argNames:
    - data
    - conn
    - pcreds
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_creds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1462
    functionDepth: 3
    functionLinenumber: 1462
    functionLinenumberEnd: 1559
    functionName: url_set_data_creds_netrc
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - Curl_creds_passwd
    - Curl_creds_has_passwd
    - DEBUGASSERT
    - Curl_netrc_scan
    - Curl_netrc_strerror
    - failf
    - Curl_creds_unlink
    - infof
    - Curl_creds_merge
    - Curl_creds_user
    - Curl_uc_to_curlcode
    - str_has_ctrl
    - Curl_creds_has_user
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode url_set_data_creds_netrc(struct Curl_easy *data,\n                                         struct
      connectdata *conn,\n                                         struct Curl_creds
      **pcreds)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_allowed_to_origin
      Src: /src/curl/lib/url.c:1574,1
    - Dst: Curl_creds_create
      Src: /src/curl/lib/url.c:1575,1
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/url.c:1587,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:1592,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:1594,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:1596,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:1598,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/url.c:1601,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/url.c:1606,1
    - Dst: Curl_creds_merge
      Src: /src/curl/lib/url.c:1611,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:1614,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:1615,1
    - Dst: failf
      Src: /src/curl/lib/url.c:1617,1
    - Dst: url_set_data_creds_netrc
      Src: /src/curl/lib/url.c:1625,1
    - Dst: Curl_creds_equal
      Src: /src/curl/lib/url.c:1629,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/url.c:1631,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/url.c:1633,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 40
    argCount: 3
    argNames:
    - data
    - conn
    - uh
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - CURLU*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1562
    functionDepth: 4
    functionLinenumber: 1562
    functionLinenumberEnd: 1635
    functionName: url_set_data_creds
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_creds_link
    - Curl_creds_create
    - Curl_urldecode
    - failf
    - url_set_data_creds_netrc
    - Curl_creds_unlink
    - Curl_creds_merge
    - curlx_free
    - curl_url_get
    - Curl_auth_allowed_to_origin
    - Curl_uc_to_curlcode
    - Curl_creds_equal
    - Curl_creds_has_user
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode url_set_data_creds(struct Curl_easy *data,\n                                   struct
      connectdata *conn,\n                                   CURLU *uh)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: up_free
      Src: /src/curl/lib/url.c:1650,1
    - Dst: curl_url_dup
      Src: /src/curl/lib/url.c:1654,1
    - Dst: curl_url
      Src: /src/curl/lib/url.c:1656,1
    - Dst: Curl_is_absolute_url
      Src: /src/curl/lib/url.c:1665,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/url.c:1665,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/url.c:1666,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/url.c:1668,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/url.c:1673,1
    - Dst: curl_url_set
      Src: /src/curl/lib/url.c:1678,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/url.c:1678,1
    - Dst: failf
      Src: /src/curl/lib/url.c:1685,1
    - Dst: curl_url_strerror
      Src: /src/curl/lib/url.c:1685,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:1686,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:1691,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:1693,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/url.c:1696,1
    - Dst: Curl_peer_from_url
      Src: /src/curl/lib/url.c:1704,1
    - Dst: hsts_upgrade
      Src: /src/curl/lib/url.c:1709,1
    - Dst: url_set_conn_scheme
      Src: /src/curl/lib/url.c:1714,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/url.c:1722,1
    - Dst: url_set_data_creds
      Src: /src/curl/lib/url.c:1724,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:1728,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/url.c:1731,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:1738,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:1742,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:1744,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:1748,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:1760,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/url.c:1761,1
    - Dst: Curl_creds_trace
      Src: /src/curl/lib/url.c:1769,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 93
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1640
    functionDepth: 7
    functionLinenumber: 1640
    functionLinenumberEnd: 1774
    functionName: parseurlandfillconn
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - Curl_bufref_set
    - curl_maprintf
    - Curl_creds_trace
    - Curl_bufref_ptr
    - up_free
    - curl_url_get
    - Curl_uc_to_curlcode
    - curl_url_dup
    - curl_url_strerror
    - failf
    - Curl_peer_link
    - curlx_free
    - hsts_upgrade
    - url_set_data_creds
    - Curl_peer_from_url
    - url_set_conn_scheme
    - curlx_strdup
    - Curl_is_absolute_url
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parseurlandfillconn(struct Curl_easy *data,\n                                    struct
      connectdata *conn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:1786,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/url.c:1789,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/url.c:1791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1780
    functionDepth: 7
    functionLinenumber: 1780
    functionLinenumberEnd: 1805
    functionName: setup_range
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curl_maprintf
    - curlx_strdup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setup_range(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:1822,1
    - Dst: infof
      Src: /src/curl/lib/url.c:1822,1
    - Dst: struct connectdata*::scheme::run::setup_connection
      Src: /src/curl/lib/url.c:1824,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:1828,1
    - Dst: infof
      Src: /src/curl/lib/url.c:1828,1
    - Dst: Curl_conn_get_destination
      Src: /src/curl/lib/url.c:1831,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/url.c:1839,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/url.c:1842,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/url.c:1845,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/url.c:1849,1
    - Dst: strlen
      Src: /src/curl/lib/url.c:1850,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1816
    functionDepth: 7
    functionLinenumber: 1816
    functionLinenumberEnd: 1853
    functionName: setup_connection_internals
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - Curl_conn_get_destination
    - Curl_strntolower
    - strlen
    - struct connectdata*::scheme::run::setup_connection
    - infof
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode setup_connection_internals(struct Curl_easy *data,\n                                           struct
      connectdata *conn)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: VERBOSE
      Src: /src/curl/lib/url.c:1887,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/url.c:1889,1
    - Dst: curl_getenv
      Src: /src/curl/lib/url.c:1893,1
    - Dst: curl_strequal
      Src: /src/curl/lib/url.c:1907,1
    - Dst: Curl_strntoupper
      Src: /src/curl/lib/url.c:1909,1
    - Dst: curl_getenv
      Src: /src/curl/lib/url.c:1910,1
    - Dst: curl_strequal
      Src: /src/curl/lib/url.c:1916,1
    - Dst: curl_getenv
      Src: /src/curl/lib/url.c:1917,1
    - Dst: curl_strequal
      Src: /src/curl/lib/url.c:1919,1
    - Dst: curl_getenv
      Src: /src/curl/lib/url.c:1920,1
    - Dst: curl_getenv
      Src: /src/curl/lib/url.c:1922,1
    - Dst: curl_getenv
      Src: /src/curl/lib/url.c:1927,1
    - Dst: curl_getenv
      Src: /src/curl/lib/url.c:1930,1
    - Dst: infof
      Src: /src/curl/lib/url.c:1937,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1863
    functionDepth: 7
    functionLinenumber: 1863
    functionLinenumberEnd: 1940
    functionName: url_detect_proxy
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curl_getenv
    - Curl_strntoupper
    - infof
    - VERBOSE
    - curl_strequal
    linkageType: ''
    returnType: char
    signature: "char *url_detect_proxy(struct Curl_easy *data,\n                              struct
      connectdata *conn)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/lib/url.c:1959,1
    - Dst: curl_url_set
      Src: /src/curl/lib/url.c:1968,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:1972,1
    - Dst: Curl_scheme_to_proxytype
      Src: /src/curl/lib/url.c:1974,1
    - Dst: failf
      Src: /src/curl/lib/url.c:1985,1
    - Dst: curl_url_strerror
      Src: /src/curl/lib/url.c:1986,1
    - Dst: Curl_peer_from_proxy_url
      Src: /src/curl/lib/url.c:1991,1
    - Dst: failf
      Src: /src/curl/lib/url.c:2003,1
    - Dst: failf
      Src: /src/curl/lib/url.c:2014,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:2020,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:2022,1
    - Dst: curl_url_get
      Src: /src/curl/lib/url.c:2025,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/url.c:2027,1
    - Dst: Curl_creds_create
      Src: /src/curl/lib/url.c:2032,1
    - Dst: Curl_creds_create
      Src: /src/curl/lib/url.c:2044,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/url.c:2051,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:2056,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:2057,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:2058,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/url.c:2059,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2062,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2063,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 88
    argCount: 4
    argNames:
    - data
    - proxy
    - for_pre_proxy
    - proxyinfo
    argTypes:
    - struct Curl_easy*
    - char*
    - bool
    - struct proxy_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 2067
    functionName: parse_proxy
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - curl_url_strerror
    - Curl_creds_create
    - failf
    - DEBUGASSERT
    - curl_url_cleanup
    - Curl_creds_unlink
    - curlx_free
    - curl_url_get
    - Curl_uc_to_curlcode
    - Curl_peer_from_proxy_url
    - Curl_scheme_to_proxytype
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_proxy(struct Curl_easy *data,\n                            const
      char *proxy,\n                            bool for_pre_proxy,\n                            struct
      proxy_info *proxyinfo)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strdup
      Src: /src/curl/lib/url.c:2081,1
    - Dst: failf
      Src: /src/curl/lib/url.c:2084,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/url.c:2091,1
    - Dst: failf
      Src: /src/curl/lib/url.c:2094,1
    - Dst: curl_getenv
      Src: /src/curl/lib/url.c:2102,1
    - Dst: curl_getenv
      Src: /src/curl/lib/url.c:2105,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2108,1
    - Dst: Curl_check_noproxy
      Src: /src/curl/lib/url.c:2112,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:2114,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:2115,1
    - Dst: url_detect_proxy
      Src: /src/curl/lib/url.c:2120,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:2122,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:2125,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/url.c:2130,1
    - Dst: parse_proxy
      Src: /src/curl/lib/url.c:2142,1
    - Dst: parse_proxy
      Src: /src/curl/lib/url.c:2148,1
    - Dst: failf
      Src: /src/curl/lib/url.c:2159,1
    - Dst: memset
      Src: /src/curl/lib/url.c:2166,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/url.c:2180,1
    - Dst: Curl_auth_digest_cleanup
      Src: /src/curl/lib/url.c:2182,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:2183,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/url.c:2184,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:2222,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:2223,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 106
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2069
    functionDepth: 8
    functionLinenumber: 2069
    functionLinenumberEnd: 2225
    functionName: url_set_conn_proxies
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - url_detect_proxy
    - Curl_check_noproxy
    - failf
    - curl_getenv
    - curlx_strdup
    - infof
    - curlx_free
    - Curl_safecmp
    - memset
    - Curl_auth_digest_cleanup
    - parse_proxy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode url_set_conn_proxies(struct Curl_easy *data,\n                                     struct
      connectdata *conn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2270,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2271,1
    - Dst: memchr
      Src: /src/curl/lib/url.c:2274,1
    - Dst: memchr
      Src: /src/curl/lib/url.c:2278,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/url.c:2292,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/url.c:2298,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/url.c:2307,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:2317,1
    - Dst: curlx_free
      Src: /src/curl/lib/url.c:2318,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 5
    argNames:
    - login
    - len
    - userp
    - passwdp
    - optionsp
    argTypes:
    - char*
    - size_t
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2258
    functionDepth: 1
    functionLinenumber: 2258
    functionLinenumberEnd: 2320
    functionName: Curl_parse_login_details
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 2
    functionsReached:
    - curlx_free
    - memchr
    - curlx_memdup0
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_parse_login_details(const char *login, const size_t
      len,\n                                  char **userp, char **passwdp,\n                                  char
      **optionsp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_link
      Src: /src/curl/lib/url.c:2331,1
    - Dst: Curl_creds_create
      Src: /src/curl/lib/url.c:2333,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/url.c:2339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2325
    functionDepth: 2
    functionLinenumber: 2325
    functionLinenumberEnd: 2343
    functionName: url_set_conn_login
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_creds_link
    - Curl_creds_create
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode url_set_conn_login(struct Curl_easy *data,\n                                   struct
      connectdata *conn)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/url.c:2372,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/url.c:2373,1
    - Dst: strchr
      Src: /src/curl/lib/url.c:2388,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/url.c:2391,1
    - Dst: Curl_peer_from_connect_to
      Src: /src/curl/lib/url.c:2401,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - data
    - dest
    - conn_to_line
    - pvia_dest
    argTypes:
    - struct Curl_easy*
    - struct Curl_peer*
    - char*
    - struct Curl_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2349
    functionDepth: 1
    functionLinenumber: 2349
    functionLinenumberEnd: 2404
    functionName: parse_connect_to_string
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - curlx_str_number
    - curl_strnequal
    - Curl_peer_from_connect_to
    - strchr
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_connect_to_string(struct Curl_easy *data,\n                                        const
      struct Curl_peer *dest,\n                                        const char
      *conn_to_line,\n                                        struct Curl_peer **pvia_dest)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2417,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/url.c:2418,1
    - Dst: parse_connect_to_string
      Src: /src/curl/lib/url.c:2421,1
    - Dst: getenv
      Src: /src/curl/lib/url.c:2433,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:2446,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2446,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:2460,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2460,1
    - Dst: Curl_altsvc_lookup
      Src: /src/curl/lib/url.c:2464,1
    - Dst: Curl_altsvc_lookup
      Src: /src/curl/lib/url.c:2475,1
    - Dst: Curl_altsvc_lookup
      Src: /src/curl/lib/url.c:2485,1
    - Dst: Curl_peer_create
      Src: /src/curl/lib/url.c:2512,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2517,1
    - Dst: Curl_alpnid2str
      Src: /src/curl/lib/url.c:2518,1
    - Dst: Curl_alpnid2str
      Src: /src/curl/lib/url.c:2519,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 77
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2409
    functionDepth: 2
    functionLinenumber: 2409
    functionLinenumberEnd: 2548
    functionName: url_set_conn_peer
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - parse_connect_to_string
    - DEBUGASSERT
    - getenv
    - infof
    - Curl_peer_create
    - Curl_peer_unlink
    - Curl_alpnid2str
    - DEBUGF
    - Curl_altsvc_lookup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode url_set_conn_peer(struct Curl_easy *data,\n                                  struct
      connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_link
      Src: /src/curl/lib/url.c:2562,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/url.c:2567,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/url.c:2568,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/url.c:2582,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/url.c:2583,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/url.c:2584,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/url.c:2585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - data
    - needle
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2553
    functionDepth: 2
    functionLinenumber: 2553
    functionLinenumberEnd: 2586
    functionName: url_conn_reuse_adjust
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_peer_link
    - Curl_creds_link
    linkageType: ''
    returnType: void
    signature: "void url_conn_reuse_adjust(struct Curl_easy *data,\n                                  struct
      connectdata *needle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2588
    functionDepth: 1
    functionLinenumber: 2588
    functionLinenumberEnd: 2595
    functionName: conn_meta_freeentry
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void conn_meta_freeentry(void *p)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/url.c:2607,1
    - Dst: allocate_conn
      Src: /src/curl/lib/url.c:2616,1
    - Dst: Curl_hash_init
      Src: /src/curl/lib/url.c:2623,1
    - Dst: parseurlandfillconn
      Src: /src/curl/lib/url.c:2630,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2634,1
    - Dst: Curl_peer_uds_create
      Src: /src/curl/lib/url.c:2642,1
    - Dst: url_set_conn_peer
      Src: /src/curl/lib/url.c:2657,1
    - Dst: url_set_conn_proxies
      Src: /src/curl/lib/url.c:2670,1
    - Dst: url_set_conn_login
      Src: /src/curl/lib/url.c:2683,1
    - Dst: Curl_peer_equal
      Src: /src/curl/lib/url.c:2691,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/url.c:2692,1
    - Dst: setup_connection_internals
      Src: /src/curl/lib/url.c:2708,1
    - Dst: Curl_conn_get_first_peer
      Src: /src/curl/lib/url.c:2727,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2734,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2735,1
    - Dst: Curl_conn_free
      Src: /src/curl/lib/url.c:2741,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 2
    argNames:
    - data
    - pneedle
    argTypes:
    - struct Curl_easy*
    - struct connectdata**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2597
    functionDepth: 9
    functionLinenumber: 2597
    functionLinenumberEnd: 2744
    functionName: url_create_needle
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - url_set_conn_peer
    - Curl_conn_get_first_peer
    - allocate_conn
    - DEBUGASSERT
    - url_set_conn_login
    - Curl_hash_init
    - Curl_peer_uds_create
    - Curl_bufref_ptr
    - Curl_peer_unlink
    - url_set_conn_proxies
    - setup_connection_internals
    - parseurlandfillconn
    - Curl_conn_free
    - Curl_peer_equal
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode url_create_needle(struct Curl_easy *data,\n                                  struct
      connectdata **pneedle)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: url_create_needle
      Src: /src/curl/lib/url.c:2763,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2766,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2776,1
    - Dst: struct connectdata*::scheme::run::connect_it
      Src: /src/curl/lib/url.c:2780,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/url.c:2785,1
    - Dst: Curl_cpool_add
      Src: /src/curl/lib/url.c:2787,1
    - Dst: setup_range
      Src: /src/curl/lib/url.c:2790,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/url.c:2792,1
    - Dst: Curl_init_do
      Src: /src/curl/lib/url.c:2793,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2798,1
    - Dst: struct Curl_easy*::conn::scheme::run::done
      Src: /src/curl/lib/url.c:2800,1
    - Dst: Curl_ssl_easy_config_complete
      Src: /src/curl/lib/url.c:2807,1
    - Dst: Curl_cpool_prune_dead
      Src: /src/curl/lib/url.c:2812,1
    - Dst: url_attach_existing
      Src: /src/curl/lib/url.c:2823,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/url.c:2831,1
    - Dst: url_conn_reuse_adjust
      Src: /src/curl/lib/url.c:2834,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2837,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2845,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:2855,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2855,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2860,1
    - Dst: Curl_cpool_check_limits
      Src: /src/curl/lib/url.c:2865,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2867,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/url.c:2872,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2875,1
    - Dst: Curl_ssl_conn_config_init
      Src: /src/curl/lib/url.c:2888,1
    - Dst: DEBUGF
      Src: /src/curl/lib/url.c:2890,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/url.c:2890,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/url.c:2894,1
    - Dst: Curl_cpool_add
      Src: /src/curl/lib/url.c:2897,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2907,1
    - Dst: infof
      Src: /src/curl/lib/url.c:2914,1
    - Dst: Curl_init_do
      Src: /src/curl/lib/url.c:2922,1
    - Dst: setup_range
      Src: /src/curl/lib/url.c:2927,1
    - Dst: Curl_conn_ev_data_setup
      Src: /src/curl/lib/url.c:2944,1
    - Dst: Curl_conn_free
      Src: /src/curl/lib/url.c:2948,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2949,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 114
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2754
    functionDepth: 10
    functionLinenumber: 2754
    functionLinenumberEnd: 2951
    functionName: url_find_or_create_conn
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - Curl_cpool_add
    - DEBUGASSERT
    - Curl_conn_free
    - Curl_ssl_easy_config_complete
    - url_conn_reuse_adjust
    - struct connectdata*::scheme::run::connect_it
    - Curl_xfer_setup_nop
    - Curl_conn_ev_data_setup
    - CURL_TRC_M
    - Curl_ssl_conn_config_init
    - Curl_attach_connection
    - Curl_init_do
    - setup_range
    - Curl_conn_is_ssl
    - url_create_needle
    - curl_mfprintf
    - Curl_cpool_prune_dead
    - infof
    - struct Curl_easy*::conn::scheme::run::done
    - Curl_cpool_check_limits
    - url_attach_existing
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode url_find_or_create_conn(struct Curl_easy *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_req_hard_reset
      Src: /src/curl/lib/url.c:2961,1
    - Dst: url_find_or_create_conn
      Src: /src/curl/lib/url.c:2964,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2970,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/url.c:2971,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/url.c:2978,1
    - Dst: Curl_conn_setup
      Src: /src/curl/lib/url.c:2982,1
    - Dst: Curl_headers_init
      Src: /src/curl/lib/url.c:2984,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/url.c:2985,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/url.c:2990,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/url.c:2995,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/url.c:2996,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - data
    - pconnected
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2953
    functionDepth: 11
    functionLinenumber: 2953
    functionLinenumberEnd: 3000
    functionName: Curl_connect
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 1
    functionsReached:
    - Curl_headers_init
    - DEBUGASSERT
    - Curl_req_hard_reset
    - Curl_detach_connection
    - Curl_conn_setup
    - Curl_pgrsTime
    - url_find_or_create_conn
    - Curl_conn_terminate
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_connect(struct Curl_easy *data, bool *pconnected)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_req_start
      Src: /src/curl/lib/url.c:3032,1
    - Dst: Curl_pgrsReset
      Src: /src/curl/lib/url.c:3034,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3012
    functionDepth: 1
    functionLinenumber: 3012
    functionLinenumberEnd: 3037
    functionName: Curl_init_do
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 2
    functionsReached:
    - Curl_pgrsReset
    - Curl_req_start
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_init_do(struct Curl_easy *data, struct connectdata *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/url.c:3043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3044
      start: 3041
    functionDepth: 0
    functionLinenumber: 3041
    functionLinenumberEnd: 3044
    functionName: Curl_data_priority_clear_state
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_data_priority_clear_state(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_add2
      Src: /src/curl/lib/url.c:3051,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/url.c:3051,1
    - Dst: strlen
      Src: /src/curl/lib/url.c:3051,1
    - Dst: meta_dtor
      Src: /src/curl/lib/url.c:3053,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/url.c:3053,1
    - Dst: strlen
      Src: /src/curl/lib/url.c:3053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - conn
    - key
    - meta_data
    - meta_dtor
    argTypes:
    - struct connectdata*
    - char*
    - void*
    - Curl_meta_dtor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3057
      start: 3048
    functionDepth: 1
    functionLinenumber: 3048
    functionLinenumberEnd: 3057
    functionName: Curl_conn_meta_set
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 2
    functionsReached:
    - strlen
    - meta_dtor
    - Curl_hash_add2
    - CURL_UNCONST
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_meta_set(struct connectdata *conn, const char *key,\n
      \                           void *meta_data, Curl_meta_dtor *meta_dtor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_delete
      Src: /src/curl/lib/url.c:3061,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/url.c:3061,1
    - Dst: strlen
      Src: /src/curl/lib/url.c:3061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - key
    argTypes:
    - struct connectdata*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3059
    functionDepth: 1
    functionLinenumber: 3059
    functionLinenumberEnd: 3062
    functionName: Curl_conn_meta_remove
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_hash_delete
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: void Curl_conn_meta_remove(struct connectdata *conn, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/url.c:3066,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/url.c:3066,1
    - Dst: strlen
      Src: /src/curl/lib/url.c:3066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - key
    argTypes:
    - struct connectdata*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3067
      start: 3064
    functionDepth: 1
    functionLinenumber: 3064
    functionLinenumberEnd: 3067
    functionName: Curl_conn_meta_get
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 21
    functionsReached:
    - strlen
    - Curl_hash_pick
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: void *Curl_conn_meta_get(struct connectdata *conn, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - CURLcode
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3069
    functionDepth: 0
    functionLinenumber: 3069
    functionLinenumberEnd: 3076
    functionName: Curl_1st_fatal
    functionSourceFile: /src/curl/lib/url.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_1st_fatal(CURLcode r1, CURLcode r2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: Curl_cf_def_shutdown
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_def_shutdown(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data, bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: Curl_cf_def_adjust_pollset
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_def_adjust_pollset(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    struct easy_pollset *ps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/cfilters.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: Curl_cf_def_data_pending
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::has_data_pending
    linkageType: ''
    returnType: bool
    signature: "bool Curl_cf_def_data_pending(struct Curl_cfilter *cf,\n                              const
      struct Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::do_send
      Src: /src/curl/lib/cfilters.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: Curl_cf_def_send
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::do_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_def_send(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                          const uint8_t *buf, size_t len, bool eos,\n
      \                         size_t *pnwritten)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::do_recv
      Src: /src/curl/lib/cfilters.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: Curl_cf_def_recv
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::do_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_def_recv(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                          char *buf, size_t len, size_t *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::is_alive
      Src: /src/curl/lib/cfilters.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: Curl_cf_def_conn_is_alive
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::is_alive
    linkageType: ''
    returnType: bool
    signature: "bool Curl_cf_def_conn_is_alive(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               bool *input_pending)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::keep_alive
      Src: /src/curl/lib/cfilters.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: Curl_cf_def_conn_keep_alive
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::keep_alive
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_def_conn_keep_alive(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/cfilters.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: Curl_cf_def_query
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::query
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_def_query(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data,\n                           int query, int *pres1, void *pres2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_M_is_verbose
      Src: /src/curl/lib/cfilters.c:112,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/cfilters.c:121,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/cfilters.c:125,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cfilters.c:130,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cfilters.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - data
    - sockindex
    - info
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 109
    functionDepth: 7
    functionLinenumber: 109
    functionLinenumberEnd: 135
    functionName: Curl_conn_trc_filters
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_M_is_verbose
    - CURL_TRC_M
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: "void Curl_conn_trc_filters(struct Curl_easy *data,\n                           int
      sockindex, const char *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cft::destroy
      Src: /src/curl/lib/cfilters.c:151,1
    - Dst: curlx_free
      Src: /src/curl/lib/cfilters.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pcf
    - data
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: Curl_conn_cf_discard_chain
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - cft::destroy
    - curlx_free
    linkageType: ''
    returnType: void
    signature: "void Curl_conn_cf_discard_chain(struct Curl_cfilter **pcf,\n                                struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/cfilters.c:162,1
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/cfilters.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - conn
    - sockindex
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: Curl_conn_cf_discard_all
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 2
    functionsReached:
    - Curl_conn_cf_discard_chain
    - memset
    linkageType: ''
    returnType: void
    signature: "void Curl_conn_cf_discard_all(struct Curl_easy *data,\n                              struct
      connectdata *conn, int sockindex)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:172,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:174,1
    - Dst: Curl_shutdown_started
      Src: /src/curl/lib/cfilters.c:188,1
    - Dst: Curl_shutdown_start
      Src: /src/curl/lib/cfilters.c:189,1
    - Dst: Curl_shutdown_timeleft
      Src: /src/curl/lib/cfilters.c:192,1
    - Dst: infof
      Src: /src/curl/lib/cfilters.c:195,1
    - Dst: struct Curl_cfilter*::cft::do_shutdown
      Src: /src/curl/lib/cfilters.c:203,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:205,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:209,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - data
    - sockindex
    - done
    argTypes:
    - struct Curl_easy*
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 219
    functionName: Curl_conn_shutdown
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 2
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - DEBUGASSERT
    - struct Curl_cfilter*::cft::do_shutdown
    - infof
    - Curl_shutdown_start
    - Curl_shutdown_timeleft
    - CURL_TRC_CF
    - Curl_shutdown_started
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_conn_shutdown(struct Curl_easy *data, int sockindex,
      bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:226,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:227,1
    - Dst: struct Curl_cfilter*::cft::do_recv
      Src: /src/curl/lib/cfilters.c:232,1
    - Dst: failf
      Src: /src/curl/lib/cfilters.c:233,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - data
    - sockindex
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: Curl_cf_recv
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::cft::do_recv
    - failf
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_recv(struct Curl_easy *data, int sockindex, char
      *buf,\n                      size_t len, size_t *pnread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:245,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:246,1
    - Dst: struct Curl_cfilter*::cft::do_send
      Src: /src/curl/lib/cfilters.c:251,1
    - Dst: failf
      Src: /src/curl/lib/cfilters.c:253,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - data
    - sockindex
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - int
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 257
    functionName: Curl_cf_send
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - struct Curl_cfilter*::cft::do_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_send(struct Curl_easy *data, int sockindex,\n                      const
      uint8_t *buf, size_t len, bool eos,\n                      size_t *pnwritten)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/cfilters.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - writer_ctx
    - buf
    - blen
    - pnread
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 270
    functionName: cf_bufq_reader
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_bufq_reader(void *writer_ctx,\n                               unsigned
      char *buf, size_t blen,\n                               size_t *pnread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_sipn
      Src: /src/curl/lib/cfilters.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - cf
    - data
    - bufq
    - maxlen
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct bufq*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 287
    functionName: Curl_cf_recv_bufq
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_sipn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_recv_bufq(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data,\n                           struct bufq *bufq,\n                           size_t
      maxlen,\n                           size_t *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/cfilters.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - writer_ctx
    - buf
    - buflen
    - pnwritten
    argTypes:
    - void*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: cf_bufq_writer
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_bufq_writer(void *writer_ctx,\n                               const
      uint8_t *buf, size_t buflen,\n                               size_t *pnwritten)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_write_pass
      Src: /src/curl/lib/cfilters.c:312,1
    - Dst: Curl_bufq_pass
      Src: /src/curl/lib/cfilters.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - cf
    - data
    - bufq
    - buf
    - blen
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct bufq*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 316
    functionName: Curl_cf_send_bufq
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_write_pass
    - Curl_bufq_pass
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_send_bufq(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data,\n                           struct bufq *bufq,\n                           const
      unsigned char *buf, size_t blen,\n                           size_t *pnwritten)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:325,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/cfilters.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - pcf
    - cft
    - ctx
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_cftype*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: Curl_cf_create
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 5
    functionsReached:
    - curlx_calloc
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_create(struct Curl_cfilter **pcf,\n                        const
      struct Curl_cftype *cft,\n                        void *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:343,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:344,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:345,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - data
    - conn
    - sockindex
    - cf
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 352
    functionName: Curl_conn_cf_add
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - CURL_TRC_CF
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_conn_cf_add(struct Curl_easy *data,\n                      struct
      connectdata *conn,\n                      int sockindex,\n                      struct
      Curl_cfilter *cf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:359,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:360,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - cf_at
    - cf_new
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 372
    functionName: Curl_conn_cf_insert_after
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_conn_cf_insert_after(struct Curl_cfilter *cf_at,\n                               struct
      Curl_cfilter *cf_new)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/cfilters.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - pcf
    - data
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 396
    functionName: Curl_conn_cf_discard
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_discard_chain
    linkageType: ''
    returnType: bool
    signature: "bool Curl_conn_cf_discard(struct Curl_cfilter **pcf,\n                          struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::do_connect
      Src: /src/curl/lib/cfilters.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 405
    functionName: Curl_conn_cf_connect
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::cft::do_connect
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_cf_connect(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::do_send
      Src: /src/curl/lib/cfilters.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 415
    functionName: Curl_conn_cf_send
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - struct Curl_cfilter*::cft::do_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_cf_send(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                           const uint8_t *buf, size_t len, bool eos,\n
      \                          size_t *pnwritten)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::do_recv
      Src: /src/curl/lib/cfilters.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: Curl_conn_cf_recv
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - struct Curl_cfilter*::cft::do_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_cf_recv(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                           char *buf, size_t len, size_t *pnread)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/cfilters.c:430,1
    - Dst: Curl_conn_cf_get_ip_info
      Src: /src/curl/lib/cfilters.c:435,1
    - Dst: infof
      Src: /src/curl/lib/cfilters.c:439,1
    - Dst: CURL_CONN_HOST_DISPNAME
      Src: /src/curl/lib/cfilters.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - data
    - cf
    argTypes:
    - struct Curl_easy*
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 446
    functionName: cf_verboseconnect
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - infof
    - Curl_conn_cf_get_ip_info
    - CURL_CONN_HOST_DISPNAME
    - Curl_trc_is_verbose
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_verboseconnect(struct Curl_easy *data,\n                                  struct
      Curl_cfilter *cf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/cfilters.c:457,1
    - Dst: Curl_conn_cf_cntrl
      Src: /src/curl/lib/cfilters.c:458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - conn
    - data
    - ignore_result
    - event
    - arg1
    - arg2
    argTypes:
    - struct connectdata*
    - struct Curl_easy*
    - bool
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 464
    functionName: cf_cntrl_all
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_cntrl
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_cntrl_all(struct connectdata *conn,\n                             struct
      Curl_easy *data,\n                             bool ignore_result,\n                             int
      event, int arg1, void *arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cntrl_all
      Src: /src/curl/lib/cfilters.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: cf_cntrl_update_info
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - cf_cntrl_all
    linkageType: ''
    returnType: void
    signature: "void cf_cntrl_update_info(struct Curl_easy *data,\n                                 struct
      connectdata *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/cfilters.c:482,1
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:483,1
    - Dst: Curl_pgrsTimeWas
      Src: /src/curl/lib/cfilters.c:485,1
    - Dst: memset
      Src: /src/curl/lib/cfilters.c:487,1
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:488,1
    - Dst: Curl_pgrsTimeWas
      Src: /src/curl/lib/cfilters.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 492
    functionName: conn_report_connect_stats
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::cft::query
    - Curl_pgrsTimeWas
    - memset
    linkageType: ''
    returnType: void
    signature: "void conn_report_connect_stats(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:503,1
    - Dst: struct Curl_cfilter*::cft::destroy
      Src: /src/curl/lib/cfilters.c:504,1
    - Dst: curlx_free
      Src: /src/curl/lib/cfilters.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 510
    functionName: conn_remove_setup_filters
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - struct Curl_cfilter*::cft::destroy
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void conn_remove_setup_filters(struct Curl_easy *data,\n                                      int
      sockindex)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:524,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:525,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:526,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/cfilters.c:544,1
    - Dst: Curl_pollfds_init
      Src: /src/curl/lib/cfilters.c:545,1
    - Dst: Curl_conn_needs_flush
      Src: /src/curl/lib/cfilters.c:547,1
    - Dst: DEBUGF
      Src: /src/curl/lib/cfilters.c:548,1
    - Dst: infof
      Src: /src/curl/lib/cfilters.c:548,1
    - Dst: Curl_conn_flush
      Src: /src/curl/lib/cfilters.c:549,1
    - Dst: struct Curl_cfilter*::cft::do_connect
      Src: /src/curl/lib/cfilters.c:554,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:555,1
    - Dst: cf_cntrl_update_info
      Src: /src/curl/lib/cfilters.c:561,1
    - Dst: conn_report_connect_stats
      Src: /src/curl/lib/cfilters.c:562,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cfilters.c:563,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cfilters.c:564,1
    - Dst: cf_verboseconnect
      Src: /src/curl/lib/cfilters.c:564,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cfilters.c:565,1
    - Dst: Curl_conn_trc_filters
      Src: /src/curl/lib/cfilters.c:565,1
    - Dst: conn_remove_setup_filters
      Src: /src/curl/lib/cfilters.c:566,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cfilters.c:567,1
    - Dst: Curl_conn_trc_filters
      Src: /src/curl/lib/cfilters.c:567,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:571,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cfilters.c:572,1
    - Dst: Curl_conn_trc_filters
      Src: /src/curl/lib/cfilters.c:572,1
    - Dst: conn_report_connect_stats
      Src: /src/curl/lib/cfilters.c:573,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/cfilters.c:581,1
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/cfilters.c:582,1
    - Dst: failf
      Src: /src/curl/lib/cfilters.c:587,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:592,1
    - Dst: Curl_pollset_reset
      Src: /src/curl/lib/cfilters.c:593,1
    - Dst: Curl_pollfds_reset
      Src: /src/curl/lib/cfilters.c:594,1
    - Dst: Curl_pollset_set_out_only
      Src: /src/curl/lib/cfilters.c:597,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/cfilters.c:599,1
    - Dst: Curl_pollfds_add_ps
      Src: /src/curl/lib/cfilters.c:602,1
    - Dst: Curl_poll
      Src: /src/curl/lib/cfilters.c:606,1
    - Dst: CURLMIN
      Src: /src/curl/lib/cfilters.c:607,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:608,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/cfilters.c:619,1
    - Dst: Curl_pollfds_cleanup
      Src: /src/curl/lib/cfilters.c:620,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 4
    argNames:
    - data
    - sockindex
    - blocking
    - done
    argTypes:
    - struct Curl_easy*
    - int
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 512
    functionDepth: 8
    functionLinenumber: 512
    functionLinenumberEnd: 622
    functionName: Curl_conn_connect
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - struct Curl_cfilter*::cft::do_connect
    - conn_remove_setup_filters
    - Curl_pollfds_reset
    - Curl_pollfds_cleanup
    - Curl_poll
    - CURL_TRC_CF
    - Curl_pollfds_add_ps
    - Curl_conn_adjust_pollset
    - conn_report_connect_stats
    - cf_verboseconnect
    - Curl_pollset_init
    - CONN_SOCK_IDX_VALID
    - failf
    - Curl_conn_flush
    - Curl_pollfds_init
    - Curl_conn_trc_filters
    - VERBOSE
    - cf_cntrl_update_info
    - Curl_conn_needs_flush
    - Curl_pollset_reset
    - CURLMIN
    - infof
    - Curl_pollset_set_out_only
    - Curl_pollset_cleanup
    - Curl_conn_cf_get_socket
    - Curl_timeleft_ms
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_connect(struct Curl_easy *data,\n                           int
      sockindex,\n                           bool blocking,\n                           bool
      *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - sockindex
    argTypes:
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 629
    functionName: Curl_conn_is_setup
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    linkageType: ''
    returnType: bool
    signature: bool Curl_conn_is_setup(struct connectdata *conn, int sockindex)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - conn
    - sockindex
    argTypes:
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 643
    functionName: Curl_conn_is_connected
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 3
    functionsReached:
    - CONN_SOCK_IDX_VALID
    linkageType: ''
    returnType: bool
    signature: bool Curl_conn_is_connected(struct connectdata *conn, int sockindex)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:649,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 660
    functionName: Curl_conn_is_ip_connected
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    linkageType: ''
    returnType: bool
    signature: bool Curl_conn_is_ip_connected(struct Curl_easy *data, int sockindex)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 673
    functionName: cf_is_ssl
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_is_ssl(struct Curl_cfilter *cf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:677,1
    - Dst: cf_is_ssl
      Src: /src/curl/lib/cfilters.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - sockindex
    argTypes:
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 680
    functionName: Curl_conn_is_ssl
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 7
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - cf_is_ssl
    linkageType: ''
    returnType: bool
    signature: bool Curl_conn_is_ssl(struct connectdata *conn, int sockindex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:687,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/cfilters.c:689,1
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - data
    - conn
    - sockindex
    - query
    - info
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - int
    - struct curl_tlssessioninfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 697
    functionName: Curl_conn_get_ssl_info
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - Curl_conn_is_ssl
    - struct Curl_cfilter*::cft::query
    linkageType: ''
    returnType: bool
    signature: "bool Curl_conn_get_ssl_info(struct Curl_easy *data,\n                            struct
      connectdata *conn, int sockindex,\n                            int query,\n
      \                           struct curl_tlssessioninfo *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:704,1
    - Dst: Curl_conn_cf_get_ip_info
      Src: /src/curl/lib/cfilters.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - data
    - conn
    - sockindex
    - is_ipv6
    - ipquad
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - bool*
    - struct ip_quadruple*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 708
    functionName: Curl_conn_get_ip_info
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - Curl_conn_cf_get_ip_info
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_get_ip_info(struct Curl_easy *data,\n                               struct
      connectdata *conn, int sockindex,\n                               bool *is_ipv6,
      struct ip_quadruple *ipquad)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - sockindex
    argTypes:
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 725
    functionName: Curl_conn_is_multiplex
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - CONN_SOCK_IDX_VALID
    linkageType: ''
    returnType: bool
    signature: bool Curl_conn_is_multiplex(struct connectdata *conn, int sockindex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_get_transport
      Src: /src/curl/lib/cfilters.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 732
    functionName: Curl_conn_get_transport
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_get_transport
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char Curl_conn_get_transport(struct Curl_easy *data,\n                                      struct
      connectdata *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - transport
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 744
    functionName: Curl_socktype_for_transport
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Curl_socktype_for_transport(uint8_t transport)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - transport
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 756
    functionName: Curl_protocol_for_transport
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Curl_protocol_for_transport(uint8_t transport)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 767
    functionName: Curl_conn_cf_wants_httpsrr
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_conn_cf_wants_httpsrr(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_get_alpn_negotiated
      Src: /src/curl/lib/cfilters.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 774
    functionName: Curl_conn_get_alpn_negotiated
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - Curl_conn_cf_get_alpn_negotiated
    linkageType: ''
    returnType: char
    signature: "char *Curl_conn_get_alpn_negotiated(struct Curl_easy *data,\n                                          struct
      connectdata *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:787,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 798
    functionName: Curl_conn_http_version
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 3
    functionsReached:
    - struct Curl_cfilter*::cft::query
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char Curl_conn_http_version(struct Curl_easy *data,\n                                     struct
      connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:805,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:806,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:807,1
    - Dst: struct Curl_cfilter*::cft::has_data_pending
      Src: /src/curl/lib/cfilters.c:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 818
    functionName: Curl_conn_data_pending
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 2
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - struct Curl_cfilter*::cft::has_data_pending
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: bool Curl_conn_data_pending(struct Curl_easy *data, int sockindex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 828
    functionName: Curl_conn_cf_needs_flush
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::cft::query
    linkageType: ''
    returnType: bool
    signature: "bool Curl_conn_cf_needs_flush(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:832,1
    - Dst: Curl_conn_cf_needs_flush
      Src: /src/curl/lib/cfilters.c:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 835
    functionName: Curl_conn_needs_flush
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 2
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - Curl_conn_cf_needs_flush
    linkageType: ''
    returnType: bool
    signature: bool Curl_conn_needs_flush(struct Curl_easy *data, int sockindex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::adjust_pollset
      Src: /src/curl/lib/cfilters.c:851,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 855
    functionName: Curl_conn_cf_adjust_pollset
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::cft::adjust_pollset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_cf_adjust_pollset(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data,\n                                     struct easy_pollset *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:864,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:865,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/cfilters.c:873,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/cfilters.c:875,1
    - Dst: Curl_conn_cf_adjust_pollset
      Src: /src/curl/lib/cfilters.c:877,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - data
    - conn
    - ps
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 881
    functionName: Curl_conn_adjust_pollset
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - Curl_conn_is_connected
    - Curl_conn_cf_adjust_pollset
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_adjust_pollset(struct Curl_easy *data,\n                                  struct
      connectdata *conn,\n                                  struct easy_pollset *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:897,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:898,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:899,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/cfilters.c:900,1
    - Dst: Curl_conn_cf_adjust_pollset
      Src: /src/curl/lib/cfilters.c:902,1
    - Dst: Curl_pollset_poll
      Src: /src/curl/lib/cfilters.c:904,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/cfilters.c:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - cf
    - data
    - timeout_ms
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 909
    functionName: Curl_conn_cf_poll
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_adjust_pollset
    - DEBUGASSERT
    - Curl_pollset_cleanup
    - Curl_pollset_poll
    - Curl_pollset_init
    linkageType: ''
    returnType: int
    signature: "int Curl_conn_cf_poll(struct Curl_cfilter *cf,\n                      struct
      Curl_easy *data,\n                      timediff_t timeout_ms)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:918,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:925,1
    - Dst: cft::query
      Src: /src/curl/lib/cfilters.c:936,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/cfilters.c:937,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - data
    - sockindex
    - phost
    - pport
    argTypes:
    - struct Curl_easy*
    - int
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 945
    functionName: Curl_conn_get_current_host
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - cft::query
    - DEBUGASSERT
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: "void Curl_conn_get_current_host(struct Curl_easy *data, int sockindex,\n
      \                               const char **phost, int *pport)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 957
    functionName: Curl_cf_def_cntrl
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_def_cntrl(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data,\n                           int event, int arg1, void *arg2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::cntrl
      Src: /src/curl/lib/cfilters.c:969,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 6
    argNames:
    - cf
    - data
    - ignore_result
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 974
    functionName: Curl_conn_cf_cntrl
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - struct Curl_cfilter*::cft::cntrl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_cf_cntrl(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            bool ignore_result,\n                            int
      event, int arg1, void *arg2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 983
    functionName: Curl_conn_cf_get_socket
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - struct Curl_cfilter*::cft::query
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t Curl_conn_cf_get_socket(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 992
    functionName: Curl_conn_cf_get_transport
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - struct Curl_cfilter*::cft::query
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char Curl_conn_cf_get_transport(struct Curl_cfilter *cf,\n
      \                                        struct Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cfilters.c:998,1
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:999,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/cfilters.c:1000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1003
    functionName: Curl_conn_cf_get_alpn_negotiated
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - struct Curl_cfilter*::cft::query
    - CURL_TRC_CF
    - CURL_UNCONST
    linkageType: ''
    returnType: char
    signature: "char *Curl_conn_cf_get_alpn_negotiated(struct Curl_cfilter *cf,\n
      \                                            struct Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:1010,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/cfilters.c:1011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1014
    functionName: cf_get_remote_addr
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::cft::query
    - CURL_UNCONST
    linkageType: ''
    returnType: struct Curl_sockaddr_ex
    signature: "struct Curl_sockaddr_ex *cf_get_remote_addr(\n  struct Curl_cfilter
      *cf, struct Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cf
    - data
    - is_ipv6
    - ipquad
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    - struct ip_quadruple*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1027
    functionName: Curl_conn_cf_get_ip_info
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 2
    functionsReached:
    - struct Curl_cfilter*::cft::query
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_cf_get_ip_info(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  bool *is_ipv6, struct ip_quadruple
      *ipquad)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/cfilters.c:1040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1042
    functionName: Curl_conn_get_first_socket
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_get_socket
    linkageType: ''
    returnType: curl_socket_t
    signature: curl_socket_t Curl_conn_get_first_socket(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:1048,1
    - Dst: cf_get_remote_addr
      Src: /src/curl/lib/cfilters.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1044
    functionDepth: 2
    functionLinenumber: 1044
    functionLinenumberEnd: 1051
    functionName: Curl_conn_get_remote_addr
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - cf_get_remote_addr
    linkageType: ''
    returnType: struct Curl_sockaddr_ex
    signature: "struct Curl_sockaddr_ex *Curl_conn_get_remote_addr(\n  struct Curl_easy
      *data, int sockindex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cntrl_all
      Src: /src/curl/lib/cfilters.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1056
    functionName: Curl_conn_ev_data_setup
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - cf_cntrl_all
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_conn_ev_data_setup(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:1060,1
    - Dst: Curl_conn_cf_cntrl
      Src: /src/curl/lib/cfilters.c:1062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1064
    functionName: Curl_conn_flush
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 2
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - Curl_conn_cf_cntrl
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_conn_flush(struct Curl_easy *data, int sockindex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cntrl_all
      Src: /src/curl/lib/cfilters.c:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1070
    functionDepth: 2
    functionLinenumber: 1070
    functionLinenumberEnd: 1073
    functionName: Curl_conn_ev_data_done_send
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - cf_cntrl_all
    linkageType: ''
    returnType: void
    signature: void Curl_conn_ev_data_done_send(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cntrl_all
      Src: /src/curl/lib/cfilters.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - premature
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1082
    functionName: Curl_conn_ev_data_done
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - cf_cntrl_all
    linkageType: ''
    returnType: void
    signature: void Curl_conn_ev_data_done(struct Curl_easy *data, bool premature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_cntrl_all
      Src: /src/curl/lib/cfilters.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - do_pause
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1088
    functionName: Curl_conn_ev_data_pause
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - cf_cntrl_all
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_conn_ev_data_pause(struct Curl_easy *data, bool do_pause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::cft::is_alive
      Src: /src/curl/lib/cfilters.c:1095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - data
    - conn
    - input_pending
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1096
    functionName: Curl_conn_is_alive
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - struct Curl_cfilter*::cft::is_alive
    linkageType: ''
    returnType: bool
    signature: "bool Curl_conn_is_alive(struct Curl_easy *data, struct connectdata
      *conn,\n                        bool *input_pending)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:1104,1
    - Dst: struct Curl_cfilter*::cft::keep_alive
      Src: /src/curl/lib/cfilters.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - conn
    - sockindex
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1108
    functionName: Curl_conn_keep_alive
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - struct Curl_cfilter*::cft::keep_alive
    - CONN_SOCK_IDX_VALID
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_keep_alive(struct Curl_easy *data,\n                              struct
      connectdata *conn,\n                              int sockindex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:1118,1
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:1122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - data
    - conn
    - sockindex
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1128
    functionName: Curl_conn_get_max_concurrent
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 1
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - struct Curl_cfilter*::cft::query
    linkageType: ''
    returnType: size_t
    signature: "size_t Curl_conn_get_max_concurrent(struct Curl_easy *data,\n                                    struct
      connectdata *conn,\n                                    int sockindex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:1138,1
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cfilters.c:1142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - data
    - conn
    - sockindex
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1145
    functionName: Curl_conn_get_stream_error
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - struct Curl_cfilter*::cft::query
    linkageType: ''
    returnType: int
    signature: "int Curl_conn_get_stream_error(struct Curl_easy *data,\n                               struct
      connectdata *conn,\n                               int sockindex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - data
    - sockfd
    argTypes:
    - struct Curl_easy*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1153
    functionName: Curl_conn_sockindex
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Curl_conn_sockindex(struct Curl_easy *data, curl_socket_t sockfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:1158,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:1159,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:1160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - data
    - sockindex
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1166
    functionName: Curl_conn_recv
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 3
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_recv(struct Curl_easy *data, int sockindex,\n                        char
      *buf, size_t len, size_t *pnread)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:1174,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:1175,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cfilters.c:1176,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:1176,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/cfilters.c:1177,1
    - Dst: getenv
      Src: /src/curl/lib/cfilters.c:1182,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/cfilters.c:1185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 6
    argNames:
    - data
    - sockindex
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - int
    - void*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1198
    functionName: Curl_conn_send
    functionSourceFile: /src/curl/lib/cfilters.c
    functionUses: 4
    functionsReached:
    - curlx_str_number
    - CONN_SOCK_IDX_VALID
    - getenv
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_send(struct Curl_easy *data, int sockindex,\n                        const
      void *buf, size_t len, bool eos,\n                        size_t *pnwritten)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cwriter*::cwt::do_close
      Src: /src/curl/lib/sendf.c:52,1
    - Dst: curlx_free
      Src: /src/curl/lib/sendf.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: cl_reset_writer
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - struct Curl_cwriter*::cwt::do_close
    linkageType: ''
    returnType: void
    signature: void cl_reset_writer(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::do_close
      Src: /src/curl/lib/sendf.c:64,1
    - Dst: curlx_free
      Src: /src/curl/lib/sendf.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: cl_reset_reader
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - struct Curl_creader*::crt::do_close
    linkageType: ''
    returnType: void
    signature: void cl_reset_reader(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reset_reader
      Src: /src/curl/lib/sendf.c:72,1
    - Dst: cl_reset_writer
      Src: /src/curl/lib/sendf.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: Curl_client_cleanup
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - cl_reset_reader
    - cl_reset_writer
    linkageType: ''
    returnType: void
    signature: void Curl_client_cleanup(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:83,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:86,1
    - Dst: cl_reset_reader
      Src: /src/curl/lib/sendf.c:87,1
    - Dst: cl_reset_writer
      Src: /src/curl/lib/sendf.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: Curl_client_reset
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - cl_reset_reader
    - cl_reset_writer
    - CURL_TRC_READ
    linkageType: ''
    returnType: void
    signature: void Curl_client_reset(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:101,1
    - Dst: struct Curl_creader*::crt::cntrl
      Src: /src/curl/lib/sendf.c:103,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:105,1
    - Dst: cl_reset_reader
      Src: /src/curl/lib/sendf.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 115
    functionName: Curl_client_start
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - cl_reset_reader
    - failf
    - struct Curl_creader*::crt::cntrl
    - CURL_TRC_READ
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_client_start(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: Curl_creader_will_rewind
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_creader_will_rewind(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - enable
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: Curl_creader_set_rewind
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_creader_set_rewind(struct Curl_easy *data, bool enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cwriter*::cwt::do_write
      Src: /src/curl/lib/sendf.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: Curl_cwriter_write
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 2
    functionsReached:
    - struct Curl_cwriter*::cwt::do_write
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cwriter_write(struct Curl_easy *data,\n                            struct
      Curl_cwriter *writer, int type,\n                            const char *buf,
      size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: Curl_cwriter_def_init
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cwriter_def_init(struct Curl_easy *data,\n                               struct
      Curl_cwriter *writer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/sendf.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: Curl_cwriter_def_write
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cwriter_def_write(struct Curl_easy *data,\n                                struct
      Curl_cwriter *writer, int type,\n                                const char
      *buf, size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: Curl_cwriter_def_close
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Curl_cwriter_def_close(struct Curl_easy *data,\n                            struct
      Curl_cwriter *writer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/sendf.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - limit
    argTypes:
    - struct Curl_easy*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: get_max_body_write_len
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - curlx_sotouz_range
    linkageType: ''
    returnType: size_t
    signature: size_t get_max_body_write_len(struct Curl_easy *data, curl_off_t limit)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/sendf.c:188,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/sendf.c:195,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/sendf.c:196,1
    - Dst: Curl_rlimit_start
      Src: /src/curl/lib/sendf.c:203,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/sendf.c:203,1
    - Dst: streamclose
      Src: /src/curl/lib/sendf.c:216,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/sendf.c:217,1
    - Dst: get_max_body_write_len
      Src: /src/curl/lib/sendf.c:232,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:244,1
    - Dst: get_max_body_write_len
      Src: /src/curl/lib/sendf.c:253,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/sendf.c:260,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/sendf.c:261,1
    - Dst: Curl_pgrs_download_inc
      Src: /src/curl/lib/sendf.c:270,1
    - Dst: infof
      Src: /src/curl/lib/sendf.c:275,1
    - Dst: connclose
      Src: /src/curl/lib/sendf.c:283,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:287,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 294
    functionName: cw_download_write
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_cwriter_write
    - failf
    - Curl_rlimit_start
    - CURL_TRC_WRITE
    - streamclose
    - get_max_body_write_len
    - Curl_pgrs_download_inc
    - infof
    - connclose
    - Curl_pgrsTime
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_download_write(struct Curl_easy *data,\n                                  struct
      Curl_cwriter *writer, int type,\n                                  const char
      *buf, size_t nbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_debug
      Src: /src/curl/lib/sendf.c:312,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/sendf.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 315
    functionName: cw_raw_write
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - Curl_debug
    - Curl_cwriter_write
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_raw_write(struct Curl_easy *data,\n                             struct
      Curl_cwriter *writer, int type,\n                             const char *buf,
      size_t nbytes)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:331,1
    - Dst: Curl_cwriter_create
      Src: /src/curl/lib/sendf.c:332,1
    - Dst: Curl_cwriter_create
      Src: /src/curl/lib/sendf.c:340,1
    - Dst: Curl_cwriter_add
      Src: /src/curl/lib/sendf.c:343,1
    - Dst: Curl_cwriter_free
      Src: /src/curl/lib/sendf.c:345,1
    - Dst: Curl_cwriter_create
      Src: /src/curl/lib/sendf.c:350,1
    - Dst: Curl_cwriter_add
      Src: /src/curl/lib/sendf.c:352,1
    - Dst: Curl_cwriter_free
      Src: /src/curl/lib/sendf.c:354,1
    - Dst: Curl_cwriter_create
      Src: /src/curl/lib/sendf.c:359,1
    - Dst: Curl_cwriter_add
      Src: /src/curl/lib/sendf.c:361,1
    - Dst: Curl_cwriter_free
      Src: /src/curl/lib/sendf.c:363,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 369
    functionName: do_init_writer_stack
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_create
    - Curl_cwriter_free
    - Curl_cwriter_add
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode do_init_writer_stack(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:382,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:385,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:388,1
    - Dst: do_init_writer_stack
      Src: /src/curl/lib/sendf.c:392,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:395,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/sendf.c:398,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/sendf.c:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - data
    - type
    - buf
    - len
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 402
    functionName: Curl_client_write
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 10
    functionsReached:
    - CURL_TRC_WRITE
    - Curl_cwriter_write
    - do_init_writer_stack
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_client_write(struct Curl_easy *data, int type, const
      char *buf,\n                           size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:414,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/sendf.c:415,1
    - Dst: struct Curl_cwtype*::do_init
      Src: /src/curl/lib/sendf.c:423,1
    - Dst: curlx_free
      Src: /src/curl/lib/sendf.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - pwriter
    - data
    - cwt
    - phase
    argTypes:
    - struct Curl_cwriter**
    - struct Curl_easy*
    - struct Curl_cwtype*
    - Curl_cwriter_phase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 430
    functionName: Curl_cwriter_create
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 2
    functionsReached:
    - curlx_free
    - curlx_calloc
    - struct Curl_cwtype*::do_init
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cwriter_create(struct Curl_cwriter **pwriter,\n                             struct
      Curl_easy *data,\n                             const struct Curl_cwtype *cwt,\n
      \                            Curl_cwriter_phase phase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cwriter*::cwt::do_close
      Src: /src/curl/lib/sendf.c:436,1
    - Dst: curlx_free
      Src: /src/curl/lib/sendf.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: Curl_cwriter_free
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 2
    functionsReached:
    - curlx_free
    - struct Curl_cwriter*::cwt::do_close
    linkageType: ''
    returnType: void
    signature: "void Curl_cwriter_free(struct Curl_easy *data,\n                       struct
      Curl_cwriter *writer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - phase
    argTypes:
    - struct Curl_easy*
    - Curl_cwriter_phase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 451
    functionName: Curl_cwriter_count
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_cwriter_count(struct Curl_easy *data, Curl_cwriter_phase
      phase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_init_writer_stack
      Src: /src/curl/lib/sendf.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 472
    functionName: Curl_cwriter_add
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 2
    functionsReached:
    - do_init_writer_stack
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cwriter_add(struct Curl_easy *data,\n                          struct
      Curl_cwriter *writer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/sendf.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - name
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: Curl_cwriter_get_by_name
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct Curl_cwriter
    signature: "struct Curl_cwriter *Curl_cwriter_get_by_name(struct Curl_easy *data,\n
      \                                             const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - cwt
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwtype*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: Curl_cwriter_get_by_type
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct Curl_cwriter
    signature: "struct Curl_cwriter *Curl_cwriter_get_by_type(struct Curl_easy *data,\n
      \                                             const struct Curl_cwtype *cwt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 504
    functionName: Curl_cwriter_is_content_decoding
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_cwriter_is_content_decoding(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cw_out_is_paused
      Src: /src/curl/lib/sendf.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: Curl_cwriter_is_paused
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 2
    functionsReached:
    - Curl_cw_out_is_paused
    linkageType: ''
    returnType: bool
    signature: bool Curl_cwriter_is_paused(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cw_out_unpause
      Src: /src/curl/lib/sendf.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 7
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: Curl_cwriter_unpause
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 1
    functionsReached:
    - Curl_cw_out_unpause
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_cwriter_unpause(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::do_read
      Src: /src/curl/lib/sendf.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - nread
    - eos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 525
    functionName: Curl_creader_read
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 3
    functionsReached:
    - struct Curl_creader*::crt::do_read
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creader_read(struct Curl_easy *data,\n                           struct
      Curl_creader *reader,\n                           char *buf, size_t blen, size_t
      *nread, bool *eos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::cntrl
      Src: /src/curl/lib/sendf.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 534
    functionName: Curl_creader_clear_eos
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 1
    functionsReached:
    - struct Curl_creader*::crt::cntrl
    linkageType: ''
    returnType: void
    signature: "void Curl_creader_clear_eos(struct Curl_easy *data,\n                            struct
      Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 542
    functionName: Curl_creader_def_init
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creader_def_init(struct Curl_easy *data,\n                               struct
      Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: Curl_creader_def_close
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Curl_creader_def_close(struct Curl_easy *data,\n                            struct
      Curl_creader *reader)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::next::crt::do_read
      Src: /src/curl/lib/sendf.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - nread
    - eos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 564
    functionName: Curl_creader_def_read
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - struct Curl_creader*::next::crt::do_read
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creader_def_read(struct Curl_easy *data,\n                               struct
      Curl_creader *reader,\n                               char *buf, size_t blen,\n
      \                              size_t *nread, bool *eos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: Curl_creader_def_needs_rewind
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_creader_def_needs_rewind(struct Curl_easy *data,\n                                   struct
      Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::next::crt::total_length
      Src: /src/curl/lib/sendf.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 579
    functionName: Curl_creader_def_total_length
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - struct Curl_creader*::next::crt::total_length
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t Curl_creader_def_total_length(struct Curl_easy *data,\n
      \                                        struct Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - reader
    - offset
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 589
    functionName: Curl_creader_def_resume_from
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creader_def_resume_from(struct Curl_easy *data,\n                                      struct
      Curl_creader *reader,\n                                      curl_off_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - reader
    - opcode
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - Curl_creader_cntrl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 599
    functionName: Curl_creader_def_cntrl
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creader_def_cntrl(struct Curl_easy *data,\n                                struct
      Curl_creader *reader,\n                                Curl_creader_cntrl opcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 607
    functionName: Curl_creader_def_is_paused
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_creader_def_is_paused(struct Curl_easy *data,\n                                struct
      Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - reader
    - premature
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 615
    functionName: Curl_creader_def_done
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Curl_creader_def_done(struct Curl_easy *data,\n                           struct
      Curl_creader *reader, int premature)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 638
    functionName: cr_in_init
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cr_in_init(struct Curl_easy *data, struct Curl_creader *reader)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/sendf.c:665,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:669,1
    - Dst: struct cr_in_ctx*::read_cb
      Src: /src/curl/lib/sendf.c:670,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:671,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:678,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:690,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:703,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:708,1
    - Dst: Curl_xfer_pause_send
      Src: /src/curl/lib/sendf.c:712,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:718,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:733,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - pnread
    - peos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 738
    functionName: cr_in_read
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - failf
    - CURL_TRC_READ
    - curlx_sotouz_range
    - Curl_xfer_pause_send
    - Curl_set_in_callback
    - struct cr_in_ctx*::read_cb
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_in_read(struct Curl_easy *data,\n                           struct
      Curl_creader *reader,\n                           char *buf, size_t blen,\n
      \                          size_t *pnread, bool *peos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 746
    functionName: cr_in_needs_rewind
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool cr_in_needs_rewind(struct Curl_easy *data,\n                               struct
      Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 754
    functionName: cr_in_total_length
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t cr_in_total_length(struct Curl_easy *data,\n                                     struct
      Curl_creader *reader)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:763,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:769,1
    - Dst: struct Curl_easy*::set::seek_func
      Src: /src/curl/lib/sendf.c:770,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:771,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:778,1
    - Dst: curlx_sotouz
      Src: /src/curl/lib/sendf.c:787,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:790,1
    - Dst: struct cr_in_ctx*::read_cb
      Src: /src/curl/lib/sendf.c:791,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:793,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:799,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:811,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - data
    - reader
    - offset
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 817
    functionName: cr_in_resume_from
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - struct Curl_easy*::set::seek_func
    - curlx_sotouz
    - Curl_set_in_callback
    - struct cr_in_ctx*::read_cb
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_in_resume_from(struct Curl_easy *data,\n                                  struct
      Curl_creader *reader,\n                                  curl_off_t offset)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:831,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:833,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:834,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:836,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:843,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/sendf.c:846,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:847,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:849,1
    - Dst: fseek
      Src: /src/curl/lib/sendf.c:865,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:866,1
    - Dst: failf
      Src: /src/curl/lib/sendf.c:874,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 878
    functionName: cr_in_rewind
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - failf
    - fseek
    - CURL_TRC_READ
    - Curl_set_in_callback
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_in_rewind(struct Curl_easy *data,\n                             struct
      Curl_creader *reader)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cr_in_rewind
      Src: /src/curl/lib/sendf.c:888,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - data
    - reader
    - opcode
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - Curl_creader_cntrl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 899
    functionName: cr_in_cntrl
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - cr_in_rewind
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_in_cntrl(struct Curl_easy *data,\n                            struct
      Curl_creader *reader,\n                            Curl_creader_cntrl opcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 907
    functionName: cr_in_is_paused
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool cr_in_is_paused(struct Curl_easy *data,\n                            struct
      Curl_creader *reader)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:932,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/sendf.c:933,1
    - Dst: struct Curl_crtype*::do_init
      Src: /src/curl/lib/sendf.c:941,1
    - Dst: curlx_free
      Src: /src/curl/lib/sendf.c:946,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - preader
    - data
    - crt
    - phase
    argTypes:
    - struct Curl_creader**
    - struct Curl_easy*
    - struct Curl_crtype*
    - Curl_creader_phase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 948
    functionName: Curl_creader_create
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 3
    functionsReached:
    - struct Curl_crtype*::do_init
    - curlx_free
    - curlx_calloc
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creader_create(struct Curl_creader **preader,\n                             struct
      Curl_easy *data,\n                             const struct Curl_crtype *crt,\n
      \                            Curl_creader_phase phase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::do_close
      Src: /src/curl/lib/sendf.c:953,1
    - Dst: curlx_free
      Src: /src/curl/lib/sendf.c:954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 956
    functionName: Curl_creader_free
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 3
    functionsReached:
    - curlx_free
    - struct Curl_creader*::crt::do_close
    linkageType: ''
    returnType: void
    signature: void Curl_creader_free(struct Curl_easy *data, struct Curl_creader
      *reader)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/sendf.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 972
    functionName: cr_lc_init
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cr_lc_init(struct Curl_easy *data, struct Curl_creader *reader)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/sendf.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 979
    functionName: cr_lc_close
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void cr_lc_close(struct Curl_easy *data, struct Curl_creader *reader)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/sendf.c:998,1
    - Dst: Curl_creader_read
      Src: /src/curl/lib/sendf.c:1006,1
    - Dst: memchr
      Src: /src/curl/lib/sendf.c:1011,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/sendf.c:1032,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/sendf.c:1034,1
    - Dst: STRCONST
      Src: /src/curl/lib/sendf.c:1034,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/sendf.c:1041,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1047,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/sendf.c:1047,1
    - Dst: Curl_bufq_cread
      Src: /src/curl/lib/sendf.c:1049,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/sendf.c:1050,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:1057,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - pnread
    - peos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1060
    functionName: cr_lc_read
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - STRCONST
    - DEBUGASSERT
    - Curl_creader_read
    - memchr
    - CURL_TRC_READ
    - Curl_bufq_cread
    - Curl_bufq_cwrite
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_lc_read(struct Curl_easy *data,\n                           struct
      Curl_creader *reader,\n                           char *buf, size_t blen,\n
      \                          size_t *pnread, bool *peos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1069
    functionName: cr_lc_total_length
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t cr_lc_total_length(struct Curl_easy *data,\n                                     struct
      Curl_creader *reader)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_create
      Src: /src/curl/lib/sendf.c:1090,1
    - Dst: Curl_creader_add
      Src: /src/curl/lib/sendf.c:1092,1
    - Dst: Curl_creader_free
      Src: /src/curl/lib/sendf.c:1095,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1085
    functionDepth: 2
    functionLinenumber: 1085
    functionLinenumberEnd: 1097
    functionName: cr_lc_add
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - Curl_creader_create
    - Curl_creader_add
    - Curl_creader_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cr_lc_add(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1105,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1106,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1107,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1108,1
    - Dst: struct Curl_creader*::crt::total_length
      Src: /src/curl/lib/sendf.c:1111,1
    - Dst: cr_lc_add
      Src: /src/curl/lib/sendf.c:1119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - data
    - r
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1099
    functionDepth: 3
    functionLinenumber: 1099
    functionLinenumberEnd: 1125
    functionName: do_init_reader_stack
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - cr_lc_add
    - DEBUGASSERT
    - struct Curl_creader*::crt::total_length
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode do_init_reader_stack(struct Curl_easy *data,\n                                     struct
      Curl_creader *r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_create
      Src: /src/curl/lib/sendf.c:1133,1
    - Dst: cl_reset_reader
      Src: /src/curl/lib/sendf.c:1139,1
    - Dst: do_init_reader_stack
      Src: /src/curl/lib/sendf.c:1140,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:1142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - struct Curl_easy*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1127
    functionDepth: 4
    functionLinenumber: 1127
    functionLinenumberEnd: 1145
    functionName: Curl_creader_set_fread
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 3
    functionsReached:
    - Curl_creader_create
    - do_init_reader_stack
    - cl_reset_reader
    - CURL_TRC_READ
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_creader_set_fread(struct Curl_easy *data, curl_off_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_set_fread
      Src: /src/curl/lib/sendf.c:1154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1147
    functionDepth: 5
    functionLinenumber: 1147
    functionLinenumberEnd: 1166
    functionName: Curl_creader_add
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 4
    functionsReached:
    - Curl_creader_set_fread
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creader_add(struct Curl_easy *data,\n                          struct
      Curl_creader *reader)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1172,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1173,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1174,1
    - Dst: cl_reset_reader
      Src: /src/curl/lib/sendf.c:1176,1
    - Dst: do_init_reader_stack
      Src: /src/curl/lib/sendf.c:1177,1
    - Dst: Curl_creader_free
      Src: /src/curl/lib/sendf.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - r
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1168
    functionDepth: 4
    functionLinenumber: 1168
    functionLinenumberEnd: 1181
    functionName: Curl_creader_set
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - cl_reset_reader
    - do_init_reader_stack
    - DEBUGASSERT
    - Curl_creader_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_creader_set(struct Curl_easy *data, struct Curl_creader
      *r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1188,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1189,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1190,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1191,1
    - Dst: Curl_creader_set_fread
      Src: /src/curl/lib/sendf.c:1195,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1198,1
    - Dst: Curl_rlimit_start
      Src: /src/curl/lib/sendf.c:1201,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/sendf.c:1201,1
    - Dst: Curl_rlimit_active
      Src: /src/curl/lib/sendf.c:1205,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/lib/sendf.c:1206,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/sendf.c:1207,1
    - Dst: Curl_creader_read
      Src: /src/curl/lib/sendf.c:1216,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:1220,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - data
    - buf
    - blen
    - nread
    - eos
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1183
    functionDepth: 5
    functionLinenumber: 1183
    functionLinenumberEnd: 1223
    functionName: Curl_client_read
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 1
    functionsReached:
    - Curl_creader_set_fread
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_rlimit_start
    - Curl_rlimit_avail
    - Curl_creader_read
    - CURL_TRC_READ
    - Curl_rlimit_active
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_client_read(struct Curl_easy *data, char *buf, size_t
      blen,\n                          size_t *nread, bool *eos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::needs_rewind
      Src: /src/curl/lib/sendf.c:1229,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:1230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1236
    functionName: Curl_creader_needs_rewind
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 1
    functionsReached:
    - struct Curl_creader*::crt::needs_rewind
    - CURL_TRC_READ
    linkageType: ''
    returnType: bool
    signature: bool Curl_creader_needs_rewind(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - pnread
    - peos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1250
    functionName: cr_null_read
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_null_read(struct Curl_easy *data,\n                             struct
      Curl_creader *reader,\n                             char *buf, size_t blen,\n
      \                            size_t *pnread, bool *peos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1259
    functionName: cr_null_total_length
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t cr_null_total_length(struct Curl_easy *data,\n                                       struct
      Curl_creader *reader)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_create
      Src: /src/curl/lib/sendf.c:1280,1
    - Dst: cl_reset_reader
      Src: /src/curl/lib/sendf.c:1284,1
    - Dst: do_init_reader_stack
      Src: /src/curl/lib/sendf.c:1285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1275
    functionDepth: 4
    functionLinenumber: 1275
    functionLinenumberEnd: 1286
    functionName: Curl_creader_set_null
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 2
    functionsReached:
    - Curl_creader_create
    - do_init_reader_stack
    - cl_reset_reader
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_creader_set_null(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/sendf.c:1310,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:1315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - pnread
    - peos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1318
    functionName: cr_buf_read
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CURL_TRC_READ
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_buf_read(struct Curl_easy *data,\n                            struct
      Curl_creader *reader,\n                            char *buf, size_t blen,\n
      \                           size_t *pnread, bool *peos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1326
    functionName: cr_buf_needs_rewind
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool cr_buf_needs_rewind(struct Curl_easy *data,\n                                struct
      Curl_creader *reader)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - data
    - reader
    - opcode
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - Curl_creader_cntrl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1342
    functionName: cr_buf_cntrl
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_buf_cntrl(struct Curl_easy *data,\n                             struct
      Curl_creader *reader,\n                             Curl_creader_cntrl opcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1350
    functionName: cr_buf_total_length
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t cr_buf_total_length(struct Curl_easy *data,\n                                      struct
      Curl_creader *reader)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/sendf.c:1360,1
    - Dst: curlx_sotouz_range
      Src: /src/curl/lib/sendf.c:1364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - data
    - reader
    - offset
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1373
    functionName: cr_buf_resume_from
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - curlx_sotouz_range
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_buf_resume_from(struct Curl_easy *data,\n                                   struct
      Curl_creader *reader,\n                                   curl_off_t offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_create
      Src: /src/curl/lib/sendf.c:1396,1
    - Dst: cl_reset_reader
      Src: /src/curl/lib/sendf.c:1404,1
    - Dst: do_init_reader_stack
      Src: /src/curl/lib/sendf.c:1405,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:1407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - data
    - buf
    - blen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1389
    functionDepth: 4
    functionLinenumber: 1389
    functionLinenumberEnd: 1409
    functionName: Curl_creader_set_buf
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 1
    functionsReached:
    - Curl_creader_create
    - do_init_reader_stack
    - cl_reset_reader
    - CURL_TRC_READ
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_creader_set_buf(struct Curl_easy *data,\n                              const
      char *buf, size_t blen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::total_length
      Src: /src/curl/lib/sendf.c:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1415
    functionName: Curl_creader_total_length
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 6
    functionsReached:
    - struct Curl_creader*::crt::total_length
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t Curl_creader_total_length(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::total_length
      Src: /src/curl/lib/sendf.c:1422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1423
    functionName: Curl_creader_client_length
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 1
    functionsReached:
    - struct Curl_creader*::crt::total_length
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t Curl_creader_client_length(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::resume_from
      Src: /src/curl/lib/sendf.c:1430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - struct Curl_easy*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1431
    functionName: Curl_creader_resume_from
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 1
    functionsReached:
    - struct Curl_creader*::crt::resume_from
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_creader_resume_from(struct Curl_easy *data, curl_off_t
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::cntrl
      Src: /src/curl/lib/sendf.c:1439,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/sendf.c:1440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1446
    functionName: Curl_creader_unpause
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 1
    functionsReached:
    - struct Curl_creader*::crt::cntrl
    - CURL_TRC_READ
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_creader_unpause(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::is_paused
      Src: /src/curl/lib/sendf.c:1453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1458
    functionName: Curl_creader_is_paused
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 2
    functionsReached:
    - struct Curl_creader*::crt::is_paused
    linkageType: ''
    returnType: bool
    signature: bool Curl_creader_is_paused(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_creader*::crt::done
      Src: /src/curl/lib/sendf.c:1464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - premature
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1467
    functionName: Curl_creader_done
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 0
    functionsReached:
    - struct Curl_creader*::crt::done
    linkageType: ''
    returnType: void
    signature: void Curl_creader_done(struct Curl_easy *data, int premature)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - crt
    argTypes:
    - struct Curl_easy*
    - struct Curl_crtype*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1478
    functionName: Curl_creader_get_by_type
    functionSourceFile: /src/curl/lib/sendf.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct Curl_creader
    signature: "struct Curl_creader *Curl_creader_get_by_type(struct Curl_easy *data,\n
      \                                             const struct Curl_crtype *crt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GSS_ERROR
      Src: /src/curl/lib/socks_gssapi.c:53,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/socks_gssapi.c:59,1
    - Dst: gss_display_status
      Src: /src/curl/lib/socks_gssapi.c:63,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/socks_gssapi.c:68,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:70,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:73,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/socks_gssapi.c:75,1
    - Dst: gss_display_status
      Src: /src/curl/lib/socks_gssapi.c:80,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/socks_gssapi.c:85,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:87,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:90,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:92,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/socks_gssapi.c:93,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/socks_gssapi.c:94,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - data
    - major_status
    - minor_status
    - function
    argTypes:
    - struct Curl_easy*
    - OM_uint32
    - OM_uint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 99
    functionName: check_gss_err
    functionSourceFile: /src/curl/lib/socks_gssapi.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - failf
    - curlx_dyn_free
    - gss_display_status
    - curlx_dyn_ptr
    - GSS_ERROR
    - gss_release_buffer
    linkageType: ''
    returnType: int
    signature: "int check_gss_err(struct Curl_easy *data,\n                         OM_uint32
      major_status,\n                         OM_uint32 minor_status,\n                         const
      char *function)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/lib/socks_gssapi.c:110,1
    - Dst: strlen
      Src: /src/curl/lib/socks_gssapi.c:111,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/socks_gssapi.c:112,1
    - Dst: gss_import_name
      Src: /src/curl/lib/socks_gssapi.c:116,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/socks_gssapi.c:120,1
    - Dst: strlen
      Src: /src/curl/lib/socks_gssapi.c:124,1
    - Dst: gss_import_name
      Src: /src/curl/lib/socks_gssapi.c:126,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:130,1
    - Dst: check_gss_err
      Src: /src/curl/lib/socks_gssapi.c:133,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:135,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - data
    - conn
    - serviceptr
    - server
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - gss_name_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 101
    functionDepth: 7
    functionLinenumber: 101
    functionLinenumberEnd: 141
    functionName: socks5_gss_create_service_name
    functionSourceFile: /src/curl/lib/socks_gssapi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_maprintf
    - strlen
    - failf
    - curlx_memdup
    - check_gss_err
    - strchr
    - gss_import_name
    - gss_release_name
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks5_gss_create_service_name(struct Curl_easy *data,\n
      \                                              struct connectdata *conn,\n                                               const
      char *serviceptr,\n                                               gss_name_t
      *server)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_gss_init_sec_context
      Src: /src/curl/lib/socks_gssapi.c:170,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:182,1
    - Dst: check_gss_err
      Src: /src/curl/lib/socks_gssapi.c:185,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:189,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:190,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:191,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:192,1
    - Dst: htons
      Src: /src/curl/lib/socks_gssapi.c:199,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_gssapi.c:200,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_gssapi.c:202,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:205,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:206,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:207,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:208,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_gssapi.c:212,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:216,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:217,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:218,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:219,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:224,1
    - Dst: Curl_blockread_all
      Src: /src/curl/lib/socks_gssapi.c:238,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:240,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:241,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:242,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:248,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:250,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:251,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:256,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:258,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:259,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_gssapi.c:263,1
    - Dst: ntohs
      Src: /src/curl/lib/socks_gssapi.c:264,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:267,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:268,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:269,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/socks_gssapi.c:274,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:276,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:279,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:280,1
    - Dst: Curl_blockread_all
      Src: /src/curl/lib/socks_gssapi.c:284,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:288,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:289,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:290,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:292,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:299,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 87
    argCount: 5
    argNames:
    - cf
    - data
    - server_ptr
    - gss_context
    - gss_ret_flags
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - gss_name_t*
    - gss_ctx_id_t*
    - OM_uint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 301
    functionName: socks5_gss_auth_loop
    functionSourceFile: /src/curl/lib/socks_gssapi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - htons
    - memcpy
    - failf
    - ntohs
    - Curl_conn_cf_send
    - check_gss_err
    - Curl_blockread_all
    - Curl_gss_delete_sec_context
    - curlx_malloc
    - Curl_gss_init_sec_context
    - gss_release_name
    - gss_release_buffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks5_gss_auth_loop(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data,\n                                     gss_name_t *server_ptr,\n
      \                                    gss_ctx_id_t *gss_context,\n                                     OM_uint32
      *gss_ret_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gss_inquire_context
      Src: /src/curl/lib/socks_gssapi.c:311,1
    - Dst: check_gss_err
      Src: /src/curl/lib/socks_gssapi.c:314,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:316,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:317,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:318,1
    - Dst: gss_display_name
      Src: /src/curl/lib/socks_gssapi.c:321,1
    - Dst: check_gss_err
      Src: /src/curl/lib/socks_gssapi.c:323,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:325,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:326,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:327,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:328,1
    - Dst: infof
      Src: /src/curl/lib/socks_gssapi.c:332,1
    - Dst: gss_release_name
      Src: /src/curl/lib/socks_gssapi.c:335,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - data
    - gss_context
    argTypes:
    - struct Curl_easy*
    - gss_ctx_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 339
    functionName: socks5_gss_auth_verify
    functionSourceFile: /src/curl/lib/socks_gssapi.c
    functionUses: 0
    functionsReached:
    - gss_inquire_context
    - failf
    - gss_display_name
    - infof
    - check_gss_err
    - Curl_gss_delete_sec_context
    - gss_release_name
    - gss_release_buffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks5_gss_auth_verify(struct Curl_easy *data,\n                                       gss_ctx_id_t
      *gss_context)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/socks_gssapi.c:370,1
    - Dst: htons
      Src: /src/curl/lib/socks_gssapi.c:405,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_gssapi.c:406,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/socks_gssapi.c:410,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:412,1
    - Dst: gss_wrap
      Src: /src/curl/lib/socks_gssapi.c:416,1
    - Dst: check_gss_err
      Src: /src/curl/lib/socks_gssapi.c:420,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:421,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:423,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:424,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:425,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:428,1
    - Dst: htons
      Src: /src/curl/lib/socks_gssapi.c:431,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_gssapi.c:432,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_gssapi.c:435,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:437,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:438,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:439,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_gssapi.c:444,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_gssapi.c:445,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:447,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:448,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_gssapi.c:453,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:456,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:457,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:458,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:461,1
    - Dst: Curl_blockread_all
      Src: /src/curl/lib/socks_gssapi.c:464,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:466,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:467,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:473,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:475,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:480,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:482,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_gssapi.c:486,1
    - Dst: ntohs
      Src: /src/curl/lib/socks_gssapi.c:487,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:490,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:491,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/socks_gssapi.c:496,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:498,1
    - Dst: Curl_blockread_all
      Src: /src/curl/lib/socks_gssapi.c:501,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:505,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:506,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:508,1
    - Dst: gss_unwrap
      Src: /src/curl/lib/socks_gssapi.c:513,1
    - Dst: check_gss_err
      Src: /src/curl/lib/socks_gssapi.c:517,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:518,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:520,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:521,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:522,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:525,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:529,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:531,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:532,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_gssapi.c:536,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/socks_gssapi.c:537,1
    - Dst: failf
      Src: /src/curl/lib/socks_gssapi.c:541,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:543,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:545,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_gssapi.c:549,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_gssapi.c:550,1
    - Dst: infof
      Src: /src/curl/lib/socks_gssapi.c:554,1
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/socks_gssapi.c:561,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 132
    argCount: 4
    argNames:
    - cf
    - data
    - gss_context
    - gss_ret_flags
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - gss_ctx_id_t*
    - OM_uint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 564
    functionName: socks5_gss_negotiate_enc
    functionSourceFile: /src/curl/lib/socks_gssapi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - htons
    - memcpy
    - failf
    - gss_wrap
    - ntohs
    - gss_unwrap
    - curlx_memdup
    - infof
    - Curl_conn_cf_send
    - check_gss_err
    - Curl_blockread_all
    - Curl_gss_delete_sec_context
    - curlx_malloc
    - gss_release_buffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks5_gss_negotiate_enc(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data,\n                                         gss_ctx_id_t *gss_context,\n
      \                                        OM_uint32 gss_ret_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/socks_gssapi.c:575,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/socks_gssapi.c:576,1
    - Dst: socks5_gss_create_service_name
      Src: /src/curl/lib/socks_gssapi.c:579,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socks_gssapi.c:581,1
    - Dst: socks5_gss_auth_loop
      Src: /src/curl/lib/socks_gssapi.c:582,1
    - Dst: socks5_gss_auth_verify
      Src: /src/curl/lib/socks_gssapi.c:586,1
    - Dst: socks5_gss_negotiate_enc
      Src: /src/curl/lib/socks_gssapi.c:588,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socks_gssapi.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - cf
    - data
    - creds
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 566
    functionDepth: 8
    functionLinenumber: 566
    functionLinenumberEnd: 594
    functionName: Curl_SOCKS5_gssapi_negotiate
    functionSourceFile: /src/curl/lib/socks_gssapi.c
    functionUses: 0
    functionsReached:
    - curlx_nonblock
    - socks5_gss_auth_loop
    - socks5_gss_create_service_name
    - Curl_creds_sasl_service
    - socks5_gss_auth_verify
    - Curl_creds_has_sasl_service
    - socks5_gss_negotiate_enc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      struct Curl_creds *creds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - slots
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: uint32_hash_hash
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t uint32_hash_hash(uint32_t id, uint32_t slots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:48,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - h
    - slots
    - dtor
    argTypes:
    - struct uint_hash*
    - uint32_t
    - Curl_uint32_hash_dtor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: Curl_uint32_hash_init
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_uint32_hash_init(struct uint_hash *h,\n                           uint32_t
      slots,\n                           Curl_uint32_hash_dtor *dtor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/uint-hash.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - id
    - value
    argTypes:
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: uint32_hash_mk_entry
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    linkageType: ''
    returnType: struct uint_hash_entry
    signature: struct uint_hash_entry *uint32_hash_mk_entry(uint32_t id, void *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:77,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:78,1
    - Dst: struct uint_hash*::dtor
      Src: /src/curl/lib/uint-hash.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - h
    - e
    argTypes:
    - struct uint_hash*
    - struct uint_hash_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: uint32_hash_entry_clear
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached:
    - struct uint_hash*::dtor
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void uint32_hash_entry_clear(struct uint_hash *h,\n                                    struct
      uint_hash_entry *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint32_hash_entry_clear
      Src: /src/curl/lib/uint-hash.c:89,1
    - Dst: curlx_free
      Src: /src/curl/lib/uint-hash.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - h
    - e
    argTypes:
    - struct uint_hash*
    - struct uint_hash_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: uint32_hash_entry_destroy
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached:
    - uint32_hash_entry_clear
    - curlx_free
    linkageType: ''
    returnType: void
    signature: "void uint32_hash_entry_destroy(struct uint_hash *h,\n                                      struct
      uint_hash_entry *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - h
    - he_anchor
    - he
    argTypes:
    - struct uint_hash*
    - struct uint_hash_entry**
    - struct uint_hash_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: uint32_hash_entry_unlink
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void uint32_hash_entry_unlink(struct uint_hash *h,\n                                     struct
      uint_hash_entry **he_anchor,\n                                     struct uint_hash_entry
      *he)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - h
    - he_anchor
    - he
    argTypes:
    - struct uint_hash*
    - struct uint_hash_entry**
    - struct uint_hash_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: uint32_hash_elem_link
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void uint32_hash_elem_link(struct uint_hash *h,\n                                  struct
      uint_hash_entry **he_anchor,\n                                  struct uint_hash_entry
      *he)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: CURL_UINT32_HASH_SLOT
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_UINT32_HASH_SLOT(h, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: CURL_UINT32_HASH_SLOT_ADDR
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_UINT32_HASH_SLOT_ADDR(h, id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:117,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:118,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:119,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/uint-hash.c:121,1
    - Dst: CURL_UINT32_HASH_SLOT_ADDR
      Src: /src/curl/lib/uint-hash.c:126,1
    - Dst: uint32_hash_entry_clear
      Src: /src/curl/lib/uint-hash.c:130,1
    - Dst: uint32_hash_mk_entry
      Src: /src/curl/lib/uint-hash.c:136,1
    - Dst: uint32_hash_elem_link
      Src: /src/curl/lib/uint-hash.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - h
    - id
    - value
    argTypes:
    - struct uint_hash*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 142
    functionName: Curl_uint32_hash_set
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 1
    functionsReached:
    - CURL_UINT32_HASH_SLOT_ADDR
    - uint32_hash_elem_link
    - uint32_hash_mk_entry
    - DEBUGASSERT
    - uint32_hash_entry_clear
    - curlx_calloc
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_hash_set(struct uint_hash *h, uint32_t id, void *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:146,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:147,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:148,1
    - Dst: CURL_UINT32_HASH_SLOT_ADDR
      Src: /src/curl/lib/uint-hash.c:152,1
    - Dst: uint32_hash_entry_unlink
      Src: /src/curl/lib/uint-hash.c:156,1
    - Dst: uint32_hash_entry_destroy
      Src: /src/curl/lib/uint-hash.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - h
    - id
    argTypes:
    - struct uint_hash*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 164
    functionName: Curl_uint32_hash_remove
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached:
    - CURL_UINT32_HASH_SLOT_ADDR
    - uint32_hash_entry_unlink
    - uint32_hash_entry_destroy
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_hash_remove(struct uint_hash *h, uint32_t id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:168,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:169,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:172,1
    - Dst: CURL_UINT32_HASH_SLOT
      Src: /src/curl/lib/uint-hash.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - h
    - id
    argTypes:
    - struct uint_hash*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: Curl_uint32_hash_get
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 1
    functionsReached:
    - CURL_UINT32_HASH_SLOT
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void *Curl_uint32_hash_get(struct uint_hash *h, uint32_t id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:191,1
    - Dst: uint32_hash_entry_unlink
      Src: /src/curl/lib/uint-hash.c:196,1
    - Dst: uint32_hash_entry_destroy
      Src: /src/curl/lib/uint-hash.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct uint_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: uint_hash_clear
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 1
    functionsReached:
    - uint32_hash_entry_unlink
    - uint32_hash_entry_destroy
    - DEBUGASSERT
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST uint_hash_clear(struct uint_hash *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:205,1
    - Dst: uint_hash_clear
      Src: /src/curl/lib/uint-hash.c:207,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/uint-hash.c:208,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct uint_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: Curl_uint32_hash_destroy
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - uint_hash_clear
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_hash_destroy(struct uint_hash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct uint_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: Curl_uint32_hash_count
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Curl_uint32_hash_count(struct uint_hash *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-hash.c:227,1
    - Dst: cb
      Src: /src/curl/lib/uint-hash.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - h
    - cb
    - user_data
    argTypes:
    - struct uint_hash*
    - Curl_uint32_hash_visit_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: Curl_uint32_hash_visit
    functionSourceFile: /src/curl/lib/uint-hash.c
    functionUses: 0
    functionsReached:
    - cb
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_uint32_hash_visit(struct uint_hash *h,\n                            Curl_uint32_hash_visit_cb
      *cb,\n                            void *user_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/tftp.c:161,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:165,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:191,1
    - Dst: time
      Src: /src/curl/lib/tftp.c:196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct tftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 199
    functionName: tftp_set_timeouts
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - time
    - Curl_timeleft_ms
    - failf
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tftp_set_timeouts(struct tftp_conn *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - packet
    - num
    argTypes:
    - struct tftp_packet*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: setpacketevent
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setpacketevent(struct tftp_packet *packet, unsigned short num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - packet
    - num
    argTypes:
    - struct tftp_packet*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: setpacketblock
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setpacketblock(struct tftp_packet *packet, unsigned short num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct tftp_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: getrpacketevent
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short getrpacketevent(const struct tftp_packet *packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct tftp_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: getrpacketblock
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short getrpacketblock(const struct tftp_packet *packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/curl/lib/tftp.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: tftp_strnlen
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t tftp_strnlen(const char *string, size_t maxlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tftp_strnlen
      Src: /src/curl/lib/tftp.c:242,1
    - Dst: tftp_strnlen
      Src: /src/curl/lib/tftp.c:249,1
    - Dst: strlen
      Src: /src/curl/lib/tftp.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - buf
    - len
    - option
    - value
    argTypes:
    - char*
    - size_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 257
    functionName: tftp_option_get
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - strlen
    - tftp_strnlen
    linkageType: ''
    returnType: char
    signature: "char *tftp_option_get(const char *buf, size_t len,\n                                   const
      char **option, const char **value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tftp_option_get
      Src: /src/curl/lib/tftp.c:272,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:274,1
    - Dst: strlen
      Src: /src/curl/lib/tftp.c:277,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:279,1
    - Dst: strlen
      Src: /src/curl/lib/tftp.c:281,1
    - Dst: checkprefix
      Src: /src/curl/lib/tftp.c:282,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/tftp.c:284,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:285,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:290,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:294,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:302,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:308,1
    - Dst: strlen
      Src: /src/curl/lib/tftp.c:311,1
    - Dst: checkprefix
      Src: /src/curl/lib/tftp.c:312,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/tftp.c:317,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:319,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:322,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/tftp.c:324,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - state
    - ptr
    - len
    argTypes:
    - struct tftp_conn*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 330
    functionName: tftp_parse_option_ack
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - checkprefix
    - failf
    - Curl_pgrsSetDownloadSize
    - curlx_str_number
    - infof
    - strlen
    - tftp_option_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_parse_option_ack(struct tftp_conn *state,\n                                      const
      char *ptr, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/tftp.c:336,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/tftp.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - csize
    - index
    - option
    argTypes:
    - struct tftp_conn*
    - size_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: tftp_option_add
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - strlen
    - curlx_strcopy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_option_add(struct tftp_conn *state, size_t *csize,\n
      \                               size_t index, const char *option)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: NEXT_BLOCKNUM
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_BLOCKNUM(x)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: getrpacketblock
      Src: /src/curl/lib/tftp.c:375,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:385,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:390,1
    - Dst: sendto
      Src: /src/curl/lib/tftp.c:396,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:402,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/tftp.c:403,1
    - Dst: time
      Src: /src/curl/lib/tftp.c:412,1
    - Dst: setpacketevent
      Src: /src/curl/lib/tftp.c:419,1
    - Dst: setpacketblock
      Src: /src/curl/lib/tftp.c:420,1
    - Dst: Curl_client_read
      Src: /src/curl/lib/tftp.c:433,1
    - Dst: sendto
      Src: /src/curl/lib/tftp.c:441,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:447,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/tftp.c:447,1
    - Dst: Curl_pgrs_upload_inc
      Src: /src/curl/lib/tftp.c:452,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:458,1
    - Dst: NEXT_BLOCKNUM
      Src: /src/curl/lib/tftp.c:459,1
    - Dst: sendto
      Src: /src/curl/lib/tftp.c:467,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:473,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/tftp.c:473,1
    - Dst: Curl_pgrsSetUploadCounter
      Src: /src/curl/lib/tftp.c:477,1
    - Dst: setpacketevent
      Src: /src/curl/lib/tftp.c:483,1
    - Dst: setpacketblock
      Src: /src/curl/lib/tftp.c:484,1
    - Dst: sendto
      Src: /src/curl/lib/tftp.c:485,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:494,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 2
    argNames:
    - state
    - event
    argTypes:
    - struct tftp_conn*
    - tftp_event_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 358
    functionDepth: 6
    functionLinenumber: 358
    functionLinenumberEnd: 499
    functionName: tftp_tx
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - failf
    - sendto
    - NEXT_BLOCKNUM
    - setpacketevent
    - curlx_strerror
    - infof
    - time
    - Curl_pgrsSetUploadCounter
    - getrpacketblock
    - Curl_client_read
    - Curl_pgrs_upload_inc
    - setpacketblock
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tftp_tx(struct tftp_conn *state, tftp_event_t event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/tftp.c:506,1
    - Dst: tftp_set_timeouts
      Src: /src/curl/lib/tftp.c:509,1
    - Dst: tftp_tx
      Src: /src/curl/lib/tftp.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - state
    - event
    argTypes:
    - struct tftp_conn*
    - tftp_event_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 501
    functionDepth: 7
    functionLinenumber: 501
    functionLinenumberEnd: 513
    functionName: tftp_connect_for_tx
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - tftp_tx
    - tftp_set_timeouts
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_connect_for_tx(struct tftp_conn *state,\n                                    tftp_event_t
      event)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getrpacketblock
      Src: /src/curl/lib/tftp.c:533,1
    - Dst: NEXT_BLOCKNUM
      Src: /src/curl/lib/tftp.c:534,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:541,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:545,1
    - Dst: NEXT_BLOCKNUM
      Src: /src/curl/lib/tftp.c:547,1
    - Dst: setpacketevent
      Src: /src/curl/lib/tftp.c:553,1
    - Dst: setpacketblock
      Src: /src/curl/lib/tftp.c:554,1
    - Dst: sendto
      Src: /src/curl/lib/tftp.c:555,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:560,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/tftp.c:560,1
    - Dst: time
      Src: /src/curl/lib/tftp.c:571,1
    - Dst: setpacketevent
      Src: /src/curl/lib/tftp.c:578,1
    - Dst: setpacketblock
      Src: /src/curl/lib/tftp.c:579,1
    - Dst: sendto
      Src: /src/curl/lib/tftp.c:580,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:585,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/tftp.c:585,1
    - Dst: time
      Src: /src/curl/lib/tftp.c:591,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:597,1
    - Dst: NEXT_BLOCKNUM
      Src: /src/curl/lib/tftp.c:599,1
    - Dst: sendto
      Src: /src/curl/lib/tftp.c:606,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:611,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/tftp.c:611,1
    - Dst: setpacketevent
      Src: /src/curl/lib/tftp.c:618,1
    - Dst: setpacketblock
      Src: /src/curl/lib/tftp.c:619,1
    - Dst: sendto
      Src: /src/curl/lib/tftp.c:620,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:630,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 66
    argCount: 2
    argNames:
    - state
    - event
    argTypes:
    - struct tftp_conn*
    - tftp_event_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 635
    functionName: tftp_rx
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - failf
    - sendto
    - NEXT_BLOCKNUM
    - setpacketevent
    - curlx_strerror
    - infof
    - time
    - getrpacketblock
    - setpacketblock
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tftp_rx(struct tftp_conn *state, tftp_event_t event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/tftp.c:642,1
    - Dst: tftp_set_timeouts
      Src: /src/curl/lib/tftp.c:645,1
    - Dst: tftp_rx
      Src: /src/curl/lib/tftp.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - state
    - event
    argTypes:
    - struct tftp_conn*
    - tftp_event_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 649
    functionName: tftp_connect_for_rx
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - tftp_set_timeouts
    - tftp_rx
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_connect_for_rx(struct tftp_conn *state,\n                                    tftp_event_t
      event)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: setpacketevent
      Src: /src/curl/lib/tftp.c:680,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/tftp.c:682,1
    - Dst: setpacketevent
      Src: /src/curl/lib/tftp.c:686,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:692,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/tftp.c:695,1
    - Dst: strlen
      Src: /src/curl/lib/tftp.c:700,1
    - Dst: strlen
      Src: /src/curl/lib/tftp.c:700,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:701,1
    - Dst: curlx_free
      Src: /src/curl/lib/tftp.c:702,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/tftp.c:707,1
    - Dst: curlx_free
      Src: /src/curl/lib/tftp.c:710,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/tftp.c:716,1
    - Dst: tftp_option_add
      Src: /src/curl/lib/tftp.c:720,1
    - Dst: tftp_option_add
      Src: /src/curl/lib/tftp.c:722,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/tftp.c:725,1
    - Dst: tftp_option_add
      Src: /src/curl/lib/tftp.c:727,1
    - Dst: tftp_option_add
      Src: /src/curl/lib/tftp.c:729,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/tftp.c:732,1
    - Dst: tftp_option_add
      Src: /src/curl/lib/tftp.c:734,1
    - Dst: tftp_option_add
      Src: /src/curl/lib/tftp.c:736,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:739,1
    - Dst: Curl_conn_get_remote_addr
      Src: /src/curl/lib/tftp.c:751,1
    - Dst: sendto
      Src: /src/curl/lib/tftp.c:755,1
    - Dst: CURL_SENDTO_ARG5
      Src: /src/curl/lib/tftp.c:757,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:761,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/tftp.c:761,1
    - Dst: tftp_connect_for_tx
      Src: /src/curl/lib/tftp.c:768,1
    - Dst: tftp_connect_for_rx
      Src: /src/curl/lib/tftp.c:771,1
    - Dst: tftp_connect_for_tx
      Src: /src/curl/lib/tftp.c:776,1
    - Dst: tftp_connect_for_rx
      Src: /src/curl/lib/tftp.c:780,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:788,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 2
    argNames:
    - state
    - event
    argTypes:
    - struct tftp_conn*
    - tftp_event_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 651
    functionDepth: 8
    functionLinenumber: 651
    functionLinenumberEnd: 793
    functionName: tftp_send_first
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - Curl_urldecode
    - failf
    - sendto
    - tftp_option_add
    - setpacketevent
    - curlx_strerror
    - curlx_free
    - Curl_pgrsSetUploadSize
    - tftp_connect_for_tx
    - strlen
    - CURL_SENDTO_ARG5
    - Curl_conn_get_remote_addr
    - tftp_connect_for_rx
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_send_first(struct tftp_conn *state,\n                                tftp_event_t
      event)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 748
    functionName: CURL_SENDTO_ARG5
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SENDTO_ARG5(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 750
    functionName: CURL_SENDTO_ARG5
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SENDTO_ARG5(x)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - error
    argTypes:
    - tftp_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 845
    functionName: tftp_translate_code
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tftp_translate_code(tftp_error_t error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGF
      Src: /src/curl/lib/tftp.c:862,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:862,1
    - Dst: tftp_send_first
      Src: /src/curl/lib/tftp.c:863,1
    - Dst: DEBUGF
      Src: /src/curl/lib/tftp.c:866,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:866,1
    - Dst: tftp_rx
      Src: /src/curl/lib/tftp.c:867,1
    - Dst: DEBUGF
      Src: /src/curl/lib/tftp.c:870,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:870,1
    - Dst: tftp_tx
      Src: /src/curl/lib/tftp.c:871,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:874,1
    - Dst: DEBUGF
      Src: /src/curl/lib/tftp.c:877,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:877,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:878,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - state
    - event
    argTypes:
    - struct tftp_conn*
    - tftp_event_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 854
    functionDepth: 9
    functionLinenumber: 854
    functionLinenumberEnd: 884
    functionName: tftp_state_machine
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - tftp_rx
    - failf
    - tftp_send_first
    - infof
    - tftp_tx
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_state_machine(struct tftp_conn *state,\n                                   tftp_event_t
      event)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/tftp.c:891,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/tftp.c:892,1
    - Dst: curlx_free
      Src: /src/curl/lib/tftp.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 894
    functionName: tftp_conn_dtor
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void tftp_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/tftp.c:914,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/tftp.c:916,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/tftp.c:930,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/tftp.c:937,1
    - Dst: connclose
      Src: /src/curl/lib/tftp.c:945,1
    - Dst: Curl_conn_get_remote_addr
      Src: /src/curl/lib/tftp.c:954,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/tftp.c:955,1
    - Dst: tftp_set_timeouts
      Src: /src/curl/lib/tftp.c:962,1
    - Dst: bind
      Src: /src/curl/lib/tftp.c:980,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:984,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/tftp.c:985,1
    - Dst: Curl_pgrsStartNow
      Src: /src/curl/lib/tftp.c:991,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 903
    functionDepth: 3
    functionLinenumber: 903
    functionLinenumberEnd: 996
    functionName: tftp_connect
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - failf
    - bind
    - curlx_strerror
    - Curl_conn_meta_set
    - curlx_calloc
    - tftp_set_timeouts
    - connclose
    - Curl_pgrsStartNow
    - Curl_conn_get_remote_addr
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tftp_connect(struct Curl_easy *data, bool *done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/tftp.c:1010,1
    - Dst: Curl_pgrsDone
      Src: /src/curl/lib/tftp.c:1015,1
    - Dst: tftp_translate_code
      Src: /src/curl/lib/tftp.c:1020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1023
    functionName: tftp_done
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - tftp_translate_code
    - Curl_pgrsDone
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_done(struct Curl_easy *data, CURLcode status,\n                          bool
      premature)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_add_in
      Src: /src/curl/lib/tftp.c:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1029
    functionName: tftp_pollset
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_add_in
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_pollset(struct Curl_easy *data,\n                             struct
      easy_pollset *ps)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: recvfrom
      Src: /src/curl/lib/tftp.c:1046,1
    - Dst: memcmp
      Src: /src/curl/lib/tftp.c:1056,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:1057,1
    - Dst: memcpy
      Src: /src/curl/lib/tftp.c:1065,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:1071,1
    - Dst: getrpacketevent
      Src: /src/curl/lib/tftp.c:1077,1
    - Dst: NEXT_BLOCKNUM
      Src: /src/curl/lib/tftp.c:1084,1
    - Dst: getrpacketblock
      Src: /src/curl/lib/tftp.c:1084,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/tftp.c:1085,1
    - Dst: tftp_state_machine
      Src: /src/curl/lib/tftp.c:1089,1
    - Dst: getrpacketblock
      Src: /src/curl/lib/tftp.c:1095,1
    - Dst: tftp_strnlen
      Src: /src/curl/lib/tftp.c:1099,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:1100,1
    - Dst: tftp_parse_option_ack
      Src: /src/curl/lib/tftp.c:1106,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:1115,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/tftp.c:1120,1
    - Dst: tftp_state_machine
      Src: /src/curl/lib/tftp.c:1122,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 2
    argNames:
    - data
    - state
    argTypes:
    - struct Curl_easy*
    - struct tftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1038
    functionDepth: 10
    functionLinenumber: 1038
    functionLinenumberEnd: 1127
    functionName: tftp_receive_packet
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - getrpacketevent
    - failf
    - tftp_state_machine
    - memcmp
    - NEXT_BLOCKNUM
    - Curl_client_write
    - Curl_pgrsUpdate
    - infof
    - getrpacketblock
    - tftp_parse_option_ack
    - recvfrom
    - tftp_strnlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_receive_packet(struct Curl_easy *data,\n                                    struct
      tftp_conn *state)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/tftp.c:1145,1
    - Dst: time
      Src: /src/curl/lib/tftp.c:1151,1
    - Dst: time
      Src: /src/curl/lib/tftp.c:1155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - state
    - event
    argTypes:
    - struct tftp_conn*
    - tftp_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1159
    functionName: tftp_state_timeout
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - time
    - Curl_timeleft_ms
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t tftp_state_timeout(struct tftp_conn *state,\n                                     tftp_event_t
      *event)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/tftp.c:1173,1
    - Dst: tftp_state_timeout
      Src: /src/curl/lib/tftp.c:1180,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:1182,1
    - Dst: tftp_state_machine
      Src: /src/curl/lib/tftp.c:1186,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/tftp.c:1192,1
    - Dst: SOCKET_READABLE
      Src: /src/curl/lib/tftp.c:1196,1
    - Dst: failf
      Src: /src/curl/lib/tftp.c:1202,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/tftp.c:1202,1
    - Dst: tftp_receive_packet
      Src: /src/curl/lib/tftp.c:1206,1
    - Dst: tftp_state_machine
      Src: /src/curl/lib/tftp.c:1209,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/tftp.c:1215,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1168
    functionDepth: 11
    functionLinenumber: 1168
    functionLinenumberEnd: 1221
    functionName: tftp_multi_statemach
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - tftp_state_timeout
    - tftp_receive_packet
    - failf
    - Curl_xfer_setup_nop
    - tftp_state_machine
    - curlx_strerror
    - Curl_conn_meta_get
    - SOCKET_READABLE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tftp_multi_statemach(struct Curl_easy *data, bool *done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tftp_multi_statemach
      Src: /src/curl/lib/tftp.c:1233,1
    - Dst: DEBUGF
      Src: /src/curl/lib/tftp.c:1236,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:1236,1
    - Dst: Curl_pgrsCheck
      Src: /src/curl/lib/tftp.c:1242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1230
    functionDepth: 12
    functionLinenumber: 1230
    functionLinenumberEnd: 1245
    functionName: tftp_doing
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - DEBUGF
    - tftp_multi_statemach
    - Curl_pgrsCheck
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tftp_doing(struct Curl_easy *data, bool *dophase_done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/tftp.c:1258,1
    - Dst: tftp_state_machine
      Src: /src/curl/lib/tftp.c:1264,1
    - Dst: tftp_multi_statemach
      Src: /src/curl/lib/tftp.c:1269,1
    - Dst: DEBUGF
      Src: /src/curl/lib/tftp.c:1272,1
    - Dst: infof
      Src: /src/curl/lib/tftp.c:1272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1254
    functionDepth: 12
    functionLinenumber: 1254
    functionLinenumberEnd: 1275
    functionName: tftp_perform
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - tftp_state_machine
    - tftp_multi_statemach
    - infof
    - Curl_conn_meta_get
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tftp_perform(struct Curl_easy *data, bool *dophase_done)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/tftp.c:1290,1
    - Dst: tftp_connect
      Src: /src/curl/lib/tftp.c:1296,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/tftp.c:1300,1
    - Dst: tftp_perform
      Src: /src/curl/lib/tftp.c:1305,1
    - Dst: tftp_translate_code
      Src: /src/curl/lib/tftp.c:1311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1287
    functionDepth: 13
    functionLinenumber: 1287
    functionLinenumberEnd: 1314
    functionName: tftp_do
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - tftp_perform
    - tftp_translate_code
    - tftp_connect
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode tftp_do(struct Curl_easy *data, bool *done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/tftp.c:1320,1
    - Dst: memcmp
      Src: /src/curl/lib/tftp.c:1325,1
    - Dst: memcmp
      Src: /src/curl/lib/tftp.c:1329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1316
    functionDepth: 0
    functionLinenumber: 1316
    functionLinenumberEnd: 1335
    functionName: tftp_setup_connection
    functionSourceFile: /src/curl/lib/tftp.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tftp_setup_connection(struct Curl_easy *data,\n                                      struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: IS_HTTPS_PROXY
    functionSourceFile: /src/curl/lib/http_proxy.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HTTPS_PROXY(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: IS_QUIC_PROXY
    functionSourceFile: /src/curl/lib/http_proxy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_QUIC_PROXY(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: Curl_raw_toupper
    functionSourceFile: /src/curl/lib/strcase.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char Curl_raw_toupper(char in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Curl_raw_tolower
    functionSourceFile: /src/curl/lib/strcase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char Curl_raw_tolower(char in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/strcase.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Curl_strntoupper
    functionSourceFile: /src/curl/lib/strcase.c
    functionUses: 2
    functionsReached:
    - Curl_raw_toupper
    linkageType: ''
    returnType: void
    signature: void Curl_strntoupper(char *dest, const char *src, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_tolower
      Src: /src/curl/lib/strcase.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: Curl_strntolower
    functionSourceFile: /src/curl/lib/strcase.c
    functionUses: 6
    functionsReached:
    - Curl_raw_tolower
    linkageType: ''
    returnType: void
    signature: void Curl_strntolower(char *dest, const char *src, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/strcase.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Curl_safecmp
    functionSourceFile: /src/curl/lib/strcase.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool Curl_safecmp(const char *a, const char *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: Curl_timestrcmp
    functionSourceFile: /src/curl/lib/strcase.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Curl_timestrcmp(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - struct buf_chunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: chunk_is_empty
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool chunk_is_empty(const struct buf_chunk *chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - struct buf_chunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: chunk_is_full
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool chunk_is_full(const struct buf_chunk *chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - struct buf_chunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: chunk_len
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t chunk_len(const struct buf_chunk *chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - struct buf_chunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: chunk_reset
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void chunk_reset(struct buf_chunk *chunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:54,1
    - Dst: CURLMIN
      Src: /src/curl/lib/bufq.c:56,1
    - Dst: memcpy
      Src: /src/curl/lib/bufq.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - chunk
    - buf
    - len
    argTypes:
    - struct buf_chunk*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: chunk_append
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: "size_t chunk_append(struct buf_chunk *chunk,\n                           const
      uint8_t *buf, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:68,1
    - Dst: memcpy
      Src: /src/curl/lib/bufq.c:73,1
    - Dst: memcpy
      Src: /src/curl/lib/bufq.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - chunk
    - buf
    - len
    argTypes:
    - struct buf_chunk*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 82
    functionName: chunk_read
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: "size_t chunk_read(struct buf_chunk *chunk,\n                         uint8_t
      *buf, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:93,1
    - Dst: reader
      Src: /src/curl/lib/bufq.c:98,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - chunk
    - max_len
    - reader
    - reader_ctx
    - pnread
    argTypes:
    - struct buf_chunk*
    - size_t
    - Curl_bufq_reader*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: chunk_slurpn
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - reader
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode chunk_slurpn(struct buf_chunk *chunk, size_t max_len,\n                             Curl_bufq_reader
      *reader,\n                             void *reader_ctx, size_t *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - chunk
    - pbuf
    - plen
    argTypes:
    - struct buf_chunk*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: chunk_peek
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void chunk_peek(const struct buf_chunk *chunk,\n                       const
      uint8_t **pbuf, size_t *plen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - chunk
    - offset
    - pbuf
    - plen
    argTypes:
    - struct buf_chunk*
    - size_t
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: chunk_peek_at
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void chunk_peek_at(const struct buf_chunk *chunk, size_t offset,\n
      \                         const uint8_t **pbuf, size_t *plen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:126,1
    - Dst: CURLMIN
      Src: /src/curl/lib/bufq.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - chunk
    - amount
    argTypes:
    - struct buf_chunk*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: chunk_skip
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t chunk_skip(struct buf_chunk *chunk, size_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/bufq.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - anchor
    argTypes:
    - struct buf_chunk**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: chunk_list_free
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void chunk_list_free(struct buf_chunk **anchor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:149,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:150,1
    - Dst: memset
      Src: /src/curl/lib/bufq.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pool
    - chunk_size
    - spare_max
    argTypes:
    - struct bufc_pool*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: Curl_bufcp_init
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: "void Curl_bufcp_init(struct bufc_pool *pool,\n                     size_t
      chunk_size, size_t spare_max)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/curl/lib/bufq.c:165,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/bufq.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - pool
    - pchunk
    argTypes:
    - struct bufc_pool*
    - struct buf_chunk**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 184
    functionName: bufcp_take
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    - chunk_reset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode bufcp_take(struct bufc_pool *pool,\n                           struct
      buf_chunk **pchunk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/bufq.c:190,1
    - Dst: chunk_reset
      Src: /src/curl/lib/bufq.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pool
    - chunk
    argTypes:
    - struct bufc_pool*
    - struct buf_chunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: bufcp_put
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - chunk_reset
    linkageType: ''
    returnType: void
    signature: "void bufcp_put(struct bufc_pool *pool,\n                      struct
      buf_chunk *chunk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_list_free
      Src: /src/curl/lib/bufq.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct bufc_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: Curl_bufcp_free
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - chunk_list_free
    linkageType: ''
    returnType: void
    signature: void Curl_bufcp_free(struct bufc_pool *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:209,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:210,1
    - Dst: memset
      Src: /src/curl/lib/bufq.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - q
    - pool
    - chunk_size
    - max_chunks
    - opts
    argTypes:
    - struct bufq*
    - struct bufc_pool*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: bufq_init
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: "void bufq_init(struct bufq *q, struct bufc_pool *pool,\n                      size_t
      chunk_size, size_t max_chunks, int opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufq_init
      Src: /src/curl/lib/bufq.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - q
    - chunk_size
    - max_chunks
    - opts
    argTypes:
    - struct bufq*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: Curl_bufq_init2
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 8
    functionsReached:
    - bufq_init
    linkageType: ''
    returnType: void
    signature: "void Curl_bufq_init2(struct bufq *q, size_t chunk_size, size_t max_chunks,\n
      \                    int opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufq_init
      Src: /src/curl/lib/bufq.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - q
    - chunk_size
    - max_chunks
    argTypes:
    - struct bufq*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Curl_bufq_init
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - bufq_init
    linkageType: ''
    returnType: void
    signature: void Curl_bufq_init(struct bufq *q, size_t chunk_size, size_t max_chunks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufq_init
      Src: /src/curl/lib/bufq.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - q
    - pool
    - max_chunks
    - opts
    argTypes:
    - struct bufq*
    - struct bufc_pool*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: Curl_bufq_initp
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - bufq_init
    linkageType: ''
    returnType: void
    signature: "void Curl_bufq_initp(struct bufq *q, struct bufc_pool *pool,\n                     size_t
      max_chunks, int opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_list_free
      Src: /src/curl/lib/bufq.c:237,1
    - Dst: chunk_list_free
      Src: /src/curl/lib/bufq.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: Curl_bufq_free
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 10
    functionsReached:
    - chunk_list_free
    linkageType: ''
    returnType: void
    signature: void Curl_bufq_free(struct bufq *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: Curl_bufq_reset
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_bufq_reset(struct bufq *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_len
      Src: /src/curl/lib/bufq.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 264
    functionName: Curl_bufq_len
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 6
    functionsReached:
    - chunk_len
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_bufq_len(const struct bufq *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_is_empty
      Src: /src/curl/lib/bufq.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: Curl_bufq_is_empty
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 13
    functionsReached:
    - chunk_is_empty
    linkageType: ''
    returnType: bool
    signature: bool Curl_bufq_is_empty(const struct bufq *q)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_is_full
      Src: /src/curl/lib/bufq.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: Curl_bufq_is_full
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - chunk_is_full
    linkageType: ''
    returnType: bool
    signature: bool Curl_bufq_is_full(const struct bufq *q)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/curl/lib/bufq.c:290,1
    - Dst: bufcp_take
      Src: /src/curl/lib/bufq.c:298,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/bufq.c:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 316
    functionName: get_spare
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - bufcp_take
    - curlx_calloc
    - chunk_reset
    linkageType: ''
    returnType: struct buf_chunk
    signature: struct buf_chunk *get_spare(struct bufq *q)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_is_empty
      Src: /src/curl/lib/bufq.c:322,1
    - Dst: bufcp_put
      Src: /src/curl/lib/bufq.c:328,1
    - Dst: curlx_free
      Src: /src/curl/lib/bufq.c:336,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: prune_head
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - chunk_is_empty
    - bufcp_put
    linkageType: ''
    returnType: void
    signature: void prune_head(struct bufq *q)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_is_full
      Src: /src/curl/lib/bufq.c:350,1
    - Dst: get_spare
      Src: /src/curl/lib/bufq.c:352,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct bufq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: get_non_full_tail
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - chunk_is_full
    - get_spare
    - DEBUGASSERT
    linkageType: ''
    returnType: struct buf_chunk
    signature: struct buf_chunk *get_non_full_tail(struct bufq *q)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:374,1
    - Dst: get_non_full_tail
      Src: /src/curl/lib/bufq.c:377,1
    - Dst: chunk_append
      Src: /src/curl/lib/bufq.c:384,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - q
    - buf
    - len
    - pnwritten
    argTypes:
    - struct bufq*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 392
    functionName: Curl_bufq_write
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 7
    functionsReached:
    - get_non_full_tail
    - DEBUGASSERT
    - chunk_append
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_bufq_write(struct bufq *q,\n                         const
      uint8_t *buf, size_t len,\n                         size_t *pnwritten)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/bufq.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - q
    - buf
    - len
    - pnwritten
    argTypes:
    - struct bufq*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 5
    functionLinenumber: 394
    functionLinenumberEnd: 399
    functionName: Curl_bufq_cwrite
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - Curl_bufq_write
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_bufq_cwrite(struct bufq *q,\n                          const
      char *buf, size_t len,\n                          size_t *pnwritten)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_read
      Src: /src/curl/lib/bufq.c:406,1
    - Dst: prune_head
      Src: /src/curl/lib/bufq.c:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - q
    - buf
    - len
    - pnread
    argTypes:
    - struct bufq*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 415
    functionName: Curl_bufq_read
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 3
    functionsReached:
    - chunk_read
    - prune_head
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_bufq_read(struct bufq *q, uint8_t *buf, size_t len,\n
      \                       size_t *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_read
      Src: /src/curl/lib/bufq.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - q
    - buf
    - len
    - pnread
    argTypes:
    - struct bufq*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 4
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: Curl_bufq_cread
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 3
    functionsReached:
    - Curl_bufq_read
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_bufq_cread(struct bufq *q, char *buf, size_t len,\n
      \                        size_t *pnread)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_is_empty
      Src: /src/curl/lib/bufq.c:426,1
    - Dst: prune_head
      Src: /src/curl/lib/bufq.c:427,1
    - Dst: chunk_is_empty
      Src: /src/curl/lib/bufq.c:429,1
    - Dst: chunk_peek
      Src: /src/curl/lib/bufq.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - q
    - pbuf
    - plen
    argTypes:
    - struct bufq*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: Curl_bufq_peek
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 4
    functionsReached:
    - chunk_is_empty
    - prune_head
    - chunk_peek
    linkageType: ''
    returnType: bool
    signature: "bool Curl_bufq_peek(struct bufq *q,\n                    const uint8_t
      **pbuf, size_t *plen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_len
      Src: /src/curl/lib/bufq.c:445,1
    - Dst: chunk_peek_at
      Src: /src/curl/lib/bufq.c:453,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - q
    - offset
    - pbuf
    - plen
    argTypes:
    - struct bufq*
    - size_t
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 459
    functionName: Curl_bufq_peek_at
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 1
    functionsReached:
    - chunk_peek_at
    - chunk_len
    linkageType: ''
    returnType: bool
    signature: "bool Curl_bufq_peek_at(struct bufq *q, size_t offset,\n                       const
      uint8_t **pbuf, size_t *plen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_skip
      Src: /src/curl/lib/bufq.c:466,1
    - Dst: prune_head
      Src: /src/curl/lib/bufq.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - q
    - amount
    argTypes:
    - struct bufq*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 470
    functionName: Curl_bufq_skip
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 4
    functionsReached:
    - chunk_skip
    - prune_head
    linkageType: ''
    returnType: void
    signature: void Curl_bufq_skip(struct bufq *q, size_t amount)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/bufq.c:480,1
    - Dst: writer
      Src: /src/curl/lib/bufq.c:483,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/bufq.c:499,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - q
    - writer
    - writer_ctx
    - pwritten
    argTypes:
    - struct bufq*
    - Curl_bufq_writer*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 472
    functionDepth: 4
    functionLinenumber: 472
    functionLinenumberEnd: 502
    functionName: Curl_bufq_pass
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - writer
    - Curl_bufq_skip
    - Curl_bufq_peek
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_bufq_pass(struct bufq *q, Curl_bufq_writer *writer,\n
      \                       void *writer_ctx, size_t *pwritten)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_full
      Src: /src/curl/lib/bufq.c:514,1
    - Dst: Curl_bufq_pass
      Src: /src/curl/lib/bufq.c:516,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/bufq.c:528,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - q
    - buf
    - len
    - writer
    - writer_ctx
    - pwritten
    argTypes:
    - struct bufq*
    - uint8_t*
    - size_t
    - Curl_bufq_writer*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 504
    functionDepth: 5
    functionLinenumber: 504
    functionLinenumberEnd: 551
    functionName: Curl_bufq_write_pass
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 1
    functionsReached:
    - Curl_bufq_write
    - Curl_bufq_pass
    - Curl_bufq_is_full
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_bufq_write_pass(struct bufq *q,\n                              const
      uint8_t *buf, size_t len,\n                              Curl_bufq_writer *writer,
      void *writer_ctx,\n                              size_t *pwritten)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_non_full_tail
      Src: /src/curl/lib/bufq.c:560,1
    - Dst: chunk_slurpn
      Src: /src/curl/lib/bufq.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - q
    - max_len
    - reader
    - reader_ctx
    - pnread
    argTypes:
    - struct bufq*
    - size_t
    - Curl_bufq_reader*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 553
    functionDepth: 4
    functionLinenumber: 553
    functionLinenumberEnd: 569
    functionName: Curl_bufq_sipn
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - get_non_full_tail
    - chunk_slurpn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_bufq_sipn(struct bufq *q, size_t max_len,\n                        Curl_bufq_reader
      *reader, void *reader_ctx,\n                        size_t *pnread)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_sipn
      Src: /src/curl/lib/bufq.c:588,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufq.c:603,1
    - Dst: chunk_is_full
      Src: /src/curl/lib/bufq.c:609,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 5
    argNames:
    - q
    - max_len
    - reader
    - reader_ctx
    - pnread
    argTypes:
    - struct bufq*
    - size_t
    - Curl_bufq_reader*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 579
    functionDepth: 5
    functionLinenumber: 579
    functionLinenumberEnd: 613
    functionName: bufq_slurpn
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 0
    functionsReached:
    - chunk_is_full
    - DEBUGASSERT
    - Curl_bufq_sipn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode bufq_slurpn(struct bufq *q, size_t max_len,\n                            Curl_bufq_reader
      *reader, void *reader_ctx,\n                            size_t *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufq_slurpn
      Src: /src/curl/lib/bufq.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - q
    - reader
    - reader_ctx
    - pnread
    argTypes:
    - struct bufq*
    - Curl_bufq_reader*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 615
    functionDepth: 6
    functionLinenumber: 615
    functionLinenumberEnd: 619
    functionName: Curl_bufq_slurp
    functionSourceFile: /src/curl/lib/bufq.c
    functionUses: 2
    functionsReached:
    - bufq_slurpn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_bufq_slurp(struct bufq *q, Curl_bufq_reader *reader,\n
      \                        void *reader_ctx, size_t *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/multi_ntfy.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: mnfty_chunk_create
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    linkageType: ''
    returnType: struct mntfy_chunk
    signature: struct mntfy_chunk *mnfty_chunk_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/multi_ntfy.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - struct mntfy_chunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: mnfty_chunk_destroy
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void mnfty_chunk_destroy(struct mntfy_chunk *chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/multi_ntfy.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - struct mntfy_chunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: mnfty_chunk_reset
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void mnfty_chunk_reset(struct mntfy_chunk *chunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - chunk
    - data
    - type
    argTypes:
    - struct mntfy_chunk*
    - struct Curl_easy*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: mntfy_chunk_append
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool mntfy_chunk_append(struct mntfy_chunk *chunk,\n                               struct
      Curl_easy *data,\n                               uint32_t type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mnfty_chunk_create
      Src: /src/curl/lib/multi_ntfy.c:80,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ntfy.c:83,1
    - Dst: mnfty_chunk_create
      Src: /src/curl/lib/multi_ntfy.c:90,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ntfy.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - mntfy
    argTypes:
    - struct curl_multi_ntfy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 98
    functionName: mntfy_non_full_tail
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - mnfty_chunk_create
    - DEBUGASSERT
    linkageType: ''
    returnType: struct mntfy_chunk
    signature: struct mntfy_chunk *mntfy_non_full_tail(struct curl_multi_ntfy *mntfy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi_ntfy.c:109,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/lib/multi_ntfy.c:111,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ntfy.c:113,1
    - Dst: struct Curl_multi*::ntfy::ntfy_cb
      Src: /src/curl/lib/multi_ntfy.c:115,1
    - Dst: mnfty_chunk_reset
      Src: /src/curl/lib/multi_ntfy.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - multi
    - chunk
    argTypes:
    - struct Curl_multi*
    - struct mntfy_chunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: mntfy_chunk_dispatch_all
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - struct Curl_multi*::ntfy::ntfy_cb
    - Curl_multi_get_easy
    - Curl_uint32_bset_contains
    - mnfty_chunk_reset
    - CURL_TRC_M
    linkageType: ''
    returnType: void
    signature: "void mntfy_chunk_dispatch_all(struct Curl_multi *multi,\n                                     struct
      mntfy_chunk *chunk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/multi_ntfy.c:126,1
    - Dst: Curl_uint32_bset_init
      Src: /src/curl/lib/multi_ntfy.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: Curl_mntfy_init
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_bset_init
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_mntfy_init(struct Curl_multi *multi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/lib/multi_ntfy.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: Curl_mntfy_resize
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_bset_resize
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode Curl_mntfy_resize(struct Curl_multi *multi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mnfty_chunk_destroy
      Src: /src/curl/lib/multi_ntfy.c:142,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/lib/multi_ntfy.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: Curl_mntfy_cleanup
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - mnfty_chunk_destroy
    - Curl_uint32_bset_destroy
    linkageType: ''
    returnType: void
    signature: void Curl_mntfy_cleanup(struct Curl_multi *multi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/lib/multi_ntfy.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - multi
    - type
    argTypes:
    - struct Curl_multi*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: Curl_mntfy_enable
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_bset_add
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode Curl_mntfy_enable(struct Curl_multi *multi, unsigned int
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi_ntfy.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - multi
    - type
    argTypes:
    - struct Curl_multi*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: Curl_mntfy_disable
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_bset_remove
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode Curl_mntfy_disable(struct Curl_multi *multi, unsigned int
      type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/lib/multi_ntfy.c:168,1
    - Dst: mntfy_non_full_tail
      Src: /src/curl/lib/multi_ntfy.c:170,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ntfy.c:171,1
    - Dst: mntfy_chunk_append
      Src: /src/curl/lib/multi_ntfy.c:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - data
    - type
    argTypes:
    - struct Curl_easy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: Curl_mntfy_add
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_bset_contains
    - mntfy_non_full_tail
    - CURL_TRC_M
    - mntfy_chunk_append
    linkageType: ''
    returnType: void
    signature: void Curl_mntfy_add(struct Curl_easy *data, unsigned int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ntfy.c:182,1
    - Dst: mntfy_chunk_dispatch_all
      Src: /src/curl/lib/multi_ntfy.c:187,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ntfy.c:188,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ntfy.c:192,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ntfy.c:193,1
    - Dst: mnfty_chunk_destroy
      Src: /src/curl/lib/multi_ntfy.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 207
    functionName: Curl_mntfy_dispatch_all
    functionSourceFile: /src/curl/lib/multi_ntfy.c
    functionUses: 0
    functionsReached:
    - mntfy_chunk_dispatch_all
    - mnfty_chunk_destroy
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode Curl_mntfy_dispatch_all(struct Curl_multi *multi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_chunks.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - data
    - ch
    - ignore_body
    argTypes:
    - struct Curl_easy*
    - struct Curl_chunker*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: Curl_httpchunk_init
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    linkageType: ''
    returnType: void
    signature: "void Curl_httpchunk_init(struct Curl_easy *data, struct Curl_chunker
      *ch,\n                         bool ignore_body)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http_chunks.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - data
    - ch
    - ignore_body
    argTypes:
    - struct Curl_easy*
    - struct Curl_chunker*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: Curl_httpchunk_reset
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_reset
    linkageType: ''
    returnType: void
    signature: "void Curl_httpchunk_reset(struct Curl_easy *data, struct Curl_chunker
      *ch,\n                          bool ignore_body)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http_chunks.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - ch
    argTypes:
    - struct Curl_easy*
    - struct Curl_chunker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: Curl_httpchunk_free
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void Curl_httpchunk_free(struct Curl_easy *data, struct Curl_chunker
      *ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - ch
    argTypes:
    - struct Curl_easy*
    - struct Curl_chunker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: Curl_httpchunk_is_done
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_httpchunk_is_done(struct Curl_easy *data, struct Curl_chunker
      *ch)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/http_chunks.c:127,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/http_chunks.c:129,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/http_chunks.c:140,1
    - Dst: failf
      Src: /src/curl/lib/http_chunks.c:142,1
    - Dst: failf
      Src: /src/curl/lib/http_chunks.c:157,1
    - Dst: curlx_str_hex
      Src: /src/curl/lib/http_chunks.c:165,1
    - Dst: failf
      Src: /src/curl/lib/http_chunks.c:166,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/http_chunks.c:184,1
    - Dst: curlx_sotouz
      Src: /src/curl/lib/http_chunks.c:200,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/http_chunks.c:205,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/http_chunks.c:208,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/http_chunks.c:220,1
    - Dst: Curl_httpchunk_reset
      Src: /src/curl/lib/http_chunks.c:232,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_chunks.c:246,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_chunks.c:252,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_chunks.c:252,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http_chunks.c:258,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http_chunks.c:259,1
    - Dst: Curl_verify_header
      Src: /src/curl/lib/http_chunks.c:263,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/http_chunks.c:272,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/http_chunks.c:277,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http_chunks.c:287,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http_chunks.c:300,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/http_chunks.c:352,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/http_chunks.c:358,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 188
    argCount: 6
    argNames:
    - data
    - ch
    - cw_next
    - buf
    - blen
    - pconsumed
    argTypes:
    - struct Curl_easy*
    - struct Curl_chunker*
    - struct Curl_cwriter*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 370
    functionName: httpchunk_readwrite
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - Curl_verify_header
    - STRCONST
    - failf
    - curlx_dyn_addn
    - Curl_client_write
    - ISXDIGIT
    - curlx_sotouz
    - curlx_dyn_len
    - curlx_dyn_ptr
    - curlx_dyn_reset
    - Curl_httpchunk_reset
    - CURL_TRC_WRITE
    - curlx_str_hex
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode httpchunk_readwrite(struct Curl_easy *data,\n                                    struct
      Curl_chunker *ch,\n                                    struct Curl_cwriter *cw_next,\n
      \                                   const char *buf, size_t blen,\n                                    size_t
      *pconsumed)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - code
    argTypes:
    - CHUNKcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 390
    functionName: Curl_chunked_strerror
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Curl_chunked_strerror(CHUNKcode code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: httpchunk_readwrite
      Src: /src/curl/lib/http_chunks.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - data
    - ch
    - buf
    - blen
    - pconsumed
    argTypes:
    - struct Curl_easy*
    - struct Curl_chunker*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: Curl_httpchunk_read
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - httpchunk_readwrite
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_httpchunk_read(struct Curl_easy *data,\n                             struct
      Curl_chunker *ch,\n                             char *buf, size_t blen,\n                             size_t
      *pconsumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_httpchunk_init
      Src: /src/curl/lib/http_chunks.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 413
    functionName: cw_chunked_init
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - Curl_httpchunk_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_chunked_init(struct Curl_easy *data,\n                                struct
      Curl_cwriter *writer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_httpchunk_free
      Src: /src/curl/lib/http_chunks.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: cw_chunked_close
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - Curl_httpchunk_free
    linkageType: ''
    returnType: void
    signature: "void cw_chunked_close(struct Curl_easy *data,\n                             struct
      Curl_cwriter *writer)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/http_chunks.c:431,1
    - Dst: httpchunk_readwrite
      Src: /src/curl/lib/http_chunks.c:434,1
    - Dst: failf
      Src: /src/curl/lib/http_chunks.c:439,1
    - Dst: failf
      Src: /src/curl/lib/http_chunks.c:442,1
    - Dst: Curl_chunked_strerror
      Src: /src/curl/lib/http_chunks.c:443,1
    - Dst: infof
      Src: /src/curl/lib/http_chunks.c:453,1
    - Dst: failf
      Src: /src/curl/lib/http_chunks.c:457,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - blen
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 462
    functionName: cw_chunked_write
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - failf
    - infof
    - Curl_chunked_strerror
    - httpchunk_readwrite
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_chunked_write(struct Curl_easy *data,\n                                 struct
      Curl_cwriter *writer, int type,\n                                 const char
      *buf, size_t blen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/http_chunks.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 492
    functionName: cr_chunked_init
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_chunked_init(struct Curl_easy *data,\n                                struct
      Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/http_chunks.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 500
    functionName: cr_chunked_close
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: "void cr_chunked_close(struct Curl_easy *data,\n                             struct
      Curl_creader *reader)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/http_chunks.c:512,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/http_chunks.c:513,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_chunks.c:513,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/http_chunks.c:516,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_chunks.c:516,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/http_chunks.c:520,1
    - Dst: struct Curl_easy*::set::trailer_callback
      Src: /src/curl/lib/http_chunks.c:521,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/http_chunks.c:522,1
    - Dst: failf
      Src: /src/curl/lib/http_chunks.c:525,1
    - Dst: strchr
      Src: /src/curl/lib/http_chunks.c:532,1
    - Dst: infof
      Src: /src/curl/lib/http_chunks.c:534,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/http_chunks.c:538,1
    - Dst: strlen
      Src: /src/curl/lib/http_chunks.c:538,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/http_chunks.c:540,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_chunks.c:540,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/http_chunks.c:545,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_chunks.c:545,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/http_chunks.c:548,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/http_chunks.c:549,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 502
    functionDepth: 6
    functionLinenumber: 502
    functionLinenumberEnd: 552
    functionName: add_last_chunk
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - STRCONST
    - failf
    - curl_slist_free_all
    - struct Curl_easy*::set::trailer_callback
    - CURL_TRC_READ
    - infof
    - Curl_bufq_cwrite
    - Curl_set_in_callback
    - strchr
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode add_last_chunk(struct Curl_easy *data,\n                               struct
      Curl_creader *reader)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_chunks.c:564,1
    - Dst: CURLMIN
      Src: /src/curl/lib/http_chunks.c:565,1
    - Dst: Curl_creader_read
      Src: /src/curl/lib/http_chunks.c:576,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http_chunks.c:588,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/http_chunks.c:592,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/http_chunks.c:594,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/http_chunks.c:596,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/http_chunks.c:597,1
    - Dst: add_last_chunk
      Src: /src/curl/lib/http_chunks.c:604,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - data
    - reader
    - buf
    - blen
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 554
    functionDepth: 7
    functionLinenumber: 554
    functionLinenumberEnd: 606
    functionName: add_chunk
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - add_last_chunk
    - DEBUGASSERT
    - CURLMIN
    - Curl_creader_read
    - CURL_TRC_READ
    - Curl_bufq_cwrite
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode add_chunk(struct Curl_easy *data,\n                          struct
      Curl_creader *reader,\n                          char *buf, size_t blen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http_chunks.c:620,1
    - Dst: add_chunk
      Src: /src/curl/lib/http_chunks.c:622,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http_chunks.c:627,1
    - Dst: Curl_bufq_cread
      Src: /src/curl/lib/http_chunks.c:628,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http_chunks.c:629,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_chunks.c:638,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - pnread
    - peos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 608
    functionDepth: 8
    functionLinenumber: 608
    functionLinenumberEnd: 640
    functionName: cr_chunked_read
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_cread
    - add_chunk
    - DEBUGASSERT
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_chunked_read(struct Curl_easy *data,\n                                struct
      Curl_creader *reader,\n                                char *buf, size_t blen,\n
      \                               size_t *pnread, bool *peos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 649
    functionName: cr_chunked_total_length
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t cr_chunked_total_length(struct Curl_easy *data,\n                                          struct
      Curl_creader *reader)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_create
      Src: /src/curl/lib/http_chunks.c:671,1
    - Dst: Curl_creader_add
      Src: /src/curl/lib/http_chunks.c:674,1
    - Dst: Curl_creader_free
      Src: /src/curl/lib/http_chunks.c:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 666
    functionDepth: 6
    functionLinenumber: 666
    functionLinenumberEnd: 679
    functionName: Curl_httpchunk_add_reader
    functionSourceFile: /src/curl/lib/http_chunks.c
    functionUses: 1
    functionsReached:
    - Curl_creader_create
    - Curl_creader_add
    - Curl_creader_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_httpchunk_add_reader(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/cf-h2-proxy.c:84,1
    - Dst: Curl_bufq_init
      Src: /src/curl/lib/cf-h2-proxy.c:86,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/cf-h2-proxy.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ts
    - dest
    argTypes:
    - struct tunnel_stream*
    - struct Curl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 79
    functionDepth: 7
    functionLinenumber: 79
    functionLinenumberEnd: 97
    functionName: tunnel_stream_init
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_init
    - curl_maprintf
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tunnel_stream_init(struct tunnel_stream *ts,\n                                   struct
      Curl_peer *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_resp_free
      Src: /src/curl/lib/cf-h2-proxy.c:101,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/cf-h2-proxy.c:103,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/cf-h2-proxy.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: tunnel_stream_reset
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_http_resp_free
    - Curl_bufq_reset
    linkageType: ''
    returnType: void
    signature: void tunnel_stream_reset(struct tunnel_stream *ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_resp_free
      Src: /src/curl/lib/cf-h2-proxy.c:115,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/cf-h2-proxy.c:116,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/cf-h2-proxy.c:117,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-h2-proxy.c:118,1
    - Dst: memset
      Src: /src/curl/lib/cf-h2-proxy.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: tunnel_stream_clear
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_http_resp_free
    - Curl_bufq_free
    - memset
    linkageType: ''
    returnType: void
    signature: void tunnel_stream_clear(struct tunnel_stream *ts)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:145,1
    - Dst: tunnel_stream_reset
      Src: /src/curl/lib/cf-h2-proxy.c:146,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:150,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:155,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:160,1
    - Dst: infof
      Src: /src/curl/lib/cf-h2-proxy.c:162,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-h2-proxy.c:166,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:169,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-h2-proxy.c:174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - cf
    - ts
    - new_state
    - data
    - udp_tunnel
    argTypes:
    - struct Curl_cfilter*
    - struct tunnel_stream*
    - h2_tunnel_state
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 177
    functionName: h2_tunnel_go_state
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - infof
    - tunnel_stream_reset
    - CURL_TRC_CF
    - FALLTHROUGH
    linkageType: ''
    returnType: void
    signature: "void h2_tunnel_go_state(struct Curl_cfilter *cf,\n                               struct
      tunnel_stream *ts,\n                               h2_tunnel_state new_state,\n
      \                              struct Curl_easy *data,\n                               bool
      udp_tunnel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: CF_CTX_CALL_DATA
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_CTX_CALL_DATA(cf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_session_del
      Src: /src/curl/lib/cf-h2-proxy.c:207,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/cf-h2-proxy.c:209,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/cf-h2-proxy.c:210,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/cf-h2-proxy.c:211,1
    - Dst: tunnel_stream_clear
      Src: /src/curl/lib/cf-h2-proxy.c:212,1
    - Dst: memset
      Src: /src/curl/lib/cf-h2-proxy.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_h2_proxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: cf_h2_proxy_ctx_clear
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp2_session_del
    - Curl_peer_unlink
    - Curl_bufq_free
    - memset
    - tunnel_stream_clear
    linkageType: ''
    returnType: void
    signature: void cf_h2_proxy_ctx_clear(struct cf_h2_proxy_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_h2_proxy_ctx_clear
      Src: /src/curl/lib/cf-h2-proxy.c:220,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-h2-proxy.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_h2_proxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: cf_h2_proxy_ctx_free
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - cf_h2_proxy_ctx_clear
    linkageType: ''
    returnType: void
    signature: void cf_h2_proxy_ctx_free(struct cf_h2_proxy_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:232,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:233,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/cf-h2-proxy.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - cf
    - data
    - tunnel
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: drain_tunnel
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_multi_mark_dirty
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: void
    signature: "void drain_tunnel(struct Curl_cfilter *cf,\n                         struct
      Curl_easy *data,\n                         struct tunnel_stream *tunnel)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/cf-h2-proxy.c:244,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/cf-h2-proxy.c:246,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - writer_ctx
    - buf
    - buflen
    - pnwritten
    argTypes:
    - void*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 252
    functionName: proxy_h2_nw_out_writer
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_send
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode proxy_h2_nw_out_writer(void *writer_ctx,\n                                       const
      uint8_t *buf, size_t buflen,\n                                       size_t
      *pnwritten)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_option_new
      Src: /src/curl/lib/cf-h2-proxy.c:262,1
    - Dst: nghttp2_option_set_no_auto_window_update
      Src: /src/curl/lib/cf-h2-proxy.c:266,1
    - Dst: nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation
      Src: /src/curl/lib/cf-h2-proxy.c:271,1
    - Dst: nghttp2_session_client_new3
      Src: /src/curl/lib/cf-h2-proxy.c:273,1
    - Dst: nghttp2_option_del
      Src: /src/curl/lib/cf-h2-proxy.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cf
    - cbs
    argTypes:
    - struct Curl_cfilter*
    - nghttp2_session_callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 276
    functionName: proxy_h2_client_new
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp2_option_set_no_auto_window_update
    - nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation
    - nghttp2_option_del
    - nghttp2_option_new
    - nghttp2_session_client_new3
    linkageType: ''
    returnType: int
    signature: "int proxy_h2_client_new(struct Curl_cfilter *cf,\n                               nghttp2_session_callbacks
      *cbs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_session_want_read
      Src: /src/curl/lib/cf-h2-proxy.c:280,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/cf-h2-proxy.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_h2_proxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: proxy_h2_should_close_session
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp2_session_want_read
    - nghttp2_session_want_write
    linkageType: ''
    returnType: int
    signature: int proxy_h2_should_close_session(struct cf_h2_proxy_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:291,1
    - Dst: Curl_bufq_pass
      Src: /src/curl/lib/cf-h2-proxy.c:294,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:298,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/cf-h2-proxy.c:299,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:304,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 284
    functionDepth: 5
    functionLinenumber: 284
    functionLinenumberEnd: 306
    functionName: proxy_h2_nw_out_flush
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - Curl_bufq_pass
    - CURL_TRC_CF
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode proxy_h2_nw_out_flush(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/cf-h2-proxy.c:321,1
    - Dst: nghttp2_session_mem_recv
      Src: /src/curl/lib/cf-h2-proxy.c:323,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:324,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/cf-h2-proxy.c:325,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:326,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/cf-h2-proxy.c:328,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/cf-h2-proxy.c:336,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:337,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:338,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:342,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/cf-h2-proxy.c:343,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 347
    functionName: proxy_h2_process_pending_input
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - failf
    - nghttp2_strerror
    - Curl_bufq_skip
    - Curl_bufq_peek
    - Curl_bufq_is_empty
    - curlx_sztouz
    - nghttp2_session_mem_recv
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode proxy_h2_process_pending_input(struct Curl_cfilter *cf,\n
      \                                              struct Curl_easy *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:357,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:358,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/cf-h2-proxy.c:359,1
    - Dst: proxy_h2_process_pending_input
      Src: /src/curl/lib/cf-h2-proxy.c:360,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:369,1
    - Dst: Curl_bufq_is_full
      Src: /src/curl/lib/cf-h2-proxy.c:370,1
    - Dst: Curl_cf_recv_bufq
      Src: /src/curl/lib/cf-h2-proxy.c:372,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:373,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/cf-h2-proxy.c:374,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:377,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:383,1
    - Dst: proxy_h2_process_pending_input
      Src: /src/curl/lib/cf-h2-proxy.c:388,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 349
    functionDepth: 5
    functionLinenumber: 349
    functionLinenumberEnd: 394
    functionName: proxy_h2_progress_ingress
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - proxy_h2_process_pending_input
    - failf
    - Curl_bufq_is_full
    - Curl_cf_recv_bufq
    - Curl_bufq_is_empty
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode proxy_h2_progress_ingress(struct Curl_cfilter *cf,\n                                          struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/cf-h2-proxy.c:403,1
    - Dst: nghttp2_session_send
      Src: /src/curl/lib/cf-h2-proxy.c:404,1
    - Dst: nghttp2_is_fatal
      Src: /src/curl/lib/cf-h2-proxy.c:406,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:407,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/cf-h2-proxy.c:408,1
    - Dst: proxy_h2_nw_out_flush
      Src: /src/curl/lib/cf-h2-proxy.c:411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 412
    functionName: proxy_h2_progress_egress
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp2_session_send
    - proxy_h2_nw_out_flush
    - nghttp2_strerror
    - nghttp2_is_fatal
    - nghttp2_session_want_write
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode proxy_h2_progress_egress(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/cf-h2-proxy.c:420,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:426,1
    - Dst: Curl_bufq_write_pass
      Src: /src/curl/lib/cf-h2-proxy.c:428,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - h2
    - buf
    - blen
    - flags
    - userp
    argTypes:
    - nghttp2_session*
    - uint8_t*
    - size_t
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 414
    functionDepth: 6
    functionLinenumber: 414
    functionLinenumberEnd: 444
    functionName: on_session_send
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_bufq_write_pass
    - CF_DATA_CURRENT
    - DEBUGASSERT
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t on_session_send(nghttp2_session *h2,\n                               const
      uint8_t *buf, size_t blen, int flags,\n                               void *userp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/cf-h2-proxy.c:452,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:455,1
    - Dst: Curl_trc_cf_is_verbose
      Src: /src/curl/lib/cf-h2-proxy.c:456,1
    - Dst: Curl_nghttp2_fr_print
      Src: /src/curl/lib/cf-h2-proxy.c:459,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - session
    - frame
    - userp
    argTypes:
    - nghttp2_session*
    - nghttp2_frame*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 464
    functionName: proxy_h2_on_frame_send
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_trc_cf_is_verbose
    - Curl_nghttp2_fr_print
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int proxy_h2_on_frame_send(nghttp2_session *session,\n                                  const
      nghttp2_frame *frame,\n                                  void *userp)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/cf-h2-proxy.c:473,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:477,1
    - Dst: Curl_trc_cf_is_verbose
      Src: /src/curl/lib/cf-h2-proxy.c:479,1
    - Dst: Curl_nghttp2_fr_print
      Src: /src/curl/lib/cf-h2-proxy.c:482,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:484,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:490,1
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/cf-h2-proxy.c:498,1
    - Dst: drain_tunnel
      Src: /src/curl/lib/cf-h2-proxy.c:499,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:512,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:524,1
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/cf-h2-proxy.c:533,1
    - Dst: drain_tunnel
      Src: /src/curl/lib/cf-h2-proxy.c:534,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 3
    argNames:
    - session
    - frame
    - userp
    argTypes:
    - nghttp2_session*
    - nghttp2_frame*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 545
    functionName: proxy_h2_on_frame_recv
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - CURL_REQ_WANT_SEND
    - DEBUGASSERT
    - Curl_trc_cf_is_verbose
    - Curl_nghttp2_fr_print
    - drain_tunnel
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int proxy_h2_on_frame_recv(nghttp2_session *session,\n                                  const
      nghttp2_frame *frame,\n                                  void *userp)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/cf-h2-proxy.c:556,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:562,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:564,1
    - Dst: memcmp
      Src: /src/curl/lib/cf-h2-proxy.c:579,1
    - Dst: Curl_http_decode_status
      Src: /src/curl/lib/cf-h2-proxy.c:585,1
    - Dst: Curl_http_resp_make
      Src: /src/curl/lib/cf-h2-proxy.c:589,1
    - Dst: Curl_http_resp_free
      Src: /src/curl/lib/cf-h2-proxy.c:593,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:595,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/cf-h2-proxy.c:603,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:609,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 8
    argNames:
    - session
    - frame
    - name
    - namelen
    - value
    - valuelen
    - flags
    - userp
    argTypes:
    - nghttp2_session*
    - nghttp2_frame*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 613
    functionName: proxy_h2_on_header
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_dynhds_add
    - Curl_http_resp_make
    - DEBUGASSERT
    - memcmp
    - Curl_http_resp_free
    - Curl_http_decode_status
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int proxy_h2_on_header(nghttp2_session *session,\n                              const
      nghttp2_frame *frame,\n                              const uint8_t *name, size_t
      namelen,\n                              const uint8_t *value, size_t valuelen,\n
      \                             uint8_t flags,\n                              void
      *userp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/cf-h2-proxy.c:624,1
    - Dst: nghttp2_session_get_stream_user_data
      Src: /src/curl/lib/cf-h2-proxy.c:635,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:638,1
    - Dst: Curl_bufq_read
      Src: /src/curl/lib/cf-h2-proxy.c:640,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:646,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:649,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 7
    argNames:
    - session
    - stream_id
    - buf
    - length
    - data_flags
    - source
    - userp
    argTypes:
    - nghttp2_session*
    - int32_t
    - uint8_t*
    - size_t
    - uint32_t*
    - nghttp2_data_source*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 615
    functionDepth: 4
    functionLinenumber: 615
    functionLinenumberEnd: 653
    functionName: tunnel_send_callback
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_bufq_is_empty
    - nghttp2_session_get_stream_user_data
    - Curl_bufq_read
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tunnel_send_callback(nghttp2_session *session,\n                                    int32_t
      stream_id,\n                                    uint8_t *buf, size_t length,\n
      \                                   uint32_t *data_flags,\n                                    nghttp2_data_source
      *source,\n                                    void *userp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:666,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/cf-h2-proxy.c:671,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - session
    - flags
    - stream_id
    - mem
    - len
    - userp
    argTypes:
    - nghttp2_session*
    - uint8_t
    - int32_t
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 655
    functionDepth: 5
    functionLinenumber: 655
    functionLinenumberEnd: 682
    functionName: tunnel_recv_callback
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_write
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int tunnel_recv_callback(nghttp2_session *session, uint8_t flags,\n
      \                               int32_t stream_id,\n                                const
      uint8_t *mem, size_t len, void *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/cf-h2-proxy.c:690,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:697,1
    - Dst: nghttp2_http2_strerror
      Src: /src/curl/lib/cf-h2-proxy.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - session
    - stream_id
    - error_code
    - userp
    argTypes:
    - nghttp2_session*
    - int32_t
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 705
    functionName: proxy_h2_on_stream_close
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp2_http2_strerror
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int proxy_h2_on_stream_close(nghttp2_session *session,\n                                    int32_t
      stream_id,\n                                    uint32_t error_code, void *userp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/cf-h2-proxy.c:725,1
    - Dst: Curl_http_req_to_h2
      Src: /src/curl/lib/cf-h2-proxy.c:726,1
    - Dst: Curl_dynhds_to_nva
      Src: /src/curl/lib/cf-h2-proxy.c:730,1
    - Dst: nghttp2_submit_request
      Src: /src/curl/lib/cf-h2-proxy.c:741,1
    - Dst: nghttp2_submit_request
      Src: /src/curl/lib/cf-h2-proxy.c:745,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:750,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/cf-h2-proxy.c:751,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-h2-proxy.c:758,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/cf-h2-proxy.c:759,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 9
    argNames:
    - pstream_id
    - cf
    - data
    - h2
    - req
    - pri_spec
    - stream_user_data
    - read_callback
    - read_ctx
    argTypes:
    - int32_t*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - nghttp2_session*
    - struct httpreq*
    - nghttp2_priority_spec*
    - void*
    - nghttp2_data_source_read_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 762
    functionName: proxy_h2_submit
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_http_req_to_h2
    - failf
    - nghttp2_strerror
    - curlx_free
    - Curl_dynhds_free
    - Curl_dynhds_to_nva
    - Curl_dynhds_init
    - nghttp2_submit_request
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode proxy_h2_submit(\n  int32_t *pstream_id,\n  struct Curl_cfilter
      *cf,\n  struct Curl_easy *data,\n  nghttp2_session *h2,\n  struct httpreq *req,\n
      \ const nghttp2_priority_spec *pri_spec,\n  void *stream_user_data,\n  nghttp2_data_source_read_callback
      read_callback,\n  void *read_ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_proxy_create_tunnel_request
      Src: /src/curl/lib/cf-h2-proxy.c:772,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/cf-h2-proxy.c:777,1
    - Dst: proxy_h2_submit
      Src: /src/curl/lib/cf-h2-proxy.c:781,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:784,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/cf-h2-proxy.c:785,1
    - Dst: Curl_http_req_free
      Src: /src/curl/lib/cf-h2-proxy.c:790,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:792,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 764
    functionDepth: 5
    functionLinenumber: 764
    functionLinenumberEnd: 794
    functionName: submit_CONNECT
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp2_strerror
    - Curl_http_req_free
    - failf
    - Curl_http_proxy_create_tunnel_request
    - Curl_creader_set_null
    - proxy_h2_submit
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode submit_CONNECT(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               struct tunnel_stream *ts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_proxy_inspect_tunnel_response
      Src: /src/curl/lib/cf-h2-proxy.c:804,1
    - Dst: h2_tunnel_go_state
      Src: /src/curl/lib/cf-h2-proxy.c:810,1
    - Dst: h2_tunnel_go_state
      Src: /src/curl/lib/cf-h2-proxy.c:814,1
    - Dst: h2_tunnel_go_state
      Src: /src/curl/lib/cf-h2-proxy.c:819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 824
    functionName: inspect_response
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_http_proxy_inspect_tunnel_response
    - h2_tunnel_go_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode inspect_response(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct tunnel_stream *ts)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:833,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:834,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:836,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:844,1
    - Dst: submit_CONNECT
      Src: /src/curl/lib/cf-h2-proxy.c:845,1
    - Dst: h2_tunnel_go_state
      Src: /src/curl/lib/cf-h2-proxy.c:848,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-h2-proxy.c:850,1
    - Dst: proxy_h2_progress_ingress
      Src: /src/curl/lib/cf-h2-proxy.c:854,1
    - Dst: proxy_h2_progress_egress
      Src: /src/curl/lib/cf-h2-proxy.c:856,1
    - Dst: h2_tunnel_go_state
      Src: /src/curl/lib/cf-h2-proxy.c:858,1
    - Dst: h2_tunnel_go_state
      Src: /src/curl/lib/cf-h2-proxy.c:864,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-h2-proxy.c:871,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:874,1
    - Dst: inspect_response
      Src: /src/curl/lib/cf-h2-proxy.c:875,1
    - Dst: h2_tunnel_go_state
      Src: /src/curl/lib/cf-h2-proxy.c:894,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 826
    functionDepth: 7
    functionLinenumber: 826
    functionLinenumberEnd: 897
    functionName: H2_CONNECT
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - submit_CONNECT
    - proxy_h2_progress_ingress
    - proxy_h2_progress_egress
    - inspect_response
    - FALLTHROUGH
    - h2_tunnel_go_state
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode H2_CONNECT(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data,\n                           struct tunnel_stream *ts)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:910,1
    - Dst: memset
      Src: /src/curl/lib/cf-h2-proxy.c:911,1
    - Dst: Curl_bufq_init
      Src: /src/curl/lib/cf-h2-proxy.c:913,1
    - Dst: Curl_bufq_init
      Src: /src/curl/lib/cf-h2-proxy.c:914,1
    - Dst: tunnel_stream_init
      Src: /src/curl/lib/cf-h2-proxy.c:916,1
    - Dst: nghttp2_session_callbacks_new
      Src: /src/curl/lib/cf-h2-proxy.c:919,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:921,1
    - Dst: nghttp2_session_callbacks_set_send_callback
      Src: /src/curl/lib/cf-h2-proxy.c:925,1
    - Dst: nghttp2_session_callbacks_set_on_frame_recv_callback
      Src: /src/curl/lib/cf-h2-proxy.c:926,1
    - Dst: nghttp2_session_callbacks_set_on_frame_send_callback
      Src: /src/curl/lib/cf-h2-proxy.c:929,1
    - Dst: nghttp2_session_callbacks_set_on_data_chunk_recv_callback
      Src: /src/curl/lib/cf-h2-proxy.c:932,1
    - Dst: nghttp2_session_callbacks_set_on_stream_close_callback
      Src: /src/curl/lib/cf-h2-proxy.c:934,1
    - Dst: nghttp2_session_callbacks_set_on_header_callback
      Src: /src/curl/lib/cf-h2-proxy.c:936,1
    - Dst: proxy_h2_client_new
      Src: /src/curl/lib/cf-h2-proxy.c:939,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:941,1
    - Dst: Curl_multi_max_concurrent_streams
      Src: /src/curl/lib/cf-h2-proxy.c:949,1
    - Dst: nghttp2_submit_settings
      Src: /src/curl/lib/cf-h2-proxy.c:954,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:956,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/cf-h2-proxy.c:957,1
    - Dst: nghttp2_session_set_local_window_size
      Src: /src/curl/lib/cf-h2-proxy.c:963,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:966,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/cf-h2-proxy.c:967,1
    - Dst: nghttp2_session_callbacks_del
      Src: /src/curl/lib/cf-h2-proxy.c:977,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:978,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 902
    functionDepth: 8
    functionLinenumber: 902
    functionLinenumberEnd: 980
    functionName: cf_h2_proxy_ctx_init
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_bufq_init
    - nghttp2_session_callbacks_set_on_header_callback
    - nghttp2_session_callbacks_new
    - CURL_TRC_CF
    - proxy_h2_client_new
    - nghttp2_session_callbacks_del
    - nghttp2_session_callbacks_set_on_data_chunk_recv_callback
    - failf
    - nghttp2_strerror
    - nghttp2_session_callbacks_set_on_frame_send_callback
    - nghttp2_session_callbacks_set_on_stream_close_callback
    - nghttp2_submit_settings
    - memset
    - nghttp2_session_callbacks_set_send_callback
    - tunnel_stream_init
    - nghttp2_session_set_local_window_size
    - nghttp2_session_callbacks_set_on_frame_recv_callback
    - Curl_multi_max_concurrent_streams
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_proxy_ctx_init(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/cf-h2-proxy.c:998,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/cf-h2-proxy.c:1005,1
    - Dst: cf_h2_proxy_ctx_init
      Src: /src/curl/lib/cf-h2-proxy.c:1007,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:1011,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/cf-h2-proxy.c:1013,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:1014,1
    - Dst: H2_CONNECT
      Src: /src/curl/lib/cf-h2-proxy.c:1022,1
    - Dst: Curl_req_soft_reset
      Src: /src/curl/lib/cf-h2-proxy.c:1029,1
    - Dst: Curl_client_reset
      Src: /src/curl/lib/cf-h2-proxy.c:1030,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/cf-h2-proxy.c:1032,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 982
    functionDepth: 9
    functionLinenumber: 982
    functionLinenumberEnd: 1034
    functionName: cf_h2_proxy_connect
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - failf
    - Curl_req_soft_reset
    - Curl_client_reset
    - H2_CONNECT
    - Curl_timeleft_ms
    - Curl_conn_cf_connect
    - cf_h2_proxy_ctx_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_proxy_connect(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_h2_proxy_ctx_free
      Src: /src/curl/lib/cf-h2-proxy.c:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1036
    functionDepth: 6
    functionLinenumber: 1036
    functionLinenumberEnd: 1046
    functionName: cf_h2_proxy_destroy
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - cf_h2_proxy_ctx_free
    linkageType: ''
    returnType: void
    signature: "void cf_h2_proxy_destroy(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/cf-h2-proxy.c:1061,1
    - Dst: nghttp2_submit_goaway
      Src: /src/curl/lib/cf-h2-proxy.c:1064,1
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:1069,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/cf-h2-proxy.c:1070,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/cf-h2-proxy.c:1078,1
    - Dst: proxy_h2_progress_egress
      Src: /src/curl/lib/cf-h2-proxy.c:1079,1
    - Dst: nghttp2_session_want_read
      Src: /src/curl/lib/cf-h2-proxy.c:1080,1
    - Dst: proxy_h2_progress_ingress
      Src: /src/curl/lib/cf-h2-proxy.c:1081,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/cf-h2-proxy.c:1084,1
    - Dst: nghttp2_session_want_read
      Src: /src/curl/lib/cf-h2-proxy.c:1085,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/cf-h2-proxy.c:1087,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1048
    functionDepth: 7
    functionLinenumber: 1048
    functionLinenumberEnd: 1090
    functionName: cf_h2_proxy_shutdown
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - nghttp2_session_want_read
    - CF_DATA_RESTORE
    - nghttp2_strerror
    - failf
    - proxy_h2_progress_ingress
    - nghttp2_session_want_write
    - proxy_h2_progress_egress
    - nghttp2_submit_goaway
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_proxy_shutdown(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data, bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1096,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1098,1
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/cf-h2-proxy.c:1100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1092
    functionDepth: 2
    functionLinenumber: 1092
    functionLinenumberEnd: 1101
    functionName: cf_h2_proxy_data_pending
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::has_data_pending
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: bool
    signature: "bool cf_h2_proxy_data_pending(struct Curl_cfilter *cf,\n                                     const
      struct Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/cf-h2-proxy.c:1109,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/cf-h2-proxy.c:1114,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1115,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1116,1
    - Dst: nghttp2_session_want_read
      Src: /src/curl/lib/cf-h2-proxy.c:1117,1
    - Dst: Curl_pollset_check
      Src: /src/curl/lib/cf-h2-proxy.c:1120,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/cf-h2-proxy.c:1125,1
    - Dst: nghttp2_session_get_remote_window_size
      Src: /src/curl/lib/cf-h2-proxy.c:1126,1
    - Dst: nghttp2_session_get_stream_remote_window_size
      Src: /src/curl/lib/cf-h2-proxy.c:1128,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/cf-h2-proxy.c:1132,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1133,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1134,1
    - Dst: Curl_pollset_set
      Src: /src/curl/lib/cf-h2-proxy.c:1136,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1137,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/cf-h2-proxy.c:1139,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/cf-h2-proxy.c:1143,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/cf-h2-proxy.c:1144,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1145,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1146,1
    - Dst: nghttp2_session_want_read
      Src: /src/curl/lib/cf-h2-proxy.c:1147,1
    - Dst: Curl_pollset_set
      Src: /src/curl/lib/cf-h2-proxy.c:1148,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1149,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/cf-h2-proxy.c:1151,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 25
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1154
    functionName: cf_h2_proxy_adjust_pollset
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - nghttp2_session_want_read
    - CF_DATA_RESTORE
    - nghttp2_session_get_stream_remote_window_size
    - Curl_pollset_check
    - Curl_conn_cf_get_socket
    - nghttp2_session_want_write
    - Curl_pollset_set
    - Curl_bufq_is_empty
    - nghttp2_session_get_remote_window_size
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_proxy_adjust_pollset(struct Curl_cfilter *cf,\n                                           struct
      Curl_easy *data,\n                                           struct easy_pollset
      *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/cf-h2-proxy.c:1164,1
    - Dst: nghttp2_http2_strerror
      Src: /src/curl/lib/cf-h2-proxy.c:1166,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - cf
    - data
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1173
    functionName: h2_handle_tunnel_close
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp2_http2_strerror
    - CURL_TRC_CF
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h2_handle_tunnel_close(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       size_t *pnread)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1182,1
    - Dst: Curl_bufq_cread
      Src: /src/curl/lib/cf-h2-proxy.c:1183,1
    - Dst: h2_handle_tunnel_close
      Src: /src/curl/lib/cf-h2-proxy.c:1186,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1189,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1175
    functionDepth: 5
    functionLinenumber: 1175
    functionLinenumberEnd: 1201
    functionName: tunnel_recv
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - h2_handle_tunnel_close
    - Curl_bufq_cread
    - CURL_TRC_CF
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tunnel_recv(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                           char *buf, size_t len, size_t *pnread)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/cf-h2-proxy.c:1213,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1220,1
    - Dst: proxy_h2_progress_ingress
      Src: /src/curl/lib/cf-h2-proxy.c:1221,1
    - Dst: tunnel_recv
      Src: /src/curl/lib/cf-h2-proxy.c:1226,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1229,1
    - Dst: nghttp2_session_consume
      Src: /src/curl/lib/cf-h2-proxy.c:1231,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/cf-h2-proxy.c:1234,1
    - Dst: proxy_h2_progress_egress
      Src: /src/curl/lib/cf-h2-proxy.c:1234,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1237,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1238,1
    - Dst: drain_tunnel
      Src: /src/curl/lib/cf-h2-proxy.c:1242,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1244,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/cf-h2-proxy.c:1246,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1203
    functionDepth: 7
    functionLinenumber: 1203
    functionLinenumberEnd: 1248
    functionName: cf_h2_proxy_recv
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - Curl_1st_fatal
    - proxy_h2_progress_ingress
    - proxy_h2_progress_egress
    - Curl_bufq_is_empty
    - tunnel_recv
    - drain_tunnel
    - nghttp2_session_consume
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_proxy_recv(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 char *buf, size_t len,\n
      \                                size_t *pnread)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/cf-h2-proxy.c:1262,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/cf-h2-proxy.c:1274,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1275,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1279,1
    - Dst: nghttp2_session_resume_data
      Src: /src/curl/lib/cf-h2-proxy.c:1281,1
    - Dst: nghttp2_is_fatal
      Src: /src/curl/lib/cf-h2-proxy.c:1282,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/cf-h2-proxy.c:1288,1
    - Dst: proxy_h2_progress_ingress
      Src: /src/curl/lib/cf-h2-proxy.c:1288,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/cf-h2-proxy.c:1289,1
    - Dst: proxy_h2_progress_egress
      Src: /src/curl/lib/cf-h2-proxy.c:1289,1
    - Dst: proxy_h2_should_close_session
      Src: /src/curl/lib/cf-h2-proxy.c:1291,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1298,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1304,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1305,1
    - Dst: drain_tunnel
      Src: /src/curl/lib/cf-h2-proxy.c:1309,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1311,1
    - Dst: nghttp2_session_get_stream_remote_window_size
      Src: /src/curl/lib/cf-h2-proxy.c:1314,1
    - Dst: nghttp2_session_get_remote_window_size
      Src: /src/curl/lib/cf-h2-proxy.c:1316,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/cf-h2-proxy.c:1317,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/cf-h2-proxy.c:1318,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/cf-h2-proxy.c:1319,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1250
    functionDepth: 7
    functionLinenumber: 1250
    functionLinenumberEnd: 1321
    functionName: cf_h2_proxy_send
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_bufq_len
    - CF_DATA_RESTORE
    - nghttp2_session_resume_data
    - Curl_1st_fatal
    - nghttp2_session_get_stream_remote_window_size
    - nghttp2_session_get_remote_window_size
    - proxy_h2_progress_ingress
    - nghttp2_is_fatal
    - Curl_bufq_write
    - proxy_h2_progress_egress
    - proxy_h2_should_close_session
    - Curl_bufq_is_empty
    - drain_tunnel
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_proxy_send(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 const uint8_t *buf, size_t
      len, bool eos,\n                                 size_t *pnwritten)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/cf-h2-proxy.c:1330,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1331,1
    - Dst: nghttp2_session_resume_data
      Src: /src/curl/lib/cf-h2-proxy.c:1333,1
    - Dst: nghttp2_is_fatal
      Src: /src/curl/lib/cf-h2-proxy.c:1334,1
    - Dst: proxy_h2_progress_egress
      Src: /src/curl/lib/cf-h2-proxy.c:1340,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1343,1
    - Dst: nghttp2_session_get_stream_remote_window_size
      Src: /src/curl/lib/cf-h2-proxy.c:1346,1
    - Dst: nghttp2_session_get_remote_window_size
      Src: /src/curl/lib/cf-h2-proxy.c:1348,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/cf-h2-proxy.c:1349,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/cf-h2-proxy.c:1350,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/cf-h2-proxy.c:1351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1323
    functionDepth: 7
    functionLinenumber: 1323
    functionLinenumberEnd: 1353
    functionName: cf_h2_proxy_flush
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_bufq_len
    - CF_DATA_RESTORE
    - nghttp2_session_resume_data
    - nghttp2_session_get_stream_remote_window_size
    - nghttp2_is_fatal
    - proxy_h2_progress_egress
    - Curl_bufq_is_empty
    - nghttp2_session_get_remote_window_size
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_proxy_flush(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::is_alive
      Src: /src/curl/lib/cf-h2-proxy.c:1363,1
    - Dst: Curl_cf_recv_bufq
      Src: /src/curl/lib/cf-h2-proxy.c:1374,1
    - Dst: proxy_h2_process_pending_input
      Src: /src/curl/lib/cf-h2-proxy.c:1376,1
    - Dst: proxy_h2_should_close_session
      Src: /src/curl/lib/cf-h2-proxy.c:1380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1355
    functionDepth: 5
    functionLinenumber: 1355
    functionLinenumberEnd: 1390
    functionName: proxy_h2_connisalive
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_cf_recv_bufq
    - proxy_h2_process_pending_input
    - struct Curl_cfilter*::next::cft::is_alive
    - proxy_h2_should_close_session
    linkageType: ''
    returnType: bool
    signature: "bool proxy_h2_connisalive(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 bool *input_pending)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/cf-h2-proxy.c:1401,1
    - Dst: proxy_h2_connisalive
      Src: /src/curl/lib/cf-h2-proxy.c:1402,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1403,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/cf-h2-proxy.c:1405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1392
    functionDepth: 6
    functionLinenumber: 1392
    functionLinenumberEnd: 1407
    functionName: cf_h2_proxy_is_alive
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - CURL_TRC_CF
    - proxy_h2_connisalive
    linkageType: ''
    returnType: bool
    signature: "bool cf_h2_proxy_is_alive(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 bool *input_pending)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1421,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cf-h2-proxy.c:1422,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h2-proxy.c:1423,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h2-proxy.c:1431,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/cf-h2-proxy.c:1439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1409
    functionDepth: 2
    functionLinenumber: 1409
    functionLinenumberEnd: 1441
    functionName: cf_h2_proxy_query
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - struct Curl_cfilter*::next::cft::query
    - CURL_TRC_CF
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_proxy_query(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  int query, int *pres1, void
      *pres2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/cf-h2-proxy.c:1455,1
    - Dst: cf_h2_proxy_flush
      Src: /src/curl/lib/cf-h2-proxy.c:1456,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/cf-h2-proxy.c:1457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1443
    functionDepth: 8
    functionLinenumber: 1443
    functionLinenumberEnd: 1463
    functionName: cf_h2_proxy_cntrl
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - cf_h2_proxy_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_proxy_cntrl(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  int event, int arg1, void
      *arg2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-h2-proxy.c:1492,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/cf-h2-proxy.c:1495,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-h2-proxy.c:1498,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/cf-h2-proxy.c:1502,1
    - Dst: cf_h2_proxy_ctx_free
      Src: /src/curl/lib/cf-h2-proxy.c:1505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - cf
    - data
    - dest
    - udp_tunnel
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1482
    functionDepth: 6
    functionLinenumber: 1482
    functionLinenumberEnd: 1507
    functionName: Curl_cf_h2_proxy_insert_after
    functionSourceFile: /src/curl/lib/cf-h2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - Curl_peer_link
    - Curl_conn_cf_insert_after
    - curlx_calloc
    - cf_h2_proxy_ctx_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_h2_proxy_insert_after(struct Curl_cfilter *cf,\n
      \                                      struct Curl_easy *data,\n                                       struct
      Curl_peer *dest,\n                                       bool udp_tunnel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - multi
    - value
    argTypes:
    - struct Curl_multi*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: mev_in_callback
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mev_in_callback(struct Curl_multi *multi, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - key_length
    - slots_num
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: mev_sh_entry_hash
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mev_sh_entry_hash(void *key, size_t key_length, size_t slots_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - k1
    - k1_len
    - k2
    - k2_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: mev_sh_entry_compare
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t mev_sh_entry_compare(void *k1, size_t k1_len,\n                                   void
      *k2, size_t k2_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_spbset_destroy
      Src: /src/curl/lib/multi_ev.c:84,1
    - Dst: curlx_free
      Src: /src/curl/lib/multi_ev.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - freethis
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: mev_sh_entry_dtor
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_uint32_spbset_destroy
    linkageType: ''
    returnType: void
    signature: void mev_sh_entry_dtor(void *freethis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/multi_ev.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sh
    - s
    argTypes:
    - struct Curl_hash*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: mev_sh_entry_get
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_hash_pick
    linkageType: ''
    returnType: struct mev_sh_entry
    signature: "struct mev_sh_entry *mev_sh_entry_get(struct Curl_hash *sh,\n                                             curl_socket_t
      s)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mev_sh_entry_get
      Src: /src/curl/lib/multi_ev.c:106,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/multi_ev.c:115,1
    - Dst: Curl_uint32_spbset_init
      Src: /src/curl/lib/multi_ev.c:119,1
    - Dst: Curl_hash_add
      Src: /src/curl/lib/multi_ev.c:122,1
    - Dst: mev_sh_entry_dtor
      Src: /src/curl/lib/multi_ev.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - sh
    - s
    argTypes:
    - struct Curl_hash*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 130
    functionName: mev_sh_entry_add
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_hash_add
    - mev_sh_entry_get
    - mev_sh_entry_dtor
    - Curl_uint32_spbset_init
    - curlx_calloc
    linkageType: ''
    returnType: struct mev_sh_entry
    signature: "struct mev_sh_entry *mev_sh_entry_add(struct Curl_hash *sh,\n                                             curl_socket_t
      s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_delete
      Src: /src/curl/lib/multi_ev.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - multi
    - s
    argTypes:
    - struct Curl_multi*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: mev_sh_entry_kill
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_hash_delete
    linkageType: ''
    returnType: void
    signature: void mev_sh_entry_kill(struct Curl_multi *multi, curl_socket_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_spbset_count
      Src: /src/curl/lib/multi_ev.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct mev_sh_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: mev_sh_entry_user_count
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_spbset_count
    linkageType: ''
    returnType: size_t
    signature: size_t mev_sh_entry_user_count(struct mev_sh_entry *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_spbset_contains
      Src: /src/curl/lib/multi_ev.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - data
    argTypes:
    - struct mev_sh_entry*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: mev_sh_entry_xfer_known
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_spbset_contains
    linkageType: ''
    returnType: bool
    signature: "bool mev_sh_entry_xfer_known(struct mev_sh_entry *e,\n                                    struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - conn
    argTypes:
    - struct mev_sh_entry*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: mev_sh_entry_conn_known
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool mev_sh_entry_conn_known(struct mev_sh_entry *e,\n                                    struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:159,1
    - Dst: mev_sh_entry_user_count
      Src: /src/curl/lib/multi_ev.c:159,1
    - Dst: Curl_uint32_spbset_add
      Src: /src/curl/lib/multi_ev.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - data
    argTypes:
    - struct mev_sh_entry*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: mev_sh_entry_xfer_add
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - mev_sh_entry_user_count
    - Curl_uint32_spbset_add
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool mev_sh_entry_xfer_add(struct mev_sh_entry *e,\n                                  struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:167,1
    - Dst: mev_sh_entry_user_count
      Src: /src/curl/lib/multi_ev.c:167,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - conn
    argTypes:
    - struct mev_sh_entry*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: mev_sh_entry_conn_add
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - mev_sh_entry_user_count
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool mev_sh_entry_conn_add(struct mev_sh_entry *e,\n                                  struct
      connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_spbset_contains
      Src: /src/curl/lib/multi_ev.c:178,1
    - Dst: Curl_uint32_spbset_remove
      Src: /src/curl/lib/multi_ev.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - e
    - data
    argTypes:
    - struct mev_sh_entry*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: mev_sh_entry_xfer_remove
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_spbset_contains
    - Curl_uint32_spbset_remove
    linkageType: ''
    returnType: bool
    signature: "bool mev_sh_entry_xfer_remove(struct mev_sh_entry *e,\n                                     struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - conn
    argTypes:
    - struct mev_sh_entry*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: mev_sh_entry_conn_remove
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool mev_sh_entry_conn_remove(struct mev_sh_entry *e,\n                                     struct
      connectdata *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mev_sh_entry_get
      Src: /src/curl/lib/multi_ev.c:202,1
    - Dst: NOVERBOSE
      Src: /src/curl/lib/multi_ev.c:210,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ev.c:211,1
    - Dst: mev_in_callback
      Src: /src/curl/lib/multi_ev.c:212,1
    - Dst: struct Curl_multi*::socket_cb
      Src: /src/curl/lib/multi_ev.c:213,1
    - Dst: mev_in_callback
      Src: /src/curl/lib/multi_ev.c:215,1
    - Dst: mev_sh_entry_kill
      Src: /src/curl/lib/multi_ev.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - multi
    - data
    - s
    - cause
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - curl_socket_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 225
    functionName: mev_forget_socket
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - struct Curl_multi*::socket_cb
    - mev_in_callback
    - mev_sh_entry_get
    - mev_sh_entry_kill
    - NOVERBOSE
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode mev_forget_socket(struct Curl_multi *multi,\n                                   struct
      Curl_easy *data,\n                                   curl_socket_t s,\n                                   const
      char *cause)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:237,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:238,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:249,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:257,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:264,1
    - Dst: mev_sh_entry_user_count
      Src: /src/curl/lib/multi_ev.c:264,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:265,1
    - Dst: mev_sh_entry_user_count
      Src: /src/curl/lib/multi_ev.c:265,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:266,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ev.c:268,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ev.c:281,1
    - Dst: mev_in_callback
      Src: /src/curl/lib/multi_ev.c:284,1
    - Dst: struct Curl_multi*::socket_cb
      Src: /src/curl/lib/multi_ev.c:285,1
    - Dst: mev_in_callback
      Src: /src/curl/lib/multi_ev.c:287,1
    - Dst: mev_sh_entry_get
      Src: /src/curl/lib/multi_ev.c:294,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:296,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 6
    argNames:
    - multi
    - data
    - entry
    - s
    - last_action
    - cur_action
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - struct mev_sh_entry*
    - curl_socket_t
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 301
    functionName: mev_sh_entry_update
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - struct Curl_multi*::socket_cb
    - mev_sh_entry_user_count
    - mev_in_callback
    - DEBUGASSERT
    - mev_sh_entry_get
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode mev_sh_entry_update(struct Curl_multi *multi,\n                                     struct
      Curl_easy *data,\n                                     struct mev_sh_entry *entry,\n
      \                                    curl_socket_t s,\n                                     unsigned
      char last_action,\n                                     unsigned char cur_action)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:322,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:323,1
    - Dst: mev_sh_entry_get
      Src: /src/curl/lib/multi_ev.c:332,1
    - Dst: mev_sh_entry_add
      Src: /src/curl/lib/multi_ev.c:336,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ev.c:339,1
    - Dst: mev_sh_entry_conn_known
      Src: /src/curl/lib/multi_ev.c:342,1
    - Dst: mev_sh_entry_xfer_known
      Src: /src/curl/lib/multi_ev.c:345,1
    - Dst: mev_sh_entry_conn_add
      Src: /src/curl/lib/multi_ev.c:356,1
    - Dst: mev_sh_entry_xfer_add
      Src: /src/curl/lib/multi_ev.c:360,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ev.c:363,1
    - Dst: Curl_uint32_spbset_count
      Src: /src/curl/lib/multi_ev.c:367,1
    - Dst: mev_sh_entry_update
      Src: /src/curl/lib/multi_ev.c:379,1
    - Dst: mev_sh_entry_get
      Src: /src/curl/lib/multi_ev.c:400,1
    - Dst: mev_sh_entry_conn_remove
      Src: /src/curl/lib/multi_ev.c:407,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ev.c:411,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:413,1
    - Dst: mev_sh_entry_xfer_remove
      Src: /src/curl/lib/multi_ev.c:417,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ev.c:421,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:423,1
    - Dst: mev_sh_entry_user_count
      Src: /src/curl/lib/multi_ev.c:427,1
    - Dst: mev_sh_entry_update
      Src: /src/curl/lib/multi_ev.c:429,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ev.c:433,1
    - Dst: Curl_uint32_spbset_count
      Src: /src/curl/lib/multi_ev.c:435,1
    - Dst: mev_forget_socket
      Src: /src/curl/lib/multi_ev.c:439,1
    - Dst: Curl_pollset_move
      Src: /src/curl/lib/multi_ev.c:446,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 5
    argNames:
    - multi
    - data
    - conn
    - ps
    - prev_ps
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - struct connectdata*
    - struct easy_pollset*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 448
    functionName: mev_pollset_diff
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - mev_sh_entry_add
    - mev_sh_entry_user_count
    - Curl_pollset_move
    - mev_sh_entry_conn_known
    - DEBUGASSERT
    - mev_sh_entry_get
    - mev_sh_entry_update
    - mev_sh_entry_conn_add
    - mev_sh_entry_xfer_remove
    - mev_sh_entry_xfer_known
    - mev_forget_socket
    - mev_sh_entry_xfer_add
    - mev_sh_entry_conn_remove
    - Curl_uint32_spbset_count
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode mev_pollset_diff(struct Curl_multi *multi,\n                                  struct
      Curl_easy *data,\n                                  struct connectdata *conn,\n
      \                                 struct easy_pollset *ps,\n                                  struct
      easy_pollset *prev_ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/multi_ev.c:456,1
    - Dst: curlx_free
      Src: /src/curl/lib/multi_ev.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 459
    functionName: mev_pollset_dtor
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_pollset_cleanup
    linkageType: ''
    returnType: void
    signature: void mev_pollset_dtor(void *key, size_t klen, void *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_create
      Src: /src/curl/lib/multi_ev.c:465,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/multi_ev.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: mev_add_new_conn_pollset
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_conn_meta_set
    - Curl_pollset_create
    linkageType: ''
    returnType: struct easy_pollset
    signature: struct easy_pollset *mev_add_new_conn_pollset(struct connectdata *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_create
      Src: /src/curl/lib/multi_ev.c:477,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/multi_ev.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 483
    functionName: mev_add_new_xfer_pollset
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_meta_set
    - Curl_pollset_create
    linkageType: ''
    returnType: struct easy_pollset
    signature: struct easy_pollset *mev_add_new_xfer_pollset(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/multi_ev.c:490,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/multi_ev.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: mev_get_last_pollset
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - Curl_conn_meta_get
    linkageType: ''
    returnType: struct easy_pollset
    signature: "struct easy_pollset *mev_get_last_pollset(struct Curl_easy *data,\n
      \                                                struct connectdata *conn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/multi_ev.c:506,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/multi_ev.c:508,1
    - Dst: Curl_multi_pollset
      Src: /src/curl/lib/multi_ev.c:516,1
    - Dst: mev_get_last_pollset
      Src: /src/curl/lib/multi_ev.c:517,1
    - Dst: mev_add_new_conn_pollset
      Src: /src/curl/lib/multi_ev.c:521,1
    - Dst: mev_add_new_xfer_pollset
      Src: /src/curl/lib/multi_ev.c:523,1
    - Dst: mev_pollset_diff
      Src: /src/curl/lib/multi_ev.c:531,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:533,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/multi_ev.c:535,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - multi
    - data
    - conn
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 537
    functionName: mev_assess
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - mev_add_new_xfer_pollset
    - Curl_conn_adjust_pollset
    - mev_get_last_pollset
    - mev_add_new_conn_pollset
    - Curl_pollset_cleanup
    - mev_pollset_diff
    - Curl_pollset_init
    - Curl_multi_pollset
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode mev_assess(struct Curl_multi *multi,\n                            struct
      Curl_easy *data,\n                            struct connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mev_assess
      Src: /src/curl/lib/multi_ev.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - multi
    - data
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 539
    functionDepth: 5
    functionLinenumber: 539
    functionLinenumberEnd: 543
    functionName: Curl_multi_ev_assess_xfer
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 1
    functionsReached:
    - mev_assess
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode Curl_multi_ev_assess_xfer(struct Curl_multi *multi,\n                                    struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mev_assess
      Src: /src/curl/lib/multi_ev.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - multi
    - data
    - conn
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 5
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: Curl_multi_ev_assess_conn
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - mev_assess
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode Curl_multi_ev_assess_conn(struct Curl_multi *multi,\n                                    struct
      Curl_easy *data,\n                                    struct connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_first
      Src: /src/curl/lib/multi_ev.c:558,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi_ev.c:560,1
    - Dst: Curl_multi_ev_assess_xfer
      Src: /src/curl/lib/multi_ev.c:562,1
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/lib/multi_ev.c:564,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - multi
    - set
    argTypes:
    - struct Curl_multi*
    - struct uint32_bset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 552
    functionDepth: 6
    functionLinenumber: 552
    functionLinenumberEnd: 567
    functionName: Curl_multi_ev_assess_xfer_bset
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_bset_next
    - Curl_multi_ev_assess_xfer
    - Curl_uint32_bset_first
    - Curl_multi_get_easy
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode Curl_multi_ev_assess_xfer_bset(struct Curl_multi *multi,\n
      \                                        struct uint32_bset *set)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mev_sh_entry_get
      Src: /src/curl/lib/multi_ev.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - multi
    - s
    - user_data
    argTypes:
    - struct Curl_multi*
    - curl_socket_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 578
    functionName: Curl_multi_ev_assign
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - mev_sh_entry_get
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode Curl_multi_ev_assign(struct Curl_multi *multi,\n                               curl_socket_t
      s,\n                               void *user_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:585,1
    - Dst: mev_sh_entry_get
      Src: /src/curl/lib/multi_ev.c:586,1
    - Dst: Curl_uint32_spbset_first
      Src: /src/curl/lib/multi_ev.c:597,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi_ev.c:599,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/multi_ev.c:601,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi_ev.c:604,1
    - Dst: Curl_uint32_spbset_remove
      Src: /src/curl/lib/multi_ev.c:605,1
    - Dst: Curl_uint32_spbset_next
      Src: /src/curl/lib/multi_ev.c:607,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/multi_ev.c:611,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - multi
    - s
    argTypes:
    - struct Curl_multi*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 613
    functionName: Curl_multi_ev_dirty_xfers
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_multi_mark_dirty
    - mev_sh_entry_get
    - Curl_uint32_spbset_first
    - Curl_uint32_spbset_remove
    - Curl_uint32_spbset_next
    - Curl_multi_get_easy
    - CURL_TRC_M
    linkageType: ''
    returnType: void
    signature: "void Curl_multi_ev_dirty_xfers(struct Curl_multi *multi,\n                               curl_socket_t
      s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mev_forget_socket
      Src: /src/curl/lib/multi_ev.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - multi
    - data
    - s
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 619
    functionName: Curl_multi_ev_socket_done
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - mev_forget_socket
    linkageType: ''
    returnType: void
    signature: "void Curl_multi_ev_socket_done(struct Curl_multi *multi,\n                               struct
      Curl_easy *data, curl_socket_t s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi_ev.c:624,1
    - Dst: mev_assess
      Src: /src/curl/lib/multi_ev.c:625,1
    - Dst: Curl_meta_remove
      Src: /src/curl/lib/multi_ev.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - multi
    - data
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 5
    functionLinenumber: 621
    functionLinenumberEnd: 627
    functionName: Curl_multi_ev_xfer_done
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_meta_remove
    - mev_assess
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_multi_ev_xfer_done(struct Curl_multi *multi,\n                             struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mev_assess
      Src: /src/curl/lib/multi_ev.c:633,1
    - Dst: Curl_conn_meta_remove
      Src: /src/curl/lib/multi_ev.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - multi
    - data
    - conn
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 5
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: Curl_multi_ev_conn_done
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_conn_meta_remove
    - mev_assess
    linkageType: ''
    returnType: void
    signature: "void Curl_multi_ev_conn_done(struct Curl_multi *multi,\n                             struct
      Curl_easy *data,\n                             struct connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_init
      Src: /src/curl/lib/multi_ev.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - multi
    - hashsize
    argTypes:
    - struct Curl_multi*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: Curl_multi_ev_init
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_hash_init
    linkageType: ''
    returnType: void
    signature: void Curl_multi_ev_init(struct Curl_multi *multi, size_t hashsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_destroy
      Src: /src/curl/lib/multi_ev.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 646
    functionName: Curl_multi_ev_cleanup
    functionSourceFile: /src/curl/lib/multi_ev.c
    functionUses: 0
    functionsReached:
    - Curl_hash_destroy
    linkageType: ''
    returnType: void
    signature: void Curl_multi_ev_cleanup(struct Curl_multi *multi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:51,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/socks_sspi.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - data
    - status
    - function
    argTypes:
    - struct Curl_easy*
    - SECURITY_STATUS
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: check_sspi_err
    functionSourceFile: /src/curl/lib/socks_sspi.c
    functionUses: 0
    functionsReached:
    - Curl_sspi_strerror
    - failf
    linkageType: ''
    returnType: int
    signature: "int check_sspi_err(struct Curl_easy *data,\n                          SECURITY_STATUS
      status,\n                          const char *function)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/socks_sspi.c:66,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/socks_sspi.c:67,1
    - Dst: strchr
      Src: /src/curl/lib/socks_sspi.c:71,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/socks_sspi.c:72,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/socks_sspi.c:74,1
    - Dst: AcquireCredentialsHandle
      Src: /src/curl/lib/socks_sspi.c:80,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/socks_sspi.c:81,1
    - Dst: TEXT
      Src: /src/curl/lib/socks_sspi.c:81,1
    - Dst: check_sspi_err
      Src: /src/curl/lib/socks_sspi.c:86,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - cf
    - data
    - creds
    - cred_handle
    - service_namep
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_creds*
    - CredHandle*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 92
    functionName: socks5_sspi_setup
    functionSourceFile: /src/curl/lib/socks_sspi.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - failf
    - AcquireCredentialsHandle
    - curlx_strdup
    - Curl_creds_sasl_service
    - CURL_UNCONST
    - Curl_creds_has_sasl_service
    - check_sspi_err
    - strchr
    - TEXT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks5_sspi_setup(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  struct Curl_creds *creds,\n
      \                                 CredHandle *cred_handle,\n                                  char
      **service_namep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/socks_sspi.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - send_token
    - result
    argTypes:
    - SecBuffer*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: socks5_free_token
    functionSourceFile: /src/curl/lib/socks_sspi.c
    functionUses: 0
    functionsReached:
    - FreeContextBuffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks5_free_token(SecBuffer *send_token,\n                                  CURLcode
      result)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socks_sspi.c:140,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/socks_sspi.c:143,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:145,1
    - Dst: socks5_free_token
      Src: /src/curl/lib/socks_sspi.c:146,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/socks_sspi.c:150,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:162,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_sspi.c:163,1
    - Dst: check_sspi_err
      Src: /src/curl/lib/socks_sspi.c:166,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:167,1
    - Dst: socks5_free_token
      Src: /src/curl/lib/socks_sspi.c:168,1
    - Dst: socks5_free_token
      Src: /src/curl/lib/socks_sspi.c:176,1
    - Dst: htons
      Src: /src/curl/lib/socks_sspi.c:178,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:179,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_sspi.c:181,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:183,1
    - Dst: socks5_free_token
      Src: /src/curl/lib/socks_sspi.c:184,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_sspi.c:187,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:191,1
    - Dst: socks5_free_token
      Src: /src/curl/lib/socks_sspi.c:192,1
    - Dst: socks5_free_token
      Src: /src/curl/lib/socks_sspi.c:197,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_sspi.c:200,1
    - Dst: Curl_blockread_all
      Src: /src/curl/lib/socks_sspi.c:206,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:208,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:213,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:219,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:224,1
    - Dst: ntohs
      Src: /src/curl/lib/socks_sspi.c:225,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:228,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/socks_sspi.c:233,1
    - Dst: Curl_blockread_all
      Src: /src/curl/lib/socks_sspi.c:238,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:242,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:243,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 6
    argNames:
    - cf
    - data
    - cred_handle
    - sspi_context
    - service_name
    - sspi_ret_flagsp
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - CredHandle*
    - CtxtHandle*
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 251
    functionName: socks5_sspi_loop
    functionSourceFile: /src/curl/lib/socks_sspi.c
    functionUses: 0
    functionsReached:
    - socks5_free_token
    - curlx_nonblock
    - curlx_safefree
    - htons
    - memcpy
    - failf
    - ntohs
    - Curl_conn_cf_send
    - curlx_free
    - check_sspi_err
    - curlx_convert_UTF8_to_tchar
    - Curl_blockread_all
    - curlx_malloc
    - InitializeSecurityContext
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks5_sspi_loop(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 CredHandle *cred_handle,\n
      \                                CtxtHandle *sspi_context,\n                                 char
      *service_name,\n                                 unsigned long *sspi_ret_flagsp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_sspi.c:256,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_sspi.c:257,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_sspi.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - sspi_w_token
    - result
    argTypes:
    - SecBuffer*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: socks5_free
    functionSourceFile: /src/curl/lib/socks_sspi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks5_free(SecBuffer *sspi_w_token,\n                            CURLcode
      result)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/socks_sspi.c:288,1
    - Dst: htons
      Src: /src/curl/lib/socks_sspi.c:304,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:305,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/socks_sspi.c:308,1
    - Dst: check_sspi_err
      Src: /src/curl/lib/socks_sspi.c:311,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:312,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/socks_sspi.c:318,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/socks_sspi.c:325,1
    - Dst: socks5_free
      Src: /src/curl/lib/socks_sspi.c:327,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:329,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/socks_sspi.c:332,1
    - Dst: socks5_free
      Src: /src/curl/lib/socks_sspi.c:334,1
    - Dst: EncryptMessage
      Src: /src/curl/lib/socks_sspi.c:336,1
    - Dst: check_sspi_err
      Src: /src/curl/lib/socks_sspi.c:339,1
    - Dst: socks5_free
      Src: /src/curl/lib/socks_sspi.c:340,1
    - Dst: socks5_free
      Src: /src/curl/lib/socks_sspi.c:345,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/socks_sspi.c:347,1
    - Dst: socks5_free
      Src: /src/curl/lib/socks_sspi.c:349,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:351,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:352,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:354,1
    - Dst: socks5_free
      Src: /src/curl/lib/socks_sspi.c:357,1
    - Dst: htons
      Src: /src/curl/lib/socks_sspi.c:359,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:360,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_sspi.c:363,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:365,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:366,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:371,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_sspi.c:372,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:374,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/socks_sspi.c:379,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:381,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:383,1
    - Dst: Curl_blockread_all
      Src: /src/curl/lib/socks_sspi.c:388,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:390,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:395,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:401,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:406,1
    - Dst: ntohs
      Src: /src/curl/lib/socks_sspi.c:407,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:410,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/socks_sspi.c:415,1
    - Dst: Curl_blockread_all
      Src: /src/curl/lib/socks_sspi.c:419,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:423,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:424,1
    - Dst: DecryptMessage
      Src: /src/curl/lib/socks_sspi.c:435,1
    - Dst: check_sspi_err
      Src: /src/curl/lib/socks_sspi.c:438,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/socks_sspi.c:440,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:441,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:446,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/socks_sspi.c:449,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:450,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:454,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/socks_sspi.c:455,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:459,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:461,1
    - Dst: memcpy
      Src: /src/curl/lib/socks_sspi.c:464,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:466,1
    - Dst: infof
      Src: /src/curl/lib/socks_sspi.c:468,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 137
    argCount: 4
    argNames:
    - cf
    - data
    - sspi_context
    - sspi_ret_flags
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - CtxtHandle*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 474
    functionName: socks5_sspi_encrypt
    functionSourceFile: /src/curl/lib/socks_sspi.c
    functionUses: 0
    functionsReached:
    - FreeContextBuffer
    - htons
    - memcpy
    - socks5_free
    - failf
    - ntohs
    - infof
    - curlx_malloc
    - Curl_conn_cf_send
    - check_sspi_err
    - curlx_free
    - QueryContextAttributes
    - Curl_blockread_all
    - EncryptMessage
    - DecryptMessage
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks5_sspi_encrypt(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    CtxtHandle *sspi_context,\n
      \                                   unsigned long sspi_ret_flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/socks_sspi.c:490,1
    - Dst: memset
      Src: /src/curl/lib/socks_sspi.c:491,1
    - Dst: socks5_sspi_setup
      Src: /src/curl/lib/socks_sspi.c:494,1
    - Dst: socks5_sspi_loop
      Src: /src/curl/lib/socks_sspi.c:498,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/socks_sspi.c:503,1
    - Dst: QueryCredentialsAttributes
      Src: /src/curl/lib/socks_sspi.c:505,1
    - Dst: check_sspi_err
      Src: /src/curl/lib/socks_sspi.c:508,1
    - Dst: failf
      Src: /src/curl/lib/socks_sspi.c:509,1
    - Dst: curlx_convert_tchar_to_UTF8
      Src: /src/curl/lib/socks_sspi.c:514,1
    - Dst: infof
      Src: /src/curl/lib/socks_sspi.c:515,1
    - Dst: VERBOSE
      Src: /src/curl/lib/socks_sspi.c:517,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:517,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/socks_sspi.c:518,1
    - Dst: socks5_sspi_encrypt
      Src: /src/curl/lib/socks_sspi.c:522,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socks_sspi.c:526,1
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/socks_sspi.c:527,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/socks_sspi.c:528,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socks_sspi.c:532,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks_sspi.c:533,1
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/socks_sspi.c:534,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/socks_sspi.c:535,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/socks_sspi.c:537,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 3
    argNames:
    - cf
    - data
    - creds
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 476
    functionDepth: 8
    functionLinenumber: 476
    functionLinenumberEnd: 539
    functionName: Curl_SOCKS5_gssapi_negotiate
    functionSourceFile: /src/curl/lib/socks_sspi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - FreeContextBuffer
    - curlx_nonblock
    - socks5_sspi_loop
    - failf
    - FreeCredentialsHandle
    - curlx_convert_tchar_to_UTF8
    - QueryCredentialsAttributes
    - infof
    - VERBOSE
    - curlx_free
    - check_sspi_err
    - DeleteSecurityContext
    - memset
    - socks5_sspi_setup
    - socks5_sspi_encrypt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      struct Curl_creds *creds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_tolower
      Src: /src/curl/lib/protocol.c:521,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/protocol.c:527,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - scheme
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 531
    functionName: Curl_getn_scheme
    functionSourceFile: /src/curl/lib/protocol.c
    functionUses: 1
    functionsReached:
    - curl_strnequal
    - Curl_raw_tolower
    linkageType: ''
    returnType: struct Curl_scheme
    signature: struct Curl_scheme *Curl_getn_scheme(const char *scheme, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_getn_scheme
      Src: /src/curl/lib/protocol.c:535,1
    - Dst: strlen
      Src: /src/curl/lib/protocol.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: Curl_get_scheme
    functionSourceFile: /src/curl/lib/protocol.c
    functionUses: 2
    functionsReached:
    - strlen
    - Curl_getn_scheme
    linkageType: ''
    returnType: struct Curl_scheme
    signature: struct Curl_scheme *Curl_get_scheme(const char *scheme)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: streamclose
    functionSourceFile: /src/curl/lib/connect.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: streamclose(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: connclose
    functionSourceFile: /src/curl/lib/connect.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: connclose(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: connkeep
    functionSourceFile: /src/curl/lib/connect.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: connkeep(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: streamclose
    functionSourceFile: /src/curl/lib/connect.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: streamclose(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: connclose
    functionSourceFile: /src/curl/lib/connect.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: connclose(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: connkeep
    functionSourceFile: /src/curl/lib/connect.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: connkeep(x, y)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 87
    functionName: Curl_ipv6_scope
    functionSourceFile: /src/curl/lib/if2ip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Curl_ipv6_scope(const struct sockaddr *sa)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/curl/lib/if2ip.c:109,1
    - Dst: curl_strequal
      Src: /src/curl/lib/if2ip.c:113,1
    - Dst: Curl_ipv6_scope
      Src: /src/curl/lib/if2ip.c:123,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/if2ip.c:150,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/if2ip.c:158,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/if2ip.c:159,1
    - Dst: curl_strequal
      Src: /src/curl/lib/if2ip.c:164,1
    - Dst: freeifaddrs
      Src: /src/curl/lib/if2ip.c:170,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 6
    argNames:
    - af
    - remote_scope
    - local_scope_id
    - interf
    - buf
    - buf_size
    argTypes:
    - int
    - "USE_IPV6\n                          unsigned"
    - unsigned int
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 94
    functionDepth: 7
    functionLinenumber: 94
    functionLinenumberEnd: 174
    functionName: Curl_if2ip
    functionSourceFile: /src/curl/lib/if2ip.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - curlx_inet_ntop
    - freeifaddrs
    - getifaddrs
    - curl_strequal
    - Curl_ipv6_scope
    linkageType: ''
    returnType: if2ip_result_t
    signature: "if2ip_result_t Curl_if2ip(int af,\n#ifdef USE_IPV6\n                          unsigned
      int remote_scope,\n                          unsigned int local_scope_id,\n#endif\n
      \                         const char *interf,\n                          char
      *buf, size_t buf_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/if2ip.c:201,1
    - Dst: CURL_SOCKET
      Src: /src/curl/lib/if2ip.c:205,1
    - Dst: memset
      Src: /src/curl/lib/if2ip.c:209,1
    - Dst: memcpy
      Src: /src/curl/lib/if2ip.c:210,1
    - Dst: ioctl
      Src: /src/curl/lib/if2ip.c:218,1
    - Dst: sclose
      Src: /src/curl/lib/if2ip.c:222,1
    - Dst: memcpy
      Src: /src/curl/lib/if2ip.c:230,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/if2ip.c:231,1
    - Dst: sclose
      Src: /src/curl/lib/if2ip.c:233,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - af
    - remote_scope
    - local_scope_id
    - interf
    - buf
    - buf_size
    argTypes:
    - int
    - "USE_IPV6\n                          unsigned"
    - unsigned int
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 237
    functionName: Curl_if2ip
    functionSourceFile: /src/curl/lib/if2ip.c
    functionUses: 1
    functionsReached:
    - ioctl
    - curlx_inet_ntop
    - memcpy
    - CURL_SOCKET
    - memset
    - strlen
    - sclose
    linkageType: ''
    returnType: if2ip_result_t
    signature: "if2ip_result_t Curl_if2ip(int af,\n#ifdef USE_IPV6\n                          unsigned
      int remote_scope,\n                          unsigned int local_scope_id,\n#endif\n
      \                         const char *interf,\n                          char
      *buf, size_t buf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - af
    - remote_scope
    - local_scope_id
    - interf
    - buf
    - buf_size
    argTypes:
    - int
    - "USE_IPV6\n                          unsigned"
    - unsigned int
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 258
    functionName: Curl_if2ip
    functionSourceFile: /src/curl/lib/if2ip.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: if2ip_result_t
    signature: "if2ip_result_t Curl_if2ip(int af,\n#ifdef USE_IPV6\n                          unsigned
      int remote_scope,\n                          unsigned int local_scope_id,\n#endif\n
      \                         const char *interf,\n                          char
      *buf, size_t buf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - data
    - ','
    - prefix
    - ','
    - major
    - ','
    - minor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: Curl_gss_log_error
    functionSourceFile: /src/curl/lib/curl_gssapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_gss_log_error(data, prefix, major, minor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/cshutdn.c:53,1
    - Dst: DEBUGF
      Src: /src/curl/lib/cshutdn.c:57,1
    - Dst: infof
      Src: /src/curl/lib/cshutdn.c:57,1
    - Dst: struct connectdata*::scheme::run::disconnect
      Src: /src/curl/lib/cshutdn.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 67
    functionName: cshutdn_run_conn_handler
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_pgrsTime
    - DEBUGF
    - struct connectdata*::scheme::run::disconnect
    - infof
    linkageType: ''
    returnType: void
    signature: "void cshutdn_run_conn_handler(struct Curl_easy *data,\n                                     struct
      connectdata *conn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:77,1
    - Dst: Curl_shutdown_started
      Src: /src/curl/lib/cshutdn.c:79,1
    - Dst: Curl_shutdown_start
      Src: /src/curl/lib/cshutdn.c:80,1
    - Dst: cshutdn_run_conn_handler
      Src: /src/curl/lib/cshutdn.c:83,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/cshutdn.c:90,1
    - Dst: Curl_conn_shutdown
      Src: /src/curl/lib/cshutdn.c:91,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/cshutdn.c:97,1
    - Dst: Curl_conn_shutdown
      Src: /src/curl/lib/cshutdn.c:98,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - data
    - conn
    - done
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 108
    functionName: cshutdn_run_once
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - DEBUGASSERT
    - cshutdn_run_conn_handler
    - Curl_conn_shutdown
    - Curl_shutdown_start
    - Curl_shutdown_started
    linkageType: ''
    returnType: void
    signature: "void cshutdn_run_once(struct Curl_easy *data,\n                             struct
      connectdata *conn,\n                             bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:114,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/cshutdn.c:115,1
    - Dst: cshutdn_run_once
      Src: /src/curl/lib/cshutdn.c:116,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:117,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/cshutdn.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - data
    - conn
    - done
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: Curl_cshutdn_run_once
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_attach_connection
    - Curl_detach_connection
    - CURL_TRC_M
    - cshutdn_run_once
    linkageType: ''
    returnType: void
    signature: "void Curl_cshutdn_run_once(struct Curl_easy *data,\n                           struct
      connectdata *conn,\n                           bool *done)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:129,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:131,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:133,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/cshutdn.c:142,1
    - Dst: cshutdn_run_conn_handler
      Src: /src/curl/lib/cshutdn.c:144,1
    - Dst: cshutdn_run_once
      Src: /src/curl/lib/cshutdn.c:148,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:150,1
    - Dst: Curl_conn_cf_discard_all
      Src: /src/curl/lib/cshutdn.c:153,1
    - Dst: Curl_conn_cf_discard_all
      Src: /src/curl/lib/cshutdn.c:154,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/cshutdn.c:155,1
    - Dst: Curl_multi_ev_conn_done
      Src: /src/curl/lib/cshutdn.c:158,1
    - Dst: Curl_conn_free
      Src: /src/curl/lib/cshutdn.c:159,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:162,1
    - Dst: Curl_multi_connchanged
      Src: /src/curl/lib/cshutdn.c:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - data
    - conn
    - do_shutdown
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 121
    functionDepth: 6
    functionLinenumber: 121
    functionLinenumberEnd: 165
    functionName: Curl_cshutdn_terminate
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_discard_all
    - Curl_multi_ev_conn_done
    - DEBUGASSERT
    - Curl_multi_connchanged
    - cshutdn_run_conn_handler
    - Curl_attach_connection
    - Curl_detach_connection
    - Curl_conn_free
    - CURL_TRC_M
    - cshutdn_run_once
    linkageType: ''
    returnType: void
    signature: "void Curl_cshutdn_terminate(struct Curl_easy *data,\n                            struct
      connectdata *conn,\n                            bool do_shutdown)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:174,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cshutdn.c:176,1
    - Dst: strcmp
      Src: /src/curl/lib/cshutdn.c:177,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cshutdn.c:179,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cshutdn.c:184,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/cshutdn.c:185,1
    - Dst: sigpipe_init
      Src: /src/curl/lib/cshutdn.c:186,1
    - Dst: sigpipe_apply
      Src: /src/curl/lib/cshutdn.c:187,1
    - Dst: Curl_cshutdn_terminate
      Src: /src/curl/lib/cshutdn.c:188,1
    - Dst: sigpipe_restore
      Src: /src/curl/lib/cshutdn.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - cshutdn
    - data
    - destination
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 167
    functionDepth: 7
    functionLinenumber: 167
    functionLinenumberEnd: 193
    functionName: cshutdn_destroy_oldest
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - sigpipe_init
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - strcmp
    - sigpipe_restore
    - Curl_cshutdn_terminate
    - Curl_node_remove
    - sigpipe_apply
    linkageType: ''
    returnType: bool
    signature: "bool cshutdn_destroy_oldest(struct cshutdn *cshutdn,\n                                   struct
      Curl_easy *data,\n                                   const char *destination)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cshutdn_destroy_oldest
      Src: /src/curl/lib/cshutdn.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - destination
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 8
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: Curl_cshutdn_close_oldest
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - cshutdn_destroy_oldest
    linkageType: ''
    returnType: bool
    signature: "bool Curl_cshutdn_close_oldest(struct Curl_easy *data,\n                               const
      char *destination)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollfds_init
      Src: /src/curl/lib/cshutdn.c:215,1
    - Dst: Curl_cshutdn_add_pollfds
      Src: /src/curl/lib/cshutdn.c:217,1
    - Dst: Curl_poll
      Src: /src/curl/lib/cshutdn.c:221,1
    - Dst: CURLMIN
      Src: /src/curl/lib/cshutdn.c:221,1
    - Dst: Curl_pollfds_cleanup
      Src: /src/curl/lib/cshutdn.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - cshutdn
    - data
    - timeout_ms
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: cshutdn_wait
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - Curl_pollfds_init
    - Curl_cshutdn_add_pollfds
    - Curl_pollfds_cleanup
    - Curl_poll
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cshutdn_wait(struct cshutdn *cshutdn,\n                             struct
      Curl_easy *data,\n                             int timeout_ms)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:232,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:241,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/cshutdn.c:242,1
    - Dst: sigpipe_apply
      Src: /src/curl/lib/cshutdn.c:243,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cshutdn.c:245,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cshutdn.c:246,1
    - Dst: Curl_cshutdn_run_once
      Src: /src/curl/lib/cshutdn.c:247,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/cshutdn.c:249,1
    - Dst: Curl_cshutdn_terminate
      Src: /src/curl/lib/cshutdn.c:250,1
    - Dst: Curl_conn_shutdown_timeleft
      Src: /src/curl/lib/cshutdn.c:255,1
    - Dst: Curl_expire_ex
      Src: /src/curl/lib/cshutdn.c:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - cshutdn
    - data
    - sigpipe_ctx
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    - struct Curl_sigpipe_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 228
    functionDepth: 7
    functionLinenumber: 228
    functionLinenumberEnd: 264
    functionName: cshutdn_perform
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_conn_shutdown_timeleft
    - Curl_expire_ex
    - Curl_cshutdn_run_once
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - Curl_cshutdn_terminate
    - Curl_node_remove
    - CURL_TRC_M
    - sigpipe_apply
    linkageType: ''
    returnType: void
    signature: "void cshutdn_perform(struct cshutdn *cshutdn,\n                            struct
      Curl_easy *data,\n                            struct Curl_sigpipe_ctx *sigpipe_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cshutdn.c:270,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:274,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:275,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:277,1
    - Dst: sigpipe_init
      Src: /src/curl/lib/cshutdn.c:278,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:280,1
    - Dst: cshutdn_perform
      Src: /src/curl/lib/cshutdn.c:284,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:286,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:287,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cshutdn.c:292,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cshutdn.c:292,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:294,1
    - Dst: cshutdn_wait
      Src: /src/curl/lib/cshutdn.c:300,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:301,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:307,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cshutdn.c:309,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/cshutdn.c:310,1
    - Dst: Curl_cshutdn_terminate
      Src: /src/curl/lib/cshutdn.c:311,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:312,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:314,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/cshutdn.c:314,1
    - Dst: sigpipe_restore
      Src: /src/curl/lib/cshutdn.c:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - cshutdn
    - data
    - timeout_ms
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 266
    functionDepth: 8
    functionLinenumber: 266
    functionLinenumberEnd: 317
    functionName: cshutdn_terminate_all
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_llist_count
    - sigpipe_init
    - DEBUGASSERT
    - cshutdn_wait
    - Curl_node_elem
    - Curl_llist_head
    - sigpipe_restore
    - Curl_cshutdn_terminate
    - Curl_node_remove
    - CURL_TRC_M
    - curlx_ptimediff_ms
    - cshutdn_perform
    linkageType: ''
    returnType: void
    signature: "void cshutdn_terminate_all(struct cshutdn *cshutdn,\n                                  struct
      Curl_easy *data,\n                                  int timeout_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:322,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/cshutdn.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cshutdn
    - multi
    argTypes:
    - struct cshutdn*
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 327
    functionName: Curl_cshutdn_init
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_llist_init
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int Curl_cshutdn_init(struct cshutdn *cshutdn,\n                      struct
      Curl_multi *multi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/cshutdn.c:337,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/cshutdn.c:340,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:346,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/cshutdn.c:347,1
    - Dst: cshutdn_terminate_all
      Src: /src/curl/lib/cshutdn.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - cshutdn
    - data
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 329
    functionDepth: 9
    functionLinenumber: 329
    functionLinenumberEnd: 351
    functionName: Curl_cshutdn_destroy
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - getenv
    - curlx_str_number
    - CURL_TRC_M
    - cshutdn_terminate_all
    linkageType: ''
    returnType: void
    signature: "void Curl_cshutdn_destroy(struct cshutdn *cshutdn,\n                          struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_count
      Src: /src/curl/lib/cshutdn.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: Curl_cshutdn_count
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_cshutdn_count(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:368,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cshutdn.c:370,1
    - Dst: strcmp
      Src: /src/curl/lib/cshutdn.c:371,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cshutdn.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - data
    - destination
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 378
    functionName: Curl_cshutdn_dest_count
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_llist_head
    - Curl_node_elem
    - Curl_node_next
    - strcmp
    linkageType: ''
    returnType: size_t
    signature: "size_t Curl_cshutdn_dest_count(struct Curl_easy *data,\n                               const
      char *destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:386,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cshutdn.c:387,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/cshutdn.c:389,1
    - Dst: Curl_multi_ev_assess_conn
      Src: /src/curl/lib/cshutdn.c:390,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/cshutdn.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - cshutdn
    - data
    - conn
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 380
    functionDepth: 6
    functionLinenumber: 380
    functionLinenumberEnd: 393
    functionName: cshutdn_update_ev
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_multi_ev_assess_conn
    - Curl_attach_connection
    - DEBUGASSERT
    - Curl_detach_connection
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode cshutdn_update_ev(struct cshutdn *cshutdn,\n                                   struct
      Curl_easy *data,\n                                   struct connectdata *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_count
      Src: /src/curl/lib/cshutdn.c:405,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:406,1
    - Dst: cshutdn_destroy_oldest
      Src: /src/curl/lib/cshutdn.c:408,1
    - Dst: cshutdn_update_ev
      Src: /src/curl/lib/cshutdn.c:412,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:413,1
    - Dst: Curl_cshutdn_terminate
      Src: /src/curl/lib/cshutdn.c:415,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/cshutdn.c:420,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/cshutdn.c:421,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/cshutdn.c:423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - cshutdn
    - conn
    - conns_in_pool
    argTypes:
    - struct cshutdn*
    - struct connectdata*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 395
    functionDepth: 8
    functionLinenumber: 395
    functionLinenumberEnd: 424
    functionName: Curl_cshutdn_add
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_llist_append
    - cshutdn_update_ev
    - cshutdn_destroy_oldest
    - Curl_cshutdn_terminate
    - CURL_TRC_M
    linkageType: ''
    returnType: void
    signature: "void Curl_cshutdn_add(struct cshutdn *cshutdn,\n                      struct
      connectdata *conn,\n                      size_t conns_in_pool)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cshutdn_perform
      Src: /src/curl/lib/cshutdn.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cshutdn
    - data
    - sigpipe_ctx
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    - struct Curl_sigpipe_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 8
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: Curl_cshutdn_perform
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - cshutdn_perform
    linkageType: ''
    returnType: void
    signature: "void Curl_cshutdn_perform(struct cshutdn *cshutdn,\n                          struct
      Curl_easy *data,\n                          struct Curl_sigpipe_ctx *sigpipe_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:439,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/cshutdn.c:443,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:444,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cshutdn.c:444,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cshutdn.c:446,1
    - Dst: Curl_pollset_reset
      Src: /src/curl/lib/cshutdn.c:449,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/cshutdn.c:450,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/cshutdn.c:451,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/cshutdn.c:452,1
    - Dst: FDSET_SOCK
      Src: /src/curl/lib/cshutdn.c:459,1
    - Dst: FD_SET
      Src: /src/curl/lib/cshutdn.c:462,1
    - Dst: FD_SET
      Src: /src/curl/lib/cshutdn.c:464,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/cshutdn.c:470,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - cshutdn
    - data
    - read_fd_set
    - write_fd_set
    - maxfd
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    - fd_set*
    - fd_set*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 472
    functionName: Curl_cshutdn_setfds
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_reset
    - Curl_conn_adjust_pollset
    - Curl_node_elem
    - Curl_attach_connection
    - Curl_node_next
    - Curl_detach_connection
    - FDSET_SOCK
    - Curl_llist_head
    - Curl_pollset_cleanup
    - FD_SET
    - Curl_pollset_init
    linkageType: ''
    returnType: void
    signature: "void Curl_cshutdn_setfds(struct cshutdn *cshutdn,\n                         struct
      Curl_easy *data,\n                         fd_set *read_fd_set, fd_set *write_fd_set,\n
      \                        int *maxfd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:481,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/cshutdn.c:487,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:488,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cshutdn.c:488,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cshutdn.c:489,1
    - Dst: Curl_pollset_reset
      Src: /src/curl/lib/cshutdn.c:490,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/cshutdn.c:491,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/cshutdn.c:492,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/cshutdn.c:493,1
    - Dst: Curl_waitfds_add_ps
      Src: /src/curl/lib/cshutdn.c:496,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/cshutdn.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - cshutdn
    - data
    - cwfds
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    - struct Curl_waitfds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 501
    functionName: Curl_cshutdn_add_waitfds
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_reset
    - Curl_conn_adjust_pollset
    - Curl_node_elem
    - Curl_attach_connection
    - Curl_node_next
    - Curl_detach_connection
    - Curl_llist_head
    - Curl_pollset_cleanup
    - Curl_waitfds_add_ps
    - Curl_pollset_init
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int Curl_cshutdn_add_waitfds(struct cshutdn *cshutdn,\n                                      struct
      Curl_easy *data,\n                                      struct Curl_waitfds
      *cwfds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:509,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/cshutdn.c:514,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cshutdn.c:515,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cshutdn.c:515,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cshutdn.c:516,1
    - Dst: Curl_pollset_reset
      Src: /src/curl/lib/cshutdn.c:517,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/cshutdn.c:518,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/cshutdn.c:519,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/cshutdn.c:520,1
    - Dst: Curl_pollfds_add_ps
      Src: /src/curl/lib/cshutdn.c:523,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/cshutdn.c:525,1
    - Dst: Curl_pollfds_cleanup
      Src: /src/curl/lib/cshutdn.c:526,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/cshutdn.c:530,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - cshutdn
    - data
    - cpfds
    argTypes:
    - struct cshutdn*
    - struct Curl_easy*
    - struct curl_pollfds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 534
    functionName: Curl_cshutdn_add_pollfds
    functionSourceFile: /src/curl/lib/cshutdn.c
    functionUses: 1
    functionsReached:
    - Curl_pollfds_add_ps
    - Curl_pollset_reset
    - Curl_conn_adjust_pollset
    - Curl_node_elem
    - Curl_attach_connection
    - Curl_node_next
    - Curl_detach_connection
    - Curl_llist_head
    - Curl_pollset_cleanup
    - Curl_pollfds_cleanup
    - Curl_pollset_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cshutdn_add_pollfds(struct cshutdn *cshutdn,\n                                  struct
      Curl_easy *data,\n                                  struct curl_pollfds *cpfds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - stat_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: filesize
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: filesize(name, stat_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/lib/mime.c:120,1
    - Dst: fread
      Src: /src/curl/lib/mime.c:127,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/mime.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - name
    - stat_buf
    argTypes:
    - char*
    - curlx_struct_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 134
    functionName: VmsRealFileSize
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - fread
    - curlx_fclose
    - curlx_fopen
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t VmsRealFileSize(const char *name, const curlx_struct_stat
      *stat_buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VmsRealFileSize
      Src: /src/curl/lib/mime.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - name
    - stat_buf
    argTypes:
    - char*
    - curlx_struct_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: VmsSpecialSize
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 1
    functionsReached:
    - VmsRealFileSize
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t VmsSpecialSize(const char *name,\n                                 const
      curlx_struct_stat *stat_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - stat_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: filesize
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: filesize(name, stat_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_stat
      Src: /src/curl/lib/mime.c:168,1
    - Dst: curlx_fopen
      Src: /src/curl/lib/mime.c:175,1
    - Dst: curlx_fopen
      Src: /src/curl/lib/mime.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - file
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 182
    functionName: vmsfopenread
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curlx_stat
    - curlx_fopen
    linkageType: ''
    returnType: FILE
    signature: FILE *vmsfopenread(const char *file, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - state
    - tok
    - ptr
    argTypes:
    - struct mime_state*
    - enum mimestate
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: mimesetstate
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void mimesetstate(struct mime_state *state,\n                         enum
      mimestate tok, void *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/mime.c:229,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/mime.c:231,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:231,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/mime.c:236,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/mime.c:238,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/mime.c:241,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - data
    - src
    - strategy
    argTypes:
    - struct Curl_easy*
    - char*
    - enum mimestrategy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 242
    functionName: escape_string
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - STRCONST
    - curlx_dyn_addn
    - curlx_dyn_add
    - curlx_dyn_ptr
    linkageType: ''
    returnType: char
    signature: "char *escape_string(struct Curl_easy *data,\n                           const
      char *src, enum mimestrategy strategy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/mime.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - hdr
    - lbl
    - len
    argTypes:
    - struct curl_slist*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 253
    functionName: match_header
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: char
    signature: char *match_header(struct curl_slist *hdr, const char *lbl, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_header
      Src: /src/curl/lib/mime.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - hdrlist
    - hdr
    - len
    argTypes:
    - struct curl_slist*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: search_header
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - match_header
    linkageType: ''
    returnType: char
    signature: "char *search_header(struct curl_slist *hdrlist,\n                           const
      char *hdr, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strdup
      Src: /src/curl/lib/mime.c:271,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/mime.c:275,1
    - Dst: curlx_basename
      Src: /src/curl/lib/mime.c:275,1
    - Dst: curlx_free
      Src: /src/curl/lib/mime.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fullfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: strippath
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_basename
    - curlx_strdup
    linkageType: ''
    returnType: char
    signature: char *strippath(const char *fullfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct mime_encoder_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: cleanup_encoder_state
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_encoder_state(struct mime_encoder_state *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/mime.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - buffer
    - size
    - ateof
    - part
    argTypes:
    - char*
    - size_t
    - bool
    - struct curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 310
    functionName: encoder_nop_read
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t encoder_nop_read(char *buffer, size_t size, bool ateof,\n                               struct
      curl_mimepart *part)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: encoder_nop_size
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t encoder_nop_size(curl_mimepart *part)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - buffer
    - size
    - ateof
    - part
    argTypes:
    - char*
    - size_t
    - bool
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 340
    functionName: encoder_7bit_read
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t encoder_7bit_read(char *buffer, size_t size, bool ateof,\n
      \                               curl_mimepart *part)"
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 4
    argNames:
    - buffer
    - size
    - ateof
    - part
    argTypes:
    - char*
    - size_t
    - bool
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 420
    functionName: encoder_base64_read
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t encoder_base64_read(char *buffer, size_t size, bool ateof,\n
      \                                 curl_mimepart *part)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 434
    functionName: encoder_base64_size
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t encoder_base64_size(curl_mimepart *part)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - st
    - ateof
    - n
    argTypes:
    - struct mime_encoder_state*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 452
    functionName: qp_lookahead_eol
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qp_lookahead_eol(struct mime_encoder_state *st, int ateof, size_t
      n)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: qp_lookahead_eol
      Src: /src/curl/lib/mime.c:481,1
    - Dst: qp_lookahead_eol
      Src: /src/curl/lib/mime.c:495,1
    - Dst: qp_lookahead_eol
      Src: /src/curl/lib/mime.c:520,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/mime.c:529,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:529,1
    - Dst: memcpy
      Src: /src/curl/lib/mime.c:543,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 4
    argNames:
    - buffer
    - size
    - ateof
    - part
    argTypes:
    - char*
    - size_t
    - bool
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 554
    functionName: encoder_qp_read
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - memcpy
    - STRCONST
    - curlx_strcopy
    - qp_lookahead_eol
    linkageType: ''
    returnType: size_t
    signature: "size_t encoder_qp_read(char *buffer, size_t size, bool ateof,\n                              curl_mimepart
      *part)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 561
    functionName: encoder_qp_size
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t encoder_qp_size(curl_mimepart *part)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_sotouz
      Src: /src/curl/lib/mime.c:569,1
    - Dst: memcpy
      Src: /src/curl/lib/mime.c:579,1
    - Dst: curlx_sotouz
      Src: /src/curl/lib/mime.c:579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - instream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 582
    functionName: mime_mem_read
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - memcpy
    - curlx_sotouz
    linkageType: ''
    returnType: size_t
    signature: "size_t mime_mem_read(char *buffer, size_t size, size_t nitems,\n                            void
      *instream)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - instream
    - offset
    - whence
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 602
    functionName: mime_mem_seek
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mime_mem_seek(void *instream, curl_off_t offset, int whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 607
    functionName: mime_mem_free
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void mime_mem_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_read
      Src: /src/curl/lib/mime.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 619
    functionName: mime_open_file
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - fopen_read
    linkageType: ''
    returnType: bool
    signature: bool mime_open_file(curl_mimepart *part)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mime_open_file
      Src: /src/curl/lib/mime.c:629,1
    - Dst: fread
      Src: /src/curl/lib/mime.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - instream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 633
    functionName: mime_file_read
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - fread
    - mime_open_file
    linkageType: ''
    returnType: size_t
    signature: "size_t mime_file_read(char *buffer, size_t size, size_t nitems,\n
      \                            void *instream)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mime_open_file
      Src: /src/curl/lib/mime.c:642,1
    - Dst: curlx_fseek
      Src: /src/curl/lib/mime.c:645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - instream
    - offset
    - whence
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 647
    functionName: mime_file_seek
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curlx_fseek
    - mime_open_file
    linkageType: ''
    returnType: int
    signature: int mime_file_seek(void *instream, curl_off_t offset, int whence)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fclose
      Src: /src/curl/lib/mime.c:654,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 658
    functionName: mime_file_free
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void mime_file_free(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_sotouz
      Src: /src/curl/lib/mime.c:670,1
    - Dst: memcpy
      Src: /src/curl/lib/mime.c:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - state
    - buffer
    - bufsize
    - bytes
    - numbytes
    - trail
    - traillen
    argTypes:
    - struct mime_state*
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 690
    functionName: readback_bytes
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - memcpy
    - curlx_sotouz
    linkageType: ''
    returnType: size_t
    signature: "size_t readback_bytes(struct mime_state *state,\n                             char
      *buffer, size_t bufsize,\n                             const char *bytes, size_t
      numbytes,\n                             const char *trail, size_t traillen)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: mime_subparts_read
      Src: /src/curl/lib/mime.c:725,1
    - Dst: feof
      Src: /src/curl/lib/mime.c:729,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/mime.c:731,1
    - Dst: curl_mimepart*::readfunc
      Src: /src/curl/lib/mime.c:739,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 5
    argNames:
    - part
    - buffer
    - bufsize
    - hasread
    - call_depth
    argTypes:
    - curl_mimepart*
    - char*
    - size_t
    - bool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 761
    functionName: read_part_content
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - mime_subparts_read
    - feof
    - curl_mimepart*::readfunc
    - FALLTHROUGH
    linkageType: ''
    returnType: size_t
    signature: "size_t read_part_content(curl_mimepart *part, char *buffer,\n                                size_t
      bufsize, bool *hasread,\n                                size_t call_depth)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: curl_mimepart*::encoder::encodefunc
      Src: /src/curl/lib/mime.c:779,1
    - Dst: memmove
      Src: /src/curl/lib/mime.c:801,1
    - Dst: read_part_content
      Src: /src/curl/lib/mime.c:807,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - part
    - buffer
    - bufsize
    - hasread
    - call_depth
    argTypes:
    - curl_mimepart*
    - char*
    - size_t
    - bool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 825
    functionName: read_encoded_part_content
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - memmove
    - curl_mimepart*::encoder::encodefunc
    - read_part_content
    linkageType: ''
    returnType: size_t
    signature: "size_t read_encoded_part_content(curl_mimepart *part, char *buffer,\n
      \                                       size_t bufsize, bool *hasread,\n                                        size_t
      call_depth)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:843,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:850,1
    - Dst: match_header
      Src: /src/curl/lib/mime.c:853,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:854,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/mime.c:857,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:860,1
    - Dst: readback_bytes
      Src: /src/curl/lib/mime.c:862,1
    - Dst: strlen
      Src: /src/curl/lib/mime.c:863,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:863,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:865,1
    - Dst: readback_bytes
      Src: /src/curl/lib/mime.c:869,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:869,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:870,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:872,1
    - Dst: cleanup_encoder_state
      Src: /src/curl/lib/mime.c:875,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:876,1
    - Dst: read_encoded_part_content
      Src: /src/curl/lib/mime.c:880,1
    - Dst: read_part_content
      Src: /src/curl/lib/mime.c:883,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:886,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/mime.c:889,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/mime.c:892,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 5
    argNames:
    - part
    - buffer
    - bufsize
    - hasread
    - call_depth
    argTypes:
    - curl_mimepart*
    - char*
    - size_t
    - bool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 913
    functionName: readback_part
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - match_header
    - STRCONST
    - cleanup_encoder_state
    - mimesetstate
    - readback_bytes
    - read_part_content
    - strlen
    - read_encoded_part_content
    - FALLTHROUGH
    linkageType: ''
    returnType: size_t
    signature: "size_t readback_part(curl_mimepart *part,\n                            char
      *buffer, size_t bufsize, bool *hasread,\n                            size_t
      call_depth)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:933,1
    - Dst: readback_bytes
      Src: /src/curl/lib/mime.c:940,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:940,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:941,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:943,1
    - Dst: readback_bytes
      Src: /src/curl/lib/mime.c:947,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:948,1
    - Dst: readback_bytes
      Src: /src/curl/lib/mime.c:950,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:951,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:953,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:958,1
    - Dst: readback_part
      Src: /src/curl/lib/mime.c:961,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:969,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 6
    argNames:
    - buffer
    - size
    - nitems
    - instream
    - hasread
    - call_depth
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    - bool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 916
    functionDepth: 4
    functionLinenumber: 916
    functionLinenumberEnd: 986
    functionName: mime_subparts_read
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 1
    functionsReached:
    - readback_part
    - readback_bytes
    - mimesetstate
    - STRCONST
    linkageType: ''
    returnType: size_t
    signature: "size_t mime_subparts_read(char *buffer, size_t size, size_t nitems,\n
      \                                void *instream, bool *hasread,\n                                 size_t
      call_depth)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_encoder_state
      Src: /src/curl/lib/mime.c:995,1
    - Dst: curl_mimepart*::seekfunc
      Src: /src/curl/lib/mime.c:999,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:1016,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1020
    functionName: mime_part_rewind
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curl_mimepart*::seekfunc
    - cleanup_encoder_state
    - mimesetstate
    linkageType: ''
    returnType: int
    signature: int mime_part_rewind(curl_mimepart *part)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mime_part_rewind
      Src: /src/curl/lib/mime.c:1035,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:1041,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - instream
    - offset
    - whence
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1044
    functionName: mime_subparts_seek
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - mime_part_rewind
    - mimesetstate
    linkageType: ''
    returnType: int
    signature: int mime_subparts_seek(void *instream, curl_off_t offset, int whence)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mimepart*::freefunc
      Src: /src/curl/lib/mime.c:1050,1
    - Dst: cleanup_encoder_state
      Src: /src/curl/lib/mime.c:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1064
    functionName: cleanup_part_content
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - cleanup_encoder_state
    - curl_mimepart*::freefunc
    linkageType: ''
    returnType: void
    signature: void cleanup_part_content(curl_mimepart *part)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_part_content
      Src: /src/curl/lib/mime.c:1072,1
    - Dst: curl_mime_free
      Src: /src/curl/lib/mime.c:1074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1075
    functionName: mime_subparts_free
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curl_mime_free
    - cleanup_part_content
    linkageType: ''
    returnType: void
    signature: void mime_subparts_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_part_content
      Src: /src/curl/lib/mime.c:1084,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1087
    functionName: mime_subparts_unbind
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - cleanup_part_content
    linkageType: ''
    returnType: void
    signature: void mime_subparts_unbind(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_part_content
      Src: /src/curl/lib/mime.c:1092,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/mime.c:1093,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/mime.c:1095,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:1096,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:1097,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:1098,1
    - Dst: Curl_mime_initpart
      Src: /src/curl/lib/mime.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1101
    functionName: Curl_mime_cleanpart
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 5
    functionsReached:
    - curlx_safefree
    - Curl_mime_initpart
    - cleanup_part_content
    - curl_slist_free_all
    linkageType: ''
    returnType: void
    signature: void Curl_mime_cleanpart(curl_mimepart *part)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mime_subparts_unbind
      Src: /src/curl/lib/mime.c:1109,1
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/mime.c:1113,1
    - Dst: curlx_free
      Src: /src/curl/lib/mime.c:1114,1
    - Dst: curlx_free
      Src: /src/curl/lib/mime.c:1116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mime
    argTypes:
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1104
    functionDepth: 3
    functionLinenumber: 1104
    functionLinenumberEnd: 1118
    functionName: curl_mime_free
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 26
    functionsReached:
    - curlx_free
    - mime_subparts_unbind
    - Curl_mime_cleanpart
    linkageType: ''
    returnType: void
    signature: void curl_mime_free(curl_mime *mime)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mime.c:1128,1
    - Dst: curl_mime_data
      Src: /src/curl/lib/mime.c:1135,1
    - Dst: curl_mime_filedata
      Src: /src/curl/lib/mime.c:1138,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/lib/mime.c:1144,1
    - Dst: curl_mime_init
      Src: /src/curl/lib/mime.c:1150,1
    - Dst: curl_mime_subparts
      Src: /src/curl/lib/mime.c:1151,1
    - Dst: curl_mime_addpart
      Src: /src/curl/lib/mime.c:1156,1
    - Dst: Curl_mime_duppart
      Src: /src/curl/lib/mime.c:1157,1
    - Dst: DEBUGF
      Src: /src/curl/lib/mime.c:1161,1
    - Dst: infof
      Src: /src/curl/lib/mime.c:1161,1
    - Dst: Curl_slist_duplicate
      Src: /src/curl/lib/mime.c:1168,1
    - Dst: curl_mime_headers
      Src: /src/curl/lib/mime.c:1175,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/mime.c:1177,1
    - Dst: curl_mime_type
      Src: /src/curl/lib/mime.c:1184,1
    - Dst: curl_mime_name
      Src: /src/curl/lib/mime.c:1187,1
    - Dst: curl_mime_filename
      Src: /src/curl/lib/mime.c:1189,1
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/mime.c:1193,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - data
    - dst
    - src
    argTypes:
    - struct Curl_easy*
    - curl_mimepart*
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1196
    functionName: Curl_mime_duppart
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 2
    functionsReached:
    - curl_mime_headers
    - DEBUGASSERT
    - Curl_mime_cleanpart
    - curl_mime_subparts
    - curl_mime_filename
    - curl_slist_free_all
    - infof
    - curl_mime_data_cb
    - curl_mime_addpart
    - curl_mime_init
    - curl_mime_data
    - Curl_mime_duppart
    - Curl_slist_duplicate
    - DEBUGF
    - curl_mime_name
    - curl_mime_type
    - curl_mime_filedata
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_mime_duppart(struct Curl_easy *data,\n                           curl_mimepart
      *dst, const curl_mimepart *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/mime.c:1205,1
    - Dst: memset
      Src: /src/curl/lib/mime.c:1212,1
    - Dst: Curl_rand_alnum
      Src: /src/curl/lib/mime.c:1213,1
    - Dst: curlx_free
      Src: /src/curl/lib/mime.c:1217,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:1220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - easy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1224
    functionName: curl_mime_init
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 23
    functionsReached:
    - mimesetstate
    - curlx_malloc
    - curlx_free
    - memset
    - Curl_rand_alnum
    linkageType: ''
    returnType: curl_mime
    signature: curl_mime *curl_mime_init(void *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/mime.c:1229,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1232
    functionName: Curl_mime_initpart
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 3
    functionsReached:
    - mimesetstate
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_mime_initpart(curl_mimepart *part)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/mime.c:1242,1
    - Dst: Curl_mime_initpart
      Src: /src/curl/lib/mime.c:1245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - mime
    argTypes:
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1235
    functionDepth: 2
    functionLinenumber: 1235
    functionLinenumberEnd: 1257
    functionName: curl_mime_addpart
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 23
    functionsReached:
    - curlx_malloc
    - Curl_mime_initpart
    linkageType: ''
    returnType: curl_mimepart
    signature: curl_mimepart *curl_mime_addpart(curl_mime *mime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:1265,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/mime.c:1268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - part
    - name
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1274
    functionName: curl_mime_name
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 20
    functionsReached:
    - curlx_safefree
    - curlx_strdup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_name(curl_mimepart *part, const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:1282,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/mime.c:1285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - part
    - filename
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1291
    functionName: curl_mime_filename
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 6
    functionsReached:
    - curlx_safefree
    - curlx_strdup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_filename(curl_mimepart *part, const char *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_part_content
      Src: /src/curl/lib/mime.c:1299,1
    - Dst: strlen
      Src: /src/curl/lib/mime.c:1303,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/mime.c:1305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - part
    - data
    - datasize
    argTypes:
    - curl_mimepart*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1318
    functionName: curl_mime_data
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 16
    functionsReached:
    - strlen
    - cleanup_part_content
    - curlx_memdup0
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_data(curl_mimepart *part, const char *data, size_t
      datasize)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_part_content
      Src: /src/curl/lib/mime.c:1328,1
    - Dst: curlx_stat
      Src: /src/curl/lib/mime.c:1334,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/mime.c:1337,1
    - Dst: S_ISREG
      Src: /src/curl/lib/mime.c:1342,1
    - Dst: filesize
      Src: /src/curl/lib/mime.c:1343,1
    - Dst: strippath
      Src: /src/curl/lib/mime.c:1355,1
    - Dst: curl_mime_filename
      Src: /src/curl/lib/mime.c:1359,1
    - Dst: curlx_free
      Src: /src/curl/lib/mime.c:1360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - part
    - filename
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1366
    functionName: curl_mime_filedata
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 8
    functionsReached:
    - filesize
    - strippath
    - curl_mime_filename
    - S_ISREG
    - cleanup_part_content
    - curlx_strdup
    - curlx_stat
    - curlx_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_filedata(curl_mimepart *part, const char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:1374,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/mime.c:1377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - part
    - mimetype
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1383
    functionName: curl_mime_type
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 8
    functionsReached:
    - curlx_safefree
    - curlx_strdup
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/mime.c:1409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - part
    - encoding
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1415
    functionName: curl_mime_encoder
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 6
    functionsReached:
    - curl_strequal
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_encoder(curl_mimepart *part, const char *encoding)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/mime.c:1426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - part
    - headers
    - take_ownership
    argTypes:
    - curl_mimepart*
    - struct curl_slist*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1433
    functionName: curl_mime_headers
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 7
    functionsReached:
    - curl_slist_free_all
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_headers(curl_mimepart *part,\n                           struct
      curl_slist *headers, int take_ownership)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_part_content
      Src: /src/curl/lib/mime.c:1444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - part
    - datasize
    - readfunc
    - seekfunc
    - freefunc
    - arg
    argTypes:
    - curl_mimepart*
    - curl_off_t
    - curl_read_callback
    - curl_seek_callback
    - curl_free_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1436
    functionDepth: 2
    functionLinenumber: 1436
    functionLinenumberEnd: 1456
    functionName: curl_mime_data_cb
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 10
    functionsReached:
    - cleanup_part_content
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_data_cb(curl_mimepart *part, curl_off_t datasize,\n
      \                          curl_read_callback readfunc,\n                           curl_seek_callback
      seekfunc,\n                           curl_free_callback freefunc, void *arg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_part_content
      Src: /src/curl/lib/mime.c:1471,1
    - Dst: mime_subparts_seek
      Src: /src/curl/lib/mime.c:1493,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - part
    - subparts
    - take_ownership
    argTypes:
    - curl_mimepart*
    - curl_mime*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1459
    functionDepth: 3
    functionLinenumber: 1459
    functionLinenumberEnd: 1508
    functionName: Curl_mime_set_subparts
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 1
    functionsReached:
    - mime_subparts_seek
    - cleanup_part_content
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_mime_set_subparts(curl_mimepart *part,\n                                curl_mime
      *subparts, int take_ownership)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mime_set_subparts
      Src: /src/curl/lib/mime.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - part
    - subparts
    argTypes:
    - curl_mimepart*
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1513
    functionName: curl_mime_subparts
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 7
    functionsReached:
    - Curl_mime_set_subparts
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_subparts(curl_mimepart *part, curl_mime *subparts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readback_part
      Src: /src/curl/lib/mime.c:1529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - instream
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1517
    functionDepth: 4
    functionLinenumber: 1517
    functionLinenumberEnd: 1539
    functionName: Curl_mime_read
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - readback_part
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_mime_read(char *buffer, size_t size, size_t nitems, void
      *instream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mime_part_rewind
      Src: /src/curl/lib/mime.c:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1542
    functionDepth: 2
    functionLinenumber: 1542
    functionLinenumberEnd: 1546
    functionName: mime_rewind
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - mime_part_rewind
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mime_rewind(curl_mimepart *part)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_header
      Src: /src/curl/lib/mime.c:1555,1
    - Dst: strlen
      Src: /src/curl/lib/mime.c:1556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - s
    - overhead
    - skip
    - skiplen
    argTypes:
    - struct curl_slist*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1549
    functionDepth: 2
    functionLinenumber: 1549
    functionLinenumberEnd: 1558
    functionName: slist_size
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - match_header
    - strlen
    linkageType: ''
    returnType: size_t
    signature: "size_t slist_size(struct curl_slist *s,\n                         size_t
      overhead, const char *skip, size_t skiplen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mime_size
      Src: /src/curl/lib/mime.c:1574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - mime
    argTypes:
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1561
    functionDepth: 1
    functionLinenumber: 1561
    functionLinenumberEnd: 1584
    functionName: multipart_size
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - mime_size
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t multipart_size(curl_mime *mime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: multipart_size
      Src: /src/curl/lib/mime.c:1592,1
    - Dst: curl_mimepart*::encoder::sizefunc
      Src: /src/curl/lib/mime.c:1597,1
    - Dst: slist_size
      Src: /src/curl/lib/mime.c:1601,1
    - Dst: slist_size
      Src: /src/curl/lib/mime.c:1602,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:1602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1587
    functionDepth: 3
    functionLinenumber: 1587
    functionLinenumberEnd: 1606
    functionName: mime_size
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 1
    functionsReached:
    - multipart_size
    - curl_mimepart*::encoder::sizefunc
    - slist_size
    - STRCONST
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t mime_size(curl_mimepart *part)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/mime.c:1616,1
    - Dst: curl_mvaprintf
      Src: /src/curl/lib/mime.c:1617,1
    - Dst: va_end
      Src: /src/curl/lib/mime.c:1618,1
    - Dst: Curl_slist_append_nodup
      Src: /src/curl/lib/mime.c:1621,1
    - Dst: curlx_free
      Src: /src/curl/lib/mime.c:1625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - slp
    - fmt
    argTypes:
    - struct curl_slist**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1610
    functionDepth: 6
    functionLinenumber: 1610
    functionLinenumberEnd: 1629
    functionName: Curl_mime_add_header
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 1
    functionsReached:
    - curl_mvaprintf
    - Curl_slist_append_nodup
    - va_start
    - va_end
    - curlx_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_mime_add_header(struct curl_slist **slp, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mime_add_header
      Src: /src/curl/lib/mime.c:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slp
    - type
    - boundary
    argTypes:
    - struct curl_slist**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1632
    functionDepth: 7
    functionLinenumber: 1632
    functionLinenumberEnd: 1638
    functionName: add_content_type
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - Curl_mime_add_header
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode add_content_type(struct curl_slist **slp,\n                                 const
      char *type, const char *boundary)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/mime.c:1664,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/mime.c:1668,1
    - Dst: strlen
      Src: /src/curl/lib/mime.c:1669,1
    - Dst: curl_strequal
      Src: /src/curl/lib/mime.c:1671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1676
    functionName: Curl_mime_contenttype
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - strlen
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: char
    signature: char *Curl_mime_contenttype(const char *filename)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/mime.c:1681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - contenttype
    - target
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1678
    functionDepth: 1
    functionLinenumber: 1678
    functionLinenumberEnd: 1692
    functionName: content_type_match
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: "bool content_type_match(const char *contenttype,\n                               const
      char *target, size_t len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/mime.c:1702,1
    - Dst: curl_strequal
      Src: /src/curl/lib/mime.c:1704,1
    - Dst: escape_string
      Src: /src/curl/lib/mime.c:1713,1
    - Dst: escape_string
      Src: /src/curl/lib/mime.c:1718,1
    - Dst: Curl_mime_add_header
      Src: /src/curl/lib/mime.c:1723,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:1732,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/mime.c:1733,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 5
    argNames:
    - data
    - part
    - disposition
    - contenttype
    - strategy
    argTypes:
    - struct Curl_easy*
    - curl_mimepart*
    - char*
    - char*
    - enum mimestrategy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1694
    functionDepth: 7
    functionLinenumber: 1694
    functionLinenumberEnd: 1738
    functionName: add_content_disposition
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_strnequal
    - curl_strequal
    - Curl_mime_add_header
    - escape_string
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode add_content_disposition(struct Curl_easy *data,\n                                        curl_mimepart
      *part,\n                                        const char *disposition,\n                                        const
      char *contenttype,\n                                        enum mimestrategy
      strategy)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/mime.c:1753,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:1758,1
    - Dst: search_header
      Src: /src/curl/lib/mime.c:1763,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:1763,1
    - Dst: Curl_mime_contenttype
      Src: /src/curl/lib/mime.c:1774,1
    - Dst: Curl_mime_contenttype
      Src: /src/curl/lib/mime.c:1776,1
    - Dst: Curl_mime_contenttype
      Src: /src/curl/lib/mime.c:1781,1
    - Dst: content_type_match
      Src: /src/curl/lib/mime.c:1792,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:1792,1
    - Dst: search_header
      Src: /src/curl/lib/mime.c:1797,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:1797,1
    - Dst: add_content_disposition
      Src: /src/curl/lib/mime.c:1798,1
    - Dst: add_content_type
      Src: /src/curl/lib/mime.c:1806,1
    - Dst: search_header
      Src: /src/curl/lib/mime.c:1812,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:1813,1
    - Dst: Curl_mime_add_header
      Src: /src/curl/lib/mime.c:1820,1
    - Dst: mimesetstate
      Src: /src/curl/lib/mime.c:1830,1
    - Dst: content_type_match
      Src: /src/curl/lib/mime.c:1837,1
    - Dst: STRCONST
      Src: /src/curl/lib/mime.c:1837,1
    - Dst: Curl_mime_prepare_headers
      Src: /src/curl/lib/mime.c:1840,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 69
    argCount: 5
    argNames:
    - data
    - part
    - contenttype
    - disposition
    - strategy
    argTypes:
    - struct Curl_easy*
    - curl_mimepart*
    - char*
    - char*
    - enum mimestrategy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1740
    functionDepth: 8
    functionLinenumber: 1740
    functionLinenumberEnd: 1847
    functionName: Curl_mime_prepare_headers
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 3
    functionsReached:
    - Curl_mime_contenttype
    - add_content_type
    - STRCONST
    - mimesetstate
    - curl_slist_free_all
    - content_type_match
    - search_header
    - Curl_mime_add_header
    - add_content_disposition
    - Curl_mime_prepare_headers
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_mime_prepare_headers(struct Curl_easy *data,\n                                   curl_mimepart
      *part,\n                                   const char *contenttype,\n                                   const
      char *disposition,\n                                   enum mimestrategy strategy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mime_unpause
      Src: /src/curl/lib/mime.c:1862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - part
    argTypes:
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1850
    functionDepth: 1
    functionLinenumber: 1850
    functionLinenumberEnd: 1866
    functionName: mime_unpause
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 1
    functionsReached:
    - mime_unpause
    linkageType: ''
    returnType: void
    signature: void mime_unpause(curl_mimepart *part)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/mime.c:1886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1879
    functionDepth: 3
    functionLinenumber: 1879
    functionLinenumberEnd: 1888
    functionName: cr_mime_init
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_mime_init(struct Curl_easy *data,\n                             struct
      Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/mime.c:1895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1890
    functionDepth: 3
    functionLinenumber: 1890
    functionLinenumberEnd: 1896
    functionName: cr_mime_close
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: "void cr_mime_close(struct Curl_easy *data,\n                          struct
      Curl_creader *reader)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/mime.c:1911,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/mime.c:1918,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/mime.c:1932,1
    - Dst: Curl_bufq_read
      Src: /src/curl/lib/mime.c:1933,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/mime.c:1945,1
    - Dst: Curl_mime_read
      Src: /src/curl/lib/mime.c:1946,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/mime.c:1949,1
    - Dst: Curl_bufq_cread
      Src: /src/curl/lib/mime.c:1956,1
    - Dst: Curl_mime_read
      Src: /src/curl/lib/mime.c:1965,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/mime.c:1967,1
    - Dst: failf
      Src: /src/curl/lib/mime.c:1973,1
    - Dst: failf
      Src: /src/curl/lib/mime.c:1984,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/mime.c:1994,1
    - Dst: Curl_xfer_pause_send
      Src: /src/curl/lib/mime.c:1997,1
    - Dst: failf
      Src: /src/curl/lib/mime.c:2002,1
    - Dst: failf
      Src: /src/curl/lib/mime.c:2013,1
    - Dst: CURL_TRC_READ
      Src: /src/curl/lib/mime.c:2028,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 98
    argCount: 6
    argNames:
    - data
    - reader
    - buf
    - blen
    - pnread
    - peos
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 1899
    functionDepth: 5
    functionLinenumber: 1899
    functionLinenumberEnd: 2032
    functionName: cr_mime_read
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - failf
    - CURL_TRC_READ
    - Curl_bufq_cread
    - Curl_bufq_write
    - Curl_bufq_is_empty
    - Curl_bufq_read
    - Curl_mime_read
    - Curl_xfer_pause_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_mime_read(struct Curl_easy *data,\n                             struct
      Curl_creader *reader,\n                             char *buf, size_t blen,\n
      \                            size_t *pnread, bool *peos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2034
    functionDepth: 0
    functionLinenumber: 2034
    functionLinenumberEnd: 2040
    functionName: cr_mime_needs_rewind
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool cr_mime_needs_rewind(struct Curl_easy *data,\n                                 struct
      Curl_creader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2042
    functionDepth: 0
    functionLinenumber: 2042
    functionLinenumberEnd: 2048
    functionName: cr_mime_total_length
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t cr_mime_total_length(struct Curl_easy *data,\n                                       struct
      Curl_creader *reader)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_sotouz
      Src: /src/curl/lib/mime.c:2064,1
    - Dst: Curl_mime_read
      Src: /src/curl/lib/mime.c:2067,1
    - Dst: failf
      Src: /src/curl/lib/mime.c:2072,1
    - Dst: failf
      Src: /src/curl/lib/mime.c:2083,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - data
    - reader
    - offset
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2050
    functionDepth: 5
    functionLinenumber: 2050
    functionLinenumberEnd: 2090
    functionName: cr_mime_resume_from
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - Curl_mime_read
    - curlx_sotouz
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_mime_resume_from(struct Curl_easy *data,\n                                    struct
      Curl_creader *reader,\n                                    curl_off_t offset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mime_rewind
      Src: /src/curl/lib/mime.c:2099,1
    - Dst: failf
      Src: /src/curl/lib/mime.c:2101,1
    - Dst: mime_unpause
      Src: /src/curl/lib/mime.c:2105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - data
    - reader
    - opcode
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    - Curl_creader_cntrl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2092
    functionDepth: 3
    functionLinenumber: 2092
    functionLinenumberEnd: 2114
    functionName: cr_mime_cntrl
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached:
    - mime_unpause
    - mime_rewind
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_mime_cntrl(struct Curl_easy *data,\n                              struct
      Curl_creader *reader,\n                              Curl_creader_cntrl opcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct Curl_easy*
    - struct Curl_creader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2116
    functionDepth: 0
    functionLinenumber: 2116
    functionLinenumberEnd: 2122
    functionName: cr_mime_is_paused
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool cr_mime_is_paused(struct Curl_easy *data,\n                              struct
      Curl_creader *reader)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_create
      Src: /src/curl/lib/mime.c:2144,1
    - Dst: mime_rewind
      Src: /src/curl/lib/mime.c:2150,1
    - Dst: Curl_creader_free
      Src: /src/curl/lib/mime.c:2152,1
    - Dst: mime_size
      Src: /src/curl/lib/mime.c:2155,1
    - Dst: Curl_creader_set
      Src: /src/curl/lib/mime.c:2157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - data
    - part
    argTypes:
    - struct Curl_easy*
    - curl_mimepart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2138
    functionDepth: 5
    functionLinenumber: 2138
    functionLinenumberEnd: 2158
    functionName: Curl_creader_set_mime
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 2
    functionsReached:
    - Curl_creader_create
    - mime_size
    - mime_rewind
    - Curl_creader_set
    - Curl_creader_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_creader_set_mime(struct Curl_easy *data, curl_mimepart
      *part)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - easy
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2165
    functionDepth: 0
    functionLinenumber: 2165
    functionLinenumberEnd: 2169
    functionName: curl_mime_init
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: curl_mime
    signature: curl_mime *curl_mime_init(CURL *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mime
    argTypes:
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2171
    functionDepth: 0
    functionLinenumber: 2171
    functionLinenumberEnd: 2174
    functionName: curl_mime_free
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void curl_mime_free(curl_mime *mime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mime
    argTypes:
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2176
    functionDepth: 0
    functionLinenumber: 2176
    functionLinenumberEnd: 2180
    functionName: curl_mime_addpart
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: curl_mimepart
    signature: curl_mimepart *curl_mime_addpart(curl_mime *mime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - part
    - name
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2182
    functionDepth: 0
    functionLinenumber: 2182
    functionLinenumberEnd: 2187
    functionName: curl_mime_name
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_name(curl_mimepart *part, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - part
    - filename
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2189
    functionDepth: 0
    functionLinenumber: 2189
    functionLinenumberEnd: 2194
    functionName: curl_mime_filename
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_filename(curl_mimepart *part, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - part
    - mimetype
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2201
    functionName: curl_mime_type
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - part
    - encoding
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2208
    functionName: curl_mime_encoder
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_encoder(curl_mimepart *part, const char *encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - part
    - data
    - datasize
    argTypes:
    - curl_mimepart*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2216
    functionName: curl_mime_data
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_data(curl_mimepart *part, const char *data, size_t
      datasize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - part
    - filename
    argTypes:
    - curl_mimepart*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2218
    functionDepth: 0
    functionLinenumber: 2218
    functionLinenumberEnd: 2223
    functionName: curl_mime_filedata
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_filedata(curl_mimepart *part, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - part
    - datasize
    - readfunc
    - seekfunc
    - freefunc
    - arg
    argTypes:
    - curl_mimepart*
    - curl_off_t
    - curl_read_callback
    - curl_seek_callback
    - curl_free_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2225
    functionDepth: 0
    functionLinenumber: 2225
    functionLinenumberEnd: 2238
    functionName: curl_mime_data_cb
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_data_cb(curl_mimepart *part, curl_off_t datasize,\n
      \                          curl_read_callback readfunc,\n                           curl_seek_callback
      seekfunc,\n                           curl_free_callback freefunc,\n                           void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - part
    - subparts
    argTypes:
    - curl_mimepart*
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2240
    functionDepth: 0
    functionLinenumber: 2240
    functionLinenumberEnd: 2245
    functionName: curl_mime_subparts
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_mime_subparts(curl_mimepart *part, curl_mime *subparts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - part
    - headers
    - take_ownership
    argTypes:
    - curl_mimepart*
    - struct curl_slist*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2247
    functionDepth: 0
    functionLinenumber: 2247
    functionLinenumberEnd: 2254
    functionName: curl_mime_headers
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_headers(curl_mimepart *part,\n                           struct
      curl_slist *headers, int take_ownership)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - slp
    - fmt
    argTypes:
    - struct curl_slist**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2261
    functionName: Curl_mime_add_header
    functionSourceFile: /src/curl/lib/mime.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_mime_add_header(struct curl_slist **slp, const char *fmt,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bytes
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: curl_des_set_odd_parity
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void curl_des_set_odd_parity(unsigned char *bytes, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - key_56
    - key
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: extend_key_56_to_64
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void extend_key_56_to_64(const unsigned char *key_56, char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extend_key_56_to_64
      Src: /src/curl/lib/curl_ntlm_core.c:164,1
    - Dst: DES_set_odd_parity
      Src: /src/curl/lib/curl_ntlm_core.c:167,1
    - Dst: DES_set_key_unchecked
      Src: /src/curl/lib/curl_ntlm_core.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - key_56
    - ks
    argTypes:
    - unsigned char*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: setup_des_key
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - extend_key_56_to_64
    - DES_set_odd_parity
    - DES_set_key_unchecked
    linkageType: ''
    returnType: void
    signature: void setup_des_key(const unsigned char *key_56, DES_key_schedule *ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extend_key_56_to_64
      Src: /src/curl/lib/curl_ntlm_core.c:179,1
    - Dst: wc_Des_SetKey
      Src: /src/curl/lib/curl_ntlm_core.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key_56
    - des
    argTypes:
    - unsigned char*
    - Des*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: setup_des_key
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - wc_Des_SetKey
    - extend_key_56_to_64
    linkageType: ''
    returnType: void
    signature: void setup_des_key(const unsigned char *key_56, Des *des)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extend_key_56_to_64
      Src: /src/curl/lib/curl_ntlm_core.c:191,1
    - Dst: curl_des_set_odd_parity
      Src: /src/curl/lib/curl_ntlm_core.c:194,1
    - Dst: des_set_key
      Src: /src/curl/lib/curl_ntlm_core.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - key_56
    - des
    argTypes:
    - unsigned char*
    - struct des_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: setup_des_key
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - curl_des_set_odd_parity
    - extend_key_56_to_64
    - des_set_key
    linkageType: ''
    returnType: void
    signature: void setup_des_key(const unsigned char *key_56, struct des_ctx *des)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extend_key_56_to_64
      Src: /src/curl/lib/curl_ntlm_core.c:208,1
    - Dst: mbedtls_des_key_set_parity
      Src: /src/curl/lib/curl_ntlm_core.c:211,1
    - Dst: mbedtls_des_init
      Src: /src/curl/lib/curl_ntlm_core.c:214,1
    - Dst: mbedtls_des_setkey_enc
      Src: /src/curl/lib/curl_ntlm_core.c:215,1
    - Dst: mbedtls_des_crypt_ecb
      Src: /src/curl/lib/curl_ntlm_core.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - in
    - out
    - key_56
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: encrypt_des
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - mbedtls_des_key_set_parity
    - mbedtls_des_setkey_enc
    - mbedtls_des_init
    - extend_key_56_to_64
    - mbedtls_des_crypt_ecb
    linkageType: ''
    returnType: bool
    signature: "bool encrypt_des(const unsigned char *in, unsigned char *out,\n                        const
      unsigned char *key_56)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extend_key_56_to_64
      Src: /src/curl/lib/curl_ntlm_core.c:231,1
    - Dst: curl_des_set_odd_parity
      Src: /src/curl/lib/curl_ntlm_core.c:234,1
    - Dst: _CIPHER
      Src: /src/curl/lib/curl_ntlm_core.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - in
    - out
    - key_56
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: encrypt_des
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - curl_des_set_odd_parity
    - extend_key_56_to_64
    - _CIPHER
    linkageType: ''
    returnType: bool
    signature: "bool encrypt_des(const unsigned char *in, unsigned char *out,\n                        const
      unsigned char *key_56)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/curl/lib/curl_ntlm_core.c:257,1
    - Dst: memset
      Src: /src/curl/lib/curl_ntlm_core.c:262,1
    - Dst: extend_key_56_to_64
      Src: /src/curl/lib/curl_ntlm_core.c:269,1
    - Dst: curl_des_set_odd_parity
      Src: /src/curl/lib/curl_ntlm_core.c:272,1
    - Dst: CryptImportKey
      Src: /src/curl/lib/curl_ntlm_core.c:275,1
    - Dst: CryptReleaseContext
      Src: /src/curl/lib/curl_ntlm_core.c:276,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_ntlm_core.c:281,1
    - Dst: CryptEncrypt
      Src: /src/curl/lib/curl_ntlm_core.c:284,1
    - Dst: CryptDestroyKey
      Src: /src/curl/lib/curl_ntlm_core.c:286,1
    - Dst: CryptReleaseContext
      Src: /src/curl/lib/curl_ntlm_core.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - in
    - out
    - key_56
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 290
    functionName: encrypt_des
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - CryptAcquireContext
    - memcpy
    - CryptDestroyKey
    - CryptReleaseContext
    - CryptEncrypt
    - extend_key_56_to_64
    - memset
    - CryptImportKey
    - curl_des_set_odd_parity
    linkageType: ''
    returnType: bool
    signature: "bool encrypt_des(const unsigned char *in, unsigned char *out,\n                        const
      unsigned char *key_56)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:306,1
    - Dst: DES_ecb_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:307,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/curl_ntlm_core.c:307,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:310,1
    - Dst: DES_ecb_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:311,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/curl_ntlm_core.c:311,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:314,1
    - Dst: DES_ecb_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:315,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/curl_ntlm_core.c:315,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:319,1
    - Dst: wc_Des_EcbEncrypt
      Src: /src/curl/lib/curl_ntlm_core.c:320,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:321,1
    - Dst: wc_Des_EcbEncrypt
      Src: /src/curl/lib/curl_ntlm_core.c:322,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:323,1
    - Dst: wc_Des_EcbEncrypt
      Src: /src/curl/lib/curl_ntlm_core.c:324,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:327,1
    - Dst: des_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:328,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:329,1
    - Dst: des_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:330,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:331,1
    - Dst: des_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:332,1
    - Dst: encrypt_des
      Src: /src/curl/lib/curl_ntlm_core.c:335,1
    - Dst: encrypt_des
      Src: /src/curl/lib/curl_ntlm_core.c:336,1
    - Dst: encrypt_des
      Src: /src/curl/lib/curl_ntlm_core.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - keys
    - plaintext
    - results
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 343
    functionName: Curl_ntlm_core_lm_resp
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - setup_des_key
    - CURL_UNCONST
    - DES_ecb_encrypt
    - encrypt_des
    - des_encrypt
    - wc_Des_EcbEncrypt
    linkageType: ''
    returnType: void
    signature: "void Curl_ntlm_core_lm_resp(const unsigned char *keys,\n                            const
      unsigned char *plaintext,\n                            unsigned char *results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURLMIN
      Src: /src/curl/lib/curl_ntlm_core.c:355,1
    - Dst: strlen
      Src: /src/curl/lib/curl_ntlm_core.c:355,1
    - Dst: Curl_strntoupper
      Src: /src/curl/lib/curl_ntlm_core.c:357,1
    - Dst: memset
      Src: /src/curl/lib/curl_ntlm_core.c:358,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:365,1
    - Dst: DES_ecb_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:366,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/curl_ntlm_core.c:366,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:369,1
    - Dst: DES_ecb_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:370,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/curl_ntlm_core.c:370,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:374,1
    - Dst: wc_Des_EcbEncrypt
      Src: /src/curl/lib/curl_ntlm_core.c:375,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:376,1
    - Dst: wc_Des_EcbEncrypt
      Src: /src/curl/lib/curl_ntlm_core.c:377,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:380,1
    - Dst: des_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:381,1
    - Dst: setup_des_key
      Src: /src/curl/lib/curl_ntlm_core.c:382,1
    - Dst: des_encrypt
      Src: /src/curl/lib/curl_ntlm_core.c:383,1
    - Dst: encrypt_des
      Src: /src/curl/lib/curl_ntlm_core.c:386,1
    - Dst: encrypt_des
      Src: /src/curl/lib/curl_ntlm_core.c:387,1
    - Dst: memset
      Src: /src/curl/lib/curl_ntlm_core.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - password
    - lmbuffer
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 394
    functionName: Curl_ntlm_core_mk_lm_hash
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - setup_des_key
    - CURLMIN
    - des_encrypt
    - Curl_strntoupper
    - DES_ecb_encrypt
    - CURL_UNCONST
    - memset
    - encrypt_des
    - strlen
    - wc_Des_EcbEncrypt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ntlm_core_mk_lm_hash(const char *password,\n                                   unsigned
      char *lmbuffer /* 21 bytes */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - src
    - srclen
    argTypes:
    - unsigned char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: ascii_to_unicode_le
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ascii_to_unicode_le(unsigned char *dest, const char *src,\n                                size_t
      srclen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/curl_ntlm_core.c:413,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/curl_ntlm_core.c:418,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/curl_ntlm_core.c:418,1
    - Dst: ascii_to_unicode_le
      Src: /src/curl/lib/curl_ntlm_core.c:422,1
    - Dst: Curl_md4it
      Src: /src/curl/lib/curl_ntlm_core.c:425,1
    - Dst: memset
      Src: /src/curl/lib/curl_ntlm_core.c:427,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_ntlm_core.c:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - password
    - ntbuffer
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 432
    functionName: Curl_ntlm_core_mk_nt_hash
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 1
    functionsReached:
    - ascii_to_unicode_le
    - curlx_strdup
    - curlx_malloc
    - curlx_free
    - Curl_md4it
    - memset
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ntlm_core_mk_nt_hash(const char *password,\n                                   unsigned
      char *ntbuffer /* 21 bytes */)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - ft
    - t
    argTypes:
    - struct ms_filetime*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 487
    functionName: time2filetime
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void time2filetime(struct ms_filetime *ft, time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/curl_ntlm_core.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - src
    - srclen
    argTypes:
    - unsigned char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 497
    functionName: ascii_uppercase_to_unicode_le
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - Curl_raw_toupper
    linkageType: ''
    returnType: void
    signature: "void ascii_uppercase_to_unicode_le(unsigned char *dest,\n                                          const
      char *src, size_t srclen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/curl_ntlm_core.c:516,1
    - Dst: ascii_uppercase_to_unicode_le
      Src: /src/curl/lib/curl_ntlm_core.c:521,1
    - Dst: ascii_to_unicode_le
      Src: /src/curl/lib/curl_ntlm_core.c:522,1
    - Dst: Curl_hmacit
      Src: /src/curl/lib/curl_ntlm_core.c:524,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_ntlm_core.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - user
    - userlen
    - domain
    - domlen
    - ntlmhash
    - ntlmv2hash
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 529
    functionName: Curl_ntlm_core_mk_ntlmv2_hash
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - ascii_to_unicode_le
    - curlx_malloc
    - curlx_free
    - Curl_hmacit
    - ascii_uppercase_to_unicode_le
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ntlm_core_mk_ntlmv2_hash(const char *user, size_t userlen,\n
      \                                      const char *domain, size_t domlen,\n
      \                                      unsigned char *ntlmhash,\n                                       unsigned
      char *ntlmv2hash)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/curl_ntlm_core.c:578,1
    - Dst: time2filetime
      Src: /src/curl/lib/curl_ntlm_core.c:580,1
    - Dst: time2filetime
      Src: /src/curl/lib/curl_ntlm_core.c:583,1
    - Dst: time
      Src: /src/curl/lib/curl_ntlm_core.c:583,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/curl_ntlm_core.c:589,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_ntlm_core.c:594,1
    - Dst: LONGQUARTET
      Src: /src/curl/lib/curl_ntlm_core.c:601,1
    - Dst: LONGQUARTET
      Src: /src/curl/lib/curl_ntlm_core.c:602,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_ntlm_core.c:604,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_ntlm_core.c:606,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_ntlm_core.c:609,1
    - Dst: Curl_hmacit
      Src: /src/curl/lib/curl_ntlm_core.c:610,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_ntlm_core.c:613,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_ntlm_core.c:618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - ntlmv2hash
    - challenge_client
    - ntlm
    - ntresp
    - ntresp_len
    argTypes:
    - unsigned char*
    - unsigned char*
    - struct ntlmdata*
    - unsigned char**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 548
    functionDepth: 7
    functionLinenumber: 548
    functionLinenumberEnd: 625
    functionName: Curl_ntlm_core_mk_ntlmv2_resp
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - memcpy
    - time2filetime
    - LONGQUARTET
    - getenv
    - time
    - curlx_free
    - curlx_calloc
    - Curl_hmacit
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ntlm_core_mk_ntlmv2_resp(const unsigned char *ntlmv2hash,\n
      \                                      const unsigned char *challenge_client,\n
      \                                      const struct ntlmdata *ntlm,\n                                       unsigned
      char **ntresp,\n                                       unsigned int *ntresp_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/curl_ntlm_core.c:650,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_ntlm_core.c:651,1
    - Dst: Curl_hmacit
      Src: /src/curl/lib/curl_ntlm_core.c:653,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_ntlm_core.c:659,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_ntlm_core.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ntlmv2hash
    - challenge_client
    - challenge_server
    - lmresp
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 663
    functionName: Curl_ntlm_core_mk_lmv2_resp
    functionSourceFile: /src/curl/lib/curl_ntlm_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Curl_hmacit
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ntlm_core_mk_lmv2_resp(const unsigned char *ntlmv2hash,\n
      \                                    const unsigned char *challenge_client,\n
      \                                    const unsigned char *challenge_server,\n
      \                                    unsigned char *lmresp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: Curl_async_global_init
    functionSourceFile: /src/curl/lib/asyn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_async_global_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: Curl_async_global_cleanup
    functionSourceFile: /src/curl/lib/asyn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_async_global_cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: Curl_async_get_ai
    functionSourceFile: /src/curl/lib/asyn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_async_get_ai(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: Curl_async_await
    functionSourceFile: /src/curl/lib/asyn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_async_await(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: Curl_async_take_result
    functionSourceFile: /src/curl/lib/asyn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_async_take_result(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: Curl_async_pollset
    functionSourceFile: /src/curl/lib/asyn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_async_pollset(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: Curl_async_get_https
    functionSourceFile: /src/curl/lib/asyn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_async_get_https(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: Curl_async_knows_https
    functionSourceFile: /src/curl/lib/asyn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_async_knows_https(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    functionName: Curl_async_shutdown
    functionSourceFile: /src/curl/lib/asyn.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_async_shutdown(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pp
    - ','
    - s
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: PINGPONG_SETUP
    functionSourceFile: /src/curl/lib/pingpong.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PINGPONG_SETUP(pp, s, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - br
    argTypes:
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: Curl_bufref_init
    functionSourceFile: /src/curl/lib/bufref.c
    functionUses: 5
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_bufref_init(struct bufref *br)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:56,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:57,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:58,1
    - Dst: struct bufref*::dtor
      Src: /src/curl/lib/bufref.c:61,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/bufref.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - br
    argTypes:
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: Curl_bufref_free
    functionSourceFile: /src/curl/lib/bufref.c
    functionUses: 11
    functionsReached:
    - struct bufref*::dtor
    - DEBUGASSERT
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: void Curl_bufref_free(struct bufref *br)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:75,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:76,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/bufref.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - br
    - ptr
    - len
    argTypes:
    - struct bufref*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: Curl_bufref_set
    functionSourceFile: /src/curl/lib/bufref.c
    functionUses: 9
    functionsReached:
    - Curl_bufref_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_bufref_set(struct bufref *br, const void *ptr, size_t len,\n
      \                    void (*dtor)(void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:89,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:90,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - br
    argTypes:
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: Curl_bufref_uptr
    functionSourceFile: /src/curl/lib/bufref.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *Curl_bufref_uptr(const struct bufref *br)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:101,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:102,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - br
    argTypes:
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: Curl_bufref_ptr
    functionSourceFile: /src/curl/lib/bufref.c
    functionUses: 8
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: char
    signature: char *Curl_bufref_ptr(const struct bufref *br)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:113,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:114,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - br
    argTypes:
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: Curl_bufref_len
    functionSourceFile: /src/curl/lib/bufref.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_bufref_len(const struct bufref *br)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:124,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:125,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:126,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:127,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/bufref.c:128,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/bufref.c:131,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/bufref.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - br
    - ptr
    - len
    argTypes:
    - struct bufref*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 138
    functionName: Curl_bufref_memdup0
    functionSourceFile: /src/curl/lib/bufref.c
    functionUses: 1
    functionsReached:
    - Curl_bufref_set
    - curlx_memdup0
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_bufref_memdup0(struct bufref *br, const void *ptr, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: Curl_conn_dns_get_https
    functionSourceFile: /src/curl/lib/cf-dns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_conn_dns_get_https(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: Curl_conn_dns_resolved_https
    functionSourceFile: /src/curl/lib/cf-dns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_conn_dns_resolved_https(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/altsvc.c:53,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/altsvc.c:57,1
    - Dst: time
      Src: /src/curl/lib/altsvc.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: altsvc_debugtime
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 0
    functionsReached:
    - time
    - getenv
    - curlx_str_number
    linkageType: ''
    returnType: time_t
    signature: time_t altsvc_debugtime(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: time
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: time(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - enum alpnid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: Curl_alpnid2str
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Curl_alpnid2str(enum alpnid id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: altsvc_free
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: altsvc_free(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/altsvc.c:111,1
    - Dst: memcpy
      Src: /src/curl/lib/altsvc.c:115,1
    - Dst: memcpy
      Src: /src/curl/lib/altsvc.c:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 8
    argNames:
    - srchost
    - hlen
    - dsthost
    - dlen
    - srcalpnid
    - dstalpnid
    - srcport
    - dstport
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - enum alpnid
    - enum alpnid
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 128
    functionName: altsvc_createid
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    - memcpy
    linkageType: ''
    returnType: struct altsvc
    signature: "struct altsvc *altsvc_createid(const char *srchost,\n                                      size_t
      hlen,\n                                      const char *dsthost,\n                                      size_t
      dlen, /* dsthost length */\n                                      enum alpnid
      srcalpnid,\n                                      enum alpnid dstalpnid,\n                                      size_t
      srcport,\n                                      size_t dstport)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_str2alpnid
      Src: /src/curl/lib/altsvc.c:137,1
    - Dst: Curl_str2alpnid
      Src: /src/curl/lib/altsvc.c:138,1
    - Dst: altsvc_createid
      Src: /src/curl/lib/altsvc.c:141,1
    - Dst: curlx_str
      Src: /src/curl/lib/altsvc.c:141,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/altsvc.c:141,1
    - Dst: curlx_str
      Src: /src/curl/lib/altsvc.c:142,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/altsvc.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - srchost
    - dsthost
    - srcalpn
    - dstalpn
    - srcport
    - dstport
    argTypes:
    - struct Curl_str*
    - struct Curl_str*
    - struct Curl_str*
    - struct Curl_str*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 145
    functionName: altsvc_create
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 0
    functionsReached:
    - curlx_str
    - curlx_strlen
    - Curl_str2alpnid
    - altsvc_createid
    linkageType: ''
    returnType: struct altsvc
    signature: "struct altsvc *altsvc_create(struct Curl_str *srchost,\n                                    struct
      Curl_str *dsthost,\n                                    struct Curl_str *srcalpn,\n
      \                                   struct Curl_str *dstalpn,\n                                    size_t
      srcport,\n                                    size_t dstport)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_count
      Src: /src/curl/lib/altsvc.c:151,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/altsvc.c:153,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/altsvc.c:154,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/altsvc.c:155,1
    - Dst: altsvc_free
      Src: /src/curl/lib/altsvc.c:156,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/altsvc.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - asi
    - as
    argTypes:
    - struct altsvcinfo*
    - struct altsvc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: altsvc_append
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_llist_append
    - Curl_node_elem
    - Curl_llist_head
    - altsvc_free
    - Curl_node_remove
    linkageType: ''
    returnType: void
    signature: void altsvc_append(struct altsvcinfo *asi, struct altsvc *as)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_word
      Src: /src/curl/lib/altsvc.c:177,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/lib/altsvc.c:178,1
    - Dst: curlx_str_word
      Src: /src/curl/lib/altsvc.c:179,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/lib/altsvc.c:180,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/altsvc.c:181,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/lib/altsvc.c:182,1
    - Dst: curlx_str_word
      Src: /src/curl/lib/altsvc.c:183,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/lib/altsvc.c:184,1
    - Dst: curlx_str_word
      Src: /src/curl/lib/altsvc.c:185,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/lib/altsvc.c:186,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/altsvc.c:187,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/lib/altsvc.c:188,1
    - Dst: curlx_str_quotedword
      Src: /src/curl/lib/altsvc.c:189,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/lib/altsvc.c:190,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/altsvc.c:191,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/lib/altsvc.c:192,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/altsvc.c:193,1
    - Dst: curlx_str_newline
      Src: /src/curl/lib/altsvc.c:194,1
    - Dst: time
      Src: /src/curl/lib/altsvc.c:199,1
    - Dst: memcpy
      Src: /src/curl/lib/altsvc.c:203,1
    - Dst: curlx_str
      Src: /src/curl/lib/altsvc.c:203,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/altsvc.c:203,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/altsvc.c:204,1
    - Dst: Curl_getdate_capped
      Src: /src/curl/lib/altsvc.c:205,1
    - Dst: altsvc_create
      Src: /src/curl/lib/altsvc.c:208,1
    - Dst: altsvc_append
      Src: /src/curl/lib/altsvc.c:213,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 16
    argCount: 2
    argNames:
    - asi
    - line
    argTypes:
    - struct altsvcinfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 221
    functionName: altsvc_add
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 0
    functionsReached:
    - curlx_str_word
    - memcpy
    - altsvc_create
    - curlx_str_newline
    - curlx_str_singlespace
    - curlx_str_quotedword
    - curlx_str
    - curlx_str_number
    - altsvc_append
    - time
    - curlx_strlen
    - Curl_getdate_capped
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode altsvc_add(struct altsvcinfo *asi, const char *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/altsvc.c:238,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/altsvc.c:239,1
    - Dst: curlx_fopen
      Src: /src/curl/lib/altsvc.c:243,1
    - Dst: curlx_fstat
      Src: /src/curl/lib/altsvc.c:246,1
    - Dst: fileno
      Src: /src/curl/lib/altsvc.c:246,1
    - Dst: S_ISDIR
      Src: /src/curl/lib/altsvc.c:246,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/altsvc.c:249,1
    - Dst: Curl_get_line
      Src: /src/curl/lib/altsvc.c:251,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/altsvc.c:253,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/altsvc.c:254,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:255,1
    - Dst: altsvc_add
      Src: /src/curl/lib/altsvc.c:256,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/altsvc.c:259,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/altsvc.c:261,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - asi
    - file
    argTypes:
    - struct altsvcinfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 231
    functionDepth: 7
    functionLinenumber: 231
    functionLinenumberEnd: 264
    functionName: altsvc_load
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 4
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - curlx_str_single
    - curlx_dyn_free
    - curlx_strdup
    - curlx_fopen
    - curlx_dyn_ptr
    - curlx_free
    - curlx_str_passblanks
    - S_ISDIR
    - curlx_fstat
    - altsvc_add
    - fileno
    - Curl_get_line
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode altsvc_load(struct altsvcinfo *asi, const char *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_gmtime
      Src: /src/curl/lib/altsvc.c:276,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/altsvc.c:282,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/altsvc.c:286,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/altsvc.c:292,1
    - Dst: Curl_alpnid2str
      Src: /src/curl/lib/altsvc.c:298,1
    - Dst: Curl_alpnid2str
      Src: /src/curl/lib/altsvc.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - as
    - fp
    argTypes:
    - struct altsvc*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 269
    functionDepth: 6
    functionLinenumber: 269
    functionLinenumberEnd: 310
    functionName: altsvc_out
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 0
    functionsReached:
    - Curl_alpnid2str
    - curl_mfprintf
    - curlx_gmtime
    - curlx_inet_pton
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode altsvc_out(struct altsvc *as, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/altsvc.c:320,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/altsvc.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 335
    functionName: Curl_altsvc_init
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 4
    functionsReached:
    - Curl_llist_init
    - curlx_calloc
    linkageType: ''
    returnType: struct altsvcinfo
    signature: struct altsvcinfo *Curl_altsvc_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/altsvc.c:342,1
    - Dst: altsvc_load
      Src: /src/curl/lib/altsvc.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - asi
    - file
    argTypes:
    - struct altsvcinfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 8
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: Curl_altsvc_load
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 4
    functionsReached:
    - DEBUGASSERT
    - altsvc_load
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_altsvc_load(struct altsvcinfo *asi, const char *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/altsvc.c:351,1
    - Dst: Curl_altsvc_init
      Src: /src/curl/lib/altsvc.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - ctrl
    argTypes:
    - struct Curl_easy*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 362
    functionName: Curl_altsvc_ctrl
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 1
    functionsReached:
    - Curl_altsvc_init
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_altsvc_ctrl(struct Curl_easy *data, const long ctrl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/altsvc.c:374,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/altsvc.c:375,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/altsvc.c:376,1
    - Dst: altsvc_free
      Src: /src/curl/lib/altsvc.c:377,1
    - Dst: curlx_free
      Src: /src/curl/lib/altsvc.c:379,1
    - Dst: curlx_free
      Src: /src/curl/lib/altsvc.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - asi
    argTypes:
    - struct altsvcinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 383
    functionName: Curl_altsvc_cleanup
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 4
    functionsReached:
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - curlx_free
    - altsvc_free
    linkageType: ''
    returnType: void
    signature: void Curl_altsvc_cleanup(struct altsvcinfo **asi)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_fopen
      Src: /src/curl/lib/altsvc.c:407,1
    - Dst: fputs
      Src: /src/curl/lib/altsvc.c:411,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/altsvc.c:414,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/altsvc.c:415,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/altsvc.c:416,1
    - Dst: altsvc_out
      Src: /src/curl/lib/altsvc.c:417,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/altsvc.c:421,1
    - Dst: curlx_rename
      Src: /src/curl/lib/altsvc.c:422,1
    - Dst: unlink
      Src: /src/curl/lib/altsvc.c:426,1
    - Dst: curlx_free
      Src: /src/curl/lib/altsvc.c:428,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 3
    argNames:
    - data
    - asi
    - file
    argTypes:
    - struct Curl_easy*
    - struct altsvcinfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 388
    functionDepth: 7
    functionLinenumber: 388
    functionLinenumberEnd: 430
    functionName: Curl_altsvc_save
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 2
    functionsReached:
    - curlx_fclose
    - fputs
    - altsvc_out
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - curlx_free
    - Curl_fopen
    - unlink
    - curlx_rename
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_altsvc_save(struct Curl_easy *data,\n                          struct
      altsvcinfo *asi, const char *file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/altsvc.c:437,1
    - Dst: strlen
      Src: /src/curl/lib/altsvc.c:438,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/altsvc.c:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - host
    - check
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 446
    functionName: hostcompare
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: bool hostcompare(const char *host, const char *check)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/altsvc.c:455,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/altsvc.c:456,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/altsvc.c:457,1
    - Dst: hostcompare
      Src: /src/curl/lib/altsvc.c:460,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/altsvc.c:461,1
    - Dst: altsvc_free
      Src: /src/curl/lib/altsvc.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - asi
    - srcalpnid
    - srchost
    - srcport
    argTypes:
    - struct altsvcinfo*
    - enum alpnid
    - char*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 450
    functionDepth: 4
    functionLinenumber: 450
    functionLinenumberEnd: 465
    functionName: altsvc_flush
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 0
    functionsReached:
    - Curl_node_elem
    - hostcompare
    - Curl_node_next
    - Curl_llist_head
    - altsvc_free
    - Curl_node_remove
    linkageType: ''
    returnType: void
    signature: "void altsvc_flush(struct altsvcinfo *asi, enum alpnid srcalpnid,\n
      \                        const char *srchost, unsigned short srcport)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/altsvc.c:489,1
    - Dst: curlx_str_cspn
      Src: /src/curl/lib/altsvc.c:492,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/altsvc.c:493,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/altsvc.c:495,1
    - Dst: altsvc_flush
      Src: /src/curl/lib/altsvc.c:497,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/altsvc.c:504,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/altsvc.c:507,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:510,1
    - Dst: Curl_str2alpnid
      Src: /src/curl/lib/altsvc.c:514,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:515,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:518,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:520,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/altsvc.c:521,1
    - Dst: infof
      Src: /src/curl/lib/altsvc.c:522,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/altsvc.c:528,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:529,1
    - Dst: infof
      Src: /src/curl/lib/altsvc.c:530,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:534,1
    - Dst: curlx_str_assign
      Src: /src/curl/lib/altsvc.c:539,1
    - Dst: strlen
      Src: /src/curl/lib/altsvc.c:539,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/altsvc.c:541,1
    - Dst: infof
      Src: /src/curl/lib/altsvc.c:542,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:548,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/altsvc.c:553,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:554,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/altsvc.c:562,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:563,1
    - Dst: curlx_str_cspn
      Src: /src/curl/lib/altsvc.c:564,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/altsvc.c:566,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/altsvc.c:567,1
    - Dst: curlx_str
      Src: /src/curl/lib/altsvc.c:569,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/altsvc.c:573,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/altsvc.c:574,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/altsvc.c:576,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/altsvc.c:582,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:583,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/altsvc.c:585,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:586,1
    - Dst: altsvc_flush
      Src: /src/curl/lib/altsvc.c:594,1
    - Dst: altsvc_createid
      Src: /src/curl/lib/altsvc.c:596,1
    - Dst: strlen
      Src: /src/curl/lib/altsvc.c:596,1
    - Dst: curlx_str
      Src: /src/curl/lib/altsvc.c:597,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/altsvc.c:598,1
    - Dst: time
      Src: /src/curl/lib/altsvc.c:602,1
    - Dst: altsvc_append
      Src: /src/curl/lib/altsvc.c:610,1
    - Dst: infof
      Src: /src/curl/lib/altsvc.c:611,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/altsvc.c:612,1
    - Dst: curlx_str
      Src: /src/curl/lib/altsvc.c:612,1
    - Dst: Curl_alpnid2str
      Src: /src/curl/lib/altsvc.c:613,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/altsvc.c:624,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/altsvc.c:628,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/altsvc.c:630,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 91
    argCount: 6
    argNames:
    - data
    - asi
    - value
    - srcalpnid
    - srchost
    - srcport
    argTypes:
    - struct Curl_easy*
    - struct altsvcinfo*
    - char*
    - enum alpnid
    - char*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 637
    functionName: Curl_altsvc_parse
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 2
    functionsReached:
    - curlx_str_single
    - DEBUGASSERT
    - curlx_str_until
    - curlx_str_passblanks
    - time
    - Curl_str2alpnid
    - curlx_str
    - curlx_str_cspn
    - curlx_str_number
    - Curl_alpnid2str
    - curlx_str_trimblanks
    - curlx_str_assign
    - curlx_strlen
    - altsvc_flush
    - curlx_str_casecompare
    - altsvc_append
    - infof
    - altsvc_createid
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_altsvc_parse(struct Curl_easy *data,\n                           struct
      altsvcinfo *asi, const char *value,\n                           enum alpnid
      srcalpnid, const char *srchost,\n                           unsigned short srcport)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/curl/lib/altsvc.c:651,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/altsvc.c:652,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/altsvc.c:653,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/altsvc.c:654,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/altsvc.c:657,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/altsvc.c:658,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/altsvc.c:659,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/altsvc.c:662,1
    - Dst: altsvc_free
      Src: /src/curl/lib/altsvc.c:663,1
    - Dst: hostcompare
      Src: /src/curl/lib/altsvc.c:667,1
    - Dst: hostcompare
      Src: /src/curl/lib/altsvc.c:673,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 7
    argNames:
    - asi
    - srcalpnid
    - srchost
    - srcport
    - dstentry
    - versions
    - psame_destination
    argTypes:
    - struct altsvcinfo*
    - enum alpnid
    - char*
    - int
    - struct altsvc**
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 642
    functionDepth: 4
    functionLinenumber: 642
    functionLinenumberEnd: 678
    functionName: Curl_altsvc_lookup
    functionSourceFile: /src/curl/lib/altsvc.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - Curl_node_elem
    - Curl_node_next
    - hostcompare
    - time
    - Curl_llist_head
    - altsvc_free
    - Curl_node_remove
    linkageType: ''
    returnType: bool
    signature: "bool Curl_altsvc_lookup(struct altsvcinfo *asi,\n                        enum
      alpnid srcalpnid, const char *srchost,\n                        int srcport,\n
      \                       struct altsvc **dstentry,\n                        const
      int versions, /* one or more bits */\n                        bool *psame_destination)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/curl_trc.c:53,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/curl_trc.c:54,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/curl_trc.c:55,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/curl_trc.c:57,1
    - Dst: fwrite
      Src: /src/curl/lib/curl_trc.c:66,1
    - Dst: fwrite
      Src: /src/curl/lib/curl_trc.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - data
    - type
    - ptr
    - size
    argTypes:
    - struct Curl_easy*
    - curl_infotype
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 74
    functionName: trc_write
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - fwrite
    - Curl_is_in_callback
    - Curl_set_in_callback
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: "void trc_write(struct Curl_easy *data, curl_infotype type,\n                      const
      char *ptr, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: CURL_TRC_IDS
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TRC_IDS(data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_trc.c:98,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_trc.c:100,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_trc.c:103,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_trc.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - data
    - buf
    - maxlen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 7
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: trc_print_ids
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: size_t
    signature: size_t trc_print_ids(struct Curl_easy *data, char *buf, size_t maxlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - buf
    - len
    - maxlen
    - addnl
    argTypes:
    - char*
    - size_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: trc_end_buf
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t trc_end_buf(char *buf, size_t len, size_t maxlen, bool addnl)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_is_in_callback
      Src: /src/curl/lib/curl_trc.c:135,1
    - Dst: CURL_TRC_IDS
      Src: /src/curl/lib/curl_trc.c:137,1
    - Dst: trc_print_ids
      Src: /src/curl/lib/curl_trc.c:138,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_trc.c:139,1
    - Dst: trc_end_buf
      Src: /src/curl/lib/curl_trc.c:141,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/curl_trc.c:142,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/curl_trc.c:144,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/curl_trc.c:147,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/curl_trc.c:148,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/curl_trc.c:150,1
    - Dst: CURL_TRC_IDS
      Src: /src/curl/lib/curl_trc.c:159,1
    - Dst: trc_print_ids
      Src: /src/curl/lib/curl_trc.c:160,1
    - Dst: fwrite
      Src: /src/curl/lib/curl_trc.c:161,1
    - Dst: fwrite
      Src: /src/curl/lib/curl_trc.c:164,1
    - Dst: fwrite
      Src: /src/curl/lib/curl_trc.c:165,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - data
    - type
    - ptr
    - size
    argTypes:
    - struct Curl_easy*
    - curl_infotype
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 172
    functionName: Curl_debug
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 5
    functionsReached:
    - curl_msnprintf
    - CURL_TRC_IDS
    - Curl_is_in_callback
    - CURL_UNCONST
    - fwrite
    - trc_end_buf
    - Curl_set_in_callback
    - trc_print_ids
    linkageType: ''
    returnType: void
    signature: "void Curl_debug(struct Curl_easy *data, curl_infotype type,\n                const
      char *ptr, size_t size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:179,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:179,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:184,1
    - Dst: curl_mvsnprintf
      Src: /src/curl/lib/curl_trc.c:185,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/curl_trc.c:188,1
    - Dst: trc_write
      Src: /src/curl/lib/curl_trc.c:193,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 6
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: Curl_failf
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - va_start
    - curlx_strcopy
    - curl_mvsnprintf
    - va_end
    - strchr
    - trc_write
    linkageType: ''
    returnType: void
    signature: void Curl_failf(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: Curl_reset_fail
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_reset_fail(struct Curl_easy *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_IDS
      Src: /src/curl/lib/curl_trc.c:249,1
    - Dst: trc_print_ids
      Src: /src/curl/lib/curl_trc.c:250,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_trc.c:252,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_trc.c:255,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_trc.c:258,1
    - Dst: curl_mvsnprintf
      Src: /src/curl/lib/curl_trc.c:260,1
    - Dst: trc_end_buf
      Src: /src/curl/lib/curl_trc.c:261,1
    - Dst: trc_write
      Src: /src/curl/lib/curl_trc.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - data
    - feat
    - opt_id
    - opt_id_idx
    - fmt
    - ap
    argTypes:
    - struct Curl_easy*
    - struct curl_trc_feat*
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 241
    functionDepth: 8
    functionLinenumber: 241
    functionLinenumberEnd: 263
    functionName: trc_infof
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - CURL_TRC_IDS
    - curl_mvsnprintf
    - trc_end_buf
    - trc_write
    - trc_print_ids
    linkageType: ''
    returnType: void
    signature: "void trc_infof(struct Curl_easy *data,\n                      struct
      curl_trc_feat *feat,\n                      const char *opt_id, int opt_id_idx,\n
      \                     const char * const fmt, va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:267,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:267,1
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/curl_trc.c:268,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:270,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:271,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 9
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: Curl_infof
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - Curl_trc_is_verbose
    - strchr
    linkageType: ''
    returnType: void
    signature: void Curl_infof(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:279,1
    - Dst: Curl_trc_cf_is_verbose
      Src: /src/curl/lib/curl_trc.c:280,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:282,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:283,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - cf
    - fmt
    argTypes:
    - struct Curl_easy*
    - struct Curl_cfilter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 9
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: Curl_trc_cf_infof
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - Curl_trc_cf_is_verbose
    linkageType: ''
    returnType: void
    signature: "void Curl_trc_cf_infof(struct Curl_easy *data, const struct Curl_cfilter
      *cf,\n                       const char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:292,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:293,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:295,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:296,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - feat
    - fmt
    argTypes:
    - struct Curl_easy*
    - struct curl_trc_feat*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 9
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: Curl_trc_feat_infof
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: "void Curl_trc_feat_infof(struct Curl_easy *data,\n                         struct
      curl_trc_feat *feat,\n                         const char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/curl_trc.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - tid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 324
    functionName: trc_timer_name
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: char
    signature: char *trc_timer_name(int tid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:328,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:328,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:329,1
    - Dst: trc_timer_name
      Src: /src/curl/lib/curl_trc.c:330,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:332,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:333,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - tid
    - fmt
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 326
    functionDepth: 9
    functionLinenumber: 326
    functionLinenumberEnd: 336
    functionName: Curl_trc_timer
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - trc_timer_name
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_timer(struct Curl_easy *data, int tid, const char *fmt,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_TIMER_is_verbose
      Src: /src/curl/lib/curl_trc.c:340,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/curl_trc.c:341,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/curl_trc.c:343,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/curl_trc.c:345,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/curl_trc.c:346,1
    - Dst: CURL_TRC_TIMER
      Src: /src/curl/lib/curl_trc.c:347,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/curl_trc.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 352
    functionName: Curl_trc_easy_timers
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - curlx_ptimediff_us
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - CURL_TRC_TIMER_is_verbose
    - CURL_TRC_TIMER
    linkageType: ''
    returnType: void
    signature: void Curl_trc_easy_timers(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/curl_trc.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: Curl_trc_mstate_name
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: char
    signature: char *Curl_trc_mstate_name(int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:382,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:382,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:383,1
    - Dst: Curl_trc_mstate_name
      Src: /src/curl/lib/curl_trc.c:385,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:387,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:388,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 380
    functionDepth: 9
    functionLinenumber: 380
    functionLinenumberEnd: 391
    functionName: Curl_trc_multi
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - Curl_trc_mstate_name
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_multi(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:395,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:395,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:396,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:398,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:399,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 9
    functionLinenumber: 393
    functionLinenumberEnd: 402
    functionName: Curl_trc_read
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_read(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:406,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:406,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:407,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:409,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:410,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 9
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: Curl_trc_write
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_write(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:417,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:417,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:418,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:420,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:421,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 9
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: Curl_trc_dns
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_dns(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:434,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:434,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:435,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:437,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:438,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 9
    functionLinenumber: 432
    functionLinenumberEnd: 441
    functionName: Curl_trc_ftp
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_ftp(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:452,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:452,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:453,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:455,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:456,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 450
    functionDepth: 9
    functionLinenumber: 450
    functionLinenumberEnd: 459
    functionName: Curl_trc_smtp
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_smtp(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:470,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:470,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:471,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:473,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:474,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 468
    functionDepth: 9
    functionLinenumber: 468
    functionLinenumberEnd: 477
    functionName: Curl_trc_ssls
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_ssls(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:488,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:488,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:489,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:491,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:492,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 486
    functionDepth: 9
    functionLinenumber: 486
    functionLinenumberEnd: 495
    functionName: Curl_trc_ssh
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_ssh(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_trc.c:506,1
    - Dst: strchr
      Src: /src/curl/lib/curl_trc.c:506,1
    - Dst: Curl_trc_ft_is_verbose
      Src: /src/curl/lib/curl_trc.c:507,1
    - Dst: va_start
      Src: /src/curl/lib/curl_trc.c:509,1
    - Dst: trc_infof
      Src: /src/curl/lib/curl_trc.c:510,1
    - Dst: va_end
      Src: /src/curl/lib/curl_trc.c:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 504
    functionDepth: 9
    functionLinenumber: 504
    functionLinenumberEnd: 513
    functionName: Curl_trc_ws
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - trc_infof
    - va_start
    - va_end
    - strchr
    - Curl_trc_ft_is_verbose
    linkageType: ''
    returnType: void
    signature: void Curl_trc_ws(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/curl_trc.c:602,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/curl_trc.c:603,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/curl_trc.c:608,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/curl_trc.c:609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - token
    - lvl
    argTypes:
    - struct Curl_str*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 614
    functionName: trc_apply_level_by_name
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - curlx_str_casecompare
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: void
    signature: void trc_apply_level_by_name(struct Curl_str *token, int lvl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/curl_trc.c:620,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/curl_trc.c:624,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - category
    - lvl
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: trc_apply_level_by_category
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: void
    signature: void trc_apply_level_by_category(unsigned int category, int lvl)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_until
      Src: /src/curl/lib/curl_trc.c:633,1
    - Dst: curlx_str
      Src: /src/curl/lib/curl_trc.c:635,1
    - Dst: curlx_str_nudge
      Src: /src/curl/lib/curl_trc.c:639,1
    - Dst: curlx_str_nudge
      Src: /src/curl/lib/curl_trc.c:642,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/curl_trc.c:644,1
    - Dst: trc_apply_level_by_category
      Src: /src/curl/lib/curl_trc.c:645,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/curl_trc.c:646,1
    - Dst: trc_apply_level_by_category
      Src: /src/curl/lib/curl_trc.c:647,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/curl_trc.c:648,1
    - Dst: trc_apply_level_by_category
      Src: /src/curl/lib/curl_trc.c:649,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/curl_trc.c:650,1
    - Dst: trc_apply_level_by_category
      Src: /src/curl/lib/curl_trc.c:651,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/curl_trc.c:652,1
    - Dst: trc_apply_level_by_name
      Src: /src/curl/lib/curl_trc.c:654,1
    - Dst: trc_apply_level_by_name
      Src: /src/curl/lib/curl_trc.c:657,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/curl_trc.c:659,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - config
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 663
    functionName: trc_opt
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 1
    functionsReached:
    - curlx_str_single
    - curlx_str_until
    - curlx_str_casecompare
    - curlx_str
    - trc_apply_level_by_category
    - trc_apply_level_by_name
    - curlx_str_nudge
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode trc_opt(const char *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trc_opt
      Src: /src/curl/lib/curl_trc.c:667,1
    - Dst: getenv
      Src: /src/curl/lib/curl_trc.c:671,1
    - Dst: trc_opt
      Src: /src/curl/lib/curl_trc.c:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 677
    functionName: Curl_trc_opt
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 1
    functionsReached:
    - getenv
    - trc_opt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_trc_opt(const char *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_opt
      Src: /src/curl/lib/curl_trc.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 679
    functionDepth: 4
    functionLinenumber: 679
    functionLinenumberEnd: 686
    functionName: Curl_trc_init
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 1
    functionsReached:
    - Curl_trc_opt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_trc_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: Curl_trc_init
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_trc_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 699
    functionName: Curl_infof
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_infof(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - cf
    - fmt
    argTypes:
    - struct Curl_easy*
    - struct Curl_cfilter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 707
    functionName: Curl_trc_cf_infof
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Curl_trc_cf_infof(struct Curl_easy *data, const struct Curl_cfilter
      *cf,\n                       const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: Curl_trc_multi
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_multi(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: Curl_trc_write
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_write(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: Curl_trc_dns
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_dns(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - tid
    - fmt
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 732
    functionName: Curl_trc_timer
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_timer(struct Curl_easy *data, int tid, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: Curl_trc_read
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_read(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 745
    functionName: Curl_trc_ftp
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_ftp(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: Curl_trc_smtp
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_smtp(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 759
    functionName: Curl_trc_ws
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_ws(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 766
    functionName: Curl_trc_ssh
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_ssh(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 773
    functionName: Curl_trc_ssls
    functionSourceFile: /src/curl/lib/curl_trc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_trc_ssls(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_escape
      Src: /src/curl/lib/escape.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - length
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: curl_escape
    functionSourceFile: /src/curl/lib/escape.c
    functionUses: 1
    functionsReached:
    - curl_easy_escape
    linkageType: ''
    returnType: char
    signature: char *curl_escape(const char *string, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_unescape
      Src: /src/curl/lib/escape.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - length
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: curl_unescape
    functionSourceFile: /src/curl/lib/escape.c
    functionUses: 1
    functionsReached:
    - curl_easy_unescape
    linkageType: ''
    returnType: char
    signature: char *curl_unescape(const char *string, int length)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/escape.c:59,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/escape.c:61,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/escape.c:66,1
    - Dst: ISUNRESERVED
      Src: /src/curl/lib/escape.c:72,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/escape.c:74,1
    - Dst: Curl_hexbyte
      Src: /src/curl/lib/escape.c:80,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/escape.c:81,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/escape.c:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - curl
    - string
    - length
    argTypes:
    - CURL*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 87
    functionName: curl_easy_escape
    functionSourceFile: /src/curl/lib/escape.c
    functionUses: 10
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - curlx_strdup
    - curlx_dyn_ptr
    - Curl_hexbyte
    - ISUNRESERVED
    - strlen
    linkageType: ''
    returnType: char
    signature: char *curl_easy_escape(CURL *curl, const char *string, int length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/escape.c:112,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/escape.c:113,1
    - Dst: strlen
      Src: /src/curl/lib/escape.c:115,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/escape.c:116,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/escape.c:127,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/escape.c:127,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/escape.c:129,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/escape.c:130,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/escape.c:141,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 5
    argNames:
    - string
    - length
    - ostring
    - olen
    - ctrl
    argTypes:
    - char*
    - size_t
    - char**
    - size_t*
    - enum urlreject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 154
    functionName: Curl_urldecode
    functionSourceFile: /src/curl/lib/escape.c
    functionUses: 6
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - ISXDIGIT
    - curlx_malloc
    - curlx_hexval
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_urldecode(const char *string, size_t length,\n                        char
      **ostring, size_t *olen,\n                        enum urlreject ctrl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_urldecode
      Src: /src/curl/lib/escape.c:171,1
    - Dst: curlx_uztosi
      Src: /src/curl/lib/escape.c:178,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/escape.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - curl
    - string
    - inlength
    - outlength
    argTypes:
    - CURL*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 185
    functionName: curl_easy_unescape
    functionSourceFile: /src/curl/lib/escape.c
    functionUses: 4
    functionsReached:
    - curlx_uztosi
    - curlx_safefree
    - Curl_urldecode
    linkageType: ''
    returnType: char
    signature: "char *curl_easy_unescape(CURL *curl, const char *string, int inlength,\n
      \                        int *outlength)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/escape.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: curl_free
    functionSourceFile: /src/curl/lib/escape.c
    functionUses: 59
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void curl_free(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/escape.c:204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - src
    - len
    - out
    - olen
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: Curl_hexencode
    functionSourceFile: /src/curl/lib/escape.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_hexencode(const unsigned char *src, size_t len, /* input
      length */\n                    unsigned char *out, size_t olen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - val
    argTypes:
    - unsigned char*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: Curl_hexbyte
    functionSourceFile: /src/curl/lib/escape.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Curl_hexbyte(unsigned char *dest, /* must fit two bytes */\n
      \                 unsigned char val)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/curl_gssapi.c:135,1
    - Dst: strlen
      Src: /src/curl/lib/curl_gssapi.c:136,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_gssapi.c:142,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/curl_gssapi.c:205,1
    - Dst: strstr
      Src: /src/curl/lib/curl_gssapi.c:211,1
    - Dst: strstr
      Src: /src/curl/lib/curl_gssapi.c:214,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_gssapi.c:222,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/curl_gssapi.c:227,1
    - Dst: strlen
      Src: /src/curl/lib/curl_gssapi.c:227,1
    - Dst: Curl_gss_alloc
      Src: /src/curl/lib/curl_gssapi.c:231,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_gssapi.c:233,1
    - Dst: gss_display_name
      Src: /src/curl/lib/curl_gssapi.c:243,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/curl_gssapi.c:245,1
    - Dst: Curl_gss_free
      Src: /src/curl/lib/curl_gssapi.c:246,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_gssapi.c:247,1
    - Dst: strlen
      Src: /src/curl/lib/curl_gssapi.c:252,1
    - Dst: Curl_gss_free
      Src: /src/curl/lib/curl_gssapi.c:253,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_gssapi.c:254,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_gssapi.c:260,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/curl_gssapi.c:265,1
    - Dst: Curl_gss_free
      Src: /src/curl/lib/curl_gssapi.c:269,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_gssapi.c:270,1
    - Dst: memset
      Src: /src/curl/lib/curl_gssapi.c:276,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 122
    argCount: 13
    argNames:
    - min
    - initiator_cred_handle
    - context
    - target_name
    - mech_type
    - req_flags
    - time_req
    - input_chan_bindings
    - input_token
    - actual_mech_type
    - output_token
    - ret_flags
    - time_rec
    argTypes:
    - OM_uint32*
    - gss_cred_id_t
    - struct stub_gss_ctx_id_t_desc**
    - gss_name_t
    - gss_OID
    - OM_uint32
    - OM_uint32
    - gss_channel_bindings_t
    - gss_buffer_desc*
    - gss_OID*
    - gss_buffer_desc*
    - OM_uint32*
    - OM_uint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 96
    functionDepth: 7
    functionLinenumber: 96
    functionLinenumberEnd: 284
    functionName: stub_gss_init_sec_context
    functionSourceFile: /src/curl/lib/curl_gssapi.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - Curl_gss_alloc
    - strstr
    - getenv
    - curlx_strcopy
    - gss_display_name
    - strcmp
    - curlx_free
    - curlx_calloc
    - memset
    - Curl_gss_free
    - strlen
    - GSS_ERROR
    - gss_release_buffer
    linkageType: ''
    returnType: OM_uint32
    signature: "OM_uint32 stub_gss_init_sec_context(\n  OM_uint32 *min,\n  gss_cred_id_t
      initiator_cred_handle,\n  struct stub_gss_ctx_id_t_desc **context,\n  gss_name_t
      target_name,\n  const gss_OID mech_type,\n  OM_uint32 req_flags,\n  OM_uint32
      time_req,\n  const gss_channel_bindings_t input_chan_bindings,\n  gss_buffer_desc
      *input_token,\n  gss_OID *actual_mech_type,\n  gss_buffer_desc *output_token,\n
      \ OM_uint32 *ret_flags,\n  OM_uint32 *time_rec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/curl_gssapi.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - min
    - context
    - output_token
    argTypes:
    - OM_uint32*
    - struct stub_gss_ctx_id_t_desc**
    - gss_buffer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 309
    functionName: stub_gss_delete_sec_context
    functionSourceFile: /src/curl/lib/curl_gssapi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: OM_uint32
    signature: "OM_uint32 stub_gss_delete_sec_context(\n  OM_uint32 *min,\n  struct
      stub_gss_ctx_id_t_desc **context,\n  gss_buffer_t output_token)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/curl_gssapi.c:332,1
    - Dst: getenv
      Src: /src/curl/lib/curl_gssapi.c:341,1
    - Dst: stub_gss_init_sec_context
      Src: /src/curl/lib/curl_gssapi.c:342,1
    - Dst: gss_init_sec_context
      Src: /src/curl/lib/curl_gssapi.c:357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 10
    argNames:
    - data
    - minor_status
    - context
    - target_name
    - mech_type
    - input_chan_bindings
    - input_token
    - output_token
    - mutual_auth
    - ret_flags
    argTypes:
    - struct Curl_easy*
    - OM_uint32*
    - gss_ctx_id_t*
    - gss_name_t
    - gss_OID
    - gss_channel_bindings_t
    - gss_buffer_t
    - gss_buffer_t
    - bool
    - OM_uint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 312
    functionDepth: 8
    functionLinenumber: 312
    functionLinenumberEnd: 370
    functionName: Curl_gss_init_sec_context
    functionSourceFile: /src/curl/lib/curl_gssapi.c
    functionUses: 1
    functionsReached:
    - getenv
    - stub_gss_init_sec_context
    - gss_init_sec_context
    - infof
    linkageType: ''
    returnType: OM_uint32
    signature: "OM_uint32 Curl_gss_init_sec_context(struct Curl_easy *data,\n                                    OM_uint32
      *minor_status,\n                                    gss_ctx_id_t *context,\n
      \                                   gss_name_t target_name,\n                                    gss_OID
      mech_type,\n                                    gss_channel_bindings_t input_chan_bindings,\n
      \                                   gss_buffer_t input_token,\n                                    gss_buffer_t
      output_token,\n                                    const bool mutual_auth,\n
      \                                   OM_uint32 *ret_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/curl_gssapi.c:377,1
    - Dst: stub_gss_delete_sec_context
      Src: /src/curl/lib/curl_gssapi.c:378,1
    - Dst: gss_delete_sec_context
      Src: /src/curl/lib/curl_gssapi.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - min
    - context
    - output_token
    argTypes:
    - OM_uint32*
    - gss_ctx_id_t*
    - gss_buffer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 384
    functionName: Curl_gss_delete_sec_context
    functionSourceFile: /src/curl/lib/curl_gssapi.c
    functionUses: 3
    functionsReached:
    - getenv
    - gss_delete_sec_context
    - stub_gss_delete_sec_context
    linkageType: ''
    returnType: OM_uint32
    signature: "OM_uint32 Curl_gss_delete_sec_context(OM_uint32 *min,\n                                      gss_ctx_id_t
      *context,\n                                      gss_buffer_t output_token)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gss_display_status
      Src: /src/curl/lib/curl_gssapi.c:397,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/curl_gssapi.c:405,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/curl_gssapi.c:410,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/curl_gssapi.c:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - status
    - type
    - buf
    - len
    argTypes:
    - OM_uint32
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 388
    functionDepth: 7
    functionLinenumber: 388
    functionLinenumberEnd: 414
    functionName: display_gss_error
    functionSourceFile: /src/curl/lib/curl_gssapi.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - GSS_ERROR
    - gss_display_status
    - gss_release_buffer
    linkageType: ''
    returnType: size_t
    signature: "size_t display_gss_error(OM_uint32 status, int type,\n                                char
      *buf, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_gss_error
      Src: /src/curl/lib/curl_gssapi.c:435,1
    - Dst: display_gss_error
      Src: /src/curl/lib/curl_gssapi.c:437,1
    - Dst: infof
      Src: /src/curl/lib/curl_gssapi.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - data
    - prefix
    - major
    - minor
    argTypes:
    - struct Curl_easy*
    - char*
    - OM_uint32
    - OM_uint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 428
    functionDepth: 8
    functionLinenumber: 428
    functionLinenumberEnd: 440
    functionName: Curl_gss_log_error
    functionSourceFile: /src/curl/lib/curl_gssapi.c
    functionUses: 0
    functionsReached:
    - display_gss_error
    - infof
    linkageType: ''
    returnType: void
    signature: "void Curl_gss_log_error(struct Curl_easy *data, const char *prefix,\n
      \                       OM_uint32 major, OM_uint32 minor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: psl_free
      Src: /src/curl/lib/psl.c:36,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/psl.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pslcache
    argTypes:
    - struct PslCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: Curl_psl_destroy
    functionSourceFile: /src/curl/lib/psl.c
    functionUses: 1
    functionsReached:
    - psl_free
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: void Curl_psl_destroy(struct PslCache *pslcache)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_share_lock
      Src: /src/curl/lib/psl.c:51,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/psl.c:52,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/psl.c:55,1
    - Dst: Curl_share_lock
      Src: /src/curl/lib/psl.c:58,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/psl.c:62,1
    - Dst: psl_latest
      Src: /src/curl/lib/psl.c:69,1
    - Dst: psl_builtin
      Src: /src/curl/lib/psl.c:79,1
    - Dst: Curl_psl_destroy
      Src: /src/curl/lib/psl.c:82,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/psl.c:88,1
    - Dst: Curl_share_lock
      Src: /src/curl/lib/psl.c:89,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/psl.c:93,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 95
    functionName: Curl_psl_use
    functionSourceFile: /src/curl/lib/psl.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_share_lock
    - Curl_share_unlock
    - psl_builtin
    - psl_latest
    - Curl_psl_destroy
    linkageType: ''
    returnType: psl_ctx_t
    signature: psl_ctx_t *Curl_psl_use(struct Curl_easy *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/psl.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - easy
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: Curl_psl_release
    functionSourceFile: /src/curl/lib/psl.c
    functionUses: 0
    functionsReached:
    - Curl_share_unlock
    linkageType: ''
    returnType: void
    signature: void Curl_psl_release(struct Curl_easy *easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: CURL_REQ_WANT_SEND
    functionSourceFile: /src/curl/lib/request.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_REQ_WANT_SEND(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: CURL_REQ_WANT_RECV
    functionSourceFile: /src/curl/lib/request.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_REQ_WANT_RECV(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: CURL_REQ_WANT_IO
    functionSourceFile: /src/curl/lib/request.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_REQ_WANT_IO(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: CURL_REQ_SET_SEND
    functionSourceFile: /src/curl/lib/request.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_REQ_SET_SEND(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: CURL_REQ_SET_RECV
    functionSourceFile: /src/curl/lib/request.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_REQ_SET_RECV(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: CURL_REQ_CLEAR_SEND
    functionSourceFile: /src/curl/lib/request.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_REQ_CLEAR_SEND(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: CURL_REQ_CLEAR_RECV
    functionSourceFile: /src/curl/lib/request.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_REQ_CLEAR_RECV(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: CURL_REQ_CLEAR_IO
    functionSourceFile: /src/curl/lib/request.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_REQ_CLEAR_IO(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/http1.c:38,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http1.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - parser
    - max_line_len
    argTypes:
    - struct h1_req_parser*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Curl_h1_req_parse_init
    functionSourceFile: /src/curl/lib/http1.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_h1_req_parse_init(struct h1_req_parser *parser, size_t max_line_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_req_free
      Src: /src/curl/lib/http1.c:46,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http1.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct h1_req_parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: Curl_h1_req_parse_free
    functionSourceFile: /src/curl/lib/http1.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_free
    - Curl_http_req_free
    linkageType: ''
    returnType: void
    signature: void Curl_h1_req_parse_free(struct h1_req_parser *parser)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http1.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - parser
    - options
    argTypes:
    - struct h1_req_parser*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: trim_line
    functionSourceFile: /src/curl/lib/http1.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode trim_line(struct h1_req_parser *parser, int options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http1.c:83,1
    - Dst: memchr
      Src: /src/curl/lib/http1.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - parser
    - buf
    - buflen
    - pnread
    argTypes:
    - struct h1_req_parser*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: detect_line
    functionSourceFile: /src/curl/lib/http1.c
    functionUses: 0
    functionsReached:
    - memchr
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode detect_line(struct h1_req_parser *parser,\n                            const
      uint8_t *buf, const size_t buflen,\n                            size_t *pnread)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http1.c:104,1
    - Dst: detect_line
      Src: /src/curl/lib/http1.c:107,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http1.c:109,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http1.c:111,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http1.c:115,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http1.c:116,1
    - Dst: trim_line
      Src: /src/curl/lib/http1.c:118,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http1.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - parser
    - buf
    - buflen
    - options
    - pnread
    argTypes:
    - struct h1_req_parser*
    - uint8_t*
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 129
    functionName: next_line
    functionSourceFile: /src/curl/lib/http1.c
    functionUses: 0
    functionsReached:
    - trim_line
    - curlx_dyn_addn
    - curlx_dyn_len
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - detect_line
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode next_line(struct h1_req_parser *parser,\n                          const
      uint8_t *buf, const size_t buflen, int options,\n                          size_t
      *pnread)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http1.c:142,1
    - Dst: strncmp
      Src: /src/curl/lib/http1.c:145,1
    - Dst: strlen
      Src: /src/curl/lib/http1.c:145,1
    - Dst: strlen
      Src: /src/curl/lib/http1.c:146,1
    - Dst: memchr
      Src: /src/curl/lib/http1.c:149,1
    - Dst: strncmp
      Src: /src/curl/lib/http1.c:195,1
    - Dst: memcpy
      Src: /src/curl/lib/http1.c:217,1
    - Dst: Curl_is_absolute_url
      Src: /src/curl/lib/http1.c:220,1
    - Dst: curl_url
      Src: /src/curl/lib/http1.c:223,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http1.c:233,1
    - Dst: Curl_http_req_make2
      Src: /src/curl/lib/http1.c:246,1
    - Dst: strlen
      Src: /src/curl/lib/http1.c:251,1
    - Dst: Curl_http_req_make
      Src: /src/curl/lib/http1.c:253,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http1.c:258,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 82
    argCount: 4
    argNames:
    - parser
    - scheme_default
    - custom_method
    - options
    argTypes:
    - struct h1_req_parser*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 260
    functionName: start_req
    functionSourceFile: /src/curl/lib/http1.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - memcpy
    - strlen
    - DEBUGASSERT
    - Curl_http_req_make2
    - curl_url_cleanup
    - memchr
    - Curl_http_req_make
    - Curl_is_absolute_url
    - strncmp
    - curl_url
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode start_req(struct h1_req_parser *parser,\n                          const
      char *scheme_default,\n                          const char *custom_method,\n
      \                         int options)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http1.c:273,1
    - Dst: next_line
      Src: /src/curl/lib/http1.c:278,1
    - Dst: start_req
      Src: /src/curl/lib/http1.c:296,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http1.c:307,1
    - Dst: Curl_dynhds_h1_add_line
      Src: /src/curl/lib/http1.c:311,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 7
    argNames:
    - parser
    - buf
    - buflen
    - scheme_default
    - custom_method
    - options
    - pnread
    argTypes:
    - struct h1_req_parser*
    - uint8_t*
    - size_t
    - char*
    - char*
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 320
    functionName: Curl_h1_req_parse_read
    functionSourceFile: /src/curl/lib/http1.c
    functionUses: 1
    functionsReached:
    - next_line
    - DEBUGASSERT
    - Curl_dynhds_h1_add_line
    - start_req
    - curlx_dyn_reset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_h1_req_parse_read(struct h1_req_parser *parser,\n                                const
      uint8_t *buf, size_t buflen,\n                                const char *scheme_default,\n
      \                               const char *custom_method,\n                                int
      options, size_t *pnread)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http1.c:327,1
    - Dst: Curl_dynhds_h1_dprint
      Src: /src/curl/lib/http1.c:337,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http1.c:341,1
    - Dst: STRCONST
      Src: /src/curl/lib/http1.c:341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - req
    - http_minor
    - dbuf
    argTypes:
    - struct httpreq*
    - int
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 345
    functionName: Curl_h1_req_write_head
    functionSourceFile: /src/curl/lib/http1.c
    functionUses: 0
    functionsReached:
    - Curl_dynhds_h1_dprint
    - STRCONST
    - curlx_dyn_addn
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_h1_req_write_head(struct httpreq *req, int http_minor,\n
      \                               struct dynbuf *dbuf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: smb_swap16
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short smb_swap16(unsigned short x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: smb_swap32
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int smb_swap32(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:313,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: smb_swap64
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_swap32
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t smb_swap64(curl_off_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: smb_swap16
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smb_swap16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: smb_swap32
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smb_swap32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: smb_swap64
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smb_swap64(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/smb.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - data
    - smbc
    - newstate
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - enum smb_conn_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 344
    functionName: conn_state
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - infof
    linkageType: ''
    returnType: void
    signature: "void conn_state(struct Curl_easy *data, struct smb_conn *smbc,\n                       enum
      smb_conn_state newstate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/smb.c:349,1
    - Dst: infof
      Src: /src/curl/lib/smb.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - newstate
    argTypes:
    - struct Curl_easy*
    - enum smb_req_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 372
    functionName: request_state
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - infof
    linkageType: ''
    returnType: void
    signature: "void request_state(struct Curl_easy *data,\n                          enum
      smb_req_state newstate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/smb.c:379,1
    - Dst: curlx_free
      Src: /src/curl/lib/smb.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: smb_easy_dtor
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void smb_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/smb.c:388,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/smb.c:389,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/smb.c:390,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/smb.c:391,1
    - Dst: curlx_free
      Src: /src/curl/lib/smb.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: smb_conn_dtor
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void smb_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_urldecode
      Src: /src/curl/lib/smb.c:404,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/smb.c:409,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/smb.c:410,1
    - Dst: curlx_free
      Src: /src/curl/lib/smb.c:412,1
    - Dst: strchr
      Src: /src/curl/lib/smb.c:416,1
    - Dst: strchr
      Src: /src/curl/lib/smb.c:418,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/smb.c:422,1
    - Dst: failf
      Src: /src/curl/lib/smb.c:423,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/smb.c:435,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - data
    - smbc
    - req
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - struct smb_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 440
    functionName: smb_parse_url_path
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_urldecode
    - failf
    - curlx_strdup
    - curlx_free
    - strchr
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_parse_url_path(struct Curl_easy *data,\n                                   struct
      smb_conn *smbc,\n                                   struct smb_request *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/smb.c:451,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/smb.c:453,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/smb.c:457,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/smb.c:459,1
    - Dst: smb_parse_url_path
      Src: /src/curl/lib/smb.c:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 464
    functionName: smb_setup_connection
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_meta_set
    - smb_parse_url_path
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_setup_connection(struct Curl_easy *data,\n                                     struct
      connectdata *conn)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smb.c:469,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/smb.c:471,1
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/smb.c:478,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/smb.c:483,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/smb.c:486,1
    - Dst: strchr
      Src: /src/curl/lib/smb.c:491,1
    - Dst: strchr
      Src: /src/curl/lib/smb.c:493,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/smb.c:497,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/smb.c:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 510
    functionName: smb_connect
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - curlx_strdup
    - Curl_conn_meta_get
    - curlx_malloc
    - Curl_creds_user
    - strchr
    - Curl_creds_has_user
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smb_connect(struct Curl_easy *data, bool *done)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_recv
      Src: /src/curl/lib/smb.c:523,1
    - Dst: Curl_read16_be
      Src: /src/curl/lib/smb.c:536,1
    - Dst: failf
      Src: /src/curl/lib/smb.c:540,1
    - Dst: failf
      Src: /src/curl/lib/smb.c:545,1
    - Dst: Curl_read16_le
      Src: /src/curl/lib/smb.c:558,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - data
    - smbc
    - msg
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 567
    functionName: smb_recv_message
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_recv
    - Curl_read16_be
    - Curl_read16_le
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_recv_message(struct Curl_easy *data,\n                                 struct
      smb_conn *smbc,\n                                 void **msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - smbc
    argTypes:
    - struct smb_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 572
    functionName: smb_pop_message
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smb_pop_message(struct smb_conn *smbc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/smb.c:581,1
    - Dst: htons
      Src: /src/curl/lib/smb.c:582,1
    - Dst: memcpy
      Src: /src/curl/lib/smb.c:584,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:587,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:588,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:589,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:590,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - smbc
    - req
    - h
    - cmd
    - len
    argTypes:
    - struct smb_conn*
    - struct smb_request*
    - struct smb_header*
    - unsigned char
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 592
    functionName: smb_format_message
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - htons
    - memcpy
    - smb_swap16
    - memset
    linkageType: ''
    returnType: void
    signature: "void smb_format_message(struct smb_conn *smbc,\n                               struct
      smb_request *req,\n                               struct smb_header *h,\n                               unsigned
      char cmd, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/smb.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - data
    - smbc
    - len
    - upload_size
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 612
    functionName: smb_send
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send(struct Curl_easy *data, struct smb_conn *smbc,\n
      \                        size_t len, size_t upload_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/smb.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - data
    - smbc
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 634
    functionName: smb_flush
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_send
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smb_flush(struct Curl_easy *data, struct smb_conn *smbc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/smb.c:643,1
    - Dst: smb_format_message
      Src: /src/curl/lib/smb.c:646,1
    - Dst: memcpy
      Src: /src/curl/lib/smb.c:648,1
    - Dst: smb_send
      Src: /src/curl/lib/smb.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - data
    - smbc
    - req
    - cmd
    - msg
    - msg_len
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - struct smb_request*
    - unsigned char
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 651
    functionName: smb_send_message
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_format_message
    - smb_send
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send_message(struct Curl_easy *data,\n                                 struct
      smb_conn *smbc,\n                                 struct smb_request *req,\n
      \                                unsigned char cmd,\n                                 const
      void *msg, size_t msg_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smb_send_message
      Src: /src/curl/lib/smb.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - smbc
    - req
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - struct smb_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 653
    functionDepth: 4
    functionLinenumber: 653
    functionLinenumberEnd: 660
    functionName: smb_send_negotiate
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_send_message
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send_negotiate(struct Curl_easy *data,\n                                   struct
      smb_conn *smbc,\n                                   struct smb_request *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smb.c:665,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/smb.c:666,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/smb.c:674,1
    - Dst: strlen
      Src: /src/curl/lib/smb.c:680,1
    - Dst: strlen
      Src: /src/curl/lib/smb.c:680,1
    - Dst: strlen
      Src: /src/curl/lib/smb.c:681,1
    - Dst: strlen
      Src: /src/curl/lib/smb.c:681,1
    - Dst: Curl_ntlm_core_mk_lm_hash
      Src: /src/curl/lib/smb.c:685,1
    - Dst: Curl_ntlm_core_lm_resp
      Src: /src/curl/lib/smb.c:686,1
    - Dst: Curl_ntlm_core_mk_nt_hash
      Src: /src/curl/lib/smb.c:687,1
    - Dst: Curl_ntlm_core_lm_resp
      Src: /src/curl/lib/smb.c:688,1
    - Dst: memset
      Src: /src/curl/lib/smb.c:690,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:693,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:694,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:695,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:696,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:697,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:698,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:699,1
    - Dst: memcpy
      Src: /src/curl/lib/smb.c:700,1
    - Dst: memcpy
      Src: /src/curl/lib/smb.c:702,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/smb.c:704,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/smb.c:711,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:712,1
    - Dst: smb_send_message
      Src: /src/curl/lib/smb.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 662
    functionDepth: 7
    functionLinenumber: 662
    functionLinenumberEnd: 716
    functionName: smb_send_setup
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - Curl_creds_passwd
    - Curl_ntlm_core_mk_lm_hash
    - memcpy
    - DEBUGASSERT
    - smb_send_message
    - Curl_ntlm_core_mk_nt_hash
    - Curl_conn_meta_get
    - smb_swap32
    - Curl_meta_get
    - Curl_ntlm_core_lm_resp
    - memset
    - strlen
    - smb_swap16
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smb_send_setup(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/smb.c:725,1
    - Dst: strlen
      Src: /src/curl/lib/smb.c:726,1
    - Dst: strlen
      Src: /src/curl/lib/smb.c:727,1
    - Dst: memset
      Src: /src/curl/lib/smb.c:732,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/smb.c:737,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/smb.c:743,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:744,1
    - Dst: smb_send_message
      Src: /src/curl/lib/smb.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - data
    - smbc
    - req
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - struct smb_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 718
    functionDepth: 7
    functionLinenumber: 718
    functionLinenumberEnd: 748
    functionName: smb_send_tree_connect
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - smb_send_message
    - DEBUGASSERT
    - memset
    - strlen
    - smb_swap16
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send_tree_connect(struct Curl_easy *data,\n                                      struct
      smb_conn *smbc,\n                                      struct smb_request *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/smb.c:755,1
    - Dst: memset
      Src: /src/curl/lib/smb.c:760,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:763,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:764,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:766,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:767,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:770,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:771,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:773,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/smb.c:774,1
    - Dst: smb_send_message
      Src: /src/curl/lib/smb.c:776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - data
    - smbc
    - req
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - struct smb_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 750
    functionDepth: 4
    functionLinenumber: 750
    functionLinenumberEnd: 778
    functionName: smb_send_open
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_send_message
    - curlx_strcopy
    - smb_swap32
    - memset
    - strlen
    - smb_swap16
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send_open(struct Curl_easy *data,\n                              struct
      smb_conn *smbc,\n                              struct smb_request *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/smb.c:786,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:788,1
    - Dst: smb_send_message
      Src: /src/curl/lib/smb.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - smbc
    - req
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - struct smb_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 780
    functionDepth: 4
    functionLinenumber: 780
    functionLinenumberEnd: 791
    functionName: smb_send_close
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_send_message
    - smb_swap16
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send_close(struct Curl_easy *data,\n                               struct
      smb_conn *smbc,\n                               struct smb_request *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/smb.c:798,1
    - Dst: smb_send_message
      Src: /src/curl/lib/smb.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - smbc
    - req
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - struct smb_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 793
    functionDepth: 4
    functionLinenumber: 793
    functionLinenumberEnd: 801
    functionName: smb_send_tree_disconnect
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_send_message
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send_tree_disconnect(struct Curl_easy *data,\n                                         struct
      smb_conn *smbc,\n                                         struct smb_request
      *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/smb.c:810,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:813,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:814,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:815,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:816,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:817,1
    - Dst: smb_send_message
      Src: /src/curl/lib/smb.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - data
    - smbc
    - req
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - struct smb_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 803
    functionDepth: 4
    functionLinenumber: 803
    functionLinenumberEnd: 821
    functionName: smb_send_read
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_swap32
    - smb_send_message
    - smb_swap16
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send_read(struct Curl_easy *data,\n                              struct
      smb_conn *smbc,\n                              struct smb_request *req)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/smb.c:835,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:838,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:839,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:840,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:841,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:842,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:843,1
    - Dst: smb_format_message
      Src: /src/curl/lib/smb.c:845,1
    - Dst: smb_send
      Src: /src/curl/lib/smb.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - data
    - smbc
    - req
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - struct smb_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 849
    functionName: smb_send_write
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_format_message
    - smb_swap32
    - smb_send
    - memset
    - smb_swap16
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send_write(struct Curl_easy *data,\n                               struct
      smb_conn *smbc,\n                               struct smb_request *req)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_client_read
      Src: /src/curl/lib/smb.c:863,1
    - Dst: smb_flush
      Src: /src/curl/lib/smb.c:876,1
    - Dst: smb_recv_message
      Src: /src/curl/lib/smb.c:885,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - data
    - smbc
    - msg
    argTypes:
    - struct Curl_easy*
    - struct smb_conn*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 851
    functionDepth: 6
    functionLinenumber: 851
    functionLinenumberEnd: 886
    functionName: smb_send_and_recv
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_recv_message
    - Curl_client_read
    - smb_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_send_and_recv(struct Curl_easy *data,\n                                  struct
      smb_conn *smbc, void **msg)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smb.c:891,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/smb.c:892,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/smb.c:903,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/smb.c:905,1
    - Dst: smb_send_negotiate
      Src: /src/curl/lib/smb.c:913,1
    - Dst: connclose
      Src: /src/curl/lib/smb.c:915,1
    - Dst: conn_state
      Src: /src/curl/lib/smb.c:919,1
    - Dst: smb_send_and_recv
      Src: /src/curl/lib/smb.c:923,1
    - Dst: connclose
      Src: /src/curl/lib/smb.c:925,1
    - Dst: connclose
      Src: /src/curl/lib/smb.c:938,1
    - Dst: memcpy
      Src: /src/curl/lib/smb.c:948,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:952,1
    - Dst: smb_send_setup
      Src: /src/curl/lib/smb.c:953,1
    - Dst: connclose
      Src: /src/curl/lib/smb.c:955,1
    - Dst: conn_state
      Src: /src/curl/lib/smb.c:958,1
    - Dst: connclose
      Src: /src/curl/lib/smb.c:963,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:966,1
    - Dst: conn_state
      Src: /src/curl/lib/smb.c:967,1
    - Dst: smb_pop_message
      Src: /src/curl/lib/smb.c:972,1
    - Dst: smb_pop_message
      Src: /src/curl/lib/smb.c:976,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 888
    functionDepth: 9
    functionLinenumber: 888
    functionLinenumberEnd: 979
    functionName: smb_connection_state
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - memcpy
    - smb_send_and_recv
    - conn_state
    - smb_pop_message
    - smb_send_negotiate
    - Curl_conn_connect
    - Curl_conn_meta_get
    - Curl_meta_get
    - smb_swap32
    - smb_send_setup
    - connclose
    - Curl_conn_is_ssl
    - smb_swap16
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smb_connection_state(struct Curl_easy *data, bool *done)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - out
    - timestamp
    argTypes:
    - time_t*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1001
    functionName: get_posix_time
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_posix_time(time_t *out, curl_off_t timestamp)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smb.c:1006,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/smb.c:1007,1
    - Dst: failf
      Src: /src/curl/lib/smb.c:1020,1
    - Dst: smb_send_tree_connect
      Src: /src/curl/lib/smb.c:1026,1
    - Dst: connclose
      Src: /src/curl/lib/smb.c:1028,1
    - Dst: request_state
      Src: /src/curl/lib/smb.c:1032,1
    - Dst: smb_send_and_recv
      Src: /src/curl/lib/smb.c:1036,1
    - Dst: connclose
      Src: /src/curl/lib/smb.c:1038,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:1051,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:1055,1
    - Dst: smb_swap32
      Src: /src/curl/lib/smb.c:1062,1
    - Dst: smb_swap16
      Src: /src/curl/lib/smb.c:1068,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/smb.c:1072,1
    - Dst: smb_swap64
      Src: /src/curl/lib/smb.c:1076,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/smb.c:1082,1
    - Dst: get_posix_time
      Src: /src/curl/lib/smb.c:1084,1
    - Dst: Curl_read16_le
      Src: /src/curl/lib/smb.c:1096,1
    - Dst: Curl_read16_le
      Src: /src/curl/lib/smb.c:1098,1
    - Dst: failf
      Src: /src/curl/lib/smb.c:1102,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/smb.c:1106,1
    - Dst: Curl_read16_le
      Src: /src/curl/lib/smb.c:1125,1
    - Dst: Curl_pgrs_upload_inc
      Src: /src/curl/lib/smb.c:1129,1
    - Dst: smb_pop_message
      Src: /src/curl/lib/smb.c:1146,1
    - Dst: smb_pop_message
      Src: /src/curl/lib/smb.c:1150,1
    - Dst: smb_send_open
      Src: /src/curl/lib/smb.c:1154,1
    - Dst: smb_send_read
      Src: /src/curl/lib/smb.c:1158,1
    - Dst: smb_send_write
      Src: /src/curl/lib/smb.c:1162,1
    - Dst: smb_send_close
      Src: /src/curl/lib/smb.c:1166,1
    - Dst: smb_send_tree_disconnect
      Src: /src/curl/lib/smb.c:1170,1
    - Dst: connclose
      Src: /src/curl/lib/smb.c:1183,1
    - Dst: request_state
      Src: /src/curl/lib/smb.c:1187,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 139
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1003
    functionDepth: 8
    functionLinenumber: 1003
    functionLinenumberEnd: 1190
    functionName: smb_request_state
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - smb_send_close
    - smb_send_read
    - Curl_meta_get
    - Curl_pgrsSetUploadSize
    - Curl_pgrs_upload_inc
    - connclose
    - get_posix_time
    - Curl_client_write
    - Curl_conn_meta_get
    - smb_swap32
    - smb_send_open
    - smb_send_tree_connect
    - smb_swap16
    - failf
    - Curl_pgrsSetDownloadSize
    - smb_send_write
    - smb_send_tree_disconnect
    - request_state
    - smb_send_and_recv
    - Curl_read16_le
    - smb_pop_message
    - smb_swap64
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smb_request_state(struct Curl_easy *data, bool *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_add_inout
      Src: /src/curl/lib/smb.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1196
    functionName: smb_pollset
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_add_inout
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode smb_pollset(struct Curl_easy *data,\n                            struct
      easy_pollset *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/smb.c:1201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1198
    functionDepth: 2
    functionLinenumber: 1198
    functionLinenumberEnd: 1209
    functionName: smb_do
    functionSourceFile: /src/curl/lib/smb.c
    functionUses: 0
    functionsReached:
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode smb_do(struct Curl_easy *data, bool *done)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strcopy
      Src: /src/curl/lib/progress.c:43,1
    - Dst: STRCONST
      Src: /src/curl/lib/progress.c:43,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:52,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:55,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:58,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:64,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:66,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:70,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:74,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/progress.c:76,1
    - Dst: STRCONST
      Src: /src/curl/lib/progress.c:76,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - r
    - rsize
    - seconds
    argTypes:
    - char*
    - size_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 39
    functionDepth: 7
    functionLinenumber: 39
    functionLinenumberEnd: 80
    functionName: time2str
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - STRCONST
    - curlx_strcopy
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST time2str(char *r, size_t rsize, curl_off_t seconds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:94,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/progress.c:106,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:111,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/progress.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - bytes
    - max6
    - mlen
    argTypes:
    - curl_off_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 121
    functionName: max6out
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - DEBUGASSERT
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST *max6out(curl_off_t bytes, char *max6, size_t mlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/progress.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: pgrs_speedinit
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void pgrs_speedinit(struct Curl_easy *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_recv_is_paused
      Src: /src/curl/lib/progress.c:138,1
    - Dst: Curl_xfer_send_is_paused
      Src: /src/curl/lib/progress.c:138,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/progress.c:150,1
    - Dst: failf
      Src: /src/curl/lib/progress.c:154,1
    - Dst: Curl_expire
      Src: /src/curl/lib/progress.c:168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - data
    - pnow
    argTypes:
    - struct Curl_easy*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 171
    functionName: pgrs_speedcheck
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached:
    - failf
    - Curl_xfer_recv_is_paused
    - Curl_expire
    - curlx_ptimediff_ms
    - Curl_xfer_send_is_paused
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST pgrs_speedcheck(struct Curl_easy *data,\n                                  const
      struct curltime *pnow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_pnow
      Src: /src/curl/lib/progress.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Curl_pgrs_now
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 28
    functionsReached:
    - curlx_pnow
    linkageType: ''
    returnType: struct curltime
    signature: struct curltime *Curl_pgrs_now(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/progress.c:197,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/progress.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 6
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: Curl_pgrsDone
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached:
    - curl_mfprintf
    - Curl_pgrsUpdate
    linkageType: ''
    returnType: int
    signature: int Curl_pgrsDone(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsSetUploadCounter
      Src: /src/curl/lib/progress.c:211,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/progress.c:213,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/progress.c:214,1
    - Dst: pgrs_speedinit
      Src: /src/curl/lib/progress.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: Curl_pgrsReset
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 3
    functionsReached:
    - pgrs_speedinit
    - Curl_pgrsSetDownloadSize
    - Curl_pgrsSetUploadSize
    - Curl_pgrsSetUploadCounter
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsReset(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/progress.c:223,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/progress.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: Curl_pgrsResetTransferSizes
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 2
    functionsReached:
    - Curl_pgrsSetDownloadSize
    - Curl_pgrsSetUploadSize
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsResetTransferSizes(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgrs_speedinit
      Src: /src/curl/lib/progress.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - enable
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: Curl_pgrsRecvPause
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached:
    - pgrs_speedinit
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsRecvPause(struct Curl_easy *data, bool enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgrs_speedinit
      Src: /src/curl/lib/progress.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - enable
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: Curl_pgrsSendPause
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached:
    - pgrs_speedinit
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsSendPause(struct Curl_easy *data, bool enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/progress.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - timer
    argTypes:
    - timerid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: pgrs_timer_name
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: char
    signature: char *pgrs_timer_name(timerid timer)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/progress.c:294,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/progress.c:319,1
    - Dst: pgrs_timer_name
      Src: /src/curl/lib/progress.c:319,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/progress.c:329,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/progress.c:335,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/progress.c:340,1
    - Dst: pgrs_timer_name
      Src: /src/curl/lib/progress.c:341,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/progress.c:344,1
    - Dst: pgrs_timer_name
      Src: /src/curl/lib/progress.c:344,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 3
    argNames:
    - data
    - timer
    - timestamp
    argTypes:
    - struct Curl_easy*
    - timerid
    - struct curltime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 345
    functionName: Curl_pgrsTimeWas
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached:
    - pgrs_timer_name
    - curlx_ptimediff_us
    - CURL_TRC_M
    linkageType: ''
    returnType: void
    signature: "void Curl_pgrsTimeWas(struct Curl_easy *data, timerid timer,\n                      struct
      curltime timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsTimeWas
      Src: /src/curl/lib/progress.c:355,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/progress.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - timer
    argTypes:
    - struct Curl_easy*
    - timerid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: Curl_pgrsTime
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 6
    functionsReached:
    - Curl_pgrs_now
    - Curl_pgrsTimeWas
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsTime(struct Curl_easy *data, timerid timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/progress.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 370
    functionName: Curl_pgrsStartNow
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 2
    functionsReached:
    - Curl_pgrs_now
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsStartNow(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/progress.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - delta
    argTypes:
    - struct Curl_easy*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 382
    functionName: Curl_pgrs_deliver_check
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached:
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_pgrs_deliver_check(struct Curl_easy *data, size_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - delta
    argTypes:
    - struct Curl_easy*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: Curl_pgrs_deliver_inc
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_pgrs_deliver_inc(struct Curl_easy *data, size_t delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_drain
      Src: /src/curl/lib/progress.c:395,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/progress.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - delta
    argTypes:
    - struct Curl_easy*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: Curl_pgrs_download_inc
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - Curl_rlimit_drain
    linkageType: ''
    returnType: void
    signature: void Curl_pgrs_download_inc(struct Curl_easy *data, size_t delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_drain
      Src: /src/curl/lib/progress.c:403,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/progress.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - delta
    argTypes:
    - struct Curl_easy*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: Curl_pgrs_upload_inc
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 3
    functionsReached:
    - Curl_pgrs_now
    - Curl_rlimit_drain
    linkageType: ''
    returnType: void
    signature: void Curl_pgrs_upload_inc(struct Curl_easy *data, size_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - struct Curl_easy*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: Curl_pgrsSetUploadCounter
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsSetUploadCounter(struct Curl_easy *data, curl_off_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - struct Curl_easy*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 425
    functionName: Curl_pgrsSetDownloadSize
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsSetDownloadSize(struct Curl_easy *data, curl_off_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - struct Curl_easy*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 437
    functionName: Curl_pgrsSetUploadSize
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsSetUploadSize(struct Curl_easy *data, curl_off_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - sent
    argTypes:
    - struct Curl_easy*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: Curl_pgrsEarlyData
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsEarlyData(struct Curl_easy *data, curl_off_t sent)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - size
    - us
    argTypes:
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 456
    functionName: trspeed
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: "curl_off_t trspeed(curl_off_t size, /* number of bytes */\n                          curl_off_t
      us)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/progress.c:468,1
    - Dst: trspeed
      Src: /src/curl/lib/progress.c:469,1
    - Dst: trspeed
      Src: /src/curl/lib/progress.c:470,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/progress.c:488,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/progress.c:515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - data
    - pnow
    argTypes:
    - struct Curl_easy*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 534
    functionName: progress_calc
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached:
    - trspeed
    - curlx_ptimediff_us
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: bool
    signature: "bool progress_calc(struct Curl_easy *data,\n                          const
      struct curltime *pnow)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - total
    - cur
    argTypes:
    - curl_off_t
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 550
    functionName: pgrs_est_percent
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t pgrs_est_percent(curl_off_t total, curl_off_t cur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgrs_est_percent
      Src: /src/curl/lib/progress.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - d
    - total_known
    - est
    argTypes:
    - struct pgrs_dir*
    - bool
    - struct pgrs_estimate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 562
    functionName: pgrs_estimates
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached:
    - pgrs_est_percent
    linkageType: ''
    returnType: void
    signature: "void pgrs_estimates(struct pgrs_dir *d,\n                           bool
      total_known,\n                           struct pgrs_estimate *est)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/progress.c:581,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/progress.c:585,1
    - Dst: pgrs_estimates
      Src: /src/curl/lib/progress.c:594,1
    - Dst: pgrs_estimates
      Src: /src/curl/lib/progress.c:595,1
    - Dst: CURLMAX
      Src: /src/curl/lib/progress.c:598,1
    - Dst: time2str
      Src: /src/curl/lib/progress.c:600,1
    - Dst: time2str
      Src: /src/curl/lib/progress.c:602,1
    - Dst: time2str
      Src: /src/curl/lib/progress.c:603,1
    - Dst: pgrs_est_percent
      Src: /src/curl/lib/progress.c:620,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/progress.c:622,1
    - Dst: max6out
      Src: /src/curl/lib/progress.c:628,1
    - Dst: max6out
      Src: /src/curl/lib/progress.c:631,1
    - Dst: max6out
      Src: /src/curl/lib/progress.c:634,1
    - Dst: max6out
      Src: /src/curl/lib/progress.c:636,1
    - Dst: max6out
      Src: /src/curl/lib/progress.c:638,1
    - Dst: max6out
      Src: /src/curl/lib/progress.c:643,1
    - Dst: fflush
      Src: /src/curl/lib/progress.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 564
    functionDepth: 8
    functionLinenumber: 564
    functionLinenumberEnd: 649
    functionName: progress_meter
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 3
    functionsReached:
    - CURLMAX
    - curl_mfprintf
    - time2str
    - pgrs_est_percent
    - fflush
    - pgrs_estimates
    - max6out
    linkageType: ''
    returnType: void
    signature: void progress_meter(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 652
    functionName: progress_meter
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: progress_meter(x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/progress.c:664,1
    - Dst: struct Curl_easy*::set::fxferinfo
      Src: /src/curl/lib/progress.c:665,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/progress.c:670,1
    - Dst: failf
      Src: /src/curl/lib/progress.c:673,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/progress.c:681,1
    - Dst: struct Curl_easy*::set::fprogress
      Src: /src/curl/lib/progress.c:682,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/progress.c:687,1
    - Dst: failf
      Src: /src/curl/lib/progress.c:690,1
    - Dst: progress_meter
      Src: /src/curl/lib/progress.c:698,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - data
    - showprogress
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 702
    functionName: pgrsupdate
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached:
    - progress_meter
    - failf
    - struct Curl_easy*::set::fprogress
    - Curl_set_in_callback
    - struct Curl_easy*::set::fxferinfo
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pgrsupdate(struct Curl_easy *data, bool showprogress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: progress_calc
      Src: /src/curl/lib/progress.c:707,1
    - Dst: pgrsupdate
      Src: /src/curl/lib/progress.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - pnow
    argTypes:
    - struct Curl_easy*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 709
    functionName: pgrs_update
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached:
    - progress_calc
    - pgrsupdate
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pgrs_update(struct Curl_easy *data,\n                            const
      struct curltime *pnow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgrs_update
      Src: /src/curl/lib/progress.c:713,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/progress.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 714
    functionName: Curl_pgrsUpdate
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 5
    functionsReached:
    - Curl_pgrs_now
    - pgrs_update
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_pgrsUpdate(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgrs_update
      Src: /src/curl/lib/progress.c:720,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/progress.c:720,1
    - Dst: pgrs_speedcheck
      Src: /src/curl/lib/progress.c:722,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/progress.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 716
    functionDepth: 3
    functionLinenumber: 716
    functionLinenumberEnd: 724
    functionName: Curl_pgrsCheck
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 5
    functionsReached:
    - Curl_pgrs_now
    - pgrs_speedcheck
    - pgrs_update
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_pgrsCheck(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: progress_calc
      Src: /src/curl/lib/progress.c:731,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/progress.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: Curl_pgrsUpdate_nometer
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached:
    - progress_calc
    - Curl_pgrs_now
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsUpdate_nometer(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/progress.c:737,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/progress.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: Curl_pgrsCompleted
    functionSourceFile: /src/curl/lib/progress.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - curlx_ptimediff_us
    linkageType: ''
    returnType: void
    signature: void Curl_pgrsCompleted(struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OpenLibrary
      Src: /src/curl/lib/amigaos.c:75,1
    - Dst: GetInterface
      Src: /src/curl/lib/amigaos.c:78,1
    - Dst: SocketBaseTags
      Src: /src/curl/lib/amigaos.c:82,1
    - Dst: SBTM_SETVAL
      Src: /src/curl/lib/amigaos.c:82,1
    - Dst: SBTM_GETREF
      Src: /src/curl/lib/amigaos.c:83,1
    - Dst: atexit
      Src: /src/curl/lib/amigaos.c:92,1
    - Dst: CloseLibrary
      Src: /src/curl/lib/amigaos.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: Curl_amiga_init
    functionSourceFile: /src/curl/lib/amigaos.c
    functionUses: 1
    functionsReached:
    - atexit
    - SBTM_GETREF
    - GetInterface
    - CloseLibrary
    - SocketBaseTags
    - SBTM_SETVAL
    - OpenLibrary
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_amiga_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DropInterface
      Src: /src/curl/lib/amigaos.c:106,1
    - Dst: CloseLibrary
      Src: /src/curl/lib/amigaos.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: Curl_amiga_cleanup
    functionSourceFile: /src/curl/lib/amigaos.c
    functionUses: 1
    functionsReached:
    - CloseLibrary
    - DropInterface
    linkageType: ''
    returnType: void
    signature: void Curl_amiga_cleanup(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/amigaos.c:131,1
    - Dst: gethostbyname_r
      Src: /src/curl/lib/amigaos.c:133,1
    - Dst: Curl_he2ai
      Src: /src/curl/lib/amigaos.c:138,1
    - Dst: curlx_free
      Src: /src/curl/lib/amigaos.c:140,1
    - Dst: OpenLibrary
      Src: /src/curl/lib/amigaos.c:148,1
    - Dst: GetInterface
      Src: /src/curl/lib/amigaos.c:150,1
    - Dst: gethostbyname
      Src: /src/curl/lib/amigaos.c:152,1
    - Dst: Curl_he2ai
      Src: /src/curl/lib/amigaos.c:154,1
    - Dst: DropInterface
      Src: /src/curl/lib/amigaos.c:156,1
    - Dst: CloseLibrary
      Src: /src/curl/lib/amigaos.c:158,1
    - Dst: gethostbyname
      Src: /src/curl/lib/amigaos.c:162,1
    - Dst: Curl_he2ai
      Src: /src/curl/lib/amigaos.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - hostname
    - port
    argTypes:
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 170
    functionName: Curl_ipv4_resolve_r
    functionSourceFile: /src/curl/lib/amigaos.c
    functionUses: 0
    functionsReached:
    - GetInterface
    - curlx_free
    - CloseLibrary
    - curlx_calloc
    - DropInterface
    - gethostbyname_r
    - gethostbyname
    - Curl_he2ai
    - OpenLibrary
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: struct Curl_addrinfo *Curl_ipv4_resolve_r(const char *hostname, uint16_t
      port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WaitSelect
      Src: /src/curl/lib/amigaos.c:178,1
    - Dst: raise
      Src: /src/curl/lib/amigaos.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - nfds
    - readfds
    - writefds
    - errorfds
    - timeout
    argTypes:
    - int
    - fd_set*
    - fd_set*
    - fd_set*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: Curl_amiga_select
    functionSourceFile: /src/curl/lib/amigaos.c
    functionUses: 0
    functionsReached:
    - raise
    - WaitSelect
    linkageType: ''
    returnType: int
    signature: "int Curl_amiga_select(int nfds, fd_set *readfds, fd_set *writefds,\n
      \                     fd_set *errorfds, struct timeval *timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: CURL_AMIGA_REQUEST
    functionSourceFile: /src/curl/lib/amigaos.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_AMIGA_REQUEST(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: CURL_AMIGA_REQUEST
    functionSourceFile: /src/curl/lib/amigaos.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_AMIGA_REQUEST(msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseLibrary
      Src: /src/curl/lib/amigaos.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: Curl_amiga_cleanup
    functionSourceFile: /src/curl/lib/amigaos.c
    functionUses: 1
    functionsReached:
    - CloseLibrary
    linkageType: ''
    returnType: void
    signature: void Curl_amiga_cleanup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OpenLibrary
      Src: /src/curl/lib/amigaos.c:211,1
    - Dst: CURL_AMIGA_REQUEST
      Src: /src/curl/lib/amigaos.c:214,1
    - Dst: SocketBaseTags
      Src: /src/curl/lib/amigaos.c:218,1
    - Dst: SBTM_SETVAL
      Src: /src/curl/lib/amigaos.c:218,1
    - Dst: SBTC_ERRNOPTR
      Src: /src/curl/lib/amigaos.c:218,1
    - Dst: SBTM_SETVAL
      Src: /src/curl/lib/amigaos.c:219,1
    - Dst: CURL_AMIGA_REQUEST
      Src: /src/curl/lib/amigaos.c:220,1
    - Dst: atexit
      Src: /src/curl/lib/amigaos.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 229
    functionName: Curl_amiga_init
    functionSourceFile: /src/curl/lib/amigaos.c
    functionUses: 1
    functionsReached:
    - atexit
    - SBTC_ERRNOPTR
    - CURL_AMIGA_REQUEST
    - SocketBaseTags
    - SBTM_SETVAL
    - OpenLibrary
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_amiga_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/sigpipe.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ig
    argTypes:
    - struct Curl_sigpipe_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: sigpipe_init
    functionSourceFile: /src/curl/lib/sigpipe.h
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: CURL_INLINE
    signature: CURL_INLINE sigpipe_init(struct Curl_sigpipe_ctx *ig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/curl/lib/sigpipe.h:56,1
    - Dst: sigaction
      Src: /src/curl/lib/sigpipe.h:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - ig
    argTypes:
    - struct Curl_easy*
    - struct Curl_sigpipe_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: sigpipe_ignore
    functionSourceFile: /src/curl/lib/sigpipe.h
    functionUses: 2
    functionsReached:
    - sigaction
    linkageType: ''
    returnType: CURL_INLINE
    signature: "CURL_INLINE sigpipe_ignore(struct Curl_easy *data,\n                                       struct
      Curl_sigpipe_ctx *ig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/curl/lib/sigpipe.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ig
    argTypes:
    - struct Curl_sigpipe_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: sigpipe_restore
    functionSourceFile: /src/curl/lib/sigpipe.h
    functionUses: 5
    functionsReached:
    - sigaction
    linkageType: ''
    returnType: CURL_INLINE
    signature: CURL_INLINE sigpipe_restore(struct Curl_sigpipe_ctx *ig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigpipe_restore
      Src: /src/curl/lib/sigpipe.h:84,1
    - Dst: sigpipe_ignore
      Src: /src/curl/lib/sigpipe.h:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - ig
    argTypes:
    - struct Curl_easy*
    - struct Curl_sigpipe_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sigpipe_apply
    functionSourceFile: /src/curl/lib/sigpipe.h
    functionUses: 3
    functionsReached:
    - sigpipe_ignore
    - sigpipe_restore
    linkageType: ''
    returnType: CURL_INLINE
    signature: "CURL_INLINE sigpipe_apply(struct Curl_easy *data,\n                                      struct
      Curl_sigpipe_ctx *ig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: sigpipe_ignore
    functionSourceFile: /src/curl/lib/sigpipe.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigpipe_ignore(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: sigpipe_apply
    functionSourceFile: /src/curl/lib/sigpipe.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigpipe_apply(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: sigpipe_init
    functionSourceFile: /src/curl/lib/sigpipe.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigpipe_init(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: sigpipe_restore
    functionSourceFile: /src/curl/lib/sigpipe.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigpipe_restore(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: Curl_creds_has_user
    functionSourceFile: /src/curl/lib/creds.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creds_has_user(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: Curl_creds_has_passwd
    functionSourceFile: /src/curl/lib/creds.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creds_has_passwd(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: Curl_creds_has_oauth_bearer
    functionSourceFile: /src/curl/lib/creds.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creds_has_oauth_bearer(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: Curl_creds_has_sasl_service
    functionSourceFile: /src/curl/lib/creds.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creds_has_sasl_service(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Curl_creds_user
    functionSourceFile: /src/curl/lib/creds.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creds_user(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: Curl_creds_passwd
    functionSourceFile: /src/curl/lib/creds.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creds_passwd(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: Curl_creds_oauth_bearer
    functionSourceFile: /src/curl/lib/creds.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creds_oauth_bearer(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: Curl_creds_sasl_authzid
    functionSourceFile: /src/curl/lib/creds.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creds_sasl_authzid(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: Curl_creds_sasl_service
    functionSourceFile: /src/curl/lib/creds.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creds_sasl_service(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/curl_threads.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: curl_thread_create_thunk
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void *curl_thread_create_thunk(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/curl_threads.c:53,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/curl_threads.c:58,1
    - Dst: pthread_create
      Src: /src/curl/lib/curl_threads.c:65,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_threads.c:74,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_threads.c:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 77
    functionName: Curl_thread_create
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 2
    functionsReached:
    - curlx_malloc
    - curlx_free
    - pthread_create
    linkageType: ''
    returnType: curl_thread_t
    signature: "curl_thread_t Curl_thread_create(\n  CURL_THREAD_RETURN_T(CURL_STDCALL
      *func)(void *), void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_detach
      Src: /src/curl/lib/curl_threads.c:82,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_threads.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hnd
    argTypes:
    - curl_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: Curl_thread_destroy
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 2
    functionsReached:
    - curlx_free
    - pthread_detach
    linkageType: ''
    returnType: void
    signature: void Curl_thread_destroy(curl_thread_t *hnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/curl/lib/curl_threads.c:90,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_threads.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hnd
    argTypes:
    - curl_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Curl_thread_join
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 2
    functionsReached:
    - curlx_free
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int Curl_thread_join(curl_thread_t *hnd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateThread
      Src: /src/curl/lib/curl_threads.c:103,1
    - Dst: GetLastError
      Src: /src/curl/lib/curl_threads.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: Curl_thread_create
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 2
    functionsReached:
    - CreateThread
    - GetLastError
    linkageType: ''
    returnType: curl_thread_t
    signature: "curl_thread_t Curl_thread_create(\n  CURL_THREAD_RETURN_T(CURL_STDCALL
      *func)(void *), void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/curl/lib/curl_threads.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hnd
    argTypes:
    - curl_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: Curl_thread_destroy
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 2
    functionsReached:
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void Curl_thread_destroy(curl_thread_t *hnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObjectEx
      Src: /src/curl/lib/curl_threads.c:125,1
    - Dst: Curl_thread_destroy
      Src: /src/curl/lib/curl_threads.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hnd
    argTypes:
    - curl_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: Curl_thread_join
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 2
    functionsReached:
    - WaitForSingleObjectEx
    - Curl_thread_destroy
    linkageType: ''
    returnType: int
    signature: int Curl_thread_join(curl_thread_t *hnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_signal
      Src: /src/curl/lib/curl_threads.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - pthread_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: Curl_cond_signal
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 4
    functionsReached:
    - pthread_cond_signal
    linkageType: ''
    returnType: void
    signature: void Curl_cond_signal(pthread_cond_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_wait
      Src: /src/curl/lib/curl_threads.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Curl_cond_wait
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 3
    functionsReached:
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: void Curl_cond_wait(pthread_cond_t *c, pthread_mutex_t *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/curl/lib/curl_threads.c:167,1
    - Dst: time
      Src: /src/curl/lib/curl_threads.c:171,1
    - Dst: pthread_cond_timedwait
      Src: /src/curl/lib/curl_threads.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - c
    - m
    - timeout_ms
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 187
    functionName: Curl_cond_timedwait
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 2
    functionsReached:
    - time
    - pthread_cond_timedwait
    - gettimeofday
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cond_timedwait(pthread_cond_t *c, pthread_mutex_t *m,\n
      \                            uint32_t timeout_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WakeConditionVariable
      Src: /src/curl/lib/curl_threads.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CONDITION_VARIABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Curl_cond_signal
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 4
    functionsReached:
    - WakeConditionVariable
    linkageType: ''
    returnType: void
    signature: void Curl_cond_signal(CONDITION_VARIABLE *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SleepConditionVariableCS
      Src: /src/curl/lib/curl_threads.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - CONDITION_VARIABLE*
    - CRITICAL_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: Curl_cond_wait
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 3
    functionsReached:
    - SleepConditionVariableCS
    linkageType: ''
    returnType: void
    signature: void Curl_cond_wait(CONDITION_VARIABLE *c, CRITICAL_SECTION *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SleepConditionVariableCS
      Src: /src/curl/lib/curl_threads.c:204,1
    - Dst: GetLastError
      Src: /src/curl/lib/curl_threads.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - m
    - timeout_ms
    argTypes:
    - CONDITION_VARIABLE*
    - CRITICAL_SECTION*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: Curl_cond_timedwait
    functionSourceFile: /src/curl/lib/curl_threads.c
    functionUses: 2
    functionsReached:
    - SleepConditionVariableCS
    - GetLastError
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cond_timedwait(CONDITION_VARIABLE *c, CRITICAL_SECTION
      *m,\n                             uint32_t timeout_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/uint-spbset.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_spbset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: Curl_uint32_spbset_init
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_spbset_init(struct uint32_spbset *bset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/uint-spbset.c:52,1
    - Dst: memset
      Src: /src/curl/lib/uint-spbset.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_spbset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: uint32_spbset_clear
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 1
    functionsReached:
    - curlx_free
    - memset
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST uint32_spbset_clear(struct uint32_spbset *bset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-spbset.c:59,1
    - Dst: uint32_spbset_clear
      Src: /src/curl/lib/uint-spbset.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_spbset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: Curl_uint32_spbset_destroy
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 2
    functionsReached:
    - uint32_spbset_clear
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_spbset_destroy(struct uint32_spbset *bset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_POPCOUNT64
      Src: /src/curl/lib/uint-spbset.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_spbset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: Curl_uint32_spbset_count
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 3
    functionsReached:
    - CURL_POPCOUNT64
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Curl_uint32_spbset_count(struct uint32_spbset *bset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/uint-spbset.c:102,1
    - Dst: memcpy
      Src: /src/curl/lib/uint-spbset.c:111,1
    - Dst: memset
      Src: /src/curl/lib/uint-spbset.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - bset
    - i
    - grow
    argTypes:
    - struct uint32_spbset*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 117
    functionName: uint32_spbset_get_chunk
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    - memcpy
    - memset
    linkageType: ''
    returnType: struct uint32_spbset_chunk
    signature: "struct uint32_spbset_chunk *uint32_spbset_get_chunk(\n  struct uint32_spbset
      *bset, uint32_t i, bool grow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uint32_spbset_get_chunk
      Src: /src/curl/lib/uint-spbset.c:124,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-spbset.c:128,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-spbset.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - bset
    - i
    argTypes:
    - struct uint32_spbset*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 133
    functionName: Curl_uint32_spbset_add
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 2
    functionsReached:
    - uint32_spbset_get_chunk
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_spbset_add(struct uint32_spbset *bset, uint32_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uint32_spbset_get_chunk
      Src: /src/curl/lib/uint-spbset.c:140,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-spbset.c:142,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-spbset.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bset
    - i
    argTypes:
    - struct uint32_spbset*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: Curl_uint32_spbset_remove
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 3
    functionsReached:
    - uint32_spbset_get_chunk
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_spbset_remove(struct uint32_spbset *bset, uint32_t
      i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uint32_spbset_get_chunk
      Src: /src/curl/lib/uint-spbset.c:154,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-spbset.c:156,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-spbset.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - bset
    - i
    argTypes:
    - struct uint32_spbset*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: Curl_uint32_spbset_contains
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 3
    functionsReached:
    - uint32_spbset_get_chunk
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_spbset_contains(struct uint32_spbset *bset, uint32_t
      i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_CTZ64
      Src: /src/curl/lib/uint-spbset.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - bset
    - pfirst
    argTypes:
    - struct uint32_spbset*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 180
    functionName: Curl_uint32_spbset_first
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 2
    functionsReached:
    - CURL_CTZ64
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_spbset_first(struct uint32_spbset *bset, uint32_t
      *pfirst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_CTZ64
      Src: /src/curl/lib/uint-spbset.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - chunk
    - pfirst
    argTypes:
    - struct uint32_spbset_chunk*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: uint32_spbset_chunk_first
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 0
    functionsReached:
    - CURL_CTZ64
    linkageType: ''
    returnType: bool
    signature: "bool uint32_spbset_chunk_first(struct uint32_spbset_chunk *chunk,\n
      \                                     uint32_t *pfirst)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CURL_CTZ64
      Src: /src/curl/lib/uint-spbset.c:207,1
    - Dst: CURL_CTZ64
      Src: /src/curl/lib/uint-spbset.c:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - chunk
    - last
    - pnext
    argTypes:
    - struct uint32_spbset_chunk*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 221
    functionName: uint32_spbset_chunk_next
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 0
    functionsReached:
    - CURL_CTZ64
    linkageType: ''
    returnType: bool
    signature: "bool uint32_spbset_chunk_next(struct uint32_spbset_chunk *chunk,\n
      \                                    uint32_t last,\n                                     uint32_t
      *pnext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uint32_spbset_chunk_next
      Src: /src/curl/lib/uint-spbset.c:240,1
    - Dst: uint32_spbset_chunk_first
      Src: /src/curl/lib/uint-spbset.c:247,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - bset
    - last
    - pnext
    argTypes:
    - struct uint32_spbset*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 253
    functionName: Curl_uint32_spbset_next
    functionSourceFile: /src/curl/lib/uint-spbset.c
    functionUses: 2
    functionsReached:
    - uint32_spbset_chunk_first
    - uint32_spbset_chunk_next
    linkageType: ''
    returnType: bool
    signature: "bool Curl_uint32_spbset_next(struct uint32_spbset *bset, uint32_t
      last,\n                             uint32_t *pnext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/http_negotiate.c:45,1
    - Dst: Curl_auth_cleanup_spnego
      Src: /src/curl/lib/http_negotiate.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - neg_ctx
    - proxy
    argTypes:
    - struct connectdata*
    - struct negotiatedata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: http_auth_nego_reset
    functionSourceFile: /src/curl/lib/http_negotiate.c
    functionUses: 0
    functionsReached:
    - Curl_auth_cleanup_spnego
    - Curl_creds_unlink
    linkageType: ''
    returnType: void
    signature: "void http_auth_nego_reset(struct connectdata *conn,\n                                 struct
      negotiatedata *neg_ctx,\n                                 bool proxy)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_nego_get
      Src: /src/curl/lib/http_negotiate.c:80,1
    - Dst: strlen
      Src: /src/curl/lib/http_negotiate.c:85,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http_negotiate.c:86,1
    - Dst: strlen
      Src: /src/curl/lib/http_negotiate.c:88,1
    - Dst: infof
      Src: /src/curl/lib/http_negotiate.c:92,1
    - Dst: http_auth_nego_reset
      Src: /src/curl/lib/http_negotiate.c:93,1
    - Dst: http_auth_nego_reset
      Src: /src/curl/lib/http_negotiate.c:98,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_negotiate.c:110,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/http_negotiate.c:111,1
    - Dst: Curl_ssl_get_channel_binding
      Src: /src/curl/lib/http_negotiate.c:112,1
    - Dst: http_auth_nego_reset
      Src: /src/curl/lib/http_negotiate.c:115,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http_negotiate.c:120,1
    - Dst: Curl_auth_decode_spnego_message
      Src: /src/curl/lib/http_negotiate.c:125,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http_negotiate.c:129,1
    - Dst: http_auth_nego_reset
      Src: /src/curl/lib/http_negotiate.c:133,1
    - Dst: Curl_creds_same
      Src: /src/curl/lib/http_negotiate.c:138,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_negotiate.c:139,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/http_negotiate.c:142,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 4
    argNames:
    - data
    - conn
    - proxy
    - header
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 146
    functionName: Curl_input_negotiate
    functionSourceFile: /src/curl/lib/http_negotiate.c
    functionUses: 1
    functionsReached:
    - Curl_creds_same
    - curlx_dyn_init
    - Curl_auth_decode_spnego_message
    - Curl_creds_link
    - strlen
    - DEBUGASSERT
    - curlx_dyn_free
    - infof
    - curlx_str_passblanks
    - Curl_auth_nego_get
    - Curl_ssl_get_channel_binding
    - Curl_conn_is_ssl
    - http_auth_nego_reset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_input_negotiate(struct Curl_easy *data, struct connectdata
      *conn,\n                              bool proxy, const char *header)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_nego_get
      Src: /src/curl/lib/http_negotiate.c:171,1
    - Dst: infof
      Src: /src/curl/lib/http_negotiate.c:192,1
    - Dst: http_auth_nego_reset
      Src: /src/curl/lib/http_negotiate.c:194,1
    - Dst: Curl_input_negotiate
      Src: /src/curl/lib/http_negotiate.c:197,1
    - Dst: Curl_auth_create_spnego_message
      Src: /src/curl/lib/http_negotiate.c:208,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_negotiate.c:212,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_negotiate.c:217,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_negotiate.c:222,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_negotiate.c:226,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 3
    argNames:
    - data
    - conn
    - proxy
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 148
    functionDepth: 7
    functionLinenumber: 148
    functionLinenumberEnd: 257
    functionName: Curl_output_negotiate
    functionSourceFile: /src/curl/lib/http_negotiate.c
    functionUses: 1
    functionsReached:
    - curl_maprintf
    - Curl_input_negotiate
    - infof
    - Curl_auth_nego_get
    - curlx_free
    - Curl_auth_create_spnego_message
    - http_auth_nego_reset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_output_negotiate(struct Curl_easy *data,\n                               struct
      connectdata *conn, bool proxy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InitSecurityInterface
      Src: /src/curl/lib/curl_sspi.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: Curl_sspi_global_init
    functionSourceFile: /src/curl/lib/curl_sspi.c
    functionUses: 2
    functionsReached:
    - InitSecurityInterface
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sspi_global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: Curl_sspi_global_cleanup
    functionSourceFile: /src/curl/lib/curl_sspi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_sspi_global_cleanup(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEXT
      Src: /src/curl/lib/curl_sspi.c:104,1
    - Dst: memset
      Src: /src/curl/lib/curl_sspi.c:107,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/curl_sspi.c:109,1
    - Dst: _tcschr
      Src: /src/curl/lib/curl_sspi.c:113,1
    - Dst: TEXT
      Src: /src/curl/lib/curl_sspi.c:113,1
    - Dst: _tcschr
      Src: /src/curl/lib/curl_sspi.c:115,1
    - Dst: TEXT
      Src: /src/curl/lib/curl_sspi.c:115,1
    - Dst: TEXT
      Src: /src/curl/lib/curl_sspi.c:124,1
    - Dst: curlx_tcsdup
      Src: /src/curl/lib/curl_sspi.c:129,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:131,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/curl_sspi.c:136,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:138,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:139,1
    - Dst: _tcsncpy_s
      Src: /src/curl/lib/curl_sspi.c:142,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:143,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:144,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:145,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:149,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/curl_sspi.c:152,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:154,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:155,1
    - Dst: curlx_tcsdup
      Src: /src/curl/lib/curl_sspi.c:158,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:160,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:161,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:162,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/curl_sspi.c:166,1
    - Dst: _tcslen
      Src: /src/curl/lib/curl_sspi.c:166,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_sspi.c:169,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/curl_sspi.c:172,1
    - Dst: _tcslen
      Src: /src/curl/lib/curl_sspi.c:172,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/curl_sspi.c:175,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 62
    argCount: 3
    argNames:
    - userp
    - passwdp
    - identity
    argTypes:
    - char*
    - char*
    - SEC_WINNT_AUTH_IDENTITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 187
    functionName: Curl_create_sspi_identity
    functionSourceFile: /src/curl/lib/curl_sspi.c
    functionUses: 0
    functionsReached:
    - _tcschr
    - curlx_uztoul
    - _tcslen
    - curlx_malloc
    - curlx_free
    - curlx_convert_UTF8_to_tchar
    - _tcsncpy_s
    - TEXT
    - memset
    - curlx_tcsdup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_create_sspi_identity(const char *userp, const char *passwdp,\n
      \                                  SEC_WINNT_AUTH_IDENTITY *identity)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/curl_sspi.c:201,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/curl_sspi.c:202,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/curl_sspi.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - identity
    argTypes:
    - SEC_WINNT_AUTH_IDENTITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: Curl_sspi_free_identity
    functionSourceFile: /src/curl/lib/curl_sspi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void Curl_sspi_free_identity(SEC_WINNT_AUTH_IDENTITY *identity)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/socks.c:130,1
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/socks.c:131,1
    - Dst: SOCKET_READABLE
      Src: /src/curl/lib/socks.c:139,1
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/socks.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - blen
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 158
    functionName: Curl_blockread_all
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 4
    functionsReached:
    - Curl_timeleft_ms
    - Curl_conn_cf_recv
    - SOCKET_READABLE
    - Curl_conn_cf_get_socket
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_blockread_all(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            char *buf,             /* store
      read data here */\n                            size_t blen,           /* space
      in buf */\n                            size_t *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - c
    - ','
    - d
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: sxstate
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sxstate(x, c, d, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - c
    - ','
    - d
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: sxstate
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sxstate(x, c, d, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - sx
    - cf
    - data
    - presult
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - CURLproxycode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: socks_failed
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - sxstate
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks_failed(struct socks_ctx *sx,\n                                  struct
      Curl_cfilter *cf,\n                                  struct Curl_easy *data,\n
      \                                 CURLproxycode presult)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/socks.c:214,1
    - Dst: Curl_cf_send_bufq
      Src: /src/curl/lib/socks.c:215,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:220,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/socks.c:221,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - sx
    - cf
    - data
    - done
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 227
    functionName: socks_flush
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_cf_send_bufq
    - curl_easy_strerror
    - socks_failed
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks_flush(struct socks_ctx *sx,\n                                 struct
      Curl_cfilter *cf,\n                                 struct Curl_easy *data,\n
      \                                bool *done)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/socks.c:239,1
    - Dst: Curl_cf_recv_bufq
      Src: /src/curl/lib/socks.c:240,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/socks.c:241,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:246,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/socks.c:247,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/socks.c:251,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:252,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - sx
    - cf
    - data
    - min_bytes
    - done
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 261
    functionName: socks_recv
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - failf
    - curl_easy_strerror
    - Curl_cf_recv_bufq
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks_recv(struct socks_ctx *sx,\n                                struct
      Curl_cfilter *cf,\n                                struct Curl_easy *data,\n
      \                               size_t min_bytes,\n                                bool
      *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sx
    - data
    argTypes:
    - struct socks_ctx*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 280
    functionName: socks4_req_add_hd
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_write
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks4_req_add_hd(struct socks_ctx *sx,\n                                       struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/socks.c:289,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:294,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/socks.c:298,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - sx
    - data
    argTypes:
    - struct socks_ctx*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 282
    functionDepth: 6
    functionLinenumber: 282
    functionLinenumberEnd: 311
    functionName: socks4_req_add_user
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_bufq_write
    - Curl_bufq_cwrite
    - failf
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks4_req_add_user(struct socks_ctx *sx,\n                                         struct
      Curl_easy *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cf_dns_insert_after
      Src: /src/curl/lib/socks.c:327,1
    - Dst: Curl_resolv_dns_queries
      Src: /src/curl/lib/socks.c:328,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:331,1
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/socks.c:337,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:339,1
    - Dst: Curl_cf_dns_get_ai
      Src: /src/curl/lib/socks.c:346,1
    - Dst: Curl_printable_address
      Src: /src/curl/lib/socks.c:351,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:352,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:356,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - sx
    - cf
    - data
    - done
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 313
    functionDepth: 5
    functionLinenumber: 313
    functionLinenumberEnd: 371
    functionName: socks4_resolving
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - Curl_resolv_dns_queries
    - Curl_cf_dns_get_ai
    - failf
    - Curl_cf_dns_insert_after
    - Curl_printable_address
    - CURL_TRC_CF
    - Curl_bufq_write
    - Curl_conn_cf_connect
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks4_resolving(struct socks_ctx *sx,\n                                      struct
      Curl_cfilter *cf,\n                                      struct Curl_easy *data,\n
      \                                     bool *done)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/socks.c:380,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:381,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/socks.c:385,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:407,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:414,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/socks.c:415,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:418,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:425,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:433,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - sx
    - cf
    - data
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 448
    functionName: socks4_check_resp
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - Curl_bufq_skip
    - Curl_bufq_peek
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks4_check_resp(struct socks_ctx *sx,\n                                       struct
      Curl_cfilter *cf,\n                                       struct Curl_easy *data)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:474,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:475,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/socks.c:478,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:486,1
    - Dst: socks4_req_add_hd
      Src: /src/curl/lib/socks.c:500,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:502,1
    - Dst: strlen
      Src: /src/curl/lib/socks.c:509,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:512,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:513,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:515,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:517,1
    - Dst: socks4_req_add_user
      Src: /src/curl/lib/socks.c:518,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:520,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/socks.c:521,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:524,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:526,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:530,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:531,1
    - Dst: socks4_resolving
      Src: /src/curl/lib/socks.c:534,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:536,1
    - Dst: socks4_req_add_user
      Src: /src/curl/lib/socks.c:540,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:542,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:543,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:544,1
    - Dst: socks_flush
      Src: /src/curl/lib/socks.c:547,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:549,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:552,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:553,1
    - Dst: socks_recv
      Src: /src/curl/lib/socks.c:557,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:559,1
    - Dst: socks4_check_resp
      Src: /src/curl/lib/socks.c:562,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:564,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:565,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:566,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/socks.c:572,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/socks.c:576,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:577,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 79
    argCount: 3
    argNames:
    - cf
    - sx
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct socks_ctx*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 461
    functionDepth: 7
    functionLinenumber: 461
    functionLinenumberEnd: 579
    functionName: socks4_connect
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_reset
    - socks_flush
    - strlen
    - failf
    - DEBUGASSERT
    - socks4_resolving
    - socks_recv
    - socks4_req_add_user
    - Curl_bufq_write
    - socks_failed
    - Curl_bufq_cwrite
    - socks4_check_resp
    - socks4_req_add_hd
    - FALLTHROUGH
    - sxstate
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks4_connect(struct Curl_cfilter *cf,\n                                    struct
      socks_ctx *sx,\n                                    struct Curl_easy *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/socks.c:593,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:594,1
    - Dst: infof
      Src: /src/curl/lib/socks.c:600,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/socks.c:604,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:622,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - cf
    - sx
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct socks_ctx*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 626
    functionName: socks5_req0_init
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_creds_unlink
    - infof
    - Curl_bufq_write
    - strlen
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks5_req0_init(struct Curl_cfilter *cf,\n                                      struct
      socks_ctx *sx,\n                                      struct Curl_easy *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/socks.c:636,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:637,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:642,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/socks.c:647,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:652,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:656,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:659,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:664,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:667,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:670,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:673,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - sx
    - cf
    - data
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 676
    functionName: socks5_check_resp0
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_bufq_skip
    - Curl_bufq_peek
    - sxstate
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks5_check_resp0(struct socks_ctx *sx,\n                                        struct
      Curl_cfilter *cf,\n                                        struct Curl_easy
      *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/socks.c:688,1
    - Dst: strlen
      Src: /src/curl/lib/socks.c:689,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:692,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:696,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:710,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/socks.c:714,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:719,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/socks.c:723,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:727,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - cf
    - sx
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct socks_ctx*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 678
    functionDepth: 6
    functionLinenumber: 678
    functionLinenumberEnd: 729
    functionName: socks5_auth_init
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_bufq_write
    - Curl_bufq_cwrite
    - strlen
    - sxstate
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks5_auth_init(struct Curl_cfilter *cf,\n                                      struct
      socks_ctx *sx,\n                                      struct Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/socks.c:740,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:741,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:748,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/socks.c:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - sx
    - cf
    - data
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 731
    functionDepth: 4
    functionLinenumber: 731
    functionLinenumberEnd: 754
    functionName: socks5_check_auth_resp
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_bufq_skip
    - Curl_bufq_peek
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks5_check_auth_resp(struct socks_ctx *sx,\n                                            struct
      Curl_cfilter *cf,\n                                            struct Curl_easy
      *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:772,1
    - Dst: strchr
      Src: /src/curl/lib/socks.c:780,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/socks.c:784,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/socks.c:789,1
    - Dst: strlen
      Src: /src/curl/lib/socks.c:795,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/socks.c:799,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:808,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:811,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:817,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:820,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - sx
    - cf
    - data
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 756
    functionDepth: 5
    functionLinenumber: 756
    functionLinenumberEnd: 823
    functionName: socks5_req1_init
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_bufq_write
    - strchr
    - curlx_inet_pton
    - strlen
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks5_req1_init(struct socks_ctx *sx,\n                                      struct
      Curl_cfilter *cf,\n                                      struct Curl_easy *data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cf_dns_insert_after
      Src: /src/curl/lib/socks.c:844,1
    - Dst: Curl_resolv_dns_queries
      Src: /src/curl/lib/socks.c:845,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:848,1
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/socks.c:854,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:856,1
    - Dst: Curl_cf_dns_get_ai
      Src: /src/curl/lib/socks.c:865,1
    - Dst: Curl_cf_dns_get_ai
      Src: /src/curl/lib/socks.c:868,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:871,1
    - Dst: Curl_printable_address
      Src: /src/curl/lib/socks.c:877,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:885,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:895,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:901,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:907,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:912,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/socks.c:920,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 4
    argNames:
    - sx
    - cf
    - data
    - done
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 825
    functionDepth: 5
    functionLinenumber: 825
    functionLinenumberEnd: 929
    functionName: socks5_resolving
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - Curl_resolv_dns_queries
    - Curl_cf_dns_get_ai
    - failf
    - Curl_cf_dns_insert_after
    - Curl_printable_address
    - CURL_TRC_CF
    - Curl_bufq_write
    - Curl_conn_cf_connect
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks5_resolving(struct socks_ctx *sx,\n                                      struct
      Curl_cfilter *cf,\n                                      struct Curl_easy *data,\n
      \                                     bool *done)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: socks_recv
      Src: /src/curl/lib/socks.c:940,1
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/socks.c:946,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:947,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:967,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:973,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:1005,1
    - Dst: socks_recv
      Src: /src/curl/lib/socks.c:1010,1
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/socks.c:1016,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:1017,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - sx
    - cf
    - data
    - done
    argTypes:
    - struct socks_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 931
    functionDepth: 4
    functionLinenumber: 931
    functionLinenumberEnd: 1023
    functionName: socks5_recv_resp1
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - socks_recv
    - failf
    - Curl_bufq_peek
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks5_recv_resp1(struct socks_ctx *sx,\n                                       struct
      Curl_cfilter *cf,\n                                       struct Curl_easy *data,\n
      \                                      bool *done)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1041,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1042,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:1045,1
    - Dst: socks5_req0_init
      Src: /src/curl/lib/socks.c:1047,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1049,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1050,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1051,1
    - Dst: socks_flush
      Src: /src/curl/lib/socks.c:1054,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1056,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1060,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1061,1
    - Dst: socks_recv
      Src: /src/curl/lib/socks.c:1064,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1066,1
    - Dst: socks5_check_resp0
      Src: /src/curl/lib/socks.c:1069,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1071,1
    - Dst: Curl_SOCKS5_gssapi_negotiate
      Src: /src/curl/lib/socks.c:1078,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:1080,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1083,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:1086,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1087,1
    - Dst: socks5_auth_init
      Src: /src/curl/lib/socks.c:1092,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1094,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1095,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1096,1
    - Dst: socks_flush
      Src: /src/curl/lib/socks.c:1099,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1101,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1104,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1105,1
    - Dst: socks_recv
      Src: /src/curl/lib/socks.c:1108,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1110,1
    - Dst: socks5_check_auth_resp
      Src: /src/curl/lib/socks.c:1113,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1115,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1117,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1118,1
    - Dst: socks5_req1_init
      Src: /src/curl/lib/socks.c:1121,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1123,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1126,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1130,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1131,1
    - Dst: socks5_resolving
      Src: /src/curl/lib/socks.c:1134,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1136,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1139,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1140,1
    - Dst: socks_flush
      Src: /src/curl/lib/socks.c:1143,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1145,1
    - Dst: failf
      Src: /src/curl/lib/socks.c:1150,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1154,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1155,1
    - Dst: socks5_recv_resp1
      Src: /src/curl/lib/socks.c:1158,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1160,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:1163,1
    - Dst: sxstate
      Src: /src/curl/lib/socks.c:1164,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/socks.c:1165,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/socks.c:1171,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/socks.c:1175,1
    - Dst: socks_failed
      Src: /src/curl/lib/socks.c:1176,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 121
    argCount: 3
    argNames:
    - cf
    - sx
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct socks_ctx*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1029
    functionDepth: 7
    functionLinenumber: 1029
    functionLinenumberEnd: 1178
    functionName: socks5_connect
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - socks_flush
    - failf
    - DEBUGASSERT
    - socks5_check_resp0
    - socks_recv
    - Curl_SOCKS5_gssapi_negotiate
    - socks5_auth_init
    - socks5_check_auth_resp
    - socks5_req1_init
    - socks_failed
    - socks5_recv_resp1
    - socks5_resolving
    - socks5_req0_init
    - FALLTHROUGH
    - sxstate
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLproxycode
    signature: "CURLproxycode socks5_connect(struct Curl_cfilter *cf,\n                                    struct
      socks_ctx *sx,\n                                    struct Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/socks.c:1183,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/socks.c:1184,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/socks.c:1185,1
    - Dst: curlx_free
      Src: /src/curl/lib/socks.c:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct socks_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1180
    functionDepth: 3
    functionLinenumber: 1180
    functionLinenumberEnd: 1188
    functionName: socks_proxy_ctx_free
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_peer_unlink
    - Curl_creds_unlink
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void socks_proxy_ctx_free(struct socks_ctx *ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::do_connect
      Src: /src/curl/lib/socks.c:1210,1
    - Dst: socks5_connect
      Src: /src/curl/lib/socks.c:1217,1
    - Dst: socks4_connect
      Src: /src/curl/lib/socks.c:1222,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/socks.c:1226,1
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/socks.c:1240,1
    - Dst: Curl_conn_cf_get_ip_info
      Src: /src/curl/lib/socks.c:1243,1
    - Dst: infof
      Src: /src/curl/lib/socks.c:1244,1
    - Dst: infof
      Src: /src/curl/lib/socks.c:1251,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/socks.c:1260,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1197
    functionDepth: 8
    functionLinenumber: 1197
    functionLinenumberEnd: 1262
    functionName: socks_proxy_cf_connect
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_get_ip_info
    - socks4_connect
    - DEBUGASSERT
    - struct Curl_cfilter*::next::cft::do_connect
    - Curl_creds_unlink
    - socks5_connect
    - Curl_trc_is_verbose
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks_proxy_cf_connect(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       bool *done)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/socks.c:1274,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:1280,1
    - Dst: Curl_pollset_set_out_only
      Src: /src/curl/lib/socks.c:1281,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/socks.c:1284,1
    - Dst: Curl_pollset_set_in_only
      Src: /src/curl/lib/socks.c:1285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1264
    functionDepth: 1
    functionLinenumber: 1264
    functionLinenumberEnd: 1290
    functionName: socks_cf_adjust_pollset
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_set_out_only
    - Curl_pollset_set_in_only
    - CURL_TRC_CF
    - Curl_conn_cf_get_socket
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks_cf_adjust_pollset(struct Curl_cfilter *cf,\n                                        struct
      Curl_easy *data,\n                                        struct easy_pollset
      *ps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socks_proxy_ctx_free
      Src: /src/curl/lib/socks.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1292
    functionDepth: 4
    functionLinenumber: 1292
    functionLinenumberEnd: 1298
    functionName: socks_proxy_cf_destroy
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - socks_proxy_ctx_free
    linkageType: ''
    returnType: void
    signature: "void socks_proxy_cf_destroy(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/socks.c:1316,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/socks.c:1324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1326
    functionName: socks_cf_query
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::query
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode socks_cf_query(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               int query, int *pres1, void
      *pres2)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/socks.c:1366,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/socks.c:1371,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/socks.c:1376,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/socks.c:1379,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/socks.c:1380,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/socks.c:1383,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/socks.c:1385,1
    - Dst: socks_proxy_ctx_free
      Src: /src/curl/lib/socks.c:1387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - cf_at
    - data
    - dest
    - ip_version
    - proxy_type
    - creds
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - uint8_t
    - uint8_t
    - struct Curl_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1345
    functionDepth: 4
    functionLinenumber: 1345
    functionLinenumberEnd: 1389
    functionName: Curl_cf_socks_proxy_insert_after
    functionSourceFile: /src/curl/lib/socks.c
    functionUses: 0
    functionsReached:
    - socks_proxy_ctx_free
    - Curl_creds_link
    - failf
    - Curl_cf_create
    - Curl_peer_link
    - Curl_conn_cf_insert_after
    - curlx_calloc
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_socks_proxy_insert_after(struct Curl_cfilter *cf_at,\n
      \                                         struct Curl_easy *data,\n                                          struct
      Curl_peer *dest,\n                                          uint8_t ip_version,\n
      \                                         uint8_t proxy_type,\n                                          struct
      Curl_creds *creds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: SOCKET_READABLE
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SOCKET_READABLE(x, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: SOCKET_WRITABLE
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SOCKET_WRITABLE(x, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: VALID_SOCK
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALID_SOCK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: FDSET_SOCK
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDSET_SOCK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: VERIFY_SOCK
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_SOCK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: VALID_SOCK
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALID_SOCK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: FDSET_SOCK
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDSET_SOCK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: VERIFY_SOCK
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_SOCK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - ps
    - ','
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Curl_pollset_add_in
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_pollset_add_in(data, ps, sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - ps
    - ','
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Curl_pollset_remove_in
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_pollset_remove_in(data, ps, sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - ps
    - ','
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Curl_pollset_add_out
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_pollset_add_out(data, ps, sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - ps
    - ','
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Curl_pollset_remove_out
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_pollset_remove_out(data, ps, sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - ps
    - ','
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Curl_pollset_add_inout
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_pollset_add_inout(data, ps, sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - ps
    - ','
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: Curl_pollset_set_in_only
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_pollset_set_in_only(data, ps, sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - ps
    - ','
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: Curl_pollset_set_out_only
    functionSourceFile: /src/curl/lib/select.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_pollset_set_out_only(data, ps, sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: CURL_TELOPT
    functionSourceFile: /src/curl/lib/arpa_telnet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TELOPT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: CURL_TELOPT
    functionSourceFile: /src/curl/lib/arpa_telnet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TELOPT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: CURL_TELOPT_OK
    functionSourceFile: /src/curl/lib/arpa_telnet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TELOPT_OK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: CURL_TELCMD_OK
    functionSourceFile: /src/curl/lib/arpa_telnet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TELCMD_OK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: CURL_TELCMD
    functionSourceFile: /src/curl/lib/arpa_telnet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TELCMD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: CURL_TELCMD
    functionSourceFile: /src/curl/lib/arpa_telnet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_TELCMD(x)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ISLOWER
      Src: /src/curl/lib/curl_fnmatch.c:82,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:99,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:101,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:103,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:105,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:107,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:109,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:111,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:113,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:115,1
    - Dst: strcmp
      Src: /src/curl/lib/curl_fnmatch.c:117,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - pattern
    - charset
    argTypes:
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 122
    functionName: parsekeyword
    functionSourceFile: /src/curl/lib/curl_fnmatch.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ISLOWER
    linkageType: ''
    returnType: int
    signature: int parsekeyword(const unsigned char **pattern, unsigned char *charset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ISUPPER
      Src: /src/curl/lib/curl_fnmatch.c:127,1
    - Dst: ISLOWER
      Src: /src/curl/lib/curl_fnmatch.c:129,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/curl_fnmatch.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: charclass
    functionSourceFile: /src/curl/lib/curl_fnmatch.c
    functionUses: 0
    functionsReached:
    - ISUPPER
    - ISLOWER
    - ISDIGIT
    linkageType: ''
    returnType: char_class
    signature: char_class charclass(unsigned char c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ISALNUM
      Src: /src/curl/lib/curl_fnmatch.c:143,1
    - Dst: charclass
      Src: /src/curl/lib/curl_fnmatch.c:144,1
    - Dst: charclass
      Src: /src/curl/lib/curl_fnmatch.c:149,1
    - Dst: charclass
      Src: /src/curl/lib/curl_fnmatch.c:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - pp
    - charset
    argTypes:
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: setcharorrange
    functionSourceFile: /src/curl/lib/curl_fnmatch.c
    functionUses: 0
    functionsReached:
    - ISALNUM
    - charclass
    linkageType: ''
    returnType: void
    signature: void setcharorrange(const unsigned char **pp, unsigned char *charset)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/curl_fnmatch.c:165,1
    - Dst: parsekeyword
      Src: /src/curl/lib/curl_fnmatch.c:184,1
    - Dst: setcharorrange
      Src: /src/curl/lib/curl_fnmatch.c:208,1
    - Dst: setcharorrange
      Src: /src/curl/lib/curl_fnmatch.c:214,1
    - Dst: ISPRINT
      Src: /src/curl/lib/curl_fnmatch.c:227,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 2
    argNames:
    - p
    - charset
    argTypes:
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 249
    functionName: setcharset
    functionSourceFile: /src/curl/lib/curl_fnmatch.c
    functionUses: 0
    functionsReached:
    - parsekeyword
    - setcharorrange
    - ISPRINT
    - memset
    linkageType: ''
    returnType: int
    signature: int setcharset(const unsigned char **p, unsigned char *charset)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: loop
      Src: /src/curl/lib/curl_fnmatch.c:279,1
    - Dst: setcharset
      Src: /src/curl/lib/curl_fnmatch.c:299,1
    - Dst: ISALNUM
      Src: /src/curl/lib/curl_fnmatch.c:306,1
    - Dst: ISALPHA
      Src: /src/curl/lib/curl_fnmatch.c:308,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/curl_fnmatch.c:310,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/curl_fnmatch.c:312,1
    - Dst: ISPRINT
      Src: /src/curl/lib/curl_fnmatch.c:314,1
    - Dst: ISBLANK
      Src: /src/curl/lib/curl_fnmatch.c:316,1
    - Dst: ISUPPER
      Src: /src/curl/lib/curl_fnmatch.c:318,1
    - Dst: ISLOWER
      Src: /src/curl/lib/curl_fnmatch.c:320,1
    - Dst: ISBLANK
      Src: /src/curl/lib/curl_fnmatch.c:322,1
    - Dst: ISGRAPH
      Src: /src/curl/lib/curl_fnmatch.c:324,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 77
    argCount: 3
    argNames:
    - pattern
    - string
    - maxstars
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 344
    functionName: loop
    functionSourceFile: /src/curl/lib/curl_fnmatch.c
    functionUses: 7
    functionsReached:
    - ISLOWER
    - ISBLANK
    - ISXDIGIT
    - ISUPPER
    - ISPRINT
    - ISDIGIT
    - loop
    - setcharset
    - ISALNUM
    - ISGRAPH
    - ISALPHA
    linkageType: ''
    returnType: int
    signature: "int loop(const unsigned char *pattern, const unsigned char *string,\n
      \               int maxstars)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loop
      Src: /src/curl/lib/curl_fnmatch.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - pattern
    - string
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 358
    functionName: Curl_fnmatch
    functionSourceFile: /src/curl/lib/curl_fnmatch.c
    functionUses: 2
    functionsReached:
    - loop
    linkageType: ''
    returnType: int
    signature: int Curl_fnmatch(void *ptr, const char *pattern, const char *string)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fnmatch
      Src: /src/curl/lib/curl_fnmatch.c:373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - pattern
    - string
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 382
    functionName: Curl_fnmatch
    functionSourceFile: /src/curl/lib/curl_fnmatch.c
    functionUses: 2
    functionsReached:
    - fnmatch
    linkageType: ''
    returnType: int
    signature: int Curl_fnmatch(void *ptr, const char *pattern, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: Curl_headers_init
    functionSourceFile: /src/curl/lib/headers.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_headers_init(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Curl_headers_push
    functionSourceFile: /src/curl/lib/headers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_headers_push(x, y, z, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: Curl_headers_cleanup
    functionSourceFile: /src/curl/lib/headers.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_headers_cleanup(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: Curl_wakeup_destroy
    functionSourceFile: /src/curl/lib/socketpair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_wakeup_destroy(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/cf-https-connect.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - data
    argTypes:
    - struct cf_hc_baller*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: cf_hc_baller_discard
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_discard_chain
    linkageType: ''
    returnType: void
    signature: "void cf_hc_baller_discard(struct cf_hc_baller *b,\n                                 struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct cf_hc_baller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: cf_hc_baller_is_connecting
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_hc_baller_is_connecting(struct cf_hc_baller *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct cf_hc_baller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: cf_hc_baller_has_started
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_hc_baller_has_started(struct cf_hc_baller *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct cf_hc_baller*::cf::cft::query
      Src: /src/curl/lib/cf-https-connect.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - b
    - data
    argTypes:
    - struct cf_hc_baller*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: cf_hc_baller_reply_ms
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - struct cf_hc_baller*::cf::cft::query
    linkageType: ''
    returnType: int
    signature: "int cf_hc_baller_reply_ms(struct cf_hc_baller *b,\n                                 struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct cf_hc_baller*::cf::cft::has_data_pending
      Src: /src/curl/lib/cf-https-connect.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - b
    - data
    argTypes:
    - struct cf_hc_baller*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: cf_hc_baller_data_pending
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - struct cf_hc_baller*::cf::cft::has_data_pending
    linkageType: ''
    returnType: bool
    signature: "bool cf_hc_baller_data_pending(struct cf_hc_baller *b,\n                                      const
      struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_needs_flush
      Src: /src/curl/lib/cf-https-connect.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - b
    - data
    argTypes:
    - struct cf_hc_baller*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: cf_hc_baller_needs_flush
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_needs_flush
    linkageType: ''
    returnType: bool
    signature: "bool cf_hc_baller_needs_flush(struct cf_hc_baller *b,\n                                     struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_cntrl
      Src: /src/curl/lib/cf-https-connect.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - b
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct cf_hc_baller*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: cf_hc_baller_cntrl
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_cntrl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_baller_cntrl(struct cf_hc_baller *b,\n                                   struct
      Curl_easy *data,\n                                   int event, int arg1, void
      *arg2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_hc_baller_discard
      Src: /src/curl/lib/cf-https-connect.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - ctx
    argTypes:
    - struct Curl_easy*
    - struct cf_hc_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: cf_hc_ctx_close
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_baller_discard
    linkageType: ''
    returnType: void
    signature: "void cf_hc_ctx_close(struct Curl_easy *data,\n                            struct
      cf_hc_ctx *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_hc_ctx_close
      Src: /src/curl/lib/cf-https-connect.c:139,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-https-connect.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - ctx
    argTypes:
    - struct Curl_easy*
    - struct cf_hc_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: cf_hc_ctx_destroy
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - cf_hc_ctx_close
    linkageType: ''
    returnType: void
    signature: "void cf_hc_ctx_destroy(struct Curl_easy *data,\n                              struct
      cf_hc_ctx *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - b
    - alpn_id
    - def_transport
    argTypes:
    - struct cf_hc_baller*
    - enum alpnid
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 172
    functionName: cf_hc_baller_assign
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cf_hc_baller_assign(struct cf_hc_baller *b,\n                                enum
      alpnid alpn_id,\n                                uint8_t def_transport)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-https-connect.c:181,1
    - Dst: Curl_cf_setup_insert_after
      Src: /src/curl/lib/cf-https-connect.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - b
    - cf
    - data
    argTypes:
    - struct cf_hc_baller*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: cf_hc_baller_init
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_cf_setup_insert_after
    linkageType: ''
    returnType: void
    signature: "void cf_hc_baller_init(struct cf_hc_baller *b,\n                              struct
      Curl_cfilter *cf,\n                              struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/cf-https-connect.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - b
    - cf
    - data
    - done
    argTypes:
    - struct cf_hc_baller*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: cf_hc_baller_connect
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_connect
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_baller_connect(struct cf_hc_baller *b,\n                                     struct
      Curl_cfilter *cf,\n                                     struct Curl_easy *data,\n
      \                                    bool *done)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-https-connect.c:211,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-https-connect.c:215,1
    - Dst: cf_hc_ctx_close
      Src: /src/curl/lib/cf-https-connect.c:224,1
    - Dst: Curl_reset_fail
      Src: /src/curl/lib/cf-https-connect.c:227,1
    - Dst: Curl_conn_cf_get_alpn_negotiated
      Src: /src/curl/lib/cf-https-connect.c:232,1
    - Dst: strcmp
      Src: /src/curl/lib/cf-https-connect.c:233,1
    - Dst: Curl_http2_switch_at
      Src: /src/curl/lib/cf-https-connect.c:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - cf
    - data
    - winner
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_hc_baller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 244
    functionName: baller_connected
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_reset_fail
    - Curl_http2_switch_at
    - DEBUGASSERT
    - strcmp
    - cf_hc_ctx_close
    - Curl_conn_cf_get_alpn_negotiated
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode baller_connected(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct cf_hc_baller *winner)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_hc_baller_has_started
      Src: /src/curl/lib/cf-https-connect.c:254,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:257,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-https-connect.c:262,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-https-connect.c:262,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:264,1
    - Dst: cf_hc_baller_reply_ms
      Src: /src/curl/lib/cf-https-connect.c:270,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 279
    functionName: time_to_start_baller2
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - cf_hc_baller_reply_ms
    - cf_hc_baller_has_started
    - curlx_ptimediff_ms
    - CURL_TRC_CF
    linkageType: ''
    returnType: bool
    signature: "bool time_to_start_baller2(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_may_http3
      Src: /src/curl/lib/cf-https-connect.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 291
    functionName: cf_hc_may_h3
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_conn_may_http3
    linkageType: ''
    returnType: bool
    signature: "bool cf_hc_may_h3(struct Curl_cfilter *cf,\n                         struct
      Curl_easy *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_dns_get_https
      Src: /src/curl/lib/cf-https-connect.c:306,1
    - Dst: Curl_httpsrr_applicable
      Src: /src/curl/lib/cf-https-connect.c:309,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/cf-https-connect.c:310,1
    - Dst: cf_hc_may_h3
      Src: /src/curl/lib/cf-https-connect.c:317,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 3
    argNames:
    - cf
    - data
    - not_this_one
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - enum alpnid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 342
    functionName: cf_hc_get_httpsrr_alpn
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    - Curl_httpsrr_applicable
    - cf_hc_may_h3
    - Curl_conn_dns_get_https
    linkageType: ''
    returnType: enum alpnid
    signature: "enum alpnid cf_hc_get_httpsrr_alpn(struct Curl_cfilter *cf,\n                                          struct
      Curl_easy *data,\n                                          enum alpnid not_this_one)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_hc_may_h3
      Src: /src/curl/lib/cf-https-connect.c:351,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - cf
    - data
    - not_this_one
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - enum alpnid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 368
    functionName: cf_hc_get_pref_alpn
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_may_h3
    linkageType: ''
    returnType: enum alpnid
    signature: "enum alpnid cf_hc_get_pref_alpn(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       enum alpnid not_this_one)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_hc_may_h3
      Src: /src/curl/lib/cf-https-connect.c:379,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - cf
    - data
    - choices
    - not_this_one
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - http_majors
    - enum alpnid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 389
    functionName: cf_hc_get_first_alpn
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_may_h3
    linkageType: ''
    returnType: enum alpnid
    signature: "enum alpnid cf_hc_get_first_alpn(struct Curl_cfilter *cf,\n                                        struct
      Curl_easy *data,\n                                        http_majors choices,\n
      \                                       enum alpnid not_this_one)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-https-connect.c:398,1
    - Dst: cf_hc_get_httpsrr_alpn
      Src: /src/curl/lib/cf-https-connect.c:400,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-https-connect.c:403,1
    - Dst: cf_hc_get_pref_alpn
      Src: /src/curl/lib/cf-https-connect.c:404,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-https-connect.c:407,1
    - Dst: cf_hc_get_first_alpn
      Src: /src/curl/lib/cf-https-connect.c:408,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-https-connect.c:413,1
    - Dst: cf_hc_get_first_alpn
      Src: /src/curl/lib/cf-https-connect.c:414,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:422,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:425,1
    - Dst: cf_hc_baller_assign
      Src: /src/curl/lib/cf-https-connect.c:429,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:431,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 444
    functionName: cf_hc_set_baller1
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_get_pref_alpn
    - DEBUGASSERT
    - cf_hc_get_httpsrr_alpn
    - cf_hc_baller_assign
    - cf_hc_get_first_alpn
    - VERBOSE
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_set_baller1(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_hc_get_httpsrr_alpn
      Src: /src/curl/lib/cf-https-connect.c:458,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-https-connect.c:461,1
    - Dst: cf_hc_get_pref_alpn
      Src: /src/curl/lib/cf-https-connect.c:462,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-https-connect.c:465,1
    - Dst: cf_hc_get_first_alpn
      Src: /src/curl/lib/cf-https-connect.c:466,1
    - Dst: cf_hc_baller_assign
      Src: /src/curl/lib/cf-https-connect.c:472,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 478
    functionName: cf_hc_set_baller2
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_get_pref_alpn
    - cf_hc_get_httpsrr_alpn
    - cf_hc_baller_assign
    - cf_hc_get_first_alpn
    - VERBOSE
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_hc_set_baller2(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_dns_resolved_https
      Src: /src/curl/lib/cf-https-connect.c:495,1
    - Dst: getenv
      Src: /src/curl/lib/cf-https-connect.c:497,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:498,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-https-connect.c:507,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-https-connect.c:510,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:511,1
    - Dst: cf_hc_set_baller1
      Src: /src/curl/lib/cf-https-connect.c:512,1
    - Dst: cf_hc_set_baller2
      Src: /src/curl/lib/cf-https-connect.c:518,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-https-connect.c:519,1
    - Dst: cf_hc_baller_init
      Src: /src/curl/lib/cf-https-connect.c:520,1
    - Dst: Curl_expire
      Src: /src/curl/lib/cf-https-connect.c:522,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-https-connect.c:525,1
    - Dst: cf_hc_set_baller2
      Src: /src/curl/lib/cf-https-connect.c:529,1
    - Dst: cf_hc_baller_is_connecting
      Src: /src/curl/lib/cf-https-connect.c:531,1
    - Dst: cf_hc_baller_connect
      Src: /src/curl/lib/cf-https-connect.c:532,1
    - Dst: baller_connected
      Src: /src/curl/lib/cf-https-connect.c:534,1
    - Dst: time_to_start_baller2
      Src: /src/curl/lib/cf-https-connect.c:539,1
    - Dst: cf_hc_baller_init
      Src: /src/curl/lib/cf-https-connect.c:540,1
    - Dst: cf_hc_baller_is_connecting
      Src: /src/curl/lib/cf-https-connect.c:543,1
    - Dst: cf_hc_baller_connect
      Src: /src/curl/lib/cf-https-connect.c:544,1
    - Dst: baller_connected
      Src: /src/curl/lib/cf-https-connect.c:546,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:555,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:578,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 82
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 480
    functionDepth: 5
    functionLinenumber: 480
    functionLinenumberEnd: 580
    functionName: cf_hc_connect
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - cf_hc_baller_connect
    - DEBUGASSERT
    - Curl_conn_dns_resolved_https
    - getenv
    - cf_hc_set_baller1
    - baller_connected
    - cf_hc_baller_init
    - cf_hc_set_baller2
    - CURL_TRC_CF
    - Curl_expire
    - time_to_start_baller2
    - cf_hc_baller_is_connecting
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_connect(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              bool *done)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-https-connect.c:589,1
    - Dst: cf_hc_baller_is_connecting
      Src: /src/curl/lib/cf-https-connect.c:600,1
    - Dst: struct cf_hc_baller*::cf::cft::do_shutdown
      Src: /src/curl/lib/cf-https-connect.c:602,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:618,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 620
    functionName: cf_hc_shutdown
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_baller_is_connecting
    - CURL_TRC_CF
    - DEBUGASSERT
    - struct cf_hc_baller*::cf::cft::do_shutdown
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_shutdown(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data, bool *done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_hc_baller_is_connecting
      Src: /src/curl/lib/cf-https-connect.c:633,1
    - Dst: Curl_conn_cf_adjust_pollset
      Src: /src/curl/lib/cf-https-connect.c:635,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:637,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 640
    functionName: cf_hc_adjust_pollset
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_baller_is_connecting
    - Curl_conn_cf_adjust_pollset
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_adjust_pollset(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data,\n                                     struct easy_pollset *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/cf-https-connect.c:649,1
    - Dst: cf_hc_baller_data_pending
      Src: /src/curl/lib/cf-https-connect.c:652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 655
    functionName: cf_hc_data_pending
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::has_data_pending
    - cf_hc_baller_data_pending
    linkageType: ''
    returnType: bool
    signature: "bool cf_hc_data_pending(struct Curl_cfilter *cf,\n                               const
      struct Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/cf-https-connect.c:665,1
    - Dst: memset
      Src: /src/curl/lib/cf-https-connect.c:668,1
    - Dst: struct Curl_cfilter*::cft::query
      Src: /src/curl/lib/cf-https-connect.c:669,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/cf-https-connect.c:670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - cf
    - data
    - query
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 675
    functionName: cf_get_max_baller_time
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - curlx_ptimediff_us
    - struct Curl_cfilter*::cft::query
    - memset
    linkageType: ''
    returnType: struct curltime
    signature: "struct curltime cf_get_max_baller_time(struct Curl_cfilter *cf,\n
      \                                             struct Curl_easy *data,\n                                              int
      query)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_get_max_baller_time
      Src: /src/curl/lib/cf-https-connect.c:688,1
    - Dst: cf_get_max_baller_time
      Src: /src/curl/lib/cf-https-connect.c:693,1
    - Dst: cf_hc_baller_needs_flush
      Src: /src/curl/lib/cf-https-connect.c:698,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/cf-https-connect.c:709,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 711
    functionName: cf_hc_query
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::query
    - cf_hc_baller_needs_flush
    - cf_get_max_baller_time
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_query(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            int query, int *pres1, void *pres2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_hc_baller_cntrl
      Src: /src/curl/lib/cf-https-connect.c:723,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 731
    functionName: cf_hc_cntrl
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_baller_cntrl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_cntrl(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            int event, int arg1, void *arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-https-connect.c:737,1
    - Dst: cf_hc_ctx_destroy
      Src: /src/curl/lib/cf-https-connect.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 733
    functionDepth: 5
    functionLinenumber: 733
    functionLinenumberEnd: 739
    functionName: cf_hc_destroy
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_ctx_destroy
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: void cf_hc_destroy(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-https-connect.c:766,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-https-connect.c:775,1
    - Dst: cf_hc_ctx_destroy
      Src: /src/curl/lib/cf-https-connect.c:782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - pcf
    - data
    - def_transport
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 758
    functionDepth: 5
    functionLinenumber: 758
    functionLinenumberEnd: 784
    functionName: cf_hc_create
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - curlx_calloc
    - cf_hc_ctx_destroy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_create(struct Curl_cfilter **pcf,\n                             struct
      Curl_easy *data,\n                             uint8_t def_transport)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-https-connect.c:794,1
    - Dst: cf_hc_create
      Src: /src/curl/lib/cf-https-connect.c:795,1
    - Dst: Curl_conn_cf_add
      Src: /src/curl/lib/cf-https-connect.c:798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - data
    - conn
    - sockindex
    - def_transport
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 786
    functionDepth: 6
    functionLinenumber: 786
    functionLinenumberEnd: 801
    functionName: cf_hc_add
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_create
    - Curl_conn_cf_add
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_hc_add(struct Curl_easy *data,\n                          struct
      connectdata *conn,\n                          int sockindex,\n                          uint8_t
      def_transport)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-https-connect.c:809,1
    - Dst: cf_hc_add
      Src: /src/curl/lib/cf-https-connect.c:815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - data
    - conn
    - sockindex
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 803
    functionDepth: 7
    functionLinenumber: 803
    functionLinenumberEnd: 819
    functionName: Curl_cf_https_setup
    functionSourceFile: /src/curl/lib/cf-https-connect.c
    functionUses: 0
    functionsReached:
    - cf_hc_add
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_https_setup(struct Curl_easy *data,\n                             struct
      connectdata *conn,\n                             int sockindex)"
  - BBCount: 90
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 183
    argCount: 1
    argNames:
    - error
    argTypes:
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 324
    functionName: curl_easy_strerror
    functionSourceFile: /src/curl/lib/strerror.c
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *curl_easy_strerror(CURLcode error)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 1
    argNames:
    - error
    argTypes:
    - CURLMcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 383
    functionName: curl_multi_strerror
    functionSourceFile: /src/curl/lib/strerror.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *curl_multi_strerror(CURLMcode error)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - error
    argTypes:
    - CURLSHcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 418
    functionName: curl_share_strerror
    functionSourceFile: /src/curl/lib/strerror.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *curl_share_strerror(CURLSHcode error)
  - BBCount: 35
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 73
    argCount: 1
    argNames:
    - error
    argTypes:
    - CURLUcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 531
    functionName: curl_url_strerror
    functionSourceFile: /src/curl/lib/strerror.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *curl_url_strerror(CURLUcode error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/curl/lib/strerror.c:541,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:557,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:558,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:559,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:560,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:561,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:562,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:563,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:564,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:565,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:566,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:567,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:568,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:569,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:570,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:571,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:572,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:573,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:574,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:575,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:576,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:577,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:578,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:579,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:580,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:581,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:582,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:583,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:584,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:585,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:586,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:587,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:588,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:589,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:590,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:591,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:592,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:593,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:594,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:595,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:596,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:597,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:598,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:599,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:600,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:601,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:602,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:603,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:604,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:605,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:606,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:607,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:608,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:609,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:610,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:611,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:612,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:613,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:614,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:615,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:616,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:617,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:618,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:619,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:620,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:621,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:622,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:623,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:624,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:625,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:626,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:627,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:628,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:629,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:630,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:631,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:632,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:633,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:634,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:635,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:636,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:637,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:638,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:639,1
    - Dst: SEC2TXT
      Src: /src/curl/lib/strerror.c:640,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/strerror.c:646,1
    - Dst: curlx_get_winapi_error
      Src: /src/curl/lib/strerror.c:654,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/strerror.c:655,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/strerror.c:657,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/strerror.c:661,1
    - Dst: STRCONST
      Src: /src/curl/lib/strerror.c:661,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/strerror.c:663,1
    - Dst: STRCONST
      Src: /src/curl/lib/strerror.c:663,1
    - Dst: GetLastError
      Src: /src/curl/lib/strerror.c:670,1
    - Dst: SetLastError
      Src: /src/curl/lib/strerror.c:671,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 111
    argCount: 3
    argNames:
    - err
    - buf
    - buflen
    argTypes:
    - SECURITY_STATUS
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 538
    functionDepth: 7
    functionLinenumber: 538
    functionLinenumberEnd: 675
    functionName: Curl_sspi_strerror
    functionSourceFile: /src/curl/lib/strerror.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - SEC2TXT
    - STRCONST
    - curlx_get_winapi_error
    - curlx_strcopy
    - SetLastError
    - GetLastError
    linkageType: ''
    returnType: char
    signature: char *Curl_sspi_strerror(SECURITY_STATUS err, char *buf, size_t buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 557
    functionName: SEC2TXT
    functionSourceFile: /src/curl/lib/strerror.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC2TXT(sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: CURL_DNSQ_IP
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_DNSQ_IP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Curl_probeipv6
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_probeipv6(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: Curl_resolv_shutdown_all
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_shutdown_all(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: Curl_resolv_destroy_all
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_destroy_all(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: Curl_resolv_take_result
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_take_result(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: Curl_resolv_elapsed_ms
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_elapsed_ms(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: Curl_resolv_has_answers
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_has_answers(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: Curl_resolv_get_ai
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_get_ai(x, y, z, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: Curl_resolv_get_https
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_get_https(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: Curl_resolv_knows_https
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_knows_https(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: Curl_resolv_pollset
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_pollset(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: Curl_resolv_destroy
    functionSourceFile: /src/curl/lib/hostip.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_resolv_destroy(x, y)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/hash.c:44,1
    - Dst: Curl_hash_start_iterate
      Src: /src/curl/lib/hash.c:46,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/hash.c:48,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/hash.c:51,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/hash.c:53,1
    - Dst: func
      Src: /src/curl/lib/hash.c:59,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/hash.c:61,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/hash.c:65,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/hash.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct Curl_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 68
    functionName: Curl_hash_print
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached:
    - Curl_hash_next_element
    - curl_mfprintf
    - func
    - Curl_hash_start_iterate
    linkageType: ''
    returnType: void
    signature: void Curl_hash_print(struct Curl_hash *h, void (*func)(void *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:83,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:84,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:85,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:86,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - h
    - slots
    - hfunc
    - comparator
    - dtor
    argTypes:
    - struct Curl_hash*
    - size_t
    - hash_function
    - comp_function
    - Curl_hash_dtor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 98
    functionName: Curl_hash_init
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 6
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_hash_init(struct Curl_hash *h,\n                    size_t
      slots,\n                    hash_function hfunc,\n                    comp_function
      comparator,\n                    Curl_hash_dtor dtor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/hash.c:108,1
    - Dst: memcpy
      Src: /src/curl/lib/hash.c:112,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/hash.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - key
    - key_len
    - p
    - dtor
    argTypes:
    - void*
    - size_t
    - void*
    - Curl_hash_elem_dtor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: hash_elem_create
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - memcpy
    - CURL_UNCONST
    linkageType: ''
    returnType: struct Curl_hash_element
    signature: "struct Curl_hash_element *hash_elem_create(const void *key,\n                                                  size_t
      key_len,\n                                                  const void *p,\n
      \                                                 Curl_hash_elem_dtor dtor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:123,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:124,1
    - Dst: struct Curl_hash_element*::dtor
      Src: /src/curl/lib/hash.c:127,1
    - Dst: struct Curl_hash*::dtor
      Src: /src/curl/lib/hash.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - h
    - he
    argTypes:
    - struct Curl_hash*
    - struct Curl_hash_element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: hash_elem_clear_ptr
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached:
    - struct Curl_hash*::dtor
    - struct Curl_hash_element*::dtor
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void hash_elem_clear_ptr(struct Curl_hash *h,\n                                struct
      Curl_hash_element *he)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_elem_clear_ptr
      Src: /src/curl/lib/hash.c:137,1
    - Dst: curlx_free
      Src: /src/curl/lib/hash.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - h
    - he
    argTypes:
    - struct Curl_hash*
    - struct Curl_hash_element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: hash_elem_destroy
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - hash_elem_clear_ptr
    linkageType: ''
    returnType: void
    signature: "void hash_elem_destroy(struct Curl_hash *h,\n                              struct
      Curl_hash_element *he)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - h
    - he_anchor
    - he
    argTypes:
    - struct Curl_hash*
    - struct Curl_hash_element**
    - struct Curl_hash_element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: hash_elem_unlink
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hash_elem_unlink(struct Curl_hash *h,\n                             struct
      Curl_hash_element **he_anchor,\n                             struct Curl_hash_element
      *he)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - h
    - he_anchor
    - he
    argTypes:
    - struct Curl_hash*
    - struct Curl_hash_element**
    - struct Curl_hash_element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: hash_elem_link
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hash_elem_link(struct Curl_hash *h,\n                           struct
      Curl_hash_element **he_anchor,\n                           struct Curl_hash_element
      *he)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: CURL_HASH_SLOT
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_HASH_SLOT(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: CURL_HASH_SLOT_ADDR
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_HASH_SLOT_ADDR(x, y, z)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:166,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:167,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:168,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/hash.c:170,1
    - Dst: CURL_HASH_SLOT_ADDR
      Src: /src/curl/lib/hash.c:175,1
    - Dst: struct Curl_hash*::comp_func
      Src: /src/curl/lib/hash.c:177,1
    - Dst: hash_elem_clear_ptr
      Src: /src/curl/lib/hash.c:179,1
    - Dst: hash_elem_create
      Src: /src/curl/lib/hash.c:186,1
    - Dst: hash_elem_link
      Src: /src/curl/lib/hash.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - h
    - key
    - key_len
    - p
    - dtor
    argTypes:
    - struct Curl_hash*
    - void*
    - size_t
    - void*
    - Curl_hash_elem_dtor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 192
    functionName: Curl_hash_add2
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 3
    functionsReached:
    - CURL_HASH_SLOT_ADDR
    - DEBUGASSERT
    - hash_elem_clear_ptr
    - hash_elem_link
    - curlx_calloc
    - struct Curl_hash*::comp_func
    - hash_elem_create
    linkageType: ''
    returnType: void
    signature: "void *Curl_hash_add2(struct Curl_hash *h, void *key, size_t key_len,
      void *p,\n                     Curl_hash_elem_dtor dtor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_add2
      Src: /src/curl/lib/hash.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - h
    - key
    - key_len
    - p
    argTypes:
    - struct Curl_hash*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: Curl_hash_add
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 4
    functionsReached:
    - Curl_hash_add2
    linkageType: ''
    returnType: void
    signature: void *Curl_hash_add(struct Curl_hash *h, void *key, size_t key_len,
      void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:214,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:215,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:216,1
    - Dst: CURL_HASH_SLOT_ADDR
      Src: /src/curl/lib/hash.c:220,1
    - Dst: struct Curl_hash*::comp_func
      Src: /src/curl/lib/hash.c:223,1
    - Dst: hash_elem_unlink
      Src: /src/curl/lib/hash.c:224,1
    - Dst: hash_elem_destroy
      Src: /src/curl/lib/hash.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - h
    - key
    - key_len
    argTypes:
    - struct Curl_hash*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 232
    functionName: Curl_hash_delete
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 4
    functionsReached:
    - CURL_HASH_SLOT_ADDR
    - DEBUGASSERT
    - hash_elem_unlink
    - struct Curl_hash*::comp_func
    - hash_elem_destroy
    linkageType: ''
    returnType: int
    signature: int Curl_hash_delete(struct Curl_hash *h, void *key, size_t key_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:240,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:241,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:244,1
    - Dst: CURL_HASH_SLOT
      Src: /src/curl/lib/hash.c:245,1
    - Dst: struct Curl_hash*::comp_func
      Src: /src/curl/lib/hash.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - h
    - key
    - key_len
    argTypes:
    - struct Curl_hash*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 254
    functionName: Curl_hash_pick
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 6
    functionsReached:
    - CURL_HASH_SLOT
    - struct Curl_hash*::comp_func
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void *Curl_hash_pick(struct Curl_hash *h, void *key, size_t key_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:265,1
    - Dst: Curl_hash_clean
      Src: /src/curl/lib/hash.c:267,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/hash.c:268,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct Curl_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: Curl_hash_destroy
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 5
    functionsReached:
    - curlx_safefree
    - Curl_hash_clean
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_hash_destroy(struct Curl_hash *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:283,1
    - Dst: hash_elem_unlink
      Src: /src/curl/lib/hash.c:288,1
    - Dst: hash_elem_destroy
      Src: /src/curl/lib/hash.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct Curl_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 293
    functionName: Curl_hash_clean
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 5
    functionsReached:
    - hash_elem_destroy
    - DEBUGASSERT
    - hash_elem_unlink
    linkageType: ''
    returnType: void
    signature: void Curl_hash_clean(struct Curl_hash *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct Curl_hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: Curl_hash_count
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_hash_count(struct Curl_hash *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:310,1
    - Dst: comp
      Src: /src/curl/lib/hash.c:315,1
    - Dst: hash_elem_unlink
      Src: /src/curl/lib/hash.c:317,1
    - Dst: hash_elem_destroy
      Src: /src/curl/lib/hash.c:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - h
    - user
    argTypes:
    - struct Curl_hash*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 324
    functionName: Curl_hash_clean_with_criterium
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached:
    - hash_elem_destroy
    - comp
    - DEBUGASSERT
    - hash_elem_unlink
    linkageType: ''
    returnType: void
    signature: "void Curl_hash_clean_with_criterium(struct Curl_hash *h, void *user,\n
      \                                   int (*comp)(void *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - key
    - key_length
    - slots_num
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 339
    functionName: Curl_hash_str
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_hash_str(void *key, size_t key_length, size_t slots_num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/curl/lib/hash.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - k1
    - key1_len
    - k2
    - key2_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: curlx_str_key_compare
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: size_t
    signature: "size_t curlx_str_key_compare(void *k1, size_t key1_len,\n                             void
      *k2, size_t key2_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - hash
    - iter
    argTypes:
    - struct Curl_hash*
    - struct Curl_hash_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: Curl_hash_start_iterate
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_hash_start_iterate(struct Curl_hash *hash,\n                             struct
      Curl_hash_iterator *iter)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hash.c:366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct Curl_hash_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 388
    functionName: Curl_hash_next_element
    functionSourceFile: /src/curl/lib/hash.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: struct Curl_hash_element
    signature: "struct Curl_hash_element *Curl_hash_next_element(\n  struct Curl_hash_iterator
      *iter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: Curl_win32_init
    functionSourceFile: /src/curl/lib/system_win32.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_win32_init(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: CF_CTX_CALL_DATA
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_CTX_CALL_DATA(cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/http2.c:156,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/http2.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct h2_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: free_push_headers
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void free_push_headers(struct h2_stream_ctx *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/http2.c:163,1
    - Dst: Curl_h1_req_parse_free
      Src: /src/curl/lib/http2.c:164,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/http2.c:165,1
    - Dst: free_push_headers
      Src: /src/curl/lib/http2.c:166,1
    - Dst: curlx_free
      Src: /src/curl/lib/http2.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct h2_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: h2_stream_ctx_free
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_h1_req_parse_free
    - curlx_free
    - free_push_headers
    - Curl_dynhds_free
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void h2_stream_ctx_free(struct h2_stream_ctx *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:173,1
    - Dst: h2_stream_ctx_free
      Src: /src/curl/lib/http2.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - stream
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: h2_stream_hash_free
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - h2_stream_ctx_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void h2_stream_hash_free(unsigned int id, void *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufcp_init
      Src: /src/curl/lib/http2.c:179,1
    - Dst: Curl_bufq_initp
      Src: /src/curl/lib/http2.c:180,1
    - Dst: Curl_bufq_initp
      Src: /src/curl/lib/http2.c:181,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http2.c:182,1
    - Dst: Curl_uint32_hash_init
      Src: /src/curl/lib/http2.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - via_h1_upgrade
    argTypes:
    - struct cf_h2_ctx*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: cf_h2_ctx_init
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - Curl_bufq_initp
    - Curl_uint32_hash_init
    - Curl_bufcp_init
    linkageType: ''
    returnType: void
    signature: void cf_h2_ctx_init(struct cf_h2_ctx *ctx, bool via_h1_upgrade)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_session_del
      Src: /src/curl/lib/http2.c:193,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/http2.c:194,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/http2.c:195,1
    - Dst: Curl_bufcp_free
      Src: /src/curl/lib/http2.c:196,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http2.c:197,1
    - Dst: Curl_uint32_hash_destroy
      Src: /src/curl/lib/http2.c:198,1
    - Dst: memset
      Src: /src/curl/lib/http2.c:199,1
    - Dst: curlx_free
      Src: /src/curl/lib/http2.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_h2_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 202
    functionName: cf_h2_ctx_free
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_bufcp_free
    - nghttp2_session_del
    - curlx_dyn_free
    - curlx_free
    - Curl_bufq_free
    - memset
    - Curl_uint32_hash_destroy
    linkageType: ''
    returnType: void
    signature: void cf_h2_ctx_free(struct cf_h2_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_per_step
      Src: /src/curl/lib/http2.c:210,1
    - Dst: CURLMAX
      Src: /src/curl/lib/http2.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: cf_h2_initial_win_size
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CURLMAX
    - Curl_rlimit_per_step
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cf_h2_initial_win_size(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_max_concurrent_streams
      Src: /src/curl/lib/http2.c:222,1
    - Dst: cf_h2_initial_win_size
      Src: /src/curl/lib/http2.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - iv
    - data
    - ctx
    argTypes:
    - nghttp2_settings_entry*
    - struct Curl_easy*
    - struct cf_h2_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 232
    functionName: populate_settings
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - cf_h2_initial_win_size
    - Curl_multi_max_concurrent_streams
    linkageType: ''
    returnType: size_t
    signature: "size_t populate_settings(nghttp2_settings_entry *iv,\n                                  struct
      Curl_easy *data,\n                                  struct cf_h2_ctx *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: populate_settings
      Src: /src/curl/lib/http2.c:240,1
    - Dst: nghttp2_pack_settings_payload
      Src: /src/curl/lib/http2.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - binsettings
    - data
    argTypes:
    - uint8_t*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: populate_binsettings
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - populate_settings
    - nghttp2_pack_settings_payload
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t populate_binsettings(uint8_t *binsettings,\n                                    struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_submit_settings
      Src: /src/curl/lib/http2.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - initial_win_size
    argTypes:
    - struct cf_h2_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: cf_h2_update_settings
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_submit_settings
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_update_settings(struct cf_h2_ctx *ctx,\n                                      uint32_t
      initial_win_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: H2_STREAM_CTX
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2_STREAM_CTX(ctx, data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/http2.c:267,1
    - Dst: Curl_bufq_initp
      Src: /src/curl/lib/http2.c:272,1
    - Dst: Curl_h1_req_parse_init
      Src: /src/curl/lib/http2.c:274,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/http2.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_h2_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: h2_stream_ctx_create
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_dynhds_init
    - curlx_calloc
    - Curl_bufq_initp
    - Curl_h1_req_parse_init
    linkageType: ''
    returnType: struct h2_stream_ctx
    signature: struct h2_stream_ctx *h2_stream_ctx_create(struct cf_h2_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_avail
      Src: /src/curl/lib/http2.c:290,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/http2.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 301
    functionName: cf_h2_get_desired_local_win
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_rlimit_avail
    - Curl_pgrs_now
    linkageType: ''
    returnType: int32_t
    signature: "int32_t cf_h2_get_desired_local_win(struct Curl_cfilter *cf,\n                                           struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_h2_get_desired_local_win
      Src: /src/curl/lib/http2.c:312,1
    - Dst: nghttp2_session_get_stream_effective_local_window_size
      Src: /src/curl/lib/http2.c:314,1
    - Dst: nghttp2_session_set_local_window_size
      Src: /src/curl/lib/http2.c:317,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:320,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:321,1
    - Dst: nghttp2_submit_window_update
      Src: /src/curl/lib/http2.c:324,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:327,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:328,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:332,1
    - Dst: nghttp2_session_set_local_window_size
      Src: /src/curl/lib/http2.c:336,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:339,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:340,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - cf
    - data
    - stream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h2_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 349
    functionName: cf_h2_update_local_win
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_session_get_stream_effective_local_window_size
    - nghttp2_submit_window_update
    - nghttp2_strerror
    - failf
    - nghttp2_session_set_local_window_size
    - cf_h2_get_desired_local_win
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_update_local_win(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       struct h2_stream_ctx
      *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cf
    - data
    - stream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h2_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 361
    functionName: cf_h2_update_local_win
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_update_local_win(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       struct h2_stream_ctx
      *stream)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:372,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:377,1
    - Dst: h2_stream_ctx_create
      Src: /src/curl/lib/http2.c:383,1
    - Dst: Curl_uint32_hash_set
      Src: /src/curl/lib/http2.c:387,1
    - Dst: h2_stream_ctx_free
      Src: /src/curl/lib/http2.c:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - cf
    - data
    - pstream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h2_stream_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 394
    functionName: http2_data_setup
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - h2_stream_ctx_create
    - DEBUGASSERT
    - h2_stream_ctx_free
    - H2_STREAM_CTX
    - Curl_uint32_hash_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http2_data_setup(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct h2_stream_ctx **pstream)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:403,1
    - Dst: Curl_cf_send_bufq
      Src: /src/curl/lib/http2.c:406,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:410,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:411,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 417
    functionName: nw_out_flush
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 1
    functionsReached:
    - Curl_bufq_len
    - Curl_cf_send_bufq
    - CURL_TRC_CF
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode nw_out_flush(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:422,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:424,1
    - Dst: nghttp2_session_set_stream_user_data
      Src: /src/curl/lib/http2.c:431,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:435,1
    - Dst: nghttp2_submit_rst_stream
      Src: /src/curl/lib/http2.c:439,1
    - Dst: nghttp2_session_send
      Src: /src/curl/lib/http2.c:445,1
    - Dst: nw_out_flush
      Src: /src/curl/lib/http2.c:446,1
    - Dst: Curl_uint32_hash_remove
      Src: /src/curl/lib/http2.c:450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 451
    functionName: http2_data_done
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_session_send
    - DEBUGASSERT
    - nghttp2_submit_rst_stream
    - nw_out_flush
    - H2_STREAM_CTX
    - Curl_uint32_hash_remove
    - nghttp2_session_set_stream_user_data
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: void http2_data_done(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_option_new
      Src: /src/curl/lib/http2.c:461,1
    - Dst: nghttp2_option_set_no_auto_window_update
      Src: /src/curl/lib/http2.c:465,1
    - Dst: nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation
      Src: /src/curl/lib/http2.c:470,1
    - Dst: nghttp2_session_client_new3
      Src: /src/curl/lib/http2.c:472,1
    - Dst: nghttp2_option_del
      Src: /src/curl/lib/http2.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cf
    - cbs
    argTypes:
    - struct Curl_cfilter*
    - nghttp2_session_callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 475
    functionName: h2_client_new
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 1
    functionsReached:
    - nghttp2_option_set_no_auto_window_update
    - nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation
    - nghttp2_option_del
    - nghttp2_option_new
    - nghttp2_session_client_new3
    linkageType: ''
    returnType: int
    signature: "int h2_client_new(struct Curl_cfilter *cf,\n                         nghttp2_session_callbacks
      *cbs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_session_want_read
      Src: /src/curl/lib/http2.c:482,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/http2.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_h2_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: should_close_session
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 2
    functionsReached:
    - nghttp2_session_want_read
    - nghttp2_session_want_write
    linkageType: ''
    returnType: int
    signature: int should_close_session(struct cf_h2_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/http2.c:499,1
    - Dst: nghttp2_session_mem_recv
      Src: /src/curl/lib/http2.c:500,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/http2.c:501,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:502,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:502,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/http2.c:505,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:506,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:510,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:511,1
    - Dst: nghttp2_session_check_request_allowed
      Src: /src/curl/lib/http2.c:515,1
    - Dst: connclose
      Src: /src/curl/lib/http2.c:520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 491
    functionDepth: 4
    functionLinenumber: 491
    functionLinenumberEnd: 524
    functionName: h2_process_pending_input
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 2
    functionsReached:
    - Curl_bufq_len
    - failf
    - nghttp2_strerror
    - nghttp2_session_check_request_allowed
    - Curl_bufq_skip
    - Curl_bufq_peek
    - Curl_bufq_is_empty
    - connclose
    - curlx_sztouz
    - nghttp2_session_mem_recv
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h2_process_pending_input(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::is_alive
      Src: /src/curl/lib/http2.c:540,1
    - Dst: Curl_cf_recv_bufq
      Src: /src/curl/lib/http2.c:551,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:553,1
    - Dst: h2_process_pending_input
      Src: /src/curl/lib/http2.c:555,1
    - Dst: should_close_session
      Src: /src/curl/lib/http2.c:560,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 533
    functionDepth: 5
    functionLinenumber: 533
    functionLinenumberEnd: 570
    functionName: http2_connisalive
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - should_close_session
    - struct Curl_cfilter*::next::cft::is_alive
    - CURL_TRC_CF
    - h2_process_pending_input
    - Curl_cf_recv_bufq
    linkageType: ''
    returnType: bool
    signature: "bool http2_connisalive(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                             bool *input_pending)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_submit_ping
      Src: /src/curl/lib/http2.c:578,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:580,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:581,1
    - Dst: nghttp2_session_send
      Src: /src/curl/lib/http2.c:585,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:587,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 592
    functionName: http2_send_ping
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_strerror
    - nghttp2_submit_ping
    - nghttp2_session_send
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http2_send_ping(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_version
      Src: /src/curl/lib/http2.c:599,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 7
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: Curl_http2_ver
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - nghttp2_version
    linkageType: ''
    returnType: void
    signature: void Curl_http2_ver(char *p, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/http2.c:614,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:620,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/http2.c:623,1
    - Dst: Curl_cf_send_bufq
      Src: /src/curl/lib/http2.c:625,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - h2
    - buf
    - blen
    - flags
    - userp
    argTypes:
    - nghttp2_session*
    - uint8_t*
    - size_t
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 608
    functionDepth: 5
    functionLinenumber: 608
    functionLinenumberEnd: 643
    functionName: send_callback
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 1
    functionsReached:
    - failf
    - DEBUGASSERT
    - Curl_cf_send_bufq
    - Curl_bufq_write
    - CF_DATA_CURRENT
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t send_callback(nghttp2_session *h2,\n                             const
      uint8_t *buf, size_t blen, int flags,\n                             void *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/http2.c:660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - h
    - num
    argTypes:
    - struct curl_pushheaders*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 667
    functionName: curl_pushheader_bynum
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 2
    functionsReached:
    - GOOD_EASY_HANDLE
    linkageType: ''
    returnType: char
    signature: char *curl_pushheader_bynum(struct curl_pushheaders *h, size_t num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/http2.c:683,1
    - Dst: strcmp
      Src: /src/curl/lib/http2.c:684,1
    - Dst: strchr
      Src: /src/curl/lib/http2.c:684,1
    - Dst: strlen
      Src: /src/curl/lib/http2.c:691,1
    - Dst: strncmp
      Src: /src/curl/lib/http2.c:693,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - h
    - name
    argTypes:
    - struct curl_pushheaders*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 701
    functionName: curl_pushheader_byname
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 3
    functionsReached:
    - strcmp
    - strchr
    - GOOD_EASY_HANDLE
    - strlen
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *curl_pushheader_byname(struct curl_pushheaders *h, const char
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_duphandle
      Src: /src/curl/lib/http2.c:706,1
    - Dst: http2_data_setup
      Src: /src/curl/lib/http2.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 703
    functionDepth: 5
    functionLinenumber: 703
    functionLinenumberEnd: 713
    functionName: h2_duphandle
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - curl_easy_duphandle
    - http2_data_setup
    linkageType: ''
    returnType: struct Curl_easy
    signature: "struct Curl_easy *h2_duphandle(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curl_url
      Src: /src/curl/lib/http2.c:723,1
    - Dst: curl_pushheader_byname
      Src: /src/curl/lib/http2.c:728,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http2.c:730,1
    - Dst: curl_pushheader_byname
      Src: /src/curl/lib/http2.c:737,1
    - Dst: Curl_url_set_authority
      Src: /src/curl/lib/http2.c:739,1
    - Dst: curl_pushheader_byname
      Src: /src/curl/lib/http2.c:746,1
    - Dst: curl_url_set
      Src: /src/curl/lib/http2.c:748,1
    - Dst: Curl_url_same_origin
      Src: /src/curl/lib/http2.c:757,1
    - Dst: curl_url_get
      Src: /src/curl/lib/http2.c:762,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/http2.c:766,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/http2.c:770,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - newhandle
    - hp
    - data
    argTypes:
    - struct Curl_easy*
    - struct curl_pushheaders*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 772
    functionName: set_transfer_url
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - Curl_bufref_set
    - Curl_url_same_origin
    - curl_url_cleanup
    - curl_pushheader_byname
    - Curl_url_set_authority
    - curl_url_get
    - curl_url
    linkageType: ''
    returnType: int
    signature: "int set_transfer_url(struct Curl_easy *newhandle,\n                            struct
      curl_pushheaders *hp,\n                            struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http2_data_done
      Src: /src/curl/lib/http2.c:777,1
    - Dst: Curl_close
      Src: /src/curl/lib/http2.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cf
    - newhandle
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 774
    functionDepth: 5
    functionLinenumber: 774
    functionLinenumberEnd: 779
    functionName: discard_newhandle
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - http2_data_done
    - Curl_close
    linkageType: ''
    returnType: void
    signature: "void discard_newhandle(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *newhandle)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:788,1
    - Dst: h2_duphandle
      Src: /src/curl/lib/http2.c:797,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:799,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:804,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:806,1
    - Dst: discard_newhandle
      Src: /src/curl/lib/http2.c:807,1
    - Dst: set_transfer_url
      Src: /src/curl/lib/http2.c:816,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:818,1
    - Dst: discard_newhandle
      Src: /src/curl/lib/http2.c:820,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/http2.c:825,1
    - Dst: struct Curl_easy*::multi::push_cb
      Src: /src/curl/lib/http2.c:826,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/http2.c:829,1
    - Dst: free_push_headers
      Src: /src/curl/lib/http2.c:832,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:835,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:837,1
    - Dst: discard_newhandle
      Src: /src/curl/lib/http2.c:839,1
    - Dst: Curl_multi_add_perform
      Src: /src/curl/lib/http2.c:846,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:848,1
    - Dst: discard_newhandle
      Src: /src/curl/lib/http2.c:849,1
    - Dst: http2_data_setup
      Src: /src/curl/lib/http2.c:854,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:856,1
    - Dst: discard_newhandle
      Src: /src/curl/lib/http2.c:857,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:862,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:867,1
    - Dst: nghttp2_session_set_stream_user_data
      Src: /src/curl/lib/http2.c:869,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:873,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:875,1
    - Dst: discard_newhandle
      Src: /src/curl/lib/http2.c:876,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:886,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 78
    argCount: 3
    argNames:
    - cf
    - data
    - frame
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - nghttp2_push_promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 781
    functionDepth: 6
    functionLinenumber: 781
    functionLinenumberEnd: 891
    functionName: push_promise
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - set_transfer_url
    - Curl_multi_add_perform
    - failf
    - h2_duphandle
    - DEBUGASSERT
    - discard_newhandle
    - infof
    - free_push_headers
    - struct Curl_easy*::multi::push_cb
    - H2_STREAM_CTX
    - Curl_set_in_callback
    - http2_data_setup
    - nghttp2_session_set_stream_user_data
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int push_promise(struct Curl_cfilter *cf,\n                        struct
      Curl_easy *data,\n                        const nghttp2_push_promise *frame)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_write_resp_hd
      Src: /src/curl/lib/http2.c:900,1
    - Dst: cf_h2_update_local_win
      Src: /src/curl/lib/http2.c:902,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:904,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 6
    argNames:
    - cf
    - data
    - stream
    - buf
    - blen
    - eos
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h2_stream_ctx*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 907
    functionName: h2_xfer_write_resp_hd
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_write_resp_hd
    - cf_h2_update_local_win
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void h2_xfer_write_resp_hd(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  struct h2_stream_ctx *stream,\n
      \                                 const char *buf, size_t blen, bool eos)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_write_resp
      Src: /src/curl/lib/http2.c:916,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:920,1
    - Dst: nghttp2_submit_rst_stream
      Src: /src/curl/lib/http2.c:923,1
    - Dst: Curl_xfer_write_is_paused
      Src: /src/curl/lib/http2.c:926,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:927,1
    - Dst: Curl_xfer_write_is_paused
      Src: /src/curl/lib/http2.c:930,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:931,1
    - Dst: cf_h2_update_local_win
      Src: /src/curl/lib/http2.c:936,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 6
    argNames:
    - cf
    - data
    - stream
    - buf
    - blen
    - eos
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h2_stream_ctx*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 909
    functionDepth: 4
    functionLinenumber: 909
    functionLinenumberEnd: 937
    functionName: h2_xfer_write_resp
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_submit_rst_stream
    - Curl_xfer_write_resp
    - CURL_TRC_CF
    - cf_h2_update_local_win
    - Curl_xfer_write_is_paused
    linkageType: ''
    returnType: void
    signature: "void h2_xfer_write_resp(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               struct h2_stream_ctx *stream,\n
      \                              const char *buf, size_t blen, bool eos)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:944,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:949,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:955,1
    - Dst: nghttp2_session_get_stream_effective_recv_data_length
      Src: /src/curl/lib/http2.c:957,1
    - Dst: nghttp2_session_get_stream_effective_local_window_size
      Src: /src/curl/lib/http2.c:959,1
    - Dst: nghttp2_submit_rst_stream
      Src: /src/curl/lib/http2.c:963,1
    - Dst: nghttp2_is_fatal
      Src: /src/curl/lib/http2.c:966,1
    - Dst: h2_xfer_write_resp_hd
      Src: /src/curl/lib/http2.c:990,1
    - Dst: STRCONST
      Src: /src/curl/lib/http2.c:990,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:996,1
    - Dst: push_promise
      Src: /src/curl/lib/http2.c:999,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1001,1
    - Dst: nghttp2_submit_rst_stream
      Src: /src/curl/lib/http2.c:1002,1
    - Dst: nghttp2_is_fatal
      Src: /src/curl/lib/http2.c:1005,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1008,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1017,1
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/http2.c:1020,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:1020,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1022,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:1024,1
    - Dst: nghttp2_session_resume_data
      Src: /src/curl/lib/http2.c:1026,1
    - Dst: nghttp2_is_fatal
      Src: /src/curl/lib/http2.c:1027,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1041,1
    - Dst: nghttp2_submit_rst_stream
      Src: /src/curl/lib/http2.c:1044,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1048,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 3
    argNames:
    - cf
    - data
    - frame
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - nghttp2_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 939
    functionDepth: 7
    functionLinenumber: 939
    functionLinenumberEnd: 1051
    functionName: on_stream_frame
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_session_get_stream_effective_local_window_size
    - STRCONST
    - CURL_REQ_WANT_SEND
    - h2_xfer_write_resp_hd
    - Curl_multi_mark_dirty
    - nghttp2_submit_rst_stream
    - DEBUGASSERT
    - nghttp2_session_resume_data
    - nghttp2_is_fatal
    - nghttp2_session_get_stream_effective_recv_data_length
    - H2_STREAM_CTX
    - Curl_bufq_is_empty
    - push_promise
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode on_stream_frame(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                const nghttp2_frame *frame)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1059,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1066,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1073,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1078,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1085,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1087,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1091,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1096,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/http2.c:1102,1
    - Dst: memcpy
      Src: /src/curl/lib/http2.c:1106,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1108,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1114,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 3
    argNames:
    - frame
    - buffer
    - blen
    argTypes:
    - nghttp2_frame*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1054
    functionDepth: 7
    functionLinenumber: 1054
    functionLinenumberEnd: 1123
    functionName: Curl_nghttp2_fr_print
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 2
    functionsReached:
    - curl_msnprintf
    - memcpy
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: int
    signature: "int Curl_nghttp2_fr_print(const nghttp2_frame *frame, char *buffer,\n
      \                         size_t blen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/http2.c:1130,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1133,1
    - Dst: Curl_trc_cf_is_verbose
      Src: /src/curl/lib/http2.c:1134,1
    - Dst: Curl_nghttp2_fr_print
      Src: /src/curl/lib/http2.c:1137,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1139,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1144,1
    - Dst: nghttp2_http2_strerror
      Src: /src/curl/lib/http2.c:1146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - session
    - frame
    - userp
    argTypes:
    - nghttp2_session*
    - nghttp2_frame*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1125
    functionDepth: 8
    functionLinenumber: 1125
    functionLinenumberEnd: 1149
    functionName: on_frame_send
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - failf
    - nghttp2_http2_strerror
    - Curl_trc_cf_is_verbose
    - Curl_nghttp2_fr_print
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int on_frame_send(nghttp2_session *session, const nghttp2_frame *frame,\n
      \                        void *userp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/http2.c:1157,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1160,1
    - Dst: Curl_trc_cf_is_verbose
      Src: /src/curl/lib/http2.c:1162,1
    - Dst: Curl_nghttp2_fr_print
      Src: /src/curl/lib/http2.c:1165,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1167,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1173,1
    - Dst: nghttp2_session_get_remote_settings
      Src: /src/curl/lib/http2.c:1178,1
    - Dst: nghttp2_session_get_remote_settings
      Src: /src/curl/lib/http2.c:1180,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1182,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1184,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1188,1
    - Dst: Curl_multi_connchanged
      Src: /src/curl/lib/http2.c:1190,1
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/http2.c:1197,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1198,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:1207,1
    - Dst: Curl_multi_connchanged
      Src: /src/curl/lib/http2.c:1209,1
    - Dst: nghttp2_session_get_stream_user_data
      Src: /src/curl/lib/http2.c:1218,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1220,1
    - Dst: on_stream_frame
      Src: /src/curl/lib/http2.c:1224,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 3
    argNames:
    - session
    - frame
    - userp
    argTypes:
    - nghttp2_session*
    - nghttp2_frame*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1152
    functionDepth: 8
    functionLinenumber: 1152
    functionLinenumberEnd: 1225
    functionName: on_frame_recv
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CURL_REQ_WANT_SEND
    - DEBUGASSERT
    - Curl_multi_connchanged
    - Curl_multi_mark_dirty
    - on_stream_frame
    - infof
    - Curl_trc_cf_is_verbose
    - nghttp2_session_get_stream_user_data
    - Curl_nghttp2_fr_print
    - nghttp2_session_get_remote_settings
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,\n
      \                        void *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_session_get_stream_user_data
      Src: /src/curl/lib/http2.c:1236,1
    - Dst: Curl_nghttp2_fr_print
      Src: /src/curl/lib/http2.c:1242,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1244,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:1245,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:1247,1
    - Dst: nghttp2_submit_rst_stream
      Src: /src/curl/lib/http2.c:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - session
    - frame
    - ngerr
    - userp
    argTypes:
    - nghttp2_session*
    - nghttp2_frame*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1227
    functionDepth: 8
    functionLinenumber: 1227
    functionLinenumberEnd: 1258
    functionName: cf_h2_on_invalid_frame_recv
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_strerror
    - failf
    - nghttp2_submit_rst_stream
    - H2_STREAM_CTX
    - Curl_nghttp2_fr_print
    - nghttp2_session_get_stream_user_data
    linkageType: ''
    returnType: int
    signature: "int cf_h2_on_invalid_frame_recv(nghttp2_session *session,\n                                       const
      nghttp2_frame *frame,\n                                       int ngerr, void
      *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1270,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1271,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/http2.c:1271,1
    - Dst: nghttp2_session_get_stream_user_data
      Src: /src/curl/lib/http2.c:1274,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1279,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/http2.c:1279,1
    - Dst: nghttp2_session_consume
      Src: /src/curl/lib/http2.c:1281,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:1285,1
    - Dst: h2_xfer_write_resp
      Src: /src/curl/lib/http2.c:1289,1
    - Dst: nghttp2_session_consume
      Src: /src/curl/lib/http2.c:1291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 6
    argNames:
    - session
    - flags
    - stream_id
    - mem
    - len
    - userp
    argTypes:
    - nghttp2_session*
    - uint8_t
    - int32_t
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1260
    functionDepth: 5
    functionLinenumber: 1260
    functionLinenumberEnd: 1294
    functionName: on_data_chunk_recv
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - h2_xfer_write_resp
    - nghttp2_session_consume
    - H2_STREAM_CTX
    - nghttp2_session_get_stream_user_data
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int on_data_chunk_recv(nghttp2_session *session, uint8_t flags,\n
      \                             int32_t stream_id,\n                              const
      uint8_t *mem, size_t len, void *userp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/http2.c:1301,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1306,1
    - Dst: nghttp2_session_get_stream_user_data
      Src: /src/curl/lib/http2.c:1309,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1311,1
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/http2.c:1315,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1319,1
    - Dst: nghttp2_session_set_stream_user_data
      Src: /src/curl/lib/http2.c:1321,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:1324,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1326,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1337,1
    - Dst: nghttp2_http2_strerror
      Src: /src/curl/lib/http2.c:1338,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1340,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1341,1
    - Dst: nghttp2_session_set_stream_user_data
      Src: /src/curl/lib/http2.c:1344,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:1346,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - session
    - stream_id
    - error_code
    - userp
    argTypes:
    - nghttp2_session*
    - int32_t
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1351
    functionName: on_stream_close
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_multi_mark_dirty
    - nghttp2_http2_strerror
    - infof
    - H2_STREAM_CTX
    - GOOD_EASY_HANDLE
    - nghttp2_session_get_stream_user_data
    - nghttp2_session_set_stream_user_data
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int on_stream_close(nghttp2_session *session, int32_t stream_id,\n
      \                          uint32_t error_code, void *userp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_session_get_stream_user_data
      Src: /src/curl/lib/http2.c:1362,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:1371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - session
    - frame
    - userp
    argTypes:
    - nghttp2_session*
    - nghttp2_frame*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1377
    functionName: on_begin_headers
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_session_get_stream_user_data
    - H2_STREAM_CTX
    linkageType: ''
    returnType: int
    signature: "int on_begin_headers(nghttp2_session *session,\n                            const
      nghttp2_frame *frame, void *userp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/http2.c:1386,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/http2.c:1387,1
    - Dst: nghttp2_submit_rst_stream
      Src: /src/curl/lib/http2.c:1389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - cf
    - data
    - stream
    - result
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h2_stream_ctx*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1379
    functionDepth: 1
    functionLinenumber: 1379
    functionLinenumberEnd: 1394
    functionName: cf_h2_header_error
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_submit_rst_stream
    - curl_easy_strerror
    - failf
    linkageType: ''
    returnType: void
    signature: "void cf_h2_header_error(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               struct h2_stream_ctx *stream,\n
      \                              CURLcode result)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1411,1
    - Dst: nghttp2_session_get_stream_user_data
      Src: /src/curl/lib/http2.c:1414,1
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/http2.c:1415,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:1420,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1422,1
    - Dst: strncmp
      Src: /src/curl/lib/http2.c:1432,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http2.c:1435,1
    - Dst: curl_strequal
      Src: /src/curl/lib/http2.c:1440,1
    - Dst: curl_strequal
      Src: /src/curl/lib/http2.c:1442,1
    - Dst: nghttp2_submit_rst_stream
      Src: /src/curl/lib/http2.c:1448,1
    - Dst: curlx_free
      Src: /src/curl/lib/http2.c:1452,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/http2.c:1459,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1470,1
    - Dst: free_push_headers
      Src: /src/curl/lib/http2.c:1471,1
    - Dst: curlx_realloc
      Src: /src/curl/lib/http2.c:1475,1
    - Dst: free_push_headers
      Src: /src/curl/lib/http2.c:1478,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http2.c:1483,1
    - Dst: free_push_headers
      Src: /src/curl/lib/http2.c:1485,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1494,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/http2.c:1496,1
    - Dst: cf_h2_header_error
      Src: /src/curl/lib/http2.c:1500,1
    - Dst: memcmp
      Src: /src/curl/lib/http2.c:1508,1
    - Dst: Curl_http_decode_status
      Src: /src/curl/lib/http2.c:1512,1
    - Dst: cf_h2_header_error
      Src: /src/curl/lib/http2.c:1515,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/http2.c:1518,1
    - Dst: Curl_headers_push
      Src: /src/curl/lib/http2.c:1520,1
    - Dst: cf_h2_header_error
      Src: /src/curl/lib/http2.c:1522,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http2.c:1525,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http2.c:1526,1
    - Dst: STRCONST
      Src: /src/curl/lib/http2.c:1526,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http2.c:1528,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http2.c:1530,1
    - Dst: STRCONST
      Src: /src/curl/lib/http2.c:1530,1
    - Dst: h2_xfer_write_resp_hd
      Src: /src/curl/lib/http2.c:1532,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http2.c:1532,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http2.c:1533,1
    - Dst: cf_h2_header_error
      Src: /src/curl/lib/http2.c:1535,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/http2.c:1539,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1540,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1542,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http2.c:1550,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http2.c:1551,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http2.c:1553,1
    - Dst: STRCONST
      Src: /src/curl/lib/http2.c:1553,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http2.c:1555,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/http2.c:1557,1
    - Dst: STRCONST
      Src: /src/curl/lib/http2.c:1557,1
    - Dst: h2_xfer_write_resp_hd
      Src: /src/curl/lib/http2.c:1559,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http2.c:1559,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http2.c:1560,1
    - Dst: cf_h2_header_error
      Src: /src/curl/lib/http2.c:1562,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/http2.c:1566,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1567,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1569,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 108
    argCount: 8
    argNames:
    - session
    - frame
    - name
    - namelen
    - value
    - valuelen
    - flags
    - userp
    argTypes:
    - nghttp2_session*
    - nghttp2_frame*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1397
    functionDepth: 7
    functionLinenumber: 1397
    functionLinenumberEnd: 1573
    functionName: on_header
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - DEBUGASSERT
    - h2_xfer_write_resp_hd
    - Curl_multi_mark_dirty
    - memcmp
    - curlx_dyn_ptr
    - strncmp
    - CURL_TRC_CF
    - curl_maprintf
    - curlx_dyn_addn
    - free_push_headers
    - GOOD_EASY_HANDLE
    - cf_h2_header_error
    - Curl_dynhds_add
    - failf
    - curlx_dyn_len
    - Curl_headers_push
    - curlx_malloc
    - curl_strequal
    - curlx_free
    - H2_STREAM_CTX
    - nghttp2_session_get_stream_user_data
    - Curl_http_decode_status
    - CF_DATA_CURRENT
    - curlx_realloc
    - STRCONST
    - nghttp2_submit_rst_stream
    - curlx_dyn_reset
    linkageType: ''
    returnType: int
    signature: "int on_header(nghttp2_session *session, const nghttp2_frame *frame,\n
      \                    const uint8_t *name, size_t namelen,\n                     const
      uint8_t *value, size_t valuelen,\n                     uint8_t flags,\n                     void
      *userp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_session_get_stream_user_data
      Src: /src/curl/lib/http2.c:1597,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:1603,1
    - Dst: Curl_bufq_read
      Src: /src/curl/lib/http2.c:1607,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1616,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:1619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 7
    argNames:
    - session
    - stream_id
    - buf
    - length
    - data_flags
    - source
    - userp
    argTypes:
    - nghttp2_session*
    - int32_t
    - uint8_t*
    - size_t
    - uint32_t*
    - nghttp2_data_source*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1575
    functionDepth: 4
    functionLinenumber: 1575
    functionLinenumberEnd: 1624
    functionName: req_body_read_callback
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - H2_STREAM_CTX
    - Curl_bufq_is_empty
    - nghttp2_session_get_stream_user_data
    - Curl_bufq_read
    - CURL_TRC_CF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t req_body_read_callback(nghttp2_session *session,\n                                      int32_t
      stream_id,\n                                      uint8_t *buf, size_t length,\n
      \                                     uint32_t *data_flags,\n                                      nghttp2_data_source
      *source,\n                                      void *userp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/http2.c:1633,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - session
    - msg
    - len
    - userp
    argTypes:
    - nghttp2_session*
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1637
    functionName: error_callback
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_CURRENT
    - failf
    linkageType: ''
    returnType: int
    signature: "int error_callback(nghttp2_session *session,\n                          const
      char *msg,\n                          size_t len,\n                          void
      *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: populate_binsettings
      Src: /src/curl/lib/http2.c:1654,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/http2.c:1655,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1656,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http2.c:1657,1
    - Dst: curlx_base64url_encode
      Src: /src/curl/lib/http2.c:1661,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http2.c:1663,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http2.c:1669,1
    - Dst: curlx_free
      Src: /src/curl/lib/http2.c:1673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct dynbuf*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1643
    functionDepth: 4
    functionLinenumber: 1643
    functionLinenumberEnd: 1679
    functionName: Curl_http2_request_upgrade
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 1
    functionsReached:
    - populate_binsettings
    - failf
    - curlx_dyn_free
    - curlx_free
    - curlx_base64url_encode
    - curlx_dyn_addf
    - curlx_sztouz
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http2_request_upgrade(struct dynbuf *req,\n                                    struct
      Curl_easy *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/http2.c:1691,1
    - Dst: connclose
      Src: /src/curl/lib/http2.c:1693,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1698,1
    - Dst: nghttp2_http2_strerror
      Src: /src/curl/lib/http2.c:1700,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1705,1
    - Dst: nghttp2_http2_strerror
      Src: /src/curl/lib/http2.c:1707,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1712,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/lib/http2.c:1717,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/http2.c:1723,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/lib/http2.c:1724,1
    - Dst: Curl_dynhds_getn
      Src: /src/curl/lib/http2.c:1725,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/http2.c:1728,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/http2.c:1729,1
    - Dst: Curl_debug
      Src: /src/curl/lib/http2.c:1734,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http2.c:1734,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http2.c:1735,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/http2.c:1736,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/http2.c:1738,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/http2.c:1738,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/http2.c:1742,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1751,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - cf
    - data
    - stream
    - pnlen
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h2_stream_ctx*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1681
    functionDepth: 9
    functionLinenumber: 1681
    functionLinenumberEnd: 1753
    functionName: http2_handle_stream_close
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - failf
    - Curl_client_write
    - curlx_dyn_free
    - Curl_dynhds_getn
    - curlx_dyn_len
    - nghttp2_http2_strerror
    - infof
    - Curl_dynhds_count
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - curlx_dyn_addf
    - connclose
    - Curl_debug
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http2_handle_stream_close(struct Curl_cfilter *cf,\n                                          struct
      Curl_easy *data,\n                                          struct h2_stream_ctx
      *stream,\n                                          size_t *pnlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1760
    functionName: sweight_wanted
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sweight_wanted(const struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1762
    functionDepth: 0
    functionLinenumber: 1762
    functionLinenumberEnd: 1767
    functionName: sweight_in_effect
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sweight_in_effect(const struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nghttp2_priority_spec_init
      Src: /src/curl/lib/http2.c:1779,1
    - Dst: sweight_wanted
      Src: /src/curl/lib/http2.c:1780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - pri_spec
    argTypes:
    - struct Curl_easy*
    - nghttp2_priority_spec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1782
    functionName: h2_pri_spec
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - sweight_wanted
    - nghttp2_priority_spec_init
    linkageType: ''
    returnType: void
    signature: "void h2_pri_spec(struct Curl_easy *data,\n                        nghttp2_priority_spec
      *pri_spec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:1794,1
    - Dst: sweight_wanted
      Src: /src/curl/lib/http2.c:1798,1
    - Dst: sweight_in_effect
      Src: /src/curl/lib/http2.c:1798,1
    - Dst: h2_pri_spec
      Src: /src/curl/lib/http2.c:1802,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1803,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1804,1
    - Dst: nghttp2_submit_priority
      Src: /src/curl/lib/http2.c:1805,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/http2.c:1812,1
    - Dst: nghttp2_session_send
      Src: /src/curl/lib/http2.c:1813,1
    - Dst: nghttp2_is_fatal
      Src: /src/curl/lib/http2.c:1816,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1817,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:1818,1
    - Dst: nw_out_flush
      Src: /src/curl/lib/http2.c:1826,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1790
    functionDepth: 3
    functionLinenumber: 1790
    functionLinenumberEnd: 1827
    functionName: h2_progress_egress
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 5
    functionsReached:
    - nghttp2_session_send
    - sweight_wanted
    - DEBUGASSERT
    - nghttp2_strerror
    - nghttp2_submit_priority
    - sweight_in_effect
    - nw_out_flush
    - nghttp2_is_fatal
    - H2_STREAM_CTX
    - nghttp2_session_want_write
    - h2_pri_spec
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h2_progress_egress(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_h2_update_local_win
      Src: /src/curl/lib/http2.c:1841,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1844,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1848,1
    - Dst: http2_handle_stream_close
      Src: /src/curl/lib/http2.c:1849,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:1852,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1854,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1859,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 6
    argNames:
    - cf
    - data
    - stream
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h2_stream_ctx*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1829
    functionDepth: 10
    functionLinenumber: 1829
    functionLinenumberEnd: 1862
    functionName: stream_recv
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - http2_handle_stream_close
    - cf_h2_update_local_win
    - CURL_TRC_CF
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode stream_recv(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                           struct h2_stream_ctx *stream,\n                            char
      *buf, size_t len, size_t *pnread)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: should_close_session
      Src: /src/curl/lib/http2.c:1873,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1874,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:1879,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1880,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:1881,1
    - Dst: h2_process_pending_input
      Src: /src/curl/lib/http2.c:1882,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:1893,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:1894,1
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/http2.c:1899,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1900,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:1904,1
    - Dst: Curl_cf_recv_bufq
      Src: /src/curl/lib/http2.c:1908,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1911,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/http2.c:1912,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1918,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1923,1
    - Dst: h2_process_pending_input
      Src: /src/curl/lib/http2.c:1927,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1930,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:1931,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:1934,1
    - Dst: connclose
      Src: /src/curl/lib/http2.c:1935,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1939,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 3
    argNames:
    - cf
    - data
    - data_max_bytes
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1864
    functionDepth: 5
    functionLinenumber: 1864
    functionLinenumberEnd: 1941
    functionName: h2_progress_ingress
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 4
    functionsReached:
    - should_close_session
    - Curl_bufq_len
    - DEBUGASSERT
    - Curl_multi_mark_dirty
    - failf
    - curl_easy_strerror
    - struct Curl_cfilter*::next::cft::has_data_pending
    - Curl_cf_recv_bufq
    - H2_STREAM_CTX
    - Curl_bufq_is_empty
    - connclose
    - h2_process_pending_input
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h2_progress_ingress(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    size_t data_max_bytes)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:1954,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:1962,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:1967,1
    - Dst: stream_recv
      Src: /src/curl/lib/http2.c:1969,1
    - Dst: h2_progress_ingress
      Src: /src/curl/lib/http2.c:1974,1
    - Dst: stream_recv
      Src: /src/curl/lib/http2.c:1978,1
    - Dst: nghttp2_session_consume
      Src: /src/curl/lib/http2.c:1985,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:1987,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1988,1
    - Dst: h2_progress_egress
      Src: /src/curl/lib/http2.c:1993,1
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/http2.c:1998,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:1999,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2004,1
    - Dst: nghttp2_session_get_stream_effective_recv_data_length
      Src: /src/curl/lib/http2.c:2007,1
    - Dst: nghttp2_session_get_stream_effective_local_window_size
      Src: /src/curl/lib/http2.c:2009,1
    - Dst: nghttp2_session_get_local_window_size
      Src: /src/curl/lib/http2.c:2011,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2014,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1943
    functionDepth: 11
    functionLinenumber: 1943
    functionLinenumberEnd: 2016
    functionName: cf_h2_recv
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - nghttp2_session_get_stream_effective_local_window_size
    - CF_DATA_RESTORE
    - CURL_REQ_WANT_SEND
    - failf
    - Curl_multi_mark_dirty
    - nghttp2_session_get_local_window_size
    - h2_progress_egress
    - H2_STREAM_CTX
    - h2_progress_ingress
    - nghttp2_session_get_stream_effective_recv_data_length
    - stream_recv
    - nghttp2_session_consume
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_recv(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                          char *buf, size_t len, size_t *pnread)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2035,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:2043,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/http2.c:2047,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:2054,1
    - Dst: nghttp2_session_resume_data
      Src: /src/curl/lib/http2.c:2056,1
    - Dst: nghttp2_is_fatal
      Src: /src/curl/lib/http2.c:2057,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 7
    argNames:
    - cf
    - data
    - stream
    - buf
    - blen
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h2_stream_ctx*
    - void*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2018
    functionDepth: 5
    functionLinenumber: 2018
    functionLinenumberEnd: 2062
    functionName: cf_h2_body_send
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - nghttp2_session_resume_data
    - infof
    - nghttp2_is_fatal
    - Curl_bufq_write
    - Curl_bufq_is_empty
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_body_send(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                struct h2_stream_ctx *stream,\n
      \                               const void *buf, size_t blen, bool eos,\n                                size_t
      *pnwritten)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/http2.c:2083,1
    - Dst: http2_data_setup
      Src: /src/curl/lib/http2.c:2085,1
    - Dst: Curl_h1_req_parse_read
      Src: /src/curl/lib/http2.c:2089,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2100,1
    - Dst: Curl_http_req_to_h2
      Src: /src/curl/lib/http2.c:2102,1
    - Dst: Curl_h1_req_parse_free
      Src: /src/curl/lib/http2.c:2106,1
    - Dst: Curl_dynhds_to_nva
      Src: /src/curl/lib/http2.c:2108,1
    - Dst: h2_pri_spec
      Src: /src/curl/lib/http2.c:2114,1
    - Dst: nghttp2_session_check_request_allowed
      Src: /src/curl/lib/http2.c:2115,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2116,1
    - Dst: cf_h2_initial_win_size
      Src: /src/curl/lib/http2.c:2120,1
    - Dst: cf_h2_update_settings
      Src: /src/curl/lib/http2.c:2122,1
    - Dst: nghttp2_submit_request
      Src: /src/curl/lib/http2.c:2134,1
    - Dst: nghttp2_submit_request
      Src: /src/curl/lib/http2.c:2138,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2143,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:2144,1
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/http2.c:2151,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:2154,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/http2.c:2155,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:2159,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:2165,1
    - Dst: cf_h2_body_send
      Src: /src/curl/lib/http2.c:2179,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2190,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/http2.c:2192,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/http2.c:2194,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 85
    argCount: 7
    argNames:
    - pstream
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct h2_stream_ctx**
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2064
    functionDepth: 6
    functionLinenumber: 2064
    functionLinenumberEnd: 2196
    functionName: h2_submit
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - cf_h2_body_send
    - cf_h2_initial_win_size
    - CURL_TRC_CF
    - Curl_http_req_to_h2
    - Curl_h1_req_parse_read
    - Curl_bufref_ptr
    - Curl_dynhds_free
    - nghttp2_submit_request
    - nghttp2_strerror
    - Curl_trc_is_verbose
    - Curl_h1_req_parse_free
    - infof
    - cf_h2_update_settings
    - nghttp2_session_check_request_allowed
    - Curl_dynhds_to_nva
    - http2_data_setup
    - Curl_dynhds_init
    - h2_pri_spec
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h2_submit(struct h2_stream_ctx **pstream,\n                          struct
      Curl_cfilter *cf, struct Curl_easy *data,\n                          const uint8_t
      *buf, size_t len,\n                          bool eos, size_t *pnwritten)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:2203,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2207,1
    - Dst: h2_submit
      Src: /src/curl/lib/http2.c:2211,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2214,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2222,1
    - Dst: cf_h2_body_send
      Src: /src/curl/lib/http2.c:2223,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2224,1
    - Dst: cf_h2_body_send
      Src: /src/curl/lib/http2.c:2231,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2232,1
    - Dst: h2_progress_egress
      Src: /src/curl/lib/http2.c:2238,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:2243,1
    - Dst: should_close_session
      Src: /src/curl/lib/http2.c:2252,1
    - Dst: http2_handle_stream_close
      Src: /src/curl/lib/http2.c:2256,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2259,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2266,1
    - Dst: nghttp2_session_get_stream_remote_window_size
      Src: /src/curl/lib/http2.c:2271,1
    - Dst: nghttp2_session_get_remote_window_size
      Src: /src/curl/lib/http2.c:2273,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:2274,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:2275,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2278,1
    - Dst: nghttp2_session_get_remote_window_size
      Src: /src/curl/lib/http2.c:2281,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:2282,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2284,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2198
    functionDepth: 10
    functionLinenumber: 2198
    functionLinenumberEnd: 2286
    functionName: cf_h2_send
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - should_close_session
    - Curl_bufq_len
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - nghttp2_session_get_stream_remote_window_size
    - cf_h2_body_send
    - infof
    - h2_progress_egress
    - H2_STREAM_CTX
    - h2_submit
    - http2_handle_stream_close
    - nghttp2_session_get_remote_window_size
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_send(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                          const uint8_t *buf, size_t len, bool eos,\n                           size_t
      *pnwritten)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:2292,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2296,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:2297,1
    - Dst: nghttp2_session_resume_data
      Src: /src/curl/lib/http2.c:2299,1
    - Dst: nghttp2_is_fatal
      Src: /src/curl/lib/http2.c:2300,1
    - Dst: h2_progress_egress
      Src: /src/curl/lib/http2.c:2306,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2310,1
    - Dst: nghttp2_session_get_stream_remote_window_size
      Src: /src/curl/lib/http2.c:2314,1
    - Dst: nghttp2_session_get_remote_window_size
      Src: /src/curl/lib/http2.c:2316,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:2317,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:2318,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2321,1
    - Dst: nghttp2_session_get_remote_window_size
      Src: /src/curl/lib/http2.c:2323,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/http2.c:2324,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2288
    functionDepth: 4
    functionLinenumber: 2288
    functionLinenumberEnd: 2328
    functionName: cf_h2_flush
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_bufq_len
    - CF_DATA_RESTORE
    - nghttp2_session_resume_data
    - nghttp2_session_get_stream_remote_window_size
    - nghttp2_is_fatal
    - h2_progress_egress
    - H2_STREAM_CTX
    - Curl_bufq_is_empty
    - nghttp2_session_get_remote_window_size
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_flush(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/http2.c:2343,1
    - Dst: Curl_pollset_check
      Src: /src/curl/lib/http2.c:2344,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:2346,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2349,1
    - Dst: nghttp2_session_get_remote_window_size
      Src: /src/curl/lib/http2.c:2350,1
    - Dst: nghttp2_session_get_stream_remote_window_size
      Src: /src/curl/lib/http2.c:2352,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/http2.c:2356,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:2357,1
    - Dst: Curl_pollset_set
      Src: /src/curl/lib/http2.c:2359,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2360,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2364,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/http2.c:2365,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:2366,1
    - Dst: nghttp2_session_want_read
      Src: /src/curl/lib/http2.c:2367,1
    - Dst: Curl_pollset_set
      Src: /src/curl/lib/http2.c:2368,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2369,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2330
    functionDepth: 2
    functionLinenumber: 2330
    functionLinenumberEnd: 2372
    functionName: cf_h2_adjust_pollset
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - nghttp2_session_want_read
    - nghttp2_session_get_stream_remote_window_size
    - Curl_pollset_check
    - H2_STREAM_CTX
    - nghttp2_session_want_write
    - Curl_bufq_is_empty
    - Curl_conn_cf_get_socket
    - Curl_pollset_set
    - nghttp2_session_get_remote_window_size
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_adjust_pollset(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data,\n                                     struct easy_pollset *ps)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2383,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2384,1
    - Dst: nghttp2_session_callbacks_new
      Src: /src/curl/lib/http2.c:2386,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:2388,1
    - Dst: nghttp2_session_callbacks_set_send_callback
      Src: /src/curl/lib/http2.c:2392,1
    - Dst: nghttp2_session_callbacks_set_on_frame_recv_callback
      Src: /src/curl/lib/http2.c:2393,1
    - Dst: nghttp2_session_callbacks_set_on_invalid_frame_recv_callback
      Src: /src/curl/lib/http2.c:2394,1
    - Dst: nghttp2_session_callbacks_set_on_frame_send_callback
      Src: /src/curl/lib/http2.c:2397,1
    - Dst: nghttp2_session_callbacks_set_on_data_chunk_recv_callback
      Src: /src/curl/lib/http2.c:2399,1
    - Dst: nghttp2_session_callbacks_set_on_stream_close_callback
      Src: /src/curl/lib/http2.c:2401,1
    - Dst: nghttp2_session_callbacks_set_on_begin_headers_callback
      Src: /src/curl/lib/http2.c:2402,1
    - Dst: nghttp2_session_callbacks_set_on_header_callback
      Src: /src/curl/lib/http2.c:2404,1
    - Dst: nghttp2_session_callbacks_set_error_callback
      Src: /src/curl/lib/http2.c:2406,1
    - Dst: h2_client_new
      Src: /src/curl/lib/http2.c:2410,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:2412,1
    - Dst: populate_binsettings
      Src: /src/curl/lib/http2.c:2425,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/http2.c:2427,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:2428,1
    - Dst: http2_data_setup
      Src: /src/curl/lib/http2.c:2433,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2436,1
    - Dst: nghttp2_session_upgrade2
      Src: /src/curl/lib/http2.c:2439,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:2443,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:2444,1
    - Dst: nghttp2_session_set_stream_user_data
      Src: /src/curl/lib/http2.c:2449,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:2452,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2454,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2456,1
    - Dst: populate_settings
      Src: /src/curl/lib/http2.c:2462,1
    - Dst: nghttp2_submit_settings
      Src: /src/curl/lib/http2.c:2463,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:2466,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:2467,1
    - Dst: nghttp2_session_set_local_window_size
      Src: /src/curl/lib/http2.c:2473,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:2476,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:2477,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2484,1
    - Dst: nghttp2_session_callbacks_del
      Src: /src/curl/lib/http2.c:2489,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2374
    functionDepth: 5
    functionLinenumber: 2374
    functionLinenumberEnd: 2491
    functionName: cf_h2_ctx_open
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - populate_binsettings
    - DEBUGASSERT
    - nghttp2_session_callbacks_set_on_begin_headers_callback
    - nghttp2_session_callbacks_new
    - CURL_TRC_CF
    - populate_settings
    - nghttp2_session_callbacks_set_error_callback
    - nghttp2_session_callbacks_del
    - nghttp2_session_set_stream_user_data
    - nghttp2_session_callbacks_set_on_data_chunk_recv_callback
    - failf
    - nghttp2_strerror
    - nghttp2_session_callbacks_set_on_frame_send_callback
    - nghttp2_session_callbacks_set_on_stream_close_callback
    - curlx_sztouz
    - nghttp2_submit_settings
    - nghttp2_session_callbacks_set_send_callback
    - infof
    - nghttp2_session_set_local_window_size
    - http2_data_setup
    - nghttp2_session_callbacks_set_on_invalid_frame_recv_callback
    - nghttp2_session_upgrade2
    - nghttp2_session_callbacks_set_on_frame_recv_callback
    - nghttp2_session_callbacks_set_on_header_callback
    - h2_client_new
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_ctx_open(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/http2.c:2509,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2516,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2517,1
    - Dst: cf_h2_ctx_open
      Src: /src/curl/lib/http2.c:2519,1
    - Dst: h2_progress_ingress
      Src: /src/curl/lib/http2.c:2526,1
    - Dst: h2_progress_egress
      Src: /src/curl/lib/http2.c:2533,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2542,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2543,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2493
    functionDepth: 6
    functionLinenumber: 2493
    functionLinenumberEnd: 2545
    functionName: cf_h2_connect
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - h2_progress_egress
    - CURL_TRC_CF
    - h2_progress_ingress
    - cf_h2_ctx_open
    - Curl_conn_cf_connect
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_connect(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_h2_ctx_free
      Src: /src/curl/lib/http2.c:2553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2547
    functionDepth: 6
    functionLinenumber: 2547
    functionLinenumberEnd: 2556
    functionName: cf_h2_destroy
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - cf_h2_ctx_free
    linkageType: ''
    returnType: void
    signature: void cf_h2_destroy(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2571,1
    - Dst: nghttp2_submit_goaway
      Src: /src/curl/lib/http2.c:2575,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:2580,1
    - Dst: nghttp2_strerror
      Src: /src/curl/lib/http2.c:2581,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/http2.c:2588,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:2589,1
    - Dst: h2_progress_egress
      Src: /src/curl/lib/http2.c:2590,1
    - Dst: nghttp2_session_want_read
      Src: /src/curl/lib/http2.c:2591,1
    - Dst: h2_progress_ingress
      Src: /src/curl/lib/http2.c:2592,1
    - Dst: nghttp2_session_want_write
      Src: /src/curl/lib/http2.c:2598,1
    - Dst: nghttp2_session_want_read
      Src: /src/curl/lib/http2.c:2599,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:2600,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2603,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2558
    functionDepth: 6
    functionLinenumber: 2558
    functionLinenumberEnd: 2606
    functionName: cf_h2_shutdown
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - nghttp2_session_want_read
    - CF_DATA_RESTORE
    - nghttp2_strerror
    - failf
    - h2_progress_egress
    - nghttp2_session_want_write
    - h2_progress_ingress
    - Curl_bufq_is_empty
    - nghttp2_submit_goaway
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_shutdown(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data, bool *done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:2613,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2615,1
    - Dst: cf_h2_update_local_win
      Src: /src/curl/lib/http2.c:2620,1
    - Dst: h2_progress_egress
      Src: /src/curl/lib/http2.c:2625,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/http2.c:2633,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - cf
    - data
    - pause
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2608
    functionDepth: 4
    functionLinenumber: 2608
    functionLinenumberEnd: 2639
    functionName: http2_data_pause
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_multi_mark_dirty
    - h2_progress_egress
    - H2_STREAM_CTX
    - cf_h2_update_local_win
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http2_data_pause(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 bool pause)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2650,1
    - Dst: http2_data_pause
      Src: /src/curl/lib/http2.c:2655,1
    - Dst: cf_h2_flush
      Src: /src/curl/lib/http2.c:2658,1
    - Dst: http2_data_done
      Src: /src/curl/lib/http2.c:2661,1
    - Dst: Curl_conn_set_multiplex
      Src: /src/curl/lib/http2.c:2666,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2672,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2641
    functionDepth: 5
    functionLinenumber: 2641
    functionLinenumberEnd: 2674
    functionName: cf_h2_cntrl
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - http2_data_done
    - CF_DATA_RESTORE
    - Curl_conn_set_multiplex
    - cf_h2_flush
    - http2_data_pause
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_cntrl(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            int event, int arg1, void *arg2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:2681,1
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/http2.c:2683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2676
    functionDepth: 2
    functionLinenumber: 2676
    functionLinenumberEnd: 2684
    functionName: cf_h2_data_pending
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::has_data_pending
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: bool
    signature: "bool cf_h2_data_pending(struct Curl_cfilter *cf,\n                               const
      struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2695,1
    - Dst: http2_connisalive
      Src: /src/curl/lib/http2.c:2696,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2697,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2701
      start: 2686
    functionDepth: 6
    functionLinenumber: 2686
    functionLinenumberEnd: 2701
    functionName: cf_h2_is_alive
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - http2_connisalive
    - CURL_TRC_CF
    - CF_DATA_RESTORE
    linkageType: ''
    returnType: bool
    signature: "bool cf_h2_is_alive(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data,\n                           bool *input_pending)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2709,1
    - Dst: http2_send_ping
      Src: /src/curl/lib/http2.c:2710,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2713
      start: 2703
    functionDepth: 1
    functionLinenumber: 2703
    functionLinenumberEnd: 2713
    functionName: cf_h2_keep_alive
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - http2_send_ping
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_keep_alive(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2725,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/http2.c:2727,1
    - Dst: nghttp2_session_check_request_allowed
      Src: /src/curl/lib/http2.c:2728,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/http2.c:2736,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:2739,1
    - Dst: H2_STREAM_CTX
      Src: /src/curl/lib/http2.c:2744,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:2745,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/http2.c:2746,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/http2.c:2759,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2715
    functionDepth: 2
    functionLinenumber: 2715
    functionLinenumberEnd: 2761
    functionName: cf_h2_query
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - nghttp2_session_check_request_allowed
    - H2_STREAM_CTX
    - Curl_bufq_is_empty
    - struct Curl_cfilter*::next::cft::query
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h2_query(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            int query, int *pres1, void *pres2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2790,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/http2.c:2791,1
    - Dst: cf_h2_ctx_init
      Src: /src/curl/lib/http2.c:2794,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/http2.c:2796,1
    - Dst: Curl_conn_cf_add
      Src: /src/curl/lib/http2.c:2801,1
    - Dst: cf_h2_ctx_free
      Src: /src/curl/lib/http2.c:2805,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - pcf
    - data
    - conn
    - sockindex
    - via_h1_upgrade
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2780
    functionDepth: 6
    functionLinenumber: 2780
    functionLinenumberEnd: 2808
    functionName: http2_cfilter_add
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_cf_create
    - cf_h2_ctx_init
    - curlx_calloc
    - Curl_conn_cf_add
    - cf_h2_ctx_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http2_cfilter_add(struct Curl_cfilter **pcf,\n                                  struct
      Curl_easy *data,\n                                  struct connectdata *conn,\n
      \                                 int sockindex,\n                                  bool
      via_h1_upgrade)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/http2.c:2819,1
    - Dst: cf_h2_ctx_init
      Src: /src/curl/lib/http2.c:2822,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/http2.c:2824,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/http2.c:2829,1
    - Dst: cf_h2_ctx_free
      Src: /src/curl/lib/http2.c:2833,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - cf
    - data
    - via_h1_upgrade
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2810
    functionDepth: 6
    functionLinenumber: 2810
    functionLinenumberEnd: 2835
    functionName: http2_cfilter_insert_after
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - Curl_conn_cf_insert_after
    - cf_h2_ctx_init
    - curlx_calloc
    - cf_h2_ctx_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http2_cfilter_insert_after(struct Curl_cfilter *cf,\n                                           struct
      Curl_easy *data,\n                                           bool via_h1_upgrade)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http2.c:2839,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:2846,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2837
    functionDepth: 1
    functionLinenumber: 2837
    functionLinenumberEnd: 2853
    functionName: Curl_http2_may_switch
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 1
    functionsReached:
    - Curl_conn_http_version
    - infof
    linkageType: ''
    returnType: bool
    signature: bool Curl_http2_may_switch(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2860,1
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http2.c:2860,1
    - Dst: http2_cfilter_add
      Src: /src/curl/lib/http2.c:2862,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2865,1
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/http2.c:2869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2855
    functionDepth: 7
    functionLinenumber: 2855
    functionLinenumberEnd: 2872
    functionName: Curl_http2_switch
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 1
    functionsReached:
    - Curl_conn_http_version
    - DEBUGASSERT
    - http2_cfilter_add
    - CURL_TRC_CF
    - Curl_conn_cf_connect
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_http2_switch(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2879,1
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http2.c:2879,1
    - Dst: http2_cfilter_insert_after
      Src: /src/curl/lib/http2.c:2881,1
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/http2.c:2889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2874
    functionDepth: 7
    functionLinenumber: 2874
    functionLinenumberEnd: 2892
    functionName: Curl_http2_switch_at
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 1
    functionsReached:
    - Curl_conn_http_version
    - http2_cfilter_insert_after
    - DEBUGASSERT
    - Curl_conn_cf_connect
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_http2_switch_at(struct Curl_cfilter *cf, struct Curl_easy
      *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2902,1
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http2.c:2902,1
    - Dst: http2_cfilter_add
      Src: /src/curl/lib/http2.c:2904,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http2.c:2907,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http2.c:2909,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/http2.c:2922,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:2925,1
    - Dst: failf
      Src: /src/curl/lib/http2.c:2929,1
    - Dst: infof
      Src: /src/curl/lib/http2.c:2934,1
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/http2.c:2940,1
    - Dst: struct Curl_cfilter*::cft::cntrl
      Src: /src/curl/lib/http2.c:2942,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - data
    - conn
    - sockindex
    - mem
    - nread
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2894
    functionDepth: 7
    functionLinenumber: 2894
    functionLinenumberEnd: 2945
    functionName: Curl_http2_upgrade
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 1
    functionsReached:
    - Curl_conn_http_version
    - DEBUGASSERT
    - http2_cfilter_add
    - failf
    - infof
    - Curl_conn_cf_connect
    - Curl_bufq_write
    - struct Curl_cfilter*::cft::cntrl
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http2_upgrade(struct Curl_easy *data,\n                            struct
      connectdata *conn, int sockindex,\n                            const char *mem,
      size_t nread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_http_version
      Src: /src/curl/lib/http2.c:2951,1
    - Dst: Curl_conn_get_stream_error
      Src: /src/curl/lib/http2.c:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2949
    functionDepth: 2
    functionLinenumber: 2949
    functionLinenumberEnd: 2956
    functionName: Curl_h2_http_1_1_error
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_conn_http_version
    - Curl_conn_get_stream_error
    linkageType: ''
    returnType: bool
    signature: bool Curl_h2_http_1_1_error(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cmalloc
      Src: /src/curl/lib/http2.c:2961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - user_data
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2958
    functionDepth: 0
    functionLinenumber: 2958
    functionLinenumberEnd: 2962
    functionName: Curl_nghttp2_malloc
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_cmalloc
    linkageType: ''
    returnType: void
    signature: void *Curl_nghttp2_malloc(size_t size, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cfree
      Src: /src/curl/lib/http2.c:2967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - user_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2964
    functionDepth: 0
    functionLinenumber: 2964
    functionLinenumberEnd: 2968
    functionName: Curl_nghttp2_free
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_cfree
    linkageType: ''
    returnType: void
    signature: void Curl_nghttp2_free(void *ptr, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ccalloc
      Src: /src/curl/lib/http2.c:2973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nmemb
    - size
    - user_data
    argTypes:
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2970
    functionDepth: 0
    functionLinenumber: 2970
    functionLinenumberEnd: 2974
    functionName: Curl_nghttp2_calloc
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_ccalloc
    linkageType: ''
    returnType: void
    signature: void *Curl_nghttp2_calloc(size_t nmemb, size_t size, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_crealloc
      Src: /src/curl/lib/http2.c:2979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - size
    - user_data
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2980
      start: 2976
    functionDepth: 0
    functionLinenumber: 2976
    functionLinenumberEnd: 2980
    functionName: Curl_nghttp2_realloc
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 0
    functionsReached:
    - Curl_crealloc
    linkageType: ''
    returnType: void
    signature: void *Curl_nghttp2_realloc(void *ptr, size_t size, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - h
    - num
    argTypes:
    - struct curl_pushheaders*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2991
      start: 2986
    functionDepth: 0
    functionLinenumber: 2986
    functionLinenumberEnd: 2991
    functionName: curl_pushheader_bynum
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *curl_pushheader_bynum(struct curl_pushheaders *h, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - h
    - name
    argTypes:
    - struct curl_pushheaders*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2998
      start: 2993
    functionDepth: 0
    functionLinenumber: 2993
    functionLinenumberEnd: 2998
    functionName: curl_pushheader_byname
    functionSourceFile: /src/curl/lib/http2.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *curl_pushheader_byname(struct curl_pushheaders *h, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: gopher_connect
    functionSourceFile: /src/curl/lib/gopher.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode gopher_connect(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/gopher.c:52,1
    - Dst: connclose
      Src: /src/curl/lib/gopher.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 9
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: gopher_connecting
    functionSourceFile: /src/curl/lib/gopher.c
    functionUses: 0
    functionsReached:
    - connclose
    - Curl_conn_connect
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode gopher_connecting(struct Curl_easy *data, bool *done)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/gopher.c:77,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/gopher.c:80,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/gopher.c:82,1
    - Dst: strlen
      Src: /src/curl/lib/gopher.c:88,1
    - Dst: curlx_free
      Src: /src/curl/lib/gopher.c:91,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/gopher.c:101,1
    - Dst: curlx_free
      Src: /src/curl/lib/gopher.c:102,1
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/gopher.c:110,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/gopher.c:112,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/gopher.c:117,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/gopher.c:128,1
    - Dst: SOCKET_WRITABLE
      Src: /src/curl/lib/gopher.c:142,1
    - Dst: curlx_free
      Src: /src/curl/lib/gopher.c:153,1
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/gopher.c:156,1
    - Dst: failf
      Src: /src/curl/lib/gopher.c:158,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/gopher.c:161,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/gopher.c:165,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 167
    functionName: gopher_do
    functionSourceFile: /src/curl/lib/gopher.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - Curl_urldecode
    - DEBUGASSERT
    - failf
    - Curl_xfer_setup_recv
    - Curl_client_write
    - curlx_strdup
    - Curl_xfer_send
    - curlx_free
    - Curl_timeleft_ms
    - strlen
    - SOCKET_WRITABLE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode gopher_do(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-dns.c:60,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/cf-dns.c:64,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/cf-dns.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - data
    - peer
    - dns_queries
    - transport
    - for_proxy
    - complete_resolve
    argTypes:
    - struct Curl_easy*
    - struct Curl_peer*
    - uint8_t
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 73
    functionName: cf_dns_ctx_create
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - Curl_peer_link
    - curlx_calloc
    - CURL_TRC_DNS
    linkageType: ''
    returnType: struct cf_dns_ctx
    signature: "struct cf_dns_ctx *cf_dns_ctx_create(struct Curl_easy *data,\n                                            struct
      Curl_peer *peer,\n                                            uint8_t dns_queries,\n
      \                                           uint8_t transport,\n                                            bool
      for_proxy,\n                                            bool complete_resolve)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/cf-dns.c:79,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/cf-dns.c:80,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-dns.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ctx
    argTypes:
    - struct Curl_easy*
    - struct cf_dns_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: cf_dns_ctx_destroy
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_peer_unlink
    - Curl_dns_entry_unlink
    linkageType: ''
    returnType: void
    signature: "void cf_dns_ctx_destroy(struct Curl_easy *data,\n                               struct
      cf_dns_ctx *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/cf-dns.c:96,1
    - Dst: Curl_printable_address
      Src: /src/curl/lib/cf-dns.c:99,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/cf-dns.c:100,1
    - Dst: infof
      Src: /src/curl/lib/cf-dns.c:102,1
    - Dst: infof
      Src: /src/curl/lib/cf-dns.c:109,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cf-dns.c:110,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/cf-dns.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - data
    - tmp
    - label
    - ai_family
    - ai
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    - char*
    - int
    - struct Curl_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 111
    functionName: cf_dns_report_addr
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - Curl_printable_address
    - curlx_dyn_len
    - infof
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - curlx_dyn_addf
    linkageType: ''
    returnType: void
    signature: "void cf_dns_report_addr(struct Curl_easy *data,\n                               struct
      dynbuf *tmp,\n                               const char *label,\n                               int
      ai_family,\n                               const struct Curl_addrinfo *ai)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/cf-dns.c:120,1
    - Dst: Curl_host_is_ipnum
      Src: /src/curl/lib/cf-dns.c:122,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-dns.c:127,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-dns.c:129,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/cf-dns.c:133,1
    - Dst: infof
      Src: /src/curl/lib/cf-dns.c:134,1
    - Dst: cf_dns_report_addr
      Src: /src/curl/lib/cf-dns.c:136,1
    - Dst: cf_dns_report_addr
      Src: /src/curl/lib/cf-dns.c:138,1
    - Dst: infof
      Src: /src/curl/lib/cf-dns.c:141,1
    - Dst: Curl_httpsrr_applicable
      Src: /src/curl/lib/cf-dns.c:142,1
    - Dst: infof
      Src: /src/curl/lib/cf-dns.c:143,1
    - Dst: Curl_httpsrr_print
      Src: /src/curl/lib/cf-dns.c:145,1
    - Dst: infof
      Src: /src/curl/lib/cf-dns.c:147,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/cf-dns.c:147,1
    - Dst: infof
      Src: /src/curl/lib/cf-dns.c:149,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/cf-dns.c:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - cf
    - data
    - dns
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_dns_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 154
    functionName: cf_dns_report
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - cf_dns_report_addr
    - curlx_dyn_init
    - Curl_httpsrr_applicable
    - DEBUGASSERT
    - Curl_httpsrr_print
    - curlx_dyn_free
    - Curl_host_is_ipnum
    - Curl_trc_is_verbose
    - infof
    - curlx_dyn_ptr
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_dns_report(struct Curl_cfilter *cf,\n                          struct
      Curl_easy *data,\n                          struct Curl_dns_entry *dns)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: cf_dns_report
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_dns_report(x, y, z)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/cf-dns.c:167,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-dns.c:172,1
    - Dst: Curl_is_ipv4addr
      Src: /src/curl/lib/cf-dns.c:177,1
    - Dst: Curl_resolv
      Src: /src/curl/lib/cf-dns.c:184,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-dns.c:187,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-dns.c:189,1
    - Dst: failf
      Src: /src/curl/lib/cf-dns.c:196,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-dns.c:198,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-dns.c:198,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-dns.c:203,1
    - Dst: failf
      Src: /src/curl/lib/cf-dns.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - cf
    - data
    - pdns
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 207
    functionName: cf_dns_start
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_resolv
    - DEBUGASSERT
    - failf
    - Curl_is_ipv4addr
    - Curl_timeleft_ms
    - curlx_ptimediff_ms
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_dns_start(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             struct Curl_dns_entry **pdns)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_wants_httpsrr
      Src: /src/curl/lib/cf-dns.c:225,1
    - Dst: Curl_resolv_has_answers
      Src: /src/curl/lib/cf-dns.c:230,1
    - Dst: Curl_resolv_elapsed_ms
      Src: /src/curl/lib/cf-dns.c:234,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-dns.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 242
    functionName: cf_dns_ready_to_connect
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - Curl_resolv_elapsed_ms
    - Curl_conn_cf_wants_httpsrr
    - Curl_resolv_has_answers
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool cf_dns_ready_to_connect(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cf_dns_start
      Src: /src/curl/lib/cf-dns.c:258,1
    - Dst: Curl_resolv_take_result
      Src: /src/curl/lib/cf-dns.c:263,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-dns.c:267,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/cf-dns.c:275,1
    - Dst: cf_dns_report
      Src: /src/curl/lib/cf-dns.c:277,1
    - Dst: cf_dns_ready_to_connect
      Src: /src/curl/lib/cf-dns.c:280,1
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/cf-dns.c:286,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-dns.c:289,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-dns.c:293,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-dns.c:296,1
    - Dst: Curl_resolv_destroy
      Src: /src/curl/lib/cf-dns.c:301,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 244
    functionDepth: 8
    functionLinenumber: 244
    functionLinenumberEnd: 303
    functionName: cf_dns_connect
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - Curl_resolv_take_result
    - DEBUGASSERT
    - cf_dns_start
    - cf_dns_report
    - Curl_conn_cf_connect
    - Curl_resolv_destroy
    - cf_dns_ready_to_connect
    - Curl_pgrsTime
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_dns_connect(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-dns.c:309,1
    - Dst: cf_dns_ctx_destroy
      Src: /src/curl/lib/cf-dns.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: cf_dns_destroy
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - cf_dns_ctx_destroy
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: void cf_dns_destroy(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_resolv_pollset
      Src: /src/curl/lib/cf-dns.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: cf_dns_adjust_pollset
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - Curl_resolv_pollset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_dns_adjust_pollset(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      struct easy_pollset
      *ps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/cf-dns.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: cf_dns_cntrl
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - Curl_dns_entry_unlink
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_dns_cntrl(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             int event, int arg1, void *arg2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_dns_ctx_create
      Src: /src/curl/lib/cf-dns.c:382,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-dns.c:389,1
    - Dst: cf_dns_ctx_destroy
      Src: /src/curl/lib/cf-dns.c:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - pcf
    - data
    - peer
    - dns_queries
    - transport
    - for_proxy
    - complete_resolve
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct Curl_peer*
    - uint8_t
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 396
    functionName: cf_dns_create
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - cf_dns_ctx_create
    - cf_dns_ctx_destroy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_dns_create(struct Curl_cfilter **pcf,\n                              struct
      Curl_easy *data,\n                              struct Curl_peer *peer,\n                              uint8_t
      dns_queries,\n                              uint8_t transport,\n                              bool
      for_proxy,\n                              bool complete_resolve)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_dns_create
      Src: /src/curl/lib/cf-dns.c:418,1
    - Dst: Curl_conn_cf_add
      Src: /src/curl/lib/cf-dns.c:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - data
    - conn
    - sockindex
    - peer
    - dns_queries
    - transport
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - struct Curl_peer*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 425
    functionName: Curl_cf_dns_add
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - cf_dns_create
    - Curl_conn_cf_add
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_dns_add(struct Curl_easy *data,\n                         struct
      connectdata *conn,\n                         int sockindex,\n                         struct
      Curl_peer *peer,\n                         uint8_t dns_queries,\n                         uint8_t
      transport)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_dns_create
      Src: /src/curl/lib/cf-dns.c:443,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/cf-dns.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - cf_at
    - data
    - dns_queries
    - peer
    - transport
    - complete_resolve
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t
    - struct Curl_peer*
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 450
    functionName: Curl_cf_dns_insert_after
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 2
    functionsReached:
    - cf_dns_create
    - Curl_conn_cf_insert_after
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_dns_insert_after(struct Curl_cfilter *cf_at,\n                                  struct
      Curl_easy *data,\n                                  uint8_t dns_queries,\n                                  struct
      Curl_peer *peer,\n                                  uint8_t transport,\n                                  bool
      complete_resolve)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 466
    functionName: cf_dns_result
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cf_dns_result(struct Curl_cfilter *cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_dns_result
      Src: /src/curl/lib/cf-dns.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - sockindex
    argTypes:
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: Curl_conn_dns_result
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - cf_dns_result
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_conn_dns_result(struct connectdata *conn, int sockindex)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - cf
    - ai
    - ai_family
    - index
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_addrinfo*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 502
    functionName: cf_dns_get_nth_ai
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *cf_dns_get_nth_ai(\n  struct Curl_cfilter *cf,\n
      \ const struct Curl_addrinfo *ai,\n  int ai_family, unsigned int index)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_dns_get_nth_ai
      Src: /src/curl/lib/cf-dns.c:520,1
    - Dst: Curl_resolv_get_ai
      Src: /src/curl/lib/cf-dns.c:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - cf
    - data
    - ai_family
    - index
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 526
    functionName: Curl_cf_dns_get_ai
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 2
    functionsReached:
    - cf_dns_get_nth_ai
    - Curl_resolv_get_ai
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *Curl_cf_dns_get_ai(struct Curl_cfilter *cf,\n
      \                                              struct Curl_easy *data,\n                                               int
      ai_family,\n                                               unsigned int index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cf_dns_get_ai
      Src: /src/curl/lib/cf-dns.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - sockindex
    - ai_family
    - index
    argTypes:
    - struct Curl_easy*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: Curl_conn_dns_get_ai
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 0
    functionsReached:
    - Curl_cf_dns_get_ai
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *Curl_conn_dns_get_ai(struct Curl_easy *data,\n
      \                                                int sockindex, int ai_family,\n
      \                                                unsigned int index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_resolv_get_https
      Src: /src/curl/lib/cf-dns.c:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 559
    functionName: Curl_conn_dns_get_https
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 1
    functionsReached:
    - Curl_resolv_get_https
    linkageType: ''
    returnType: struct Curl_https_rrinfo
    signature: "struct Curl_https_rrinfo *Curl_conn_dns_get_https(struct Curl_easy
      *data,\n                                                        int sockindex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_resolv_knows_https
      Src: /src/curl/lib/cf-dns.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 574
    functionName: Curl_conn_dns_resolved_https
    functionSourceFile: /src/curl/lib/cf-dns.c
    functionUses: 1
    functionsReached:
    - Curl_resolv_knows_https
    linkageType: ''
    returnType: bool
    signature: bool Curl_conn_dns_resolved_https(struct Curl_easy *data, int sockindex)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/dict.c:73,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/dict.c:81,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/dict.c:83,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/dict.c:87,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: unescape_word
    functionSourceFile: /src/curl/lib/dict.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - curlx_dyn_init
    - curlx_dyn_addn
    linkageType: ''
    returnType: char
    signature: char *unescape_word(const char *input)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/dict.c:102,1
    - Dst: curl_mvaprintf
      Src: /src/curl/lib/dict.c:103,1
    - Dst: va_end
      Src: /src/curl/lib/dict.c:104,1
    - Dst: strlen
      Src: /src/curl/lib/dict.c:109,1
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/dict.c:114,1
    - Dst: Curl_debug
      Src: /src/curl/lib/dict.c:119,1
    - Dst: curlx_free
      Src: /src/curl/lib/dict.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 94
    functionDepth: 9
    functionLinenumber: 94
    functionLinenumberEnd: 134
    functionName: sendf
    functionSourceFile: /src/curl/lib/dict.c
    functionUses: 12
    functionsReached:
    - strlen
    - curl_mvaprintf
    - va_start
    - va_end
    - curlx_free
    - Curl_debug
    - Curl_xfer_send
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode sendf(struct Curl_easy *data, const char *fmt, ...)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Curl_urldecode
      Src: /src/curl/lib/dict.c:152,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/dict.c:156,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/dict.c:157,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/dict.c:158,1
    - Dst: strchr
      Src: /src/curl/lib/dict.c:160,1
    - Dst: strchr
      Src: /src/curl/lib/dict.c:163,1
    - Dst: strchr
      Src: /src/curl/lib/dict.c:166,1
    - Dst: strchr
      Src: /src/curl/lib/dict.c:169,1
    - Dst: infof
      Src: /src/curl/lib/dict.c:178,1
    - Dst: unescape_word
      Src: /src/curl/lib/dict.c:180,1
    - Dst: sendf
      Src: /src/curl/lib/dict.c:186,1
    - Dst: failf
      Src: /src/curl/lib/dict.c:198,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/dict.c:201,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/dict.c:203,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/dict.c:204,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/dict.c:205,1
    - Dst: strchr
      Src: /src/curl/lib/dict.c:207,1
    - Dst: strchr
      Src: /src/curl/lib/dict.c:210,1
    - Dst: strchr
      Src: /src/curl/lib/dict.c:213,1
    - Dst: infof
      Src: /src/curl/lib/dict.c:221,1
    - Dst: unescape_word
      Src: /src/curl/lib/dict.c:223,1
    - Dst: sendf
      Src: /src/curl/lib/dict.c:229,1
    - Dst: failf
      Src: /src/curl/lib/dict.c:239,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/dict.c:242,1
    - Dst: strchr
      Src: /src/curl/lib/dict.c:246,1
    - Dst: sendf
      Src: /src/curl/lib/dict.c:255,1
    - Dst: failf
      Src: /src/curl/lib/dict.c:260,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/dict.c:264,1
    - Dst: curlx_free
      Src: /src/curl/lib/dict.c:269,1
    - Dst: curlx_free
      Src: /src/curl/lib/dict.c:270,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 90
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 136
    functionDepth: 10
    functionLinenumber: 136
    functionLinenumberEnd: 272
    functionName: dict_do
    functionSourceFile: /src/curl/lib/dict.c
    functionUses: 0
    functionsReached:
    - sendf
    - Curl_urldecode
    - failf
    - Curl_xfer_setup_recv
    - infof
    - curl_strnequal
    - curlx_free
    - unescape_word
    - strchr
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode dict_do(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/rand.c:44,1
    - Dst: BCryptGenRandom
      Src: /src/curl/lib/rand.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - entropy
    - length
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: Curl_win32_random
    functionSourceFile: /src/curl/lib/rand.c
    functionUses: 0
    functionsReached:
    - BCryptGenRandom
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_win32_random(unsigned char *entropy, size_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rand.c:61,1
    - Dst: Curl_win32_random
      Src: /src/curl/lib/rand.c:67,1
    - Dst: arc4random
      Src: /src/curl/lib/rand.c:75,1
    - Dst: memcpy
      Src: /src/curl/lib/rand.c:76,1
    - Dst: infof
      Src: /src/curl/lib/rand.c:78,1
    - Dst: curlx_pnow
      Src: /src/curl/lib/rand.c:85,1
    - Dst: memcpy
      Src: /src/curl/lib/rand.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - data
    - entropy
    - length
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 100
    functionName: weak_random
    functionSourceFile: /src/curl/lib/rand.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - curlx_pnow
    - infof
    - Curl_win32_random
    - arc4random
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode weak_random(struct Curl_easy *data,\n                            unsigned
      char *entropy,\n                            size_t length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/rand.c:108,1
    - Dst: strlen
      Src: /src/curl/lib/rand.c:115,1
    - Dst: memcpy
      Src: /src/curl/lib/rand.c:118,1
    - Dst: ntohl
      Src: /src/curl/lib/rand.c:119,1
    - Dst: Curl_ssl_random
      Src: /src/curl/lib/rand.c:134,1
    - Dst: weak_random
      Src: /src/curl/lib/rand.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - data
    - rnd
    - env_override
    argTypes:
    - struct Curl_easy*
    - unsigned int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 138
    functionName: randit
    functionSourceFile: /src/curl/lib/rand.c
    functionUses: 0
    functionsReached:
    - memcpy
    - weak_random
    - getenv
    - Curl_ssl_random
    - ntohl
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode randit(struct Curl_easy *data, unsigned int *rnd,\n                       bool
      env_override)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rand.c:166,1
    - Dst: randit
      Src: /src/curl/lib/rand.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - data
    - env_override
    - rnd
    - num
    argTypes:
    - struct Curl_easy*
    - DEBUGBUILD
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 185
    functionName: Curl_rand_bytes
    functionSourceFile: /src/curl/lib/rand.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - randit
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_rand_bytes(struct Curl_easy *data,\n#ifdef DEBUGBUILD\n
      \                        bool env_override,\n#endif\n                         unsigned
      char *rnd, size_t num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rand.c:197,1
    - Dst: DEBUGF
      Src: /src/curl/lib/rand.c:201,1
    - Dst: infof
      Src: /src/curl/lib/rand.c:201,1
    - Dst: Curl_rand
      Src: /src/curl/lib/rand.c:207,1
    - Dst: Curl_hexencode
      Src: /src/curl/lib/rand.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - data
    - rnd
    - num
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 213
    functionName: Curl_rand_hex
    functionSourceFile: /src/curl/lib/rand.c
    functionUses: 0
    functionsReached:
    - Curl_rand
    - DEBUGASSERT
    - infof
    - DEBUGF
    - Curl_hexencode
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_rand_hex(struct Curl_easy *data, unsigned char *rnd,
      size_t num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rand.c:229,1
    - Dst: randit
      Src: /src/curl/lib/rand.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - data
    - rnd
    - num
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: Curl_rand_alnum
    functionSourceFile: /src/curl/lib/rand.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - randit
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_rand_alnum(struct Curl_easy *data, unsigned char *rnd,\n
      \                        size_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/getinfo.c:70,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/getinfo.c:71,1
    - Dst: memset
      Src: /src/curl/lib/getinfo.c:73,1
    - Dst: Curl_ssl_free_certinfo
      Src: /src/curl/lib/getinfo.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 83
    functionName: Curl_initinfo
    functionSourceFile: /src/curl/lib/getinfo.c
    functionUses: 4
    functionsReached:
    - curlx_safefree
    - Curl_ssl_free_certinfo
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_initinfo(struct Curl_easy *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/getinfo.c:90,1
    - Dst: switch
      Src: /src/curl/lib/getinfo.c:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - data
    - info
    - param_charp
    argTypes:
    - struct Curl_easy*
    - CURLINFO
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 122
    functionName: getinfo_char
    functionSourceFile: /src/curl/lib/getinfo.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_ptr
    - switch
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode getinfo_char(struct Curl_easy *data, CURLINFO info,\n                             const
      char **param_charp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    functionName: DOUBLE_SECS
    functionSourceFile: /src/curl/lib/getinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOUBLE_SECS(x)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/getinfo.c:399,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/getinfo.c:402,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 91
    argCount: 3
    argNames:
    - data
    - info
    - param_offt
    argTypes:
    - struct Curl_easy*
    - CURLINFO
    - curl_off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 483
    functionName: getinfo_offt
    functionSourceFile: /src/curl/lib/getinfo.c
    functionUses: 0
    functionsReached:
    - getenv
    - curlx_str_number
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode getinfo_offt(struct Curl_easy *data, CURLINFO info,\n                             curl_off_t
      *param_offt)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/getinfo.c:501,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/getinfo.c:504,1
    - Dst: DOUBLE_SECS
      Src: /src/curl/lib/getinfo.c:515,1
    - Dst: DOUBLE_SECS
      Src: /src/curl/lib/getinfo.c:518,1
    - Dst: DOUBLE_SECS
      Src: /src/curl/lib/getinfo.c:521,1
    - Dst: DOUBLE_SECS
      Src: /src/curl/lib/getinfo.c:524,1
    - Dst: DOUBLE_SECS
      Src: /src/curl/lib/getinfo.c:527,1
    - Dst: DOUBLE_SECS
      Src: /src/curl/lib/getinfo.c:530,1
    - Dst: DOUBLE_SECS
      Src: /src/curl/lib/getinfo.c:553,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 3
    argNames:
    - data
    - info
    - param_doublep
    argTypes:
    - struct Curl_easy*
    - CURLINFO
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 561
    functionName: getinfo_double
    functionSourceFile: /src/curl/lib/getinfo.c
    functionUses: 0
    functionsReached:
    - getenv
    - DOUBLE_SECS
    - curlx_str_number
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode getinfo_double(struct Curl_easy *data, CURLINFO info,\n                               double
      *param_doublep)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_engines_list
      Src: /src/curl/lib/getinfo.c:573,1
    - Dst: Curl_cookie_list
      Src: /src/curl/lib/getinfo.c:576,1
    - Dst: Curl_conn_get_ssl_info
      Src: /src/curl/lib/getinfo.c:595,1
    - Dst: Curl_ssl_backend
      Src: /src/curl/lib/getinfo.c:596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - data
    - info
    - param_slistp
    argTypes:
    - struct Curl_easy*
    - CURLINFO
    - struct curl_slist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 606
    functionName: getinfo_slist
    functionSourceFile: /src/curl/lib/getinfo.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_engines_list
    - Curl_conn_get_ssl_info
    - Curl_ssl_backend
    - Curl_cookie_list
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode getinfo_slist(struct Curl_easy *data, CURLINFO info,\n                              struct
      curl_slist **param_slistp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_getconnectinfo
      Src: /src/curl/lib/getinfo.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - info
    - param_socketp
    argTypes:
    - struct Curl_easy*
    - CURLINFO
    - curl_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 620
    functionName: getinfo_socket
    functionSourceFile: /src/curl/lib/getinfo.c
    functionUses: 0
    functionsReached:
    - Curl_getconnectinfo
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode getinfo_socket(struct Curl_easy *data, CURLINFO info,\n                               curl_socket_t
      *param_socketp)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/getinfo.c:637,1
    - Dst: va_arg
      Src: /src/curl/lib/getinfo.c:642,1
    - Dst: getinfo_char
      Src: /src/curl/lib/getinfo.c:644,1
    - Dst: va_arg
      Src: /src/curl/lib/getinfo.c:647,1
    - Dst: getinfo_long
      Src: /src/curl/lib/getinfo.c:649,1
    - Dst: va_arg
      Src: /src/curl/lib/getinfo.c:652,1
    - Dst: getinfo_double
      Src: /src/curl/lib/getinfo.c:654,1
    - Dst: va_arg
      Src: /src/curl/lib/getinfo.c:657,1
    - Dst: getinfo_offt
      Src: /src/curl/lib/getinfo.c:659,1
    - Dst: va_arg
      Src: /src/curl/lib/getinfo.c:662,1
    - Dst: getinfo_slist
      Src: /src/curl/lib/getinfo.c:664,1
    - Dst: va_arg
      Src: /src/curl/lib/getinfo.c:667,1
    - Dst: getinfo_socket
      Src: /src/curl/lib/getinfo.c:669,1
    - Dst: va_end
      Src: /src/curl/lib/getinfo.c:676,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - data
    - info
    argTypes:
    - struct Curl_easy*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 622
    functionDepth: 4
    functionLinenumber: 622
    functionLinenumberEnd: 679
    functionName: Curl_getinfo
    functionSourceFile: /src/curl/lib/getinfo.c
    functionUses: 1
    functionsReached:
    - va_arg
    - getinfo_long
    - getinfo_offt
    - va_start
    - getinfo_char
    - va_end
    - getinfo_slist
    - getinfo_socket
    - getinfo_double
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_getinfo(struct Curl_easy *data, CURLINFO info, ...)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_cspn
      Src: /src/curl/lib/http_proxy.c:98,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http_proxy.c:99,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http_proxy.c:100,1
    - Dst: strlen
      Src: /src/curl/lib/http_proxy.c:103,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/http_proxy.c:110,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http_proxy.c:111,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_proxy.c:132,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_proxy.c:132,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http_proxy.c:136,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http_proxy.c:140,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http_proxy.c:144,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http_proxy.c:149,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http_proxy.c:152,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http_proxy.c:155,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/http_proxy.c:156,1
    - Dst: Curl_auth_allowed_to_host
      Src: /src/curl/lib/http_proxy.c:159,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/http_proxy.c:163,1
    - Dst: curlx_str
      Src: /src/curl/lib/http_proxy.c:163,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/http_proxy.c:163,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 71
    argCount: 5
    argNames:
    - data
    - is_connect
    - httpversion
    - is_udp
    - hds
    argTypes:
    - struct Curl_easy*
    - bool
    - int
    - bool
    - struct dynhds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 172
    functionName: dynhds_add_custom
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached:
    - Curl_dynhds_add
    - curlx_str_single
    - DEBUGASSERT
    - curlx_str_casecompare
    - curlx_str
    - curlx_str_cspn
    - curlx_str_passblanks
    - Curl_auth_allowed_to_host
    - curlx_strlen
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode dynhds_add_custom(struct Curl_easy *data,\n                                  bool
      is_connect, int httpversion,\n                                  bool is_udp,
      struct dynhds *hds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ver
    argTypes:
    - proxy_http_ver
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: proxy_http_ver_major
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int proxy_http_ver_major(proxy_http_ver ver)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: proxy_http_ver_major
      Src: /src/curl/lib/http_proxy.c:201,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_proxy.c:205,1
    - Dst: Curl_http_req_make
      Src: /src/curl/lib/http_proxy.c:215,1
    - Dst: strlen
      Src: /src/curl/lib/http_proxy.c:216,1
    - Dst: Curl_http_output_auth
      Src: /src/curl/lib/http_proxy.c:222,1
    - Dst: Curl_checkProxyheaders
      Src: /src/curl/lib/http_proxy.c:229,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_proxy.c:229,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:230,1
    - Dst: Curl_dynhds_h1_cadd_line
      Src: /src/curl/lib/http_proxy.c:236,1
    - Dst: Curl_checkProxyheaders
      Src: /src/curl/lib/http_proxy.c:242,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_proxy.c:242,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:244,1
    - Dst: Curl_checkProxyheaders
      Src: /src/curl/lib/http_proxy.c:251,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_proxy.c:251,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:252,1
    - Dst: dynhds_add_custom
      Src: /src/curl/lib/http_proxy.c:257,1
    - Dst: Curl_http_req_free
      Src: /src/curl/lib/http_proxy.c:262,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_proxy.c:265,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 5
    argNames:
    - preq
    - cf
    - data
    - dest
    - ver
    argTypes:
    - struct httpreq**
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - proxy_http_ver
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 194
    functionDepth: 7
    functionLinenumber: 194
    functionLinenumberEnd: 268
    functionName: http_proxy_create_CONNECT
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached:
    - Curl_dynhds_cadd
    - curl_maprintf
    - proxy_http_ver_major
    - STRCONST
    - Curl_http_req_free
    - dynhds_add_custom
    - curlx_free
    - Curl_http_req_make
    - Curl_http_output_auth
    - strlen
    - Curl_checkProxyheaders
    - Curl_dynhds_h1_cadd_line
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_proxy_create_CONNECT(struct httpreq **preq,\n                                          struct
      Curl_cfilter *cf,\n                                          struct Curl_easy
      *data,\n                                          struct Curl_peer *dest,\n
      \                                         proxy_http_ver ver)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: proxy_http_ver_major
      Src: /src/curl/lib/http_proxy.c:278,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_proxy.c:293,1
    - Dst: strlen
      Src: /src/curl/lib/http_proxy.c:308,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/http_proxy.c:309,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_proxy.c:326,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_proxy.c:330,1
    - Dst: Curl_http_req_make
      Src: /src/curl/lib/http_proxy.c:340,1
    - Dst: strlen
      Src: /src/curl/lib/http_proxy.c:341,1
    - Dst: strlen
      Src: /src/curl/lib/http_proxy.c:342,1
    - Dst: strlen
      Src: /src/curl/lib/http_proxy.c:343,1
    - Dst: Curl_http_req_make
      Src: /src/curl/lib/http_proxy.c:348,1
    - Dst: strlen
      Src: /src/curl/lib/http_proxy.c:349,1
    - Dst: strlen
      Src: /src/curl/lib/http_proxy.c:350,1
    - Dst: strlen
      Src: /src/curl/lib/http_proxy.c:351,1
    - Dst: Curl_http_output_auth
      Src: /src/curl/lib/http_proxy.c:361,1
    - Dst: Curl_checkProxyheaders
      Src: /src/curl/lib/http_proxy.c:368,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_proxy.c:368,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:369,1
    - Dst: Curl_dynhds_h1_cadd_line
      Src: /src/curl/lib/http_proxy.c:375,1
    - Dst: Curl_checkProxyheaders
      Src: /src/curl/lib/http_proxy.c:382,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_proxy.c:382,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:384,1
    - Dst: Curl_checkProxyheaders
      Src: /src/curl/lib/http_proxy.c:391,1
    - Dst: STRCONST
      Src: /src/curl/lib/http_proxy.c:391,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:392,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:398,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:402,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:406,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:411,1
    - Dst: Curl_dynhds_cadd
      Src: /src/curl/lib/http_proxy.c:416,1
    - Dst: dynhds_add_custom
      Src: /src/curl/lib/http_proxy.c:422,1
    - Dst: Curl_http_req_free
      Src: /src/curl/lib/http_proxy.c:427,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_proxy.c:430,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_proxy.c:431,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_proxy.c:432,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 118
    argCount: 5
    argNames:
    - preq
    - cf
    - data
    - dest
    - ver
    argTypes:
    - struct httpreq**
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - proxy_http_ver
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 270
    functionDepth: 7
    functionLinenumber: 270
    functionLinenumberEnd: 435
    functionName: http_proxy_create_CONNECTUDP
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached:
    - Curl_dynhds_cadd
    - curl_maprintf
    - proxy_http_ver_major
    - STRCONST
    - Curl_http_req_free
    - dynhds_add_custom
    - curlx_malloc
    - curlx_free
    - Curl_http_req_make
    - Curl_http_output_auth
    - strlen
    - Curl_checkProxyheaders
    - Curl_dynhds_h1_cadd_line
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_proxy_create_CONNECTUDP(struct httpreq **preq,\n                                             struct
      Curl_cfilter *cf,\n                                             struct Curl_easy
      *data,\n                                             struct Curl_peer *dest,\n
      \                                            proxy_http_ver ver)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_proxy_create_CONNECTUDP
      Src: /src/curl/lib/http_proxy.c:445,1
    - Dst: http_proxy_create_CONNECT
      Src: /src/curl/lib/http_proxy.c:447,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:452,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - preq
    - cf
    - data
    - dest
    - ver
    - udp_tunnel
    argTypes:
    - struct httpreq**
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - proxy_http_ver
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 437
    functionDepth: 8
    functionLinenumber: 437
    functionLinenumberEnd: 462
    functionName: Curl_http_proxy_create_tunnel_request
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 1
    functionsReached:
    - http_proxy_create_CONNECTUDP
    - http_proxy_create_CONNECT
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_proxy_create_tunnel_request(\n    struct httpreq
      **preq, struct Curl_cfilter *cf,\n    struct Curl_easy *data, struct Curl_peer
      *dest,\n    proxy_http_ver ver, bool udp_tunnel)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_proxy.c:474,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/lib/http_proxy.c:476,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:478,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:480,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:481,1
    - Dst: Curl_dynhds_getn
      Src: /src/curl/lib/http_proxy.c:483,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:485,1
    - Dst: Curl_dynhds_cget
      Src: /src/curl/lib/http_proxy.c:489,1
    - Dst: Curl_dynhds_cget
      Src: /src/curl/lib/http_proxy.c:492,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http_proxy.c:496,1
    - Dst: Curl_http_input_auth
      Src: /src/curl/lib/http_proxy.c:498,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/http_proxy.c:503,1
    - Dst: Curl_dynhds_cget
      Src: /src/curl/lib/http_proxy.c:511,1
    - Dst: strncmp
      Src: /src/curl/lib/http_proxy.c:514,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:516,1
    - Dst: failf
      Src: /src/curl/lib/http_proxy.c:521,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:529,1
    - Dst: failf
      Src: /src/curl/lib/http_proxy.c:536,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:544,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 5
    argNames:
    - cf
    - data
    - resp
    - udp_tunnel
    - presult
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct http_resp*
    - bool
    - proxy_inspect_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 551
    functionName: Curl_http_proxy_inspect_tunnel_response
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - Curl_http_input_auth
    - DEBUGASSERT
    - failf
    - Curl_dynhds_getn
    - Curl_dynhds_count
    - infof
    - Curl_dynhds_cget
    - strncmp
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_http_proxy_inspect_tunnel_response(\n    struct Curl_cfilter
      *cf, struct Curl_easy *data,\n    struct http_resp *resp, bool udp_tunnel,\n
      \   proxy_inspect_result *presult)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http_proxy.c:568,1
    - Dst: struct Curl_cfilter*::next::cft::do_connect
      Src: /src/curl/lib/http_proxy.c:572,1
    - Dst: Curl_conn_cf_get_alpn_negotiated
      Src: /src/curl/lib/http_proxy.c:583,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:587,1
    - Dst: infof
      Src: /src/curl/lib/http_proxy.c:590,1
    - Dst: strcmp
      Src: /src/curl/lib/http_proxy.c:607,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http_proxy.c:608,1
    - Dst: Curl_cf_h1_proxy_insert_after
      Src: /src/curl/lib/http_proxy.c:609,1
    - Dst: strcmp
      Src: /src/curl/lib/http_proxy.c:614,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http_proxy.c:616,1
    - Dst: Curl_cf_h1_proxy_insert_after
      Src: /src/curl/lib/http_proxy.c:618,1
    - Dst: strcmp
      Src: /src/curl/lib/http_proxy.c:624,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http_proxy.c:625,1
    - Dst: Curl_cf_h2_proxy_insert_after
      Src: /src/curl/lib/http_proxy.c:626,1
    - Dst: strcmp
      Src: /src/curl/lib/http_proxy.c:634,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http_proxy.c:635,1
    - Dst: Curl_cf_h3_proxy_insert_after
      Src: /src/curl/lib/http_proxy.c:636,1
    - Dst: failf
      Src: /src/curl/lib/http_proxy.c:643,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 553
    functionDepth: 7
    functionLinenumber: 553
    functionLinenumberEnd: 653
    functionName: http_proxy_cf_connect
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached:
    - Curl_cf_h2_proxy_insert_after
    - failf
    - struct Curl_cfilter*::next::cft::do_connect
    - infof
    - Curl_cf_h1_proxy_insert_after
    - strcmp
    - Curl_cf_h3_proxy_insert_after
    - CURL_TRC_CF
    - Curl_conn_cf_get_alpn_negotiated
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode http_proxy_cf_connect(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      bool *done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/http_proxy.c:681,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/http_proxy.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 691
    functionName: cf_http_proxy_query
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::query
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_http_proxy_query(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    int query, int *pres1,
      void *pres2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/http_proxy.c:696,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_proxy.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_proxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 699
    functionName: cf_https_proxy_ctx_free
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_peer_unlink
    linkageType: ''
    returnType: void
    signature: void cf_https_proxy_ctx_free(struct cf_proxy_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/http_proxy.c:706,1
    - Dst: cf_https_proxy_ctx_free
      Src: /src/curl/lib/http_proxy.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 709
    functionName: http_proxy_cf_destroy
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached:
    - cf_https_proxy_ctx_free
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void http_proxy_cf_destroy(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/http_proxy.c:742,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/http_proxy.c:747,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/http_proxy.c:751,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/http_proxy.c:755,1
    - Dst: cf_https_proxy_ctx_free
      Src: /src/curl/lib/http_proxy.c:758,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - cf_at
    - data
    - dest
    - transport
    - proxytype
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 760
    functionName: Curl_cf_http_proxy_insert_after
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached:
    - cf_https_proxy_ctx_free
    - Curl_cf_create
    - Curl_peer_link
    - Curl_conn_cf_insert_after
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_http_proxy_insert_after(struct Curl_cfilter *cf_at,\n
      \                                        struct Curl_easy *data,\n                                         struct
      Curl_peer *dest,\n                                         uint8_t transport,\n
      \                                        uint8_t proxytype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - proxytype
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 770
    functionName: Curl_http_proxy_transport
    functionSourceFile: /src/curl/lib/http_proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Curl_http_proxy_transport(uint8_t proxytype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/imap.c:166,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/imap.c:169,1
    - Dst: curlx_sltosi
      Src: /src/curl/lib/imap.c:170,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/imap.c:174,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/imap.c:177,1
    - Dst: va_start
      Src: /src/curl/lib/imap.c:180,1
    - Dst: Curl_pp_vsendf
      Src: /src/curl/lib/imap.c:185,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:185,1
    - Dst: va_end
      Src: /src/curl/lib/imap.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - data
    - imapc
    - fmt
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 160
    functionDepth: 7
    functionLinenumber: 160
    functionLinenumberEnd: 192
    functionName: imap_sendf
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - DEBUGASSERT
    - Curl_pp_vsendf
    - va_start
    - va_end
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - curlx_sltosi
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_sendf(struct Curl_easy *data,\n                           struct
      imap_conn *imapc,\n                           const char *fmt, ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/imap.c:213,1
    - Dst: strcspn
      Src: /src/curl/lib/imap.c:214,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/imap.c:217,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/imap.c:219,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/imap.c:221,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/imap.c:226,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/imap.c:228,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/imap.c:233,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:236,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - str
    - escape_only
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 237
    functionName: imap_atom
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - curlx_strdup
    - strcspn
    - curlx_dyn_ptr
    - strlen
    linkageType: ''
    returnType: char
    signature: char *imap_atom(const char *str, bool escape_only)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 265
    functionName: imap_find_literal
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *imap_find_literal(const char *line, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/imap.c:280,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/imap.c:286,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/imap.c:290,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/imap.c:301,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 3
    argNames:
    - line
    - len
    - cmd
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 306
    functionName: imap_matchresp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_strnequal
    - ISDIGIT
    linkageType: ''
    returnType: bool
    signature: bool imap_matchresp(const char *line, size_t len, const char *cmd)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:318,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/imap.c:319,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/imap.c:323,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/imap.c:324,1
    - Dst: strlen
      Src: /src/curl/lib/imap.c:330,1
    - Dst: memcmp
      Src: /src/curl/lib/imap.c:331,1
    - Dst: memcmp
      Src: /src/curl/lib/imap.c:335,1
    - Dst: memcmp
      Src: /src/curl/lib/imap.c:337,1
    - Dst: memcmp
      Src: /src/curl/lib/imap.c:346,1
    - Dst: imap_matchresp
      Src: /src/curl/lib/imap.c:350,1
    - Dst: imap_matchresp
      Src: /src/curl/lib/imap.c:355,1
    - Dst: imap_matchresp
      Src: /src/curl/lib/imap.c:356,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:357,1
    - Dst: imap_matchresp
      Src: /src/curl/lib/imap.c:358,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:359,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:360,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:361,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:362,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:363,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:364,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:365,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:366,1
    - Dst: imap_matchresp
      Src: /src/curl/lib/imap.c:376,1
    - Dst: imap_matchresp
      Src: /src/curl/lib/imap.c:381,1
    - Dst: memcmp
      Src: /src/curl/lib/imap.c:399,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:408,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 57
    argCount: 5
    argNames:
    - data
    - conn
    - line
    - len
    - resp
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 417
    functionName: imap_endofresp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - failf
    - memcmp
    - Curl_conn_meta_get
    - Curl_meta_get
    - curl_strequal
    - imap_matchresp
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool imap_endofresp(struct Curl_easy *data, struct connectdata *conn,\n
      \                          const char *line, size_t len, int *resp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:428,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:435,1
    - Dst: ISBLANK
      Src: /src/curl/lib/imap.c:440,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/imap.c:445,1
    - Dst: ISBLANK
      Src: /src/curl/lib/imap.c:445,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/imap.c:450,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/imap.c:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 457
    functionName: imap_get_message
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_set
    - ISNEWLINE
    - Curl_conn_meta_get
    - curlx_dyn_ptr
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode imap_get_message(struct Curl_easy *data, struct bufref *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/imap.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - data
    - imapc
    - newstate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 497
    functionName: imap_state
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - infof
    linkageType: ''
    returnType: void
    signature: "void imap_state(struct Curl_easy *data,\n                       struct
      imap_conn *imapc,\n                       imapstate newstate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:516,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - imapc
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 506
    functionDepth: 8
    functionLinenumber: 506
    functionLinenumberEnd: 522
    functionName: imap_perform_capability
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - imap_sendf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_capability(struct Curl_easy *data,\n                                        struct
      imap_conn *imapc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:534,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - imapc
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 530
    functionDepth: 8
    functionLinenumber: 530
    functionLinenumberEnd: 540
    functionName: imap_perform_starttls
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - imap_sendf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_starttls(struct Curl_easy *data,\n                                      struct
      imap_conn *imapc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/imap.c:557,1
    - Dst: Curl_ssl_cfilter_add
      Src: /src/curl/lib/imap.c:558,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/imap.c:565,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/imap.c:566,1
    - Dst: DEBUGF
      Src: /src/curl/lib/imap.c:567,1
    - Dst: infof
      Src: /src/curl/lib/imap.c:567,1
    - Dst: imap_perform_capability
      Src: /src/curl/lib/imap.c:572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - data
    - imapc
    - conn
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 548
    functionDepth: 9
    functionLinenumber: 548
    functionLinenumberEnd: 582
    functionName: imap_perform_upgrade_tls
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - DEBUGF
    - Curl_conn_connect
    - Curl_ssl_cfilter_add
    - infof
    - imap_perform_capability
    - Curl_conn_is_ssl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_upgrade_tls(struct Curl_easy *data,\n                                         struct
      imap_conn *imapc,\n                                         struct connectdata
      *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:601,1
    - Dst: imap_atom
      Src: /src/curl/lib/imap.c:607,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/imap.c:607,1
    - Dst: imap_atom
      Src: /src/curl/lib/imap.c:608,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/imap.c:608,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:611,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:614,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:615,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - data
    - imapc
    - conn
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 590
    functionDepth: 8
    functionLinenumber: 590
    functionLinenumberEnd: 621
    functionName: imap_perform_login
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - Curl_creds_passwd
    - curlx_free
    - Curl_creds_user
    - imap_sendf
    - imap_atom
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_login(struct Curl_easy *data,\n                                   struct
      imap_conn *imapc,\n                                   struct connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:635,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/imap.c:637,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:643,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - mech
    - initresp
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 630
    functionDepth: 8
    functionLinenumber: 630
    functionLinenumberEnd: 651
    functionName: imap_perform_authenticate
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_sendf
    - Curl_bufref_ptr
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_authenticate(struct Curl_easy *data,\n                                          const
      char *mech,\n                                          const struct bufref *initresp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:664,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/imap.c:669,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/imap.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - mech
    - resp
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 670
    functionName: imap_continue_authenticate
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_bufref_ptr
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_continue_authenticate(struct Curl_easy *data,\n                                           const
      char *mech,\n                                           const struct bufref
      *resp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:682,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/imap.c:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - mech
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 688
    functionName: imap_cancel_authenticate
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_cancel_authenticate(struct Curl_easy *data,\n                                         const
      char *mech)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sasl_can_authenticate
      Src: /src/curl/lib/imap.c:707,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:708,1
    - Dst: Curl_sasl_start
      Src: /src/curl/lib/imap.c:713,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:717,1
    - Dst: imap_perform_login
      Src: /src/curl/lib/imap.c:720,1
    - Dst: Curl_sasl_is_blocked
      Src: /src/curl/lib/imap.c:722,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - data
    - imapc
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 698
    functionDepth: 9
    functionLinenumber: 698
    functionLinenumberEnd: 726
    functionName: imap_perform_authentication
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - Curl_sasl_can_authenticate
    - Curl_sasl_start
    - imap_perform_login
    - Curl_sasl_is_blocked
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_authentication(struct Curl_easy *data,\n                                            struct
      imap_conn *imapc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:742,1
    - Dst: imap_atom
      Src: /src/curl/lib/imap.c:746,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/imap.c:747,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:752,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:754,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - data
    - imapc
    - imap
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - struct IMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 734
    functionDepth: 8
    functionLinenumber: 734
    functionLinenumberEnd: 761
    functionName: imap_perform_list
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - curlx_strdup
    - curlx_free
    - imap_sendf
    - imap_atom
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_list(struct Curl_easy *data,\n                                  struct
      imap_conn *imapc,\n                                  struct IMAP *imap)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:777,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:782,1
    - Dst: imap_atom
      Src: /src/curl/lib/imap.c:787,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:792,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:794,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - data
    - imapc
    - imap
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - struct IMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 769
    functionDepth: 8
    functionLinenumber: 769
    functionLinenumberEnd: 800
    functionName: imap_perform_select
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - imap_state
    - failf
    - curlx_free
    - imap_sendf
    - imap_atom
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_select(struct Curl_easy *data,\n                                    struct
      imap_conn *imapc,\n                                    struct IMAP *imap)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:818,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:822,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:828,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:832,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:836,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - data
    - imapc
    - imap
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - struct IMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 808
    functionDepth: 8
    functionLinenumber: 808
    functionLinenumberEnd: 843
    functionName: imap_perform_fetch
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - imap_sendf
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_fetch(struct Curl_easy *data,\n                                   struct
      imap_conn *imapc,\n                                   struct IMAP *imap)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/imap.c:861,1
    - Dst: IS_MIME_POST
      Src: /src/curl/lib/imap.c:867,1
    - Dst: curl_mime_headers
      Src: /src/curl/lib/imap.c:874,1
    - Dst: Curl_mime_prepare_headers
      Src: /src/curl/lib/imap.c:875,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/imap.c:879,1
    - Dst: STRCONST
      Src: /src/curl/lib/imap.c:879,1
    - Dst: Curl_mime_add_header
      Src: /src/curl/lib/imap.c:880,1
    - Dst: Curl_creader_set_mime
      Src: /src/curl/lib/imap.c:884,1
    - Dst: Curl_creader_client_length
      Src: /src/curl/lib/imap.c:887,1
    - Dst: Curl_creader_set_fread
      Src: /src/curl/lib/imap.c:892,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:899,1
    - Dst: imap_atom
      Src: /src/curl/lib/imap.c:904,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/imap.c:909,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/imap.c:922,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/imap.c:928,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/imap.c:928,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/imap.c:929,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/imap.c:930,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/imap.c:935,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/imap.c:938,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:941,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:942,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/imap.c:945,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:946,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:949,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 3
    argNames:
    - data
    - imapc
    - imap
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - struct IMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 851
    functionDepth: 8
    functionLinenumber: 851
    functionLinenumberEnd: 952
    functionName: imap_perform_append
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_creader_set_fread
    - curlx_dyn_init
    - curlx_dyn_add
    - Curl_checkheaders
    - curlx_dyn_ptr
    - curl_mime_headers
    - curlx_dyn_free
    - Curl_mime_add_header
    - imap_atom
    - imap_state
    - Curl_creader_client_length
    - failf
    - curlx_dyn_len
    - Curl_creader_set_mime
    - curlx_free
    - IS_MIME_POST
    - STRCONST
    - Curl_mime_prepare_headers
    - imap_sendf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_append(struct Curl_easy *data,\n                                    struct
      imap_conn *imapc,\n                                    struct IMAP *imap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/imap.c:968,1
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:973,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - imapc
    - imap
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - struct IMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 960
    functionDepth: 8
    functionLinenumber: 960
    functionLinenumberEnd: 979
    functionName: imap_perform_search
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - imap_sendf
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_search(struct Curl_easy *data,\n                                    struct
      imap_conn *imapc,\n                                    struct IMAP *imap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imap_sendf
      Src: /src/curl/lib/imap.c:991,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - imapc
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 987
    functionDepth: 8
    functionLinenumber: 987
    functionLinenumberEnd: 997
    functionName: imap_perform_logout
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - imap_sendf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform_logout(struct Curl_easy *data,\n                                    struct
      imap_conn *imapc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/imap.c:1010,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:1013,1
    - Dst: imap_perform_capability
      Src: /src/curl/lib/imap.c:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1000
    functionDepth: 9
    functionLinenumber: 1000
    functionLinenumberEnd: 1018
    functionName: imap_state_servergreet_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_perform_capability
    - failf
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_servergreet_resp(struct Curl_easy *data,\n                                            struct
      imap_conn *imapc,\n                                            int imapcode,\n
      \                                           imapstate instate)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:1027,1
    - Dst: ISBLANK
      Src: /src/curl/lib/imap.c:1038,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/imap.c:1038,1
    - Dst: ISBLANK
      Src: /src/curl/lib/imap.c:1045,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/imap.c:1046,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/imap.c:1050,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/imap.c:1054,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/imap.c:1058,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/imap.c:1062,1
    - Dst: Curl_sasl_decode_mech
      Src: /src/curl/lib/imap.c:1070,1
    - Dst: Curl_xfer_is_secure
      Src: /src/curl/lib/imap.c:1078,1
    - Dst: imap_perform_starttls
      Src: /src/curl/lib/imap.c:1082,1
    - Dst: imap_perform_authentication
      Src: /src/curl/lib/imap.c:1085,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:1087,1
    - Dst: imap_perform_authentication
      Src: /src/curl/lib/imap.c:1092,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 39
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1021
    functionDepth: 10
    functionLinenumber: 1021
    functionLinenumberEnd: 1095
    functionName: imap_state_capability_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_perform_authentication
    - failf
    - ISNEWLINE
    - imap_perform_starttls
    - curl_strnequal
    - curlx_dyn_ptr
    - Curl_xfer_is_secure
    - ISBLANK
    - Curl_sasl_decode_mech
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_capability_resp(struct Curl_easy *data,\n                                           struct
      imap_conn *imapc,\n                                           int imapcode,\n
      \                                          imapstate instate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/imap.c:1113,1
    - Dst: imap_perform_authentication
      Src: /src/curl/lib/imap.c:1117,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1098
    functionDepth: 10
    functionLinenumber: 1098
    functionLinenumberEnd: 1123
    functionName: imap_state_starttls_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_perform_authentication
    - imap_state
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_starttls_resp(struct Curl_easy *data,\n                                         struct
      imap_conn *imapc,\n                                         int imapcode,\n
      \                                        imapstate instate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sasl_continue
      Src: /src/curl/lib/imap.c:1136,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1140,1
    - Dst: imap_perform_login
      Src: /src/curl/lib/imap.c:1145,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:1147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1126
    functionDepth: 9
    functionLinenumber: 1126
    functionLinenumberEnd: 1156
    functionName: imap_state_auth_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - imap_perform_login
    - Curl_sasl_continue
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_auth_resp(struct Curl_easy *data,\n                                     struct
      imap_conn *imapc,\n                                     int imapcode,\n                                     imapstate
      instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/imap.c:1168,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1176
    functionName: imap_state_login_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_login_resp(struct Curl_easy *data,\n                                      struct
      imap_conn *imapc,\n                                      int imapcode,\n                                      imapstate
      instate)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/curl/lib/imap.c:1185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - params
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1195
    functionName: is_custom_fetch_listing_match
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - ISDIGIT
    linkageType: ''
    returnType: bool
    signature: bool is_custom_fetch_listing_match(const char *params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:1202,1
    - Dst: is_custom_fetch_listing_match
      Src: /src/curl/lib/imap.c:1204,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:1206,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/imap.c:1207,1
    - Dst: is_custom_fetch_listing_match
      Src: /src/curl/lib/imap.c:1209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - imap
    argTypes:
    - struct IMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1213
    functionName: is_custom_fetch_listing
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - is_custom_fetch_listing_match
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: bool is_custom_fetch_listing(struct IMAP *imap)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:1222,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/imap.c:1224,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/imap.c:1226,1
    - Dst: is_custom_fetch_listing
      Src: /src/curl/lib/imap.c:1231,1
    - Dst: memchr
      Src: /src/curl/lib/imap.c:1237,1
    - Dst: imap_find_literal
      Src: /src/curl/lib/imap.c:1239,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/imap.c:1244,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/imap.c:1245,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/imap.c:1250,1
    - Dst: infof
      Src: /src/curl/lib/imap.c:1254,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/imap.c:1257,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/imap.c:1268,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/imap.c:1277,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:1278,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/imap.c:1288,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/imap.c:1292,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/imap.c:1308,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/imap.c:1312,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/imap.c:1318,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1321,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/imap.c:1325,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/imap.c:1330,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1337,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1216
    functionDepth: 3
    functionLinenumber: 1216
    functionLinenumberEnd: 1340
    functionName: imap_state_listsearch_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - curlx_str_single
    - DEBUGASSERT
    - Curl_xfer_setup_nop
    - Curl_pgrsSetDownloadSize
    - imap_find_literal
    - Curl_client_write
    - memchr
    - curlx_dyn_len
    - curlx_str_number
    - infof
    - curlx_dyn_ptr
    - Curl_meta_get
    - is_custom_fetch_listing
    - curlx_dyn_reset
    - curlx_dyn_tail
    - Curl_xfer_setup_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_listsearch_resp(struct Curl_easy *data,\n                                           struct
      imap_conn *imapc,\n                                           int imapcode,\n
      \                                          imapstate instate)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:1354,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/imap.c:1355,1
    - Dst: checkprefix
      Src: /src/curl/lib/imap.c:1356,1
    - Dst: strlen
      Src: /src/curl/lib/imap.c:1358,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/imap.c:1359,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:1369,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/imap.c:1374,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/imap.c:1375,1
    - Dst: imap_perform_list
      Src: /src/curl/lib/imap.c:1380,1
    - Dst: imap_perform_search
      Src: /src/curl/lib/imap.c:1382,1
    - Dst: imap_perform_fetch
      Src: /src/curl/lib/imap.c:1384,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:1388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 5
    argNames:
    - data
    - imapc
    - imap
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - struct IMAP*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1343
    functionDepth: 9
    functionLinenumber: 1343
    functionLinenumberEnd: 1393
    functionName: imap_state_select_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_perform_list
    - checkprefix
    - failf
    - DEBUGASSERT
    - curlx_dyn_len
    - curlx_str_number
    - curlx_strdup
    - curlx_dyn_ptr
    - imap_perform_search
    - imap_perform_fetch
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_select_resp(struct Curl_easy *data,\n                                       struct
      imap_conn *imapc,\n                                       struct IMAP *imap,\n
      \                                      int imapcode,\n                                       imapstate
      instate)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:1403,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/imap.c:1411,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1412,1
    - Dst: imap_find_literal
      Src: /src/curl/lib/imap.c:1418,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/imap.c:1421,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/imap.c:1422,1
    - Dst: infof
      Src: /src/curl/lib/imap.c:1427,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/imap.c:1428,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/imap.c:1437,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1446,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/imap.c:1449,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/imap.c:1450,1
    - Dst: infof
      Src: /src/curl/lib/imap.c:1454,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/imap.c:1461,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/imap.c:1466,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/imap.c:1472,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/imap.c:1476,1
    - Dst: failf
      Src: /src/curl/lib/imap.c:1481,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1486,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1396
    functionDepth: 3
    functionLinenumber: 1396
    functionLinenumberEnd: 1489
    functionName: imap_state_fetch_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - curlx_str_single
    - failf
    - Curl_xfer_setup_nop
    - Curl_pgrsSetDownloadSize
    - imap_find_literal
    - Curl_client_write
    - Curl_xfer_setup_recv
    - curlx_str_number
    - infof
    - curlx_dyn_ptr
    - curlx_dyn_reset
    - curlx_dyn_tail
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_fetch_resp(struct Curl_easy *data,\n                                      struct
      imap_conn *imapc,\n                                      int imapcode,\n                                      imapstate
      instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1492
    functionDepth: 2
    functionLinenumber: 1492
    functionLinenumberEnd: 1508
    functionName: imap_state_fetch_final_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_fetch_final_resp(struct Curl_easy *data,\n                                            struct
      imap_conn *imapc,\n                                            int imapcode,\n
      \                                           imapstate instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/imap.c:1524,1
    - Dst: Curl_xfer_setup_send
      Src: /src/curl/lib/imap.c:1527,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1511
    functionDepth: 3
    functionLinenumber: 1511
    functionLinenumberEnd: 1534
    functionName: imap_state_append_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - Curl_xfer_setup_send
    - Curl_pgrsSetUploadSize
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_append_resp(struct Curl_easy *data,\n                                       struct
      imap_conn *imapc,\n                                       int imapcode,\n                                       imapstate
      instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - data
    - imapc
    - imapcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - int
    - imapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1537
    functionDepth: 2
    functionLinenumber: 1537
    functionLinenumberEnd: 1553
    functionName: imap_state_append_final_resp
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_state_append_final_resp(struct Curl_easy *data,\n                                             struct
      imap_conn *imapc,\n                                             int imapcode,\n
      \                                            imapstate instate)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:1560,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/imap.c:1561,1
    - Dst: imap_perform_upgrade_tls
      Src: /src/curl/lib/imap.c:1571,1
    - Dst: Curl_pp_flushsend
      Src: /src/curl/lib/imap.c:1578,1
    - Dst: Curl_pp_readresp
      Src: /src/curl/lib/imap.c:1582,1
    - Dst: imap_state_servergreet_resp
      Src: /src/curl/lib/imap.c:1596,1
    - Dst: imap_state_capability_resp
      Src: /src/curl/lib/imap.c:1601,1
    - Dst: imap_state_starttls_resp
      Src: /src/curl/lib/imap.c:1605,1
    - Dst: imap_state_auth_resp
      Src: /src/curl/lib/imap.c:1613,1
    - Dst: imap_state_login_resp
      Src: /src/curl/lib/imap.c:1617,1
    - Dst: imap_state_listsearch_resp
      Src: /src/curl/lib/imap.c:1622,1
    - Dst: imap_state_select_resp
      Src: /src/curl/lib/imap.c:1626,1
    - Dst: imap_state_fetch_resp
      Src: /src/curl/lib/imap.c:1631,1
    - Dst: imap_state_fetch_final_resp
      Src: /src/curl/lib/imap.c:1635,1
    - Dst: imap_state_append_resp
      Src: /src/curl/lib/imap.c:1640,1
    - Dst: imap_state_append_final_resp
      Src: /src/curl/lib/imap.c:1644,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1651,1
    - Dst: Curl_pp_moredata
      Src: /src/curl/lib/imap.c:1654,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1555
    functionDepth: 11
    functionLinenumber: 1555
    functionLinenumberEnd: 1657
    functionName: imap_pp_statemachine
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - imap_state_capability_resp
    - imap_state_login_resp
    - Curl_pp_flushsend
    - Curl_pp_moredata
    - Curl_conn_meta_get
    - imap_state_fetch_final_resp
    - Curl_meta_get
    - imap_state_starttls_resp
    - imap_perform_upgrade_tls
    - imap_state_auth_resp
    - imap_state_fetch_resp
    - imap_state_servergreet_resp
    - Curl_pp_readresp
    - imap_state_append_resp
    - imap_state_listsearch_resp
    - imap_state_append_final_resp
    - imap_state_select_resp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_pp_statemachine(struct Curl_easy *data,\n                                     struct
      connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:1664,1
    - Dst: Curl_pp_statemach
      Src: /src/curl/lib/imap.c:1669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1660
    functionDepth: 3
    functionLinenumber: 1660
    functionLinenumberEnd: 1673
    functionName: imap_multi_statemach
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_pp_statemach
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode imap_multi_statemach(struct Curl_easy *data, bool *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_statemach
      Src: /src/curl/lib/imap.c:1682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - data
    - imapc
    - disconnecting
    argTypes:
    - struct Curl_easy*
    - struct imap_conn*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1675
    functionDepth: 3
    functionLinenumber: 1675
    functionLinenumberEnd: 1685
    functionName: imap_block_statemach
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_pp_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_block_statemach(struct Curl_easy *data,\n                                     struct
      imap_conn *imapc,\n                                     bool disconnecting)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:1692,1
    - Dst: Curl_pp_pollset
      Src: /src/curl/lib/imap.c:1693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1688
    functionDepth: 2
    functionLinenumber: 1688
    functionLinenumberEnd: 1694
    functionName: imap_pollset
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_pp_pollset
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_pollset(struct Curl_easy *data,\n                             struct
      easy_pollset *ps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:1698,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:1699,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:1700,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:1701,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:1702,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:1703,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:1704,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - imap
    argTypes:
    - struct IMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1696
    functionDepth: 1
    functionLinenumber: 1696
    functionLinenumberEnd: 1709
    functionName: imap_easy_reset
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void imap_easy_reset(struct IMAP *imap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISALNUM
      Src: /src/curl/lib/imap.c:1722,1
    - Dst: strchr
      Src: /src/curl/lib/imap.c:1722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1718
    functionDepth: 1
    functionLinenumber: 1718
    functionLinenumberEnd: 1723
    functionName: imap_is_bchar
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - ISALNUM
    - strchr
    linkageType: ''
    returnType: bool
    signature: bool imap_is_bchar(char ch)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/imap.c:1750,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/imap.c:1755,1
    - Dst: Curl_sasl_parse_url_auth_option
      Src: /src/curl/lib/imap.c:1757,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - conn
    - imapc
    argTypes:
    - struct connectdata*
    - struct imap_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1731
    functionDepth: 1
    functionLinenumber: 1731
    functionLinenumberEnd: 1786
    functionName: imap_parse_url_options
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_parse_url_auth_option
    - curl_strnequal
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_parse_url_options(struct connectdata *conn,\n                                       struct
      imap_conn *imapc)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: imap_is_bchar
      Src: /src/curl/lib/imap.c:1804,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/imap.c:1813,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/imap.c:1836,1
    - Dst: imap_is_bchar
      Src: /src/curl/lib/imap.c:1843,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/imap.c:1847,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:1850,1
    - Dst: DEBUGF
      Src: /src/curl/lib/imap.c:1854,1
    - Dst: infof
      Src: /src/curl/lib/imap.c:1854,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:1864,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/imap.c:1867,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:1871,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:1873,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:1876,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:1879,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:1882,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:1886,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:1887,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:1893,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:1894,1
    - Dst: curl_url_get
      Src: /src/curl/lib/imap.c:1901,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 66
    argCount: 2
    argNames:
    - data
    - imap
    argTypes:
    - struct Curl_easy*
    - struct IMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1795
    functionDepth: 2
    functionLinenumber: 1795
    functionLinenumberEnd: 1912
    functionName: imap_parse_url_path
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_urldecode
    - imap_is_bchar
    - curlx_str_number
    - infof
    - curlx_free
    - curl_strequal
    - curl_url_get
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_parse_url_path(struct Curl_easy *data,\n                                    struct
      IMAP *imap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_urldecode
      Src: /src/curl/lib/imap.c:1928,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/imap.c:1938,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - data
    - imap
    argTypes:
    - struct Curl_easy*
    - struct IMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1920
    functionDepth: 2
    functionLinenumber: 1920
    functionLinenumberEnd: 1948
    functionName: imap_parse_custom_request
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - curlx_strdup
    - Curl_urldecode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_parse_custom_request(struct Curl_easy *data,\n                                          struct
      IMAP *imap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:1963,1
    - Dst: imap_parse_url_options
      Src: /src/curl/lib/imap.c:1971,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:1976,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/imap.c:1979,1
    - Dst: STRCONST
      Src: /src/curl/lib/imap.c:1979,1
    - Dst: imap_multi_statemach
      Src: /src/curl/lib/imap.c:1981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1960
    functionDepth: 4
    functionLinenumber: 1960
    functionLinenumberEnd: 1984
    functionName: imap_connect
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - STRCONST
    - imap_parse_url_options
    - imap_multi_statemach
    - curlx_strcopy
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode imap_connect(struct Curl_easy *data, bool *done)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:2000,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/imap.c:2001,1
    - Dst: connclose
      Src: /src/curl/lib/imap.c:2011,1
    - Dst: IS_MIME_POST
      Src: /src/curl/lib/imap.c:2017,1
    - Dst: IS_MIME_POST
      Src: /src/curl/lib/imap.c:2022,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:2023,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/imap.c:2026,1
    - Dst: imap_state
      Src: /src/curl/lib/imap.c:2028,1
    - Dst: imap_block_statemach
      Src: /src/curl/lib/imap.c:2033,1
    - Dst: imap_easy_reset
      Src: /src/curl/lib/imap.c:2036,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 1995
    functionDepth: 4
    functionLinenumber: 1995
    functionLinenumberEnd: 2038
    functionName: imap_done
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_state
    - IS_MIME_POST
    - imap_block_statemach
    - Curl_conn_meta_get
    - Curl_meta_get
    - Curl_pp_sendf
    - connclose
    - imap_easy_reset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_done(struct Curl_easy *data, CURLcode status,\n                          bool
      premature)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:2053,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/imap.c:2054,1
    - Dst: DEBUGF
      Src: /src/curl/lib/imap.c:2057,1
    - Dst: infof
      Src: /src/curl/lib/imap.c:2057,1
    - Dst: curl_strequal
      Src: /src/curl/lib/imap.c:2071,1
    - Dst: IS_MIME_POST
      Src: /src/curl/lib/imap.c:2077,1
    - Dst: imap_perform_append
      Src: /src/curl/lib/imap.c:2079,1
    - Dst: imap_perform_list
      Src: /src/curl/lib/imap.c:2082,1
    - Dst: imap_perform_fetch
      Src: /src/curl/lib/imap.c:2085,1
    - Dst: imap_perform_search
      Src: /src/curl/lib/imap.c:2088,1
    - Dst: imap_perform_select
      Src: /src/curl/lib/imap.c:2092,1
    - Dst: imap_perform_list
      Src: /src/curl/lib/imap.c:2095,1
    - Dst: imap_multi_statemach
      Src: /src/curl/lib/imap.c:2101,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/imap.c:2103,1
    - Dst: DEBUGF
      Src: /src/curl/lib/imap.c:2106,1
    - Dst: infof
      Src: /src/curl/lib/imap.c:2106,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 28
    argCount: 3
    argNames:
    - data
    - connected
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2047
    functionDepth: 9
    functionLinenumber: 2047
    functionLinenumberEnd: 2109
    functionName: imap_perform
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - IS_MIME_POST
    - imap_perform_list
    - imap_multi_statemach
    - imap_perform_search
    - infof
    - Curl_conn_meta_get
    - curl_strequal
    - Curl_meta_get
    - imap_perform_fetch
    - imap_perform_append
    - DEBUGF
    - imap_perform_select
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_perform(struct Curl_easy *data, bool *connected,\n                             bool
      *dophase_done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/imap.c:2120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - imap
    - connected
    argTypes:
    - struct Curl_easy*
    - struct IMAP*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2112
    functionDepth: 3
    functionLinenumber: 2112
    functionLinenumberEnd: 2123
    functionName: imap_dophase_done
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_setup_nop
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_dophase_done(struct Curl_easy *data,\n                                  struct
      IMAP *imap,\n                                  bool connected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsReset
      Src: /src/curl/lib/imap.c:2145,1
    - Dst: imap_perform
      Src: /src/curl/lib/imap.c:2148,1
    - Dst: imap_dophase_done
      Src: /src/curl/lib/imap.c:2152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - imap
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - struct IMAP*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2134
    functionDepth: 10
    functionLinenumber: 2134
    functionLinenumberEnd: 2155
    functionName: imap_regular_transfer
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_dophase_done
    - imap_perform
    - Curl_pgrsReset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_regular_transfer(struct Curl_easy *data,\n                                      struct
      IMAP *imap,\n                                      bool *dophase_done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/imap.c:2168,1
    - Dst: imap_parse_url_path
      Src: /src/curl/lib/imap.c:2175,1
    - Dst: imap_parse_custom_request
      Src: /src/curl/lib/imap.c:2180,1
    - Dst: imap_regular_transfer
      Src: /src/curl/lib/imap.c:2184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2166
    functionDepth: 11
    functionLinenumber: 2166
    functionLinenumberEnd: 2187
    functionName: imap_do
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - imap_regular_transfer
    - imap_parse_url_path
    - imap_parse_custom_request
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode imap_do(struct Curl_easy *data, bool *done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/imap.c:2199,1
    - Dst: Curl_pp_needs_flush
      Src: /src/curl/lib/imap.c:2207,1
    - Dst: imap_perform_logout
      Src: /src/curl/lib/imap.c:2208,1
    - Dst: imap_block_statemach
      Src: /src/curl/lib/imap.c:2209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2196
    functionDepth: 9
    functionLinenumber: 2196
    functionLinenumberEnd: 2213
    functionName: imap_disconnect
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_pp_needs_flush
    - imap_perform_logout
    - imap_block_statemach
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_disconnect(struct Curl_easy *data,\n                                struct
      connectdata *conn, bool dead_connection)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/imap.c:2218,1
    - Dst: imap_multi_statemach
      Src: /src/curl/lib/imap.c:2224,1
    - Dst: DEBUGF
      Src: /src/curl/lib/imap.c:2226,1
    - Dst: infof
      Src: /src/curl/lib/imap.c:2226,1
    - Dst: imap_dophase_done
      Src: /src/curl/lib/imap.c:2228,1
    - Dst: DEBUGF
      Src: /src/curl/lib/imap.c:2230,1
    - Dst: infof
      Src: /src/curl/lib/imap.c:2230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2216
    functionDepth: 4
    functionLinenumber: 2216
    functionLinenumberEnd: 2234
    functionName: imap_doing
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - imap_dophase_done
    - imap_multi_statemach
    - infof
    - Curl_meta_get
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode imap_doing(struct Curl_easy *data, bool *dophase_done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imap_easy_reset
      Src: /src/curl/lib/imap.c:2241,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:2242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2236
    functionDepth: 2
    functionLinenumber: 2236
    functionLinenumberEnd: 2243
    functionName: imap_easy_dtor
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - imap_easy_reset
    linkageType: ''
    returnType: void
    signature: void imap_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_disconnect
      Src: /src/curl/lib/imap.c:2250,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/imap.c:2251,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/imap.c:2252,1
    - Dst: curlx_free
      Src: /src/curl/lib/imap.c:2253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2245
    functionDepth: 2
    functionLinenumber: 2245
    functionLinenumberEnd: 2254
    functionName: imap_conn_dtor
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    - curlx_dyn_free
    - Curl_pp_disconnect
    linkageType: ''
    returnType: void
    signature: void imap_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/imap.c:2277,1
    - Dst: PINGPONG_SETUP
      Src: /src/curl/lib/imap.c:2282,1
    - Dst: Curl_sasl_init
      Src: /src/curl/lib/imap.c:2286,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/imap.c:2288,1
    - Dst: Curl_pp_init
      Src: /src/curl/lib/imap.c:2289,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/imap.c:2289,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/imap.c:2291,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/imap.c:2294,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/imap.c:2296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2270
    functionDepth: 2
    functionLinenumber: 2270
    functionLinenumberEnd: 2300
    functionName: imap_setup_connection
    functionSourceFile: /src/curl/lib/imap.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_init
    - PINGPONG_SETUP
    - curlx_dyn_init
    - Curl_pgrs_now
    - Curl_meta_set
    - curlx_calloc
    - Curl_conn_meta_set
    - Curl_pp_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode imap_setup_connection(struct Curl_easy *data,\n                                      struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: memrchr
    functionSourceFile: /src/curl/lib/curl_memrchr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memrchr(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: Curl_httpsrr_trace
    functionSourceFile: /src/curl/lib/httpsrr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_httpsrr_trace(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: slist_get_last
    functionSourceFile: /src/curl/lib/slist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *slist_get_last(struct curl_slist *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/slist.c:60,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/slist.c:62,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/slist.c:67,1
    - Dst: slist_get_last
      Src: /src/curl/lib/slist.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - struct curl_slist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 76
    functionName: Curl_slist_append_nodup
    functionSourceFile: /src/curl/lib/slist.c
    functionUses: 2
    functionsReached:
    - curlx_malloc
    - slist_get_last
    - DEBUGASSERT
    - CURL_UNCONST
    linkageType: ''
    returnType: struct curl_slist
    signature: "struct curl_slist *Curl_slist_append_nodup(struct curl_slist *list,\n
      \                                          const char *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strdup
      Src: /src/curl/lib/slist.c:87,1
    - Dst: Curl_slist_append_nodup
      Src: /src/curl/lib/slist.c:92,1
    - Dst: curlx_free
      Src: /src/curl/lib/slist.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - struct curl_slist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: curl_slist_append
    functionSourceFile: /src/curl/lib/slist.c
    functionUses: 105
    functionsReached:
    - curlx_free
    - Curl_slist_append_nodup
    - curlx_strdup
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *curl_slist_append(struct curl_slist *list, const
      char *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/lib/slist.c:110,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/slist.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - inlist
    argTypes:
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: Curl_slist_duplicate
    functionSourceFile: /src/curl/lib/slist.c
    functionUses: 2
    functionsReached:
    - curl_slist_append
    - curl_slist_free_all
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *Curl_slist_duplicate(struct curl_slist *inlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/slist.c:135,1
    - Dst: curlx_free
      Src: /src/curl/lib/slist.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 139
    functionName: curl_slist_free_all
    functionSourceFile: /src/curl/lib/slist.c
    functionUses: 125
    functionsReached:
    - curlx_safefree
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void curl_slist_free_all(struct curl_slist *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: IS_SEP
    functionSourceFile: /src/curl/lib/curl_fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: IS_SEP
    functionSourceFile: /src/curl/lib/curl_fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: IS_SEP
    functionSourceFile: /src/curl/lib/curl_fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SEP(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_fopen.c:59,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/curl_fopen.c:60,1
    - Dst: strlen
      Src: /src/curl/lib/curl_fopen.c:61,1
    - Dst: IS_SEP
      Src: /src/curl/lib/curl_fopen.c:64,1
    - Dst: IS_SEP
      Src: /src/curl/lib/curl_fopen.c:67,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/curl_fopen.c:70,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/curl_fopen.c:73,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/curl_fopen.c:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 76
    functionName: dirslash
    functionSourceFile: /src/curl/lib/curl_fopen.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - DEBUGASSERT
    - curlx_dyn_ptr
    - IS_SEP
    - strlen
    linkageType: ''
    returnType: char
    signature: char *dirslash(const char *path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/lib/curl_fopen.c:99,1
    - Dst: curlx_fstat
      Src: /src/curl/lib/curl_fopen.c:102,1
    - Dst: fileno
      Src: /src/curl/lib/curl_fopen.c:102,1
    - Dst: S_ISREG
      Src: /src/curl/lib/curl_fopen.c:102,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/curl_fopen.c:105,1
    - Dst: geteuid
      Src: /src/curl/lib/curl_fopen.c:110,1
    - Dst: Curl_rand_alnum
      Src: /src/curl/lib/curl_fopen.c:116,1
    - Dst: dirslash
      Src: /src/curl/lib/curl_fopen.c:120,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/curl_fopen.c:124,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_fopen.c:125,1
    - Dst: curlx_open
      Src: /src/curl/lib/curl_fopen.c:135,1
    - Dst: curlx_open
      Src: /src/curl/lib/curl_fopen.c:139,1
    - Dst: curlx_open
      Src: /src/curl/lib/curl_fopen.c:142,1
    - Dst: curlx_fdopen
      Src: /src/curl/lib/curl_fopen.c:148,1
    - Dst: curlx_close
      Src: /src/curl/lib/curl_fopen.c:157,1
    - Dst: unlink
      Src: /src/curl/lib/curl_fopen.c:158,1
    - Dst: curlx_free
      Src: /src/curl/lib/curl_fopen.c:161,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 4
    argNames:
    - data
    - filename
    - fh
    - tempname
    argTypes:
    - struct Curl_easy*
    - char*
    - FILE**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 85
    functionDepth: 7
    functionLinenumber: 85
    functionLinenumberEnd: 163
    functionName: Curl_fopen
    functionSourceFile: /src/curl/lib/curl_fopen.c
    functionUses: 1
    functionsReached:
    - curlx_fclose
    - curlx_close
    - curl_maprintf
    - curlx_fdopen
    - S_ISREG
    - curlx_fopen
    - curlx_free
    - curlx_open
    - unlink
    - curlx_fstat
    - geteuid
    - dirslash
    - Curl_rand_alnum
    - fileno
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_fopen(struct Curl_easy *data, const char *filename,\n
      \                   FILE **fh, char **tempname)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/curl_sasl.c:89,1
    - Dst: ISUPPER
      Src: /src/curl/lib/curl_sasl.c:97,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/curl_sasl.c:97,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - maxlen
    - len
    argTypes:
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: Curl_sasl_decode_mech
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 2
    functionsReached:
    - ISDIGIT
    - ISUPPER
    - curl_strnequal
    linkageType: ''
    returnType: unsigned short
    signature: "unsigned short Curl_sasl_decode_mech(const char *ptr, size_t maxlen,\n
      \                                    size_t *len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/curl/lib/curl_sasl.c:124,1
    - Dst: Curl_sasl_decode_mech
      Src: /src/curl/lib/curl_sasl.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - sasl
    - value
    - len
    argTypes:
    - struct SASL*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 135
    functionName: Curl_sasl_parse_url_auth_option
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 2
    functionsReached:
    - strncmp
    - Curl_sasl_decode_mech
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_sasl_parse_url_auth_option(struct SASL *sasl,\n                                         const
      char *value, size_t len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - sasl
    - data
    - params
    argTypes:
    - struct SASL*
    - struct Curl_easy*
    - struct SASLproto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 176
    functionName: Curl_sasl_init
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Curl_sasl_init(struct SASL *sasl, struct Curl_easy *data,\n                    const
      struct SASLproto *params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/curl_sasl.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sasl
    - data
    - newstate
    argTypes:
    - struct SASL*
    - struct Curl_easy*
    - saslstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 218
    functionName: sasl_state
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - infof
    linkageType: ''
    returnType: void
    signature: "void sasl_state(struct SASL *sasl, struct Curl_easy *data,\n                       saslstate
      newstate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct SASL*::params::getmessage
      Src: /src/curl/lib/curl_sasl.c:228,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/curl_sasl.c:230,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/curl_sasl.c:233,1
    - Dst: curlx_base64_decode
      Src: /src/curl/lib/curl_sasl.c:238,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/curl_sasl.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - sasl
    - data
    - out
    argTypes:
    - struct SASL*
    - struct Curl_easy*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 244
    functionName: get_server_message
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_ptr
    - struct SASL*::params::getmessage
    - Curl_bufref_set
    - curlx_base64_decode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode get_server_message(struct SASL *sasl, struct Curl_easy *data,\n
      \                                  struct bufref *out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/curl_sasl.c:253,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/curl_sasl.c:254,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/curl_sasl.c:255,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/curl_sasl.c:256,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/curl_sasl.c:261,1
    - Dst: Curl_bufref_uptr
      Src: /src/curl/lib/curl_sasl.c:261,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/curl_sasl.c:262,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/curl_sasl.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - sasl
    - msg
    argTypes:
    - struct SASL*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: build_message
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_set
    - curlx_base64_encode
    - Curl_bufref_len
    - Curl_bufref_uptr
    - Curl_bufref_ptr
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode build_message(struct SASL *sasl, struct bufref *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sasl
    - data
    argTypes:
    - struct SASL*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: Curl_sasl_can_authenticate
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_sasl_can_authenticate(struct SASL *sasl, struct Curl_easy
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_passwd
      Src: /src/curl/lib/curl_sasl.c:303,1
    - Dst: Curl_auth_create_external_message
      Src: /src/curl/lib/curl_sasl.c:309,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/curl_sasl.c:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - data
    - sctx
    argTypes:
    - struct Curl_easy*
    - struct sasl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 314
    functionName: sasl_choose_external
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_creds_user
    - Curl_creds_has_passwd
    - Curl_auth_create_external_message
    linkageType: ''
    returnType: bool
    signature: bool sasl_choose_external(struct Curl_easy *data, struct sasl_ctx *sctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_is_gssapi_supported
      Src: /src/curl/lib/curl_sasl.c:320,1
    - Dst: Curl_auth_user_contains_domain
      Src: /src/curl/lib/curl_sasl.c:321,1
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/curl_sasl.c:322,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/curl_sasl.c:323,1
    - Dst: Curl_auth_krb5_get
      Src: /src/curl/lib/curl_sasl.c:332,1
    - Dst: Curl_auth_create_gssapi_user_message
      Src: /src/curl/lib/curl_sasl.c:334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - data
    - sctx
    argTypes:
    - struct Curl_easy*
    - struct sasl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 343
    functionName: sasl_choose_krb5
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_auth_create_gssapi_user_message
    - Curl_auth_krb5_get
    - Curl_auth_is_gssapi_supported
    - Curl_creds_sasl_service
    - Curl_creds_has_sasl_service
    - Curl_auth_user_contains_domain
    linkageType: ''
    returnType: bool
    signature: bool sasl_choose_krb5(struct Curl_easy *data, struct sasl_ctx *sctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_gsasl_get
      Src: /src/curl/lib/curl_sasl.c:354,1
    - Dst: Curl_auth_gsasl_is_supported
      Src: /src/curl/lib/curl_sasl.c:361,1
    - Dst: Curl_auth_gsasl_is_supported
      Src: /src/curl/lib/curl_sasl.c:367,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/curl_sasl.c:375,1
    - Dst: Curl_auth_gsasl_start
      Src: /src/curl/lib/curl_sasl.c:378,1
    - Dst: Curl_auth_gsasl_token
      Src: /src/curl/lib/curl_sasl.c:380,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - data
    - sctx
    argTypes:
    - struct Curl_easy*
    - struct sasl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 384
    functionName: sasl_choose_gsasl
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_auth_gsasl_token
    - Curl_bufref_init
    - Curl_auth_gsasl_get
    - Curl_auth_gsasl_start
    - Curl_auth_gsasl_is_supported
    linkageType: ''
    returnType: bool
    signature: bool sasl_choose_gsasl(struct Curl_easy *data, struct sasl_ctx *sctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_is_digest_supported
      Src: /src/curl/lib/curl_sasl.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - data
    - sctx
    argTypes:
    - struct Curl_easy*
    - struct sasl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 406
    functionName: sasl_choose_digest
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_auth_is_digest_supported
    linkageType: ''
    returnType: bool
    signature: bool sasl_choose_digest(struct Curl_easy *data, struct sasl_ctx *sctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_is_ntlm_supported
      Src: /src/curl/lib/curl_sasl.c:413,1
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/curl_sasl.c:414,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/curl_sasl.c:415,1
    - Dst: Curl_conn_get_current_host
      Src: /src/curl/lib/curl_sasl.c:418,1
    - Dst: Curl_auth_ntlm_get
      Src: /src/curl/lib/curl_sasl.c:426,1
    - Dst: Curl_auth_create_ntlm_type1_message
      Src: /src/curl/lib/curl_sasl.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - data
    - sctx
    argTypes:
    - struct Curl_easy*
    - struct sasl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 435
    functionName: sasl_choose_ntlm
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_creds_sasl_service
    - Curl_auth_ntlm_get
    - Curl_creds_has_sasl_service
    - Curl_auth_is_ntlm_supported
    - Curl_conn_get_current_host
    - Curl_auth_create_ntlm_type1_message
    linkageType: ''
    returnType: bool
    signature: bool sasl_choose_ntlm(struct Curl_easy *data, struct sasl_ctx *sctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_oauth_bearer
      Src: /src/curl/lib/curl_sasl.c:440,1
    - Dst: Curl_conn_get_current_host
      Src: /src/curl/lib/curl_sasl.c:444,1
    - Dst: Curl_auth_create_oauth_bearer_message
      Src: /src/curl/lib/curl_sasl.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - sctx
    argTypes:
    - struct Curl_easy*
    - struct sasl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 458
    functionName: sasl_choose_oauth
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_creds_has_oauth_bearer
    - Curl_conn_get_current_host
    - Curl_auth_create_oauth_bearer_message
    linkageType: ''
    returnType: bool
    signature: bool sasl_choose_oauth(struct Curl_easy *data, struct sasl_ctx *sctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_oauth_bearer
      Src: /src/curl/lib/curl_sasl.c:462,1
    - Dst: Curl_auth_create_xoauth_bearer_message
      Src: /src/curl/lib/curl_sasl.c:469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - data
    - sctx
    argTypes:
    - struct Curl_easy*
    - struct sasl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 474
    functionName: sasl_choose_oauth2
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_creds_has_oauth_bearer
    - Curl_auth_create_xoauth_bearer_message
    linkageType: ''
    returnType: bool
    signature: bool sasl_choose_oauth2(struct Curl_easy *data, struct sasl_ctx *sctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_create_plain_message
      Src: /src/curl/lib/curl_sasl.c:485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - data
    - sctx
    argTypes:
    - struct Curl_easy*
    - struct sasl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 489
    functionName: sasl_choose_plain
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_auth_create_plain_message
    linkageType: ''
    returnType: bool
    signature: bool sasl_choose_plain(struct Curl_easy *data, struct sasl_ctx *sctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_create_login_message
      Src: /src/curl/lib/curl_sasl.c:500,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/curl_sasl.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sctx
    argTypes:
    - struct Curl_easy*
    - struct sasl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 505
    functionName: sasl_choose_login
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_creds_user
    - Curl_auth_create_login_message
    linkageType: ''
    returnType: bool
    signature: bool sasl_choose_login(struct Curl_easy *data, struct sasl_ctx *sctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/curl_sasl.c:521,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/curl_sasl.c:524,1
    - Dst: sasl_choose_external
      Src: /src/curl/lib/curl_sasl.c:531,1
    - Dst: sasl_choose_krb5
      Src: /src/curl/lib/curl_sasl.c:533,1
    - Dst: sasl_choose_gsasl
      Src: /src/curl/lib/curl_sasl.c:536,1
    - Dst: sasl_choose_digest
      Src: /src/curl/lib/curl_sasl.c:539,1
    - Dst: sasl_choose_ntlm
      Src: /src/curl/lib/curl_sasl.c:542,1
    - Dst: sasl_choose_oauth
      Src: /src/curl/lib/curl_sasl.c:544,1
    - Dst: sasl_choose_oauth2
      Src: /src/curl/lib/curl_sasl.c:545,1
    - Dst: sasl_choose_plain
      Src: /src/curl/lib/curl_sasl.c:546,1
    - Dst: sasl_choose_login
      Src: /src/curl/lib/curl_sasl.c:547,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_sasl.c:549,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/curl_sasl.c:554,1
    - Dst: build_message
      Src: /src/curl/lib/curl_sasl.c:555,1
    - Dst: strlen
      Src: /src/curl/lib/curl_sasl.c:558,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/curl_sasl.c:558,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/curl_sasl.c:560,1
    - Dst: struct SASL*::params::sendauth
      Src: /src/curl/lib/curl_sasl.c:563,1
    - Dst: sasl_state
      Src: /src/curl/lib/curl_sasl.c:567,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/curl_sasl.c:567,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/curl_sasl.c:572,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 4
    argNames:
    - sasl
    - data
    - force_ir
    - progress
    argTypes:
    - struct SASL*
    - struct Curl_easy*
    - bool
    - saslprogress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 574
    functionName: Curl_sasl_start
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    - sasl_choose_gsasl
    - sasl_choose_krb5
    - sasl_state
    - Curl_bufref_init
    - sasl_choose_digest
    - sasl_choose_plain
    - Curl_bufref_ptr
    - build_message
    - sasl_choose_login
    - sasl_choose_external
    - sasl_choose_ntlm
    - memset
    - Curl_bufref_free
    - sasl_choose_oauth
    - sasl_choose_oauth2
    - struct SASL*::params::sendauth
    - Curl_bufref_len
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_sasl_start(struct SASL *sasl, struct Curl_easy *data,\n
      \                        bool force_ir, saslprogress *progress)"
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_get_current_host
      Src: /src/curl/lib/curl_sasl.c:592,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/curl_sasl.c:593,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/curl_sasl.c:594,1
    - Dst: sasl_state
      Src: /src/curl/lib/curl_sasl.c:601,1
    - Dst: sasl_state
      Src: /src/curl/lib/curl_sasl.c:608,1
    - Dst: Curl_auth_create_plain_message
      Src: /src/curl/lib/curl_sasl.c:617,1
    - Dst: Curl_auth_create_login_message
      Src: /src/curl/lib/curl_sasl.c:620,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/curl_sasl.c:620,1
    - Dst: Curl_auth_create_login_message
      Src: /src/curl/lib/curl_sasl.c:624,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/curl_sasl.c:624,1
    - Dst: Curl_auth_create_external_message
      Src: /src/curl/lib/curl_sasl.c:627,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/curl_sasl.c:627,1
    - Dst: get_server_message
      Src: /src/curl/lib/curl_sasl.c:631,1
    - Dst: Curl_auth_gsasl_get
      Src: /src/curl/lib/curl_sasl.c:633,1
    - Dst: Curl_auth_gsasl_token
      Src: /src/curl/lib/curl_sasl.c:635,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/curl_sasl.c:637,1
    - Dst: get_server_message
      Src: /src/curl/lib/curl_sasl.c:643,1
    - Dst: Curl_auth_create_cram_md5_message
      Src: /src/curl/lib/curl_sasl.c:645,1
    - Dst: get_server_message
      Src: /src/curl/lib/curl_sasl.c:649,1
    - Dst: Curl_auth_create_digest_md5_message
      Src: /src/curl/lib/curl_sasl.c:651,1
    - Dst: Curl_auth_ntlm_get
      Src: /src/curl/lib/curl_sasl.c:666,1
    - Dst: Curl_auth_create_ntlm_type1_message
      Src: /src/curl/lib/curl_sasl.c:668,1
    - Dst: Curl_auth_ntlm_get
      Src: /src/curl/lib/curl_sasl.c:676,1
    - Dst: get_server_message
      Src: /src/curl/lib/curl_sasl.c:678,1
    - Dst: Curl_auth_decode_ntlm_type2_message
      Src: /src/curl/lib/curl_sasl.c:680,1
    - Dst: Curl_auth_create_ntlm_type3_message
      Src: /src/curl/lib/curl_sasl.c:682,1
    - Dst: Curl_auth_krb5_get
      Src: /src/curl/lib/curl_sasl.c:690,1
    - Dst: Curl_auth_create_gssapi_user_message
      Src: /src/curl/lib/curl_sasl.c:692,1
    - Dst: get_server_message
      Src: /src/curl/lib/curl_sasl.c:701,1
    - Dst: Curl_auth_krb5_get
      Src: /src/curl/lib/curl_sasl.c:703,1
    - Dst: Curl_auth_create_gssapi_user_message
      Src: /src/curl/lib/curl_sasl.c:709,1
    - Dst: Curl_auth_create_gssapi_security_message
      Src: /src/curl/lib/curl_sasl.c:718,1
    - Dst: Curl_creds_sasl_authzid
      Src: /src/curl/lib/curl_sasl.c:719,1
    - Dst: get_server_message
      Src: /src/curl/lib/curl_sasl.c:725,1
    - Dst: Curl_auth_krb5_get
      Src: /src/curl/lib/curl_sasl.c:727,1
    - Dst: Curl_auth_create_gssapi_security_message
      Src: /src/curl/lib/curl_sasl.c:731,1
    - Dst: Curl_creds_sasl_authzid
      Src: /src/curl/lib/curl_sasl.c:732,1
    - Dst: Curl_auth_create_oauth_bearer_message
      Src: /src/curl/lib/curl_sasl.c:741,1
    - Dst: Curl_auth_create_xoauth_bearer_message
      Src: /src/curl/lib/curl_sasl.c:750,1
    - Dst: sasl_state
      Src: /src/curl/lib/curl_sasl.c:759,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/curl_sasl.c:764,1
    - Dst: sasl_state
      Src: /src/curl/lib/curl_sasl.c:769,1
    - Dst: Curl_sasl_start
      Src: /src/curl/lib/curl_sasl.c:780,1
    - Dst: failf
      Src: /src/curl/lib/curl_sasl.c:782,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/curl_sasl.c:787,1
    - Dst: struct SASL*::params::cancelauth
      Src: /src/curl/lib/curl_sasl.c:792,1
    - Dst: build_message
      Src: /src/curl/lib/curl_sasl.c:796,1
    - Dst: struct SASL*::params::contauth
      Src: /src/curl/lib/curl_sasl.c:798,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/curl_sasl.c:806,1
    - Dst: sasl_state
      Src: /src/curl/lib/curl_sasl.c:808,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 144
    argCount: 4
    argNames:
    - sasl
    - data
    - code
    - progress
    argTypes:
    - struct SASL*
    - struct Curl_easy*
    - int
    - saslprogress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 811
    functionName: Curl_sasl_continue
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 2
    functionsReached:
    - get_server_message
    - Curl_auth_create_gssapi_security_message
    - Curl_auth_gsasl_token
    - Curl_bufref_set
    - Curl_auth_create_xoauth_bearer_message
    - Curl_sasl_start
    - Curl_creds_user
    - Curl_auth_create_cram_md5_message
    - Curl_conn_get_current_host
    - Curl_auth_create_oauth_bearer_message
    - Curl_creds_passwd
    - sasl_state
    - Curl_bufref_init
    - Curl_auth_create_ntlm_type3_message
    - build_message
    - Curl_auth_create_ntlm_type1_message
    - Curl_auth_create_gssapi_user_message
    - Curl_auth_create_digest_md5_message
    - failf
    - Curl_auth_ntlm_get
    - Curl_creds_sasl_authzid
    - Curl_auth_create_login_message
    - Curl_bufref_free
    - struct SASL*::params::cancelauth
    - Curl_auth_decode_ntlm_type2_message
    - Curl_auth_krb5_get
    - Curl_auth_create_plain_message
    - Curl_auth_gsasl_get
    - Curl_bufref_len
    - struct SASL*::params::contauth
    - Curl_auth_create_external_message
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_sasl_continue(struct SASL *sasl, struct Curl_easy *data,\n
      \                           int code, saslprogress *progress)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/curl_sasl.c:834,1
    - Dst: infof
      Src: /src/curl/lib/curl_sasl.c:836,1
    - Dst: infof
      Src: /src/curl/lib/curl_sasl.c:839,1
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/curl_sasl.c:840,1
    - Dst: infof
      Src: /src/curl/lib/curl_sasl.c:841,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 6
    argNames:
    - data
    - mech
    - enabledmechs
    - built_in
    - platform
    - param_missing
    argTypes:
    - struct Curl_easy*
    - unsigned short
    - unsigned short
    - bool
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 843
    functionName: sasl_unchosen
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 0
    functionsReached:
    - Curl_creds_has_user
    - infof
    linkageType: ''
    returnType: void
    signature: "void sasl_unchosen(struct Curl_easy *data, unsigned short mech,\n
      \                         unsigned short enabledmechs,\n                          bool
      built_in, bool platform,\n                          const char *param_missing)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/curl_sasl.c:876,1
    - Dst: infof
      Src: /src/curl/lib/curl_sasl.c:878,1
    - Dst: infof
      Src: /src/curl/lib/curl_sasl.c:881,1
    - Dst: Curl_creds_has_passwd
      Src: /src/curl/lib/curl_sasl.c:883,1
    - Dst: infof
      Src: /src/curl/lib/curl_sasl.c:884,1
    - Dst: sasl_unchosen
      Src: /src/curl/lib/curl_sasl.c:885,1
    - Dst: Curl_auth_is_gssapi_supported
      Src: /src/curl/lib/curl_sasl.c:886,1
    - Dst: sasl_unchosen
      Src: /src/curl/lib/curl_sasl.c:887,1
    - Dst: sasl_unchosen
      Src: /src/curl/lib/curl_sasl.c:889,1
    - Dst: sasl_unchosen
      Src: /src/curl/lib/curl_sasl.c:891,1
    - Dst: Curl_auth_is_digest_supported
      Src: /src/curl/lib/curl_sasl.c:892,1
    - Dst: sasl_unchosen
      Src: /src/curl/lib/curl_sasl.c:893,1
    - Dst: sasl_unchosen
      Src: /src/curl/lib/curl_sasl.c:895,1
    - Dst: Curl_auth_is_ntlm_supported
      Src: /src/curl/lib/curl_sasl.c:896,1
    - Dst: sasl_unchosen
      Src: /src/curl/lib/curl_sasl.c:897,1
    - Dst: Curl_creds_has_oauth_bearer
      Src: /src/curl/lib/curl_sasl.c:898,1
    - Dst: sasl_unchosen
      Src: /src/curl/lib/curl_sasl.c:900,1
    - Dst: Curl_creds_has_oauth_bearer
      Src: /src/curl/lib/curl_sasl.c:901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - sasl
    - data
    argTypes:
    - struct SASL*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 908
    functionName: Curl_sasl_is_blocked
    functionSourceFile: /src/curl/lib/curl_sasl.c
    functionUses: 2
    functionsReached:
    - Curl_creds_has_passwd
    - sasl_unchosen
    - Curl_auth_is_gssapi_supported
    - infof
    - Curl_creds_has_oauth_bearer
    - Curl_auth_is_digest_supported
    - Curl_auth_is_ntlm_supported
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sasl_is_blocked(struct SASL *sasl, struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wc_InitMd4
      Src: /src/curl/lib/md4.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: my_md4_init
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - wc_InitMd4
    linkageType: ''
    returnType: int
    signature: int my_md4_init(my_md4_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wc_Md4Update
      Src: /src/curl/lib/md4.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - my_md4_ctx*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: my_md4_update
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - wc_Md4Update
    linkageType: ''
    returnType: void
    signature: "void my_md4_update(my_md4_ctx *ctx,\n                          const
      void *input, unsigned long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wc_Md4Final
      Src: /src/curl/lib/md4.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: my_md4_final
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - wc_Md4Final
    linkageType: ''
    returnType: void
    signature: void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CC_MD4_Init
      Src: /src/curl/lib/md4.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: my_md4_init
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - CC_MD4_Init
    linkageType: ''
    returnType: int
    signature: int my_md4_init(my_md4_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CC_MD4_Update
      Src: /src/curl/lib/md4.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - my_md4_ctx*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: my_md4_update
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - CC_MD4_Update
    linkageType: ''
    returnType: void
    signature: "void my_md4_update(my_md4_ctx *ctx,\n                          const
      void *input, unsigned long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CC_MD4_Final
      Src: /src/curl/lib/md4.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: my_md4_final
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - CC_MD4_Final
    linkageType: ''
    returnType: void
    signature: void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/curl/lib/md4.c:125,1
    - Dst: CryptCreateHash
      Src: /src/curl/lib/md4.c:129,1
    - Dst: CryptReleaseContext
      Src: /src/curl/lib/md4.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: my_md4_init
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - CryptAcquireContext
    - CryptCreateHash
    - CryptReleaseContext
    linkageType: ''
    returnType: int
    signature: int my_md4_init(my_md4_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashData
      Src: /src/curl/lib/md4.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - my_md4_ctx*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: my_md4_update
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - CryptHashData
    linkageType: ''
    returnType: void
    signature: "void my_md4_update(my_md4_ctx *ctx,\n                          const
      void *input, unsigned long len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashParam
      Src: /src/curl/lib/md4.c:148,1
    - Dst: CryptGetHashParam
      Src: /src/curl/lib/md4.c:150,1
    - Dst: CryptDestroyHash
      Src: /src/curl/lib/md4.c:153,1
    - Dst: CryptReleaseContext
      Src: /src/curl/lib/md4.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: my_md4_final
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - CryptGetHashParam
    - CryptReleaseContext
    - CryptDestroyHash
    linkageType: ''
    returnType: void
    signature: void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md4_init
      Src: /src/curl/lib/md4.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: my_md4_init
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - md4_init
    linkageType: ''
    returnType: int
    signature: int my_md4_init(my_md4_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md4_update
      Src: /src/curl/lib/md4.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - my_md4_ctx*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: my_md4_update
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - md4_update
    linkageType: ''
    returnType: void
    signature: "void my_md4_update(my_md4_ctx *ctx,\n                          const
      void *input, unsigned long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md4_digest
      Src: /src/curl/lib/md4.c:180,1
    - Dst: md4_digest
      Src: /src/curl/lib/md4.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: my_md4_final
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - md4_digest
    linkageType: ''
    returnType: void
    signature: void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: MD4_F
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_F(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: MD4_G
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_G(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: MD4_H
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_H(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - f
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: MD4_STEP
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_STEP(f, a, b, c, d, x, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: MD4_SET
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_SET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: MD4_GET
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_GET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: MD4_SET
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_SET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: MD4_GET
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_GET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:284,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:284,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:285,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:285,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:286,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:286,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:287,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:287,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:288,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:288,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:289,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:289,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:290,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:290,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:291,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:291,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:292,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:292,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:293,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:293,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:294,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:294,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:295,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:295,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:296,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:296,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:297,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:297,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:298,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:298,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:299,1
    - Dst: MD4_SET
      Src: /src/curl/lib/md4.c:299,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:302,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:302,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:303,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:303,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:304,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:304,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:305,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:305,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:306,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:306,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:307,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:307,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:308,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:308,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:309,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:309,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:310,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:310,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:311,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:311,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:312,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:312,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:313,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:313,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:314,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:314,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:315,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:315,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:316,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:316,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:317,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:317,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:320,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:320,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:321,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:321,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:322,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:322,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:323,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:323,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:324,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:324,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:325,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:325,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:326,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:326,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:327,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:327,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:328,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:328,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:329,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:329,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:330,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:330,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:331,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:331,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:332,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:332,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:333,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:333,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:334,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:334,1
    - Dst: MD4_STEP
      Src: /src/curl/lib/md4.c:335,1
    - Dst: MD4_GET
      Src: /src/curl/lib/md4.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 69
    argCount: 3
    argNames:
    - ctx
    - input
    - size
    argTypes:
    - my_md4_ctx*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 351
    functionName: my_md4_body
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - MD4_GET
    - MD4_SET
    - MD4_STEP
    linkageType: ''
    returnType: void
    signature: "void *my_md4_body(my_md4_ctx *ctx,\n                               const
      void *input, unsigned long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 364
    functionName: my_md4_init
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int my_md4_init(my_md4_ctx *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/md4.c:384,1
    - Dst: memcpy
      Src: /src/curl/lib/md4.c:388,1
    - Dst: my_md4_body
      Src: /src/curl/lib/md4.c:391,1
    - Dst: my_md4_body
      Src: /src/curl/lib/md4.c:395,1
    - Dst: memcpy
      Src: /src/curl/lib/md4.c:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - my_md4_ctx*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 400
    functionName: my_md4_update
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - memcpy
    - my_md4_body
    linkageType: ''
    returnType: void
    signature: "void my_md4_update(my_md4_ctx *ctx,\n                          const
      void *input, unsigned long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/md4.c:413,1
    - Dst: my_md4_body
      Src: /src/curl/lib/md4.c:414,1
    - Dst: memset
      Src: /src/curl/lib/md4.c:419,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:422,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:423,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:424,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:425,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:426,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:427,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:428,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:429,1
    - Dst: my_md4_body
      Src: /src/curl/lib/md4.c:431,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:433,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:434,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:435,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:436,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:437,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:438,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:439,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:440,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:441,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:442,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:443,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:444,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:445,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:446,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:447,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md4.c:448,1
    - Dst: memset
      Src: /src/curl/lib/md4.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - my_md4_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 451
    functionName: my_md4_final
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 0
    functionsReached:
    - curlx_ultouc
    - my_md4_body
    - memset
    linkageType: ''
    returnType: void
    signature: void my_md4_final(unsigned char *digest, my_md4_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: my_md4_init
      Src: /src/curl/lib/md4.c:459,1
    - Dst: my_md4_update
      Src: /src/curl/lib/md4.c:461,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/md4.c:461,1
    - Dst: my_md4_final
      Src: /src/curl/lib/md4.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - output
    - input
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 464
    functionName: Curl_md4it
    functionSourceFile: /src/curl/lib/md4.c
    functionUses: 2
    functionsReached:
    - curlx_uztoui
    - my_md4_final
    - my_md4_update
    - my_md4_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_md4it(unsigned char *output,\n                    const
      unsigned char *input, const size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: Curl_rtsp_parseheader
    functionSourceFile: /src/curl/lib/rtsp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_rtsp_parseheader(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: GOOD_SHARE_HANDLE
    functionSourceFile: /src/curl/lib/curl_share.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOOD_SHARE_HANDLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: CURL_SHARE_KEEP_CONNECT
    functionSourceFile: /src/curl/lib/curl_share.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SHARE_KEEP_CONNECT(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: CURL_SHARE_ssl_scache
    functionSourceFile: /src/curl/lib/curl_share.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SHARE_ssl_scache(data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: checkprefix
      Src: /src/curl/lib/http_digest.c:56,1
    - Dst: ISBLANK
      Src: /src/curl/lib/http_digest.c:56,1
    - Dst: strlen
      Src: /src/curl/lib/http_digest.c:59,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/http_digest.c:60,1
    - Dst: Curl_auth_decode_digest_http_message
      Src: /src/curl/lib/http_digest.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - data
    - proxy
    - header
    argTypes:
    - struct Curl_easy*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: Curl_input_digest
    functionSourceFile: /src/curl/lib/http_digest.c
    functionUses: 1
    functionsReached:
    - checkprefix
    - Curl_auth_decode_digest_http_message
    - curlx_str_passblanks
    - strlen
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_input_digest(struct Curl_easy *data,\n                           bool
      proxy,\n                           const char *header)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/http_digest.c:103,1
    - Dst: Curl_auth_create_digest_http_message
      Src: /src/curl/lib/http_digest.c:116,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/http_digest.c:122,1
    - Dst: curlx_free
      Src: /src/curl/lib/http_digest.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - data
    - proxy
    - request
    - uripath
    argTypes:
    - struct Curl_easy*
    - bool
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 65
    functionDepth: 7
    functionLinenumber: 65
    functionLinenumberEnd: 131
    functionName: Curl_output_digest
    functionSourceFile: /src/curl/lib/http_digest.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - curlx_free
    - curl_maprintf
    - Curl_auth_create_digest_http_message
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_output_digest(struct Curl_easy *data,\n                            bool
      proxy,\n                            const unsigned char *request,\n                            const
      unsigned char *uripath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_digest_cleanup
      Src: /src/curl/lib/http_digest.c:135,1
    - Dst: Curl_auth_digest_cleanup
      Src: /src/curl/lib/http_digest.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: Curl_http_auth_cleanup_digest
    functionSourceFile: /src/curl/lib/http_digest.c
    functionUses: 2
    functionsReached:
    - Curl_auth_digest_cleanup
    linkageType: ''
    returnType: void
    signature: void Curl_http_auth_cleanup_digest(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ratelimit.c:39,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/ratelimit.c:43,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ratelimit.c:45,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - r
    - pts
    argTypes:
    - struct Curl_rlimit*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 75
    functionName: rlimit_update
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 0
    functionsReached:
    - curlx_ptimediff_us
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void rlimit_update(struct Curl_rlimit *r,\n                          const
      struct curltime *pts)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ratelimit.c:112,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ratelimit.c:114,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ratelimit.c:118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - r
    - tokens_total
    argTypes:
    - struct Curl_rlimit*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 150
    functionName: rlimit_tune_steps
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void rlimit_tune_steps(struct Curl_rlimit *r,\n                              int64_t
      tokens_total)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ratelimit.c:157,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ratelimit.c:158,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ratelimit.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - r
    - rate_per_sec
    - burst_per_sec
    - pts
    argTypes:
    - struct Curl_rlimit*
    - int64_t
    - int64_t
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 167
    functionName: Curl_rlimit_init
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_rlimit_init(struct Curl_rlimit *r,\n                      int64_t
      rate_per_sec,\n                      int64_t burst_per_sec,\n                      const
      struct curltime *pts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rlimit_tune_steps
      Src: /src/curl/lib/ratelimit.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - r
    - pts
    - total_tokens
    argTypes:
    - struct Curl_rlimit*
    - struct curltime*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: Curl_rlimit_start
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 2
    functionsReached:
    - rlimit_tune_steps
    linkageType: ''
    returnType: void
    signature: "void Curl_rlimit_start(struct Curl_rlimit *r, const struct curltime
      *pts,\n                       int64_t total_tokens)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct Curl_rlimit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: Curl_rlimit_per_step
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t Curl_rlimit_per_step(struct Curl_rlimit *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct Curl_rlimit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: Curl_rlimit_active
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_rlimit_active(struct Curl_rlimit *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct Curl_rlimit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: Curl_rlimit_is_blocked
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_rlimit_is_blocked(struct Curl_rlimit *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rlimit_update
      Src: /src/curl/lib/ratelimit.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - pts
    argTypes:
    - struct Curl_rlimit*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 209
    functionName: Curl_rlimit_avail
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 4
    functionsReached:
    - rlimit_update
    linkageType: ''
    returnType: int64_t
    signature: "int64_t Curl_rlimit_avail(struct Curl_rlimit *r,\n                          const
      struct curltime *pts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rlimit_update
      Src: /src/curl/lib/ratelimit.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - r
    - tokens
    - pts
    argTypes:
    - struct Curl_rlimit*
    - size_t
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: Curl_rlimit_drain
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 3
    functionsReached:
    - rlimit_update
    linkageType: ''
    returnType: void
    signature: "void Curl_rlimit_drain(struct Curl_rlimit *r,\n                       size_t
      tokens,\n                       const struct curltime *pts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rlimit_update
      Src: /src/curl/lib/ratelimit.c:241,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/ratelimit.c:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - r
    - pts
    argTypes:
    - struct Curl_rlimit*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 259
    functionName: Curl_rlimit_wait_ms
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 1
    functionsReached:
    - curlx_ptimediff_us
    - rlimit_update
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t Curl_rlimit_wait_ms(struct Curl_rlimit *r,\n                               const
      struct curltime *pts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/ratelimit.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - pts
    argTypes:
    - struct Curl_rlimit*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: Curl_rlimit_next_step_ms
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 0
    functionsReached:
    - curlx_ptimediff_us
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t Curl_rlimit_next_step_ms(struct Curl_rlimit *r,\n                                    const
      struct curltime *pts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_start
      Src: /src/curl/lib/ratelimit.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - r
    - activate
    - pts
    argTypes:
    - struct Curl_rlimit*
    - bool
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 293
    functionName: Curl_rlimit_block
    functionSourceFile: /src/curl/lib/ratelimit.c
    functionUses: 3
    functionsReached:
    - Curl_rlimit_start
    linkageType: ''
    returnType: void
    signature: "void Curl_rlimit_block(struct Curl_rlimit *r,\n                       bool
      activate,\n                       const struct curltime *pts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - easy
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: Curl_psl_use
    functionSourceFile: /src/curl/lib/psl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_psl_use(easy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/mqtt.c:99,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/mqtt.c:100,1
    - Dst: curlx_free
      Src: /src/curl/lib/mqtt.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: mqtt_easy_dtor
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void mqtt_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/mqtt.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: mqtt_conn_dtor
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void mqtt_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/mqtt.c:118,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/mqtt.c:120,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/mqtt.c:123,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/mqtt.c:126,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/mqtt.c:127,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/mqtt.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: mqtt_setup_conn
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_meta_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mqtt_setup_conn(struct Curl_easy *data,\n                                struct
      connectdata *conn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:138,1
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/mqtt.c:143,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/mqtt.c:146,1
    - Dst: Curl_debug
      Src: /src/curl/lib/mqtt.c:147,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mqtt.c:150,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mqtt.c:151,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mqtt.c:151,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/mqtt.c:152,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/mqtt.c:155,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/mqtt.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - data
    - buf
    - len
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 133
    functionDepth: 9
    functionLinenumber: 133
    functionLinenumberEnd: 161
    functionName: mqtt_send
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - curlx_dyn_addn
    - curlx_dyn_len
    - curlx_dyn_reset
    - Curl_meta_get
    - curlx_dyn_tail
    - Curl_debug
    - Curl_xfer_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mqtt_send(struct Curl_easy *data,\n                          const
      char *buf, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_add_in
      Src: /src/curl/lib/mqtt.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: mqtt_pollset
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_add_in
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mqtt_pollset(struct Curl_easy *data,\n                             struct
      easy_pollset *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: mqtt_encode_len
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mqtt_encode_len(char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/mqtt.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - passwd
    - plen
    - pkt
    - start
    - remain_pos
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 205
    functionName: add_passwd
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int add_passwd(const char *passwd, const size_t plen,\n                      char
      *pkt, const size_t start, int remain_pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/mqtt.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - username
    - ulen
    - pkt
    - start
    - remain_pos
    argTypes:
    - char*
    - size_t
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 223
    functionName: add_user
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int add_user(const char *username, const size_t ulen,\n                    unsigned
      char *pkt, const size_t start, int remain_pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/mqtt.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - client_id
    - client_id_len
    - pkt
    - start
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: add_client_id
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int add_client_id(const char *client_id, const size_t client_id_len,\n
      \                        char *pkt, const size_t start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/mqtt.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - packet
    - remain
    - remain_pos
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 265
    functionName: init_connpack
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int init_connpack(char *packet, char *remain, int remain_pos)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/mqtt.c:279,1
    - Dst: strlen
      Src: /src/curl/lib/mqtt.c:284,1
    - Dst: strlen
      Src: /src/curl/lib/mqtt.c:285,1
    - Dst: mqtt_encode_len
      Src: /src/curl/lib/mqtt.c:293,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/mqtt.c:301,1
    - Dst: init_connpack
      Src: /src/curl/lib/mqtt.c:306,1
    - Dst: Curl_rand_alnum
      Src: /src/curl/lib/mqtt.c:308,1
    - Dst: add_client_id
      Src: /src/curl/lib/mqtt.c:311,1
    - Dst: strlen
      Src: /src/curl/lib/mqtt.c:311,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:313,1
    - Dst: strlen
      Src: /src/curl/lib/mqtt.c:313,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:317,1
    - Dst: add_user
      Src: /src/curl/lib/mqtt.c:327,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:330,1
    - Dst: add_passwd
      Src: /src/curl/lib/mqtt.c:338,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:340,1
    - Dst: mqtt_send
      Src: /src/curl/lib/mqtt.c:347,1
    - Dst: curlx_free
      Src: /src/curl/lib/mqtt.c:351,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/mqtt.c:352,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 267
    functionDepth: 10
    functionLinenumber: 267
    functionLinenumberEnd: 354
    functionName: mqtt_connect
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - failf
    - add_client_id
    - mqtt_encode_len
    - Curl_creds_unlink
    - infof
    - init_connpack
    - curlx_free
    - curlx_calloc
    - add_user
    - add_passwd
    - strlen
    - Curl_rand_alnum
    - mqtt_send
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_connect(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_send
      Src: /src/curl/lib/mqtt.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 10
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: mqtt_disconnect
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_send
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_disconnect(struct Curl_easy *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:363,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mqtt.c:369,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mqtt.c:375,1
    - Dst: Curl_xfer_recv
      Src: /src/curl/lib/mqtt.c:376,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/mqtt.c:381,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mqtt.c:383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - data
    - nbytes
    argTypes:
    - struct Curl_easy*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 386
    functionName: mqtt_recv_atleast
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_recv
    - curlx_dyn_addn
    - DEBUGASSERT
    - curlx_dyn_len
    - Curl_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_recv_atleast(struct Curl_easy *data, size_t nbytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:390,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mqtt.c:391,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mqtt.c:393,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/mqtt.c:395,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/mqtt.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - nbytes
    argTypes:
    - struct Curl_easy*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 399
    functionName: mqtt_recv_consume
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - curlx_dyn_len
    - curlx_dyn_reset
    - Curl_meta_get
    - curlx_dyn_tail
    linkageType: ''
    returnType: void
    signature: void mqtt_recv_consume(struct Curl_easy *data, size_t nbytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:403,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mqtt.c:407,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:411,1
    - Dst: mqtt_recv_atleast
      Src: /src/curl/lib/mqtt.c:416,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mqtt.c:421,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mqtt.c:421,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/mqtt.c:422,1
    - Dst: Curl_debug
      Src: /src/curl/lib/mqtt.c:423,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:426,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/mqtt.c:428,1
    - Dst: mqtt_recv_consume
      Src: /src/curl/lib/mqtt.c:431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 401
    functionDepth: 9
    functionLinenumber: 401
    functionLinenumberEnd: 433
    functionName: mqtt_verify_connack
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - curlx_dyn_len
    - mqtt_recv_atleast
    - curlx_dyn_ptr
    - Curl_meta_get
    - curlx_dyn_reset
    - Curl_debug
    - mqtt_recv_consume
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_verify_connack(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/mqtt.c:440,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/mqtt.c:441,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:443,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - data
    - topic
    - topiclen
    argTypes:
    - struct Curl_easy*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 451
    functionName: mqtt_get_topic
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_urldecode
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mqtt_get_topic(struct Curl_easy *data,\n                               char
      **topic, size_t *topiclen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/mqtt.c:463,1
    - Dst: mqtt_get_topic
      Src: /src/curl/lib/mqtt.c:468,1
    - Dst: mqtt_encode_len
      Src: /src/curl/lib/mqtt.c:476,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/mqtt.c:479,1
    - Dst: memcpy
      Src: /src/curl/lib/mqtt.c:486,1
    - Dst: memcpy
      Src: /src/curl/lib/mqtt.c:491,1
    - Dst: mqtt_send
      Src: /src/curl/lib/mqtt.c:494,1
    - Dst: curlx_free
      Src: /src/curl/lib/mqtt.c:497,1
    - Dst: curlx_free
      Src: /src/curl/lib/mqtt.c:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 453
    functionDepth: 10
    functionLinenumber: 453
    functionLinenumberEnd: 500
    functionName: mqtt_subscribe
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mqtt_encode_len
    - mqtt_get_topic
    - Curl_conn_meta_get
    - curlx_malloc
    - curlx_free
    - mqtt_send
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_subscribe(struct Curl_easy *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:507,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/mqtt.c:509,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:517,1
    - Dst: mqtt_recv_atleast
      Src: /src/curl/lib/mqtt.c:522,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mqtt.c:527,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mqtt.c:527,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/mqtt.c:528,1
    - Dst: Curl_debug
      Src: /src/curl/lib/mqtt.c:529,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/mqtt.c:534,1
    - Dst: mqtt_recv_consume
      Src: /src/curl/lib/mqtt.c:538,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 505
    functionDepth: 9
    functionLinenumber: 505
    functionLinenumberEnd: 541
    functionName: mqtt_verify_suback
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - failf
    - mqtt_recv_atleast
    - curlx_dyn_len
    - Curl_conn_meta_get
    - curlx_dyn_ptr
    - Curl_meta_get
    - curlx_dyn_reset
    - Curl_debug
    - mqtt_recv_consume
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_verify_suback(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGF
      Src: /src/curl/lib/mqtt.c:560,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:560,1
    - Dst: curlx_sotouz_fits
      Src: /src/curl/lib/mqtt.c:563,1
    - Dst: strlen
      Src: /src/curl/lib/mqtt.c:566,1
    - Dst: mqtt_get_topic
      Src: /src/curl/lib/mqtt.c:569,1
    - Dst: mqtt_encode_len
      Src: /src/curl/lib/mqtt.c:574,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/mqtt.c:581,1
    - Dst: memcpy
      Src: /src/curl/lib/mqtt.c:589,1
    - Dst: memcpy
      Src: /src/curl/lib/mqtt.c:593,1
    - Dst: memcpy
      Src: /src/curl/lib/mqtt.c:595,1
    - Dst: mqtt_send
      Src: /src/curl/lib/mqtt.c:597,1
    - Dst: curlx_free
      Src: /src/curl/lib/mqtt.c:600,1
    - Dst: curlx_free
      Src: /src/curl/lib/mqtt.c:601,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 545
    functionDepth: 10
    functionLinenumber: 545
    functionLinenumberEnd: 603
    functionName: mqtt_publish
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - mqtt_encode_len
    - mqtt_get_topic
    - infof
    - curlx_malloc
    - curlx_sotouz_fits
    - curlx_free
    - DEBUGF
    - mqtt_send
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_publish(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - lenp
    - buf
    - buflen
    argTypes:
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 624
    functionName: mqtt_decode_len
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mqtt_decode_len(size_t *lenp, const unsigned char *buf,\n                           size_t
      buflen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/mqtt.c:646,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mqtt.c:647,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - data
    - state
    - nextstate
    argTypes:
    - struct Curl_easy*
    - enum mqttstate
    - enum mqttstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 659
    functionName: mqstate
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - infof
    - DEBUGASSERT
    - Curl_conn_meta_get
    linkageType: ''
    returnType: void
    signature: "void mqstate(struct Curl_easy *data,\n                    enum mqttstate
      state,\n                    enum mqttstate nextstate)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/mqtt.c:667,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:668,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mqtt.c:671,1
    - Dst: mqtt_verify_suback
      Src: /src/curl/lib/mqtt.c:678,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:682,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:690,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:692,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:696,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:707,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:710,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/mqtt.c:714,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/mqtt.c:718,1
    - Dst: Curl_xfer_recv
      Src: /src/curl/lib/mqtt.c:725,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:728,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:733,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/mqtt.c:739,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/mqtt.c:742,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:749,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/mqtt.c:753,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 661
    functionDepth: 10
    functionLinenumber: 661
    functionLinenumberEnd: 759
    functionName: mqtt_read_publish
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_xfer_recv
    - DEBUGASSERT
    - failf
    - Curl_pgrsSetDownloadSize
    - mqstate
    - Curl_client_write
    - Curl_conn_meta_get
    - infof
    - Curl_meta_get
    - FALLTHROUGH
    - mqtt_verify_suback
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_read_publish(struct Curl_easy *data, bool *done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:763,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/mqtt.c:769,1
    - Dst: mqtt_connect
      Src: /src/curl/lib/mqtt.c:772,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:774,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 761
    functionDepth: 11
    functionLinenumber: 761
    functionLinenumberEnd: 779
    functionName: mqtt_do
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - mqtt_connect
    - failf
    - mqstate
    - Curl_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_do(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:784,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/mqtt.c:788,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/mqtt.c:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 792
    functionName: mqtt_done
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - curlx_dyn_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mqtt_done(struct Curl_easy *data,\n                          CURLcode
      status, bool premature)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:797,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/mqtt.c:800,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/mqtt.c:808,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/mqtt.c:809,1
    - Dst: mqtt_send
      Src: /src/curl/lib/mqtt.c:816,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:820,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 795
    functionDepth: 10
    functionLinenumber: 795
    functionLinenumberEnd: 824
    functionName: mqtt_ping
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_conn_meta_get
    - infof
    - Curl_meta_get
    - mqtt_send
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_ping(struct Curl_easy *data)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/mqtt.c:828,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/mqtt.c:832,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mqtt.c:839,1
    - Dst: mqtt_send
      Src: /src/curl/lib/mqtt.c:841,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/mqtt.c:841,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/mqtt.c:842,1
    - Dst: mqtt_ping
      Src: /src/curl/lib/mqtt.c:847,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:851,1
    - Dst: Curl_xfer_recv
      Src: /src/curl/lib/mqtt.c:855,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:859,1
    - Dst: Curl_debug
      Src: /src/curl/lib/mqtt.c:864,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/mqtt.c:867,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:871,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/mqtt.c:872,1
    - Dst: Curl_xfer_recv
      Src: /src/curl/lib/mqtt.c:875,1
    - Dst: Curl_debug
      Src: /src/curl/lib/mqtt.c:878,1
    - Dst: mqtt_decode_len
      Src: /src/curl/lib/mqtt.c:887,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:901,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:911,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:914,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:917,1
    - Dst: infof
      Src: /src/curl/lib/mqtt.c:923,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:925,1
    - Dst: mqtt_verify_connack
      Src: /src/curl/lib/mqtt.c:929,1
    - Dst: mqtt_publish
      Src: /src/curl/lib/mqtt.c:934,1
    - Dst: mqtt_disconnect
      Src: /src/curl/lib/mqtt.c:936,1
    - Dst: mqtt_subscribe
      Src: /src/curl/lib/mqtt.c:942,1
    - Dst: mqstate
      Src: /src/curl/lib/mqtt.c:944,1
    - Dst: mqtt_read_publish
      Src: /src/curl/lib/mqtt.c:952,1
    - Dst: failf
      Src: /src/curl/lib/mqtt.c:956,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 98
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 826
    functionDepth: 11
    functionLinenumber: 826
    functionLinenumberEnd: 964
    functionName: mqtt_doing
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_xfer_recv
    - mqtt_publish
    - mqstate
    - curlx_dyn_ptr
    - Curl_meta_get
    - Curl_debug
    - mqtt_ping
    - FALLTHROUGH
    - mqtt_disconnect
    - Curl_conn_meta_get
    - mqtt_send
    - failf
    - curlx_dyn_len
    - mqtt_verify_connack
    - mqtt_subscribe
    - mqtt_read_publish
    - mqtt_decode_len
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtt_doing(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/mqtt.c:973,1
    - Dst: connclose
      Src: /src/curl/lib/mqtt.c:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 968
    functionDepth: 9
    functionLinenumber: 968
    functionLinenumberEnd: 977
    functionName: mqtts_connecting
    functionSourceFile: /src/curl/lib/mqtt.c
    functionUses: 0
    functionsReached:
    - connclose
    - Curl_conn_connect
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mqtts_connecting(struct Curl_easy *data, bool *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: isatty
    functionSourceFile: /src/curl/lib/setup-os400.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isatty(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: puts
    functionSourceFile: /src/curl/lib/setup-os400.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: puts(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Curl_amiga_init
    functionSourceFile: /src/curl/lib/amigaos.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_amiga_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: Curl_amiga_cleanup
    functionSourceFile: /src/curl/lib/amigaos.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_amiga_cleanup()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/openldap.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - data
    - li
    - newstate
    argTypes:
    - struct Curl_easy*
    - struct ldapconninfo*
    - ldapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 146
    functionName: oldap_state
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - infof
    linkageType: ''
    returnType: void
    signature: "void oldap_state(struct Curl_easy *data, struct ldapconninfo *li,\n
      \                       ldapstate newstate)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - rc
    - result
    argTypes:
    - int
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: oldap_map_error
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_map_error(int rc, CURLcode result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ldap_url_parse
      Src: /src/curl/lib/openldap.c:185,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/openldap.c:185,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/openldap.c:192,1
    - Dst: failf
      Src: /src/curl/lib/openldap.c:194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - data
    - ludp
    argTypes:
    - struct Curl_easy*
    - LDAPURLDesc**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 197
    functionName: oldap_url_parse
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_ptr
    - ldap_url_parse
    - failf
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_url_parse(struct Curl_easy *data, LDAPURLDesc **ludp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:203,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/openldap.c:206,1
    - Dst: checkprefix
      Src: /src/curl/lib/openldap.c:222,1
    - Dst: Curl_sasl_parse_url_auth_option
      Src: /src/curl/lib/openldap.c:223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 232
    functionName: oldap_parse_login_options
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_parse_url_auth_option
    - checkprefix
    - DEBUGASSERT
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_parse_login_options(struct connectdata *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oldap_url_parse
      Src: /src/curl/lib/openldap.c:242,1
    - Dst: ldap_free_urldesc
      Src: /src/curl/lib/openldap.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: oldap_setup_connection
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - oldap_url_parse
    - ldap_free_urldesc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode oldap_setup_connection(struct Curl_easy *data,\n                                       struct
      connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:254,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/openldap.c:256,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/openldap.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: oldap_get_message
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_set
    - DEBUGASSERT
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_get_message(struct Curl_easy *data, struct bufref *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:273,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/openldap.c:278,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/openldap.c:281,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/openldap.c:281,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/openldap.c:282,1
    - Dst: ldap_sasl_bind
      Src: /src/curl/lib/openldap.c:285,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - data
    - mech
    - initresp
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 289
    functionName: oldap_perform_auth
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_sasl_bind
    - DEBUGASSERT
    - CURL_UNCONST
    - Curl_bufref_len
    - Curl_conn_meta_get
    - Curl_bufref_ptr
    - oldap_map_error
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode oldap_perform_auth(struct Curl_easy *data, const char *mech,\n
      \                                  const struct bufref *initresp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:298,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/openldap.c:305,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/openldap.c:305,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/openldap.c:306,1
    - Dst: ldap_sasl_bind
      Src: /src/curl/lib/openldap.c:309,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - data
    - mech
    - resp
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 313
    functionName: oldap_continue_auth
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_sasl_bind
    - Curl_bufref_len
    - CURL_UNCONST
    - Curl_conn_meta_get
    - Curl_bufref_ptr
    - oldap_map_error
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode oldap_continue_auth(struct Curl_easy *data, const char *mech,\n
      \                                   const struct bufref *resp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:321,1
    - Dst: ldap_sasl_bind
      Src: /src/curl/lib/openldap.c:327,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - data
    - mech
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: oldap_cancel_auth
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_sasl_bind
    - oldap_map_error
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_cancel_auth(struct Curl_easy *data, const char *mech)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:338,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/openldap.c:349,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/openldap.c:350,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/openldap.c:350,1
    - Dst: strlen
      Src: /src/curl/lib/openldap.c:351,1
    - Dst: ldap_sasl_bind
      Src: /src/curl/lib/openldap.c:354,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:357,1
    - Dst: oldap_state
      Src: /src/curl/lib/openldap.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - data
    - newstate
    argTypes:
    - struct Curl_easy*
    - ldapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 362
    functionName: oldap_perform_bind
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_sasl_bind
    - Curl_creds_passwd
    - CURL_UNCONST
    - Curl_conn_meta_get
    - oldap_map_error
    - Curl_creds_user
    - strlen
    - oldap_state
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_perform_bind(struct Curl_easy *data, ldapstate newstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:368,1
    - Dst: ldap_search_ext
      Src: /src/curl/lib/openldap.c:381,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/openldap.c:382,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:385,1
    - Dst: oldap_state
      Src: /src/curl/lib/openldap.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 388
    functionName: oldap_perform_mechs
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_search_ext
    - CURL_UNCONST
    - Curl_conn_meta_get
    - oldap_map_error
    - oldap_state
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_perform_mechs(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:394,1
    - Dst: Curl_sasl_start
      Src: /src/curl/lib/openldap.c:400,1
    - Dst: oldap_state
      Src: /src/curl/lib/openldap.c:402,1
    - Dst: Curl_sasl_is_blocked
      Src: /src/curl/lib/openldap.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 391
    functionDepth: 5
    functionLinenumber: 391
    functionLinenumberEnd: 406
    functionName: oldap_perform_sasl
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_start
    - oldap_state
    - Curl_sasl_is_blocked
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_perform_sasl(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sbiod
    - arg
    argTypes:
    - Sockbuf_IO_Desc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: ldapsb_tls_setup
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ldapsb_tls_setup(Sockbuf_IO_Desc *sbiod, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sbiod
    argTypes:
    - Sockbuf_IO_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: ldapsb_tls_remove
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ldapsb_tls_remove(Sockbuf_IO_Desc *sbiod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sbiod
    argTypes:
    - Sockbuf_IO_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: ldapsb_tls_close
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ldapsb_tls_close(Sockbuf_IO_Desc *sbiod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_data_pending
      Src: /src/curl/lib/openldap.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sbiod
    - opt
    - arg
    argTypes:
    - Sockbuf_IO_Desc*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 436
    functionName: ldapsb_tls_ctrl
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - Curl_conn_data_pending
    linkageType: ''
    returnType: int
    signature: int ldapsb_tls_ctrl(Sockbuf_IO_Desc *sbiod, int opt, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:446,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/lib/openldap.c:451,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/lib/openldap.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - sbiod
    - buf
    - len
    argTypes:
    - Sockbuf_IO_Desc*
    - void*
    - ber_len_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 462
    functionName: ldapsb_tls_read
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - SET_SOCKERRNO
    - Curl_conn_meta_get
    linkageType: ''
    returnType: ber_slen_t
    signature: "ber_slen_t ldapsb_tls_read(Sockbuf_IO_Desc *sbiod, void *buf,\n                                  ber_len_t
      len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:472,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/lib/openldap.c:477,1
    - Dst: SET_SOCKERRNO
      Src: /src/curl/lib/openldap.c:482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - sbiod
    - buf
    - len
    argTypes:
    - Sockbuf_IO_Desc*
    - void*
    - ber_len_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 488
    functionName: ldapsb_tls_write
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - SET_SOCKERRNO
    - Curl_conn_meta_get
    linkageType: ''
    returnType: ber_slen_t
    signature: "ber_slen_t ldapsb_tls_write(Sockbuf_IO_Desc *sbiod, void *buf,\n                                   ber_len_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: ssl_installed
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - Curl_conn_meta_get
    linkageType: ''
    returnType: bool
    signature: bool ssl_installed(struct connectdata *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:508,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/openldap.c:514,1
    - Dst: oldap_state
      Src: /src/curl/lib/openldap.c:517,1
    - Dst: ldap_get_option
      Src: /src/curl/lib/openldap.c:523,1
    - Dst: ber_sockbuf_add_io
      Src: /src/curl/lib/openldap.c:524,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - data
    - newstate
    argTypes:
    - struct Curl_easy*
    - ldapstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 505
    functionDepth: 9
    functionLinenumber: 505
    functionLinenumberEnd: 531
    functionName: oldap_ssl_connect
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_get_option
    - Curl_conn_connect
    - Curl_conn_meta_get
    - ber_sockbuf_add_io
    - oldap_state
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_ssl_connect(struct Curl_easy *data, ldapstate newstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:537,1
    - Dst: ldap_start_tls
      Src: /src/curl/lib/openldap.c:542,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:544,1
    - Dst: oldap_state
      Src: /src/curl/lib/openldap.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 547
    functionName: oldap_perform_starttls
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_start_tls
    - oldap_map_error
    - oldap_state
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_perform_starttls(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/openldap.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 556
    functionName: oldap_easy_dtor
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void oldap_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ldap_unbind_ext
      Src: /src/curl/lib/openldap.c:564,1
    - Dst: curlx_free
      Src: /src/curl/lib/openldap.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 568
    functionName: oldap_conn_dtor
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - ldap_unbind_ext
    linkageType: ''
    returnType: void
    signature: void oldap_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/openldap.c:598,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/openldap.c:604,1
    - Dst: ldap_pvt_url_scheme2proto
      Src: /src/curl/lib/openldap.c:608,1
    - Dst: Curl_sasl_init
      Src: /src/curl/lib/openldap.c:611,1
    - Dst: oldap_parse_login_options
      Src: /src/curl/lib/openldap.c:613,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/openldap.c:617,1
    - Dst: ldap_init_fd
      Src: /src/curl/lib/openldap.c:627,1
    - Dst: failf
      Src: /src/curl/lib/openldap.c:629,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/openldap.c:630,1
    - Dst: getenv
      Src: /src/curl/lib/openldap.c:637,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/openldap.c:639,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/openldap.c:643,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/openldap.c:647,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/openldap.c:650,1
    - Dst: ldap_get_option
      Src: /src/curl/lib/openldap.c:655,1
    - Dst: ber_sockbuf_ctrl
      Src: /src/curl/lib/openldap.c:659,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/openldap.c:666,1
    - Dst: oldap_ssl_connect
      Src: /src/curl/lib/openldap.c:667,1
    - Dst: oldap_perform_starttls
      Src: /src/curl/lib/openldap.c:672,1
    - Dst: oldap_perform_mechs
      Src: /src/curl/lib/openldap.c:679,1
    - Dst: oldap_perform_bind
      Src: /src/curl/lib/openldap.c:685,1
    - Dst: curlx_free
      Src: /src/curl/lib/openldap.c:688,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 584
    functionDepth: 10
    functionLinenumber: 584
    functionLinenumberEnd: 690
    functionName: oldap_connect
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_init
    - ldap_get_option
    - getenv
    - oldap_ssl_connect
    - curl_maprintf
    - ldap_init_fd
    - ldap_set_option
    - curlx_str_number
    - ber_sockbuf_ctrl
    - oldap_perform_mechs
    - failf
    - oldap_perform_starttls
    - ldap_pvt_url_scheme2proto
    - curlx_free
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_conn_is_ssl
    - ldap_err2string
    - oldap_perform_bind
    - oldap_parse_login_options
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_connect(struct Curl_easy *data, bool *done)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:707,1
    - Dst: ldap_msgtype
      Src: /src/curl/lib/openldap.c:711,1
    - Dst: ldap_get_dn_ber
      Src: /src/curl/lib/openldap.c:717,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:719,1
    - Dst: ldap_get_attribute_ber
      Src: /src/curl/lib/openldap.c:720,1
    - Dst: ldap_get_attribute_ber
      Src: /src/curl/lib/openldap.c:722,1
    - Dst: Curl_sasl_decode_mech
      Src: /src/curl/lib/openldap.c:732,1
    - Dst: ber_memfree
      Src: /src/curl/lib/openldap.c:737,1
    - Dst: ber_free
      Src: /src/curl/lib/openldap.c:740,1
    - Dst: infof
      Src: /src/curl/lib/openldap.c:746,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/openldap.c:747,1
    - Dst: Curl_sasl_can_authenticate
      Src: /src/curl/lib/openldap.c:750,1
    - Dst: oldap_perform_sasl
      Src: /src/curl/lib/openldap.c:751,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:756,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 3
    argNames:
    - data
    - msg
    - code
    argTypes:
    - struct Curl_easy*
    - LDAPMessage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 693
    functionDepth: 6
    functionLinenumber: 693
    functionLinenumberEnd: 764
    functionName: oldap_state_mechs_resp
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ber_memfree
    - ldap_get_dn_ber
    - ldap_get_attribute_ber
    - ldap_msgtype
    - Curl_conn_meta_get
    - oldap_map_error
    - infof
    - Curl_sasl_can_authenticate
    - oldap_perform_sasl
    - ber_free
    - Curl_sasl_decode_mech
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode oldap_state_mechs_resp(struct Curl_easy *data,\n                                       LDAPMessage
      *msg, int code)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:771,1
    - Dst: ldap_parse_sasl_bind_result
      Src: /src/curl/lib/openldap.c:779,1
    - Dst: failf
      Src: /src/curl/lib/openldap.c:781,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/openldap.c:781,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:782,1
    - Dst: Curl_sasl_continue
      Src: /src/curl/lib/openldap.c:785,1
    - Dst: oldap_state
      Src: /src/curl/lib/openldap.c:787,1
    - Dst: ber_bvfree
      Src: /src/curl/lib/openldap.c:791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - data
    - msg
    - code
    argTypes:
    - struct Curl_easy*
    - LDAPMessage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 767
    functionDepth: 6
    functionLinenumber: 767
    functionLinenumberEnd: 793
    functionName: oldap_state_sasl_resp
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - failf
    - ldap_err2string
    - ldap_parse_sasl_bind_result
    - ber_bvfree
    - oldap_state
    - Curl_conn_meta_get
    - oldap_map_error
    - Curl_sasl_continue
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode oldap_state_sasl_resp(struct Curl_easy *data,\n                                      LDAPMessage
      *msg, int code)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:800,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:809,1
    - Dst: ldap_parse_sasl_bind_result
      Src: /src/curl/lib/openldap.c:811,1
    - Dst: failf
      Src: /src/curl/lib/openldap.c:813,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/openldap.c:814,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:815,1
    - Dst: oldap_state
      Src: /src/curl/lib/openldap.c:818,1
    - Dst: ber_bvfree
      Src: /src/curl/lib/openldap.c:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - data
    - msg
    - code
    argTypes:
    - struct Curl_easy*
    - LDAPMessage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 823
    functionName: oldap_state_bind_resp
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - failf
    - ldap_err2string
    - ldap_parse_sasl_bind_result
    - ber_bvfree
    - Curl_conn_meta_get
    - oldap_map_error
    - oldap_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode oldap_state_bind_resp(struct Curl_easy *data, LDAPMessage
      *msg,\n                                      int code)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:829,1
    - Dst: ldap_result
      Src: /src/curl/lib/openldap.c:840,1
    - Dst: failf
      Src: /src/curl/lib/openldap.c:850,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/openldap.c:851,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:852,1
    - Dst: ldap_parse_result
      Src: /src/curl/lib/openldap.c:858,1
    - Dst: USE_SSL
      Src: /src/curl/lib/openldap.c:868,1
    - Dst: ssl_installed
      Src: /src/curl/lib/openldap.c:869,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/openldap.c:874,1
    - Dst: ldap_msgfree
      Src: /src/curl/lib/openldap.c:875,1
    - Dst: oldap_perform_bind
      Src: /src/curl/lib/openldap.c:876,1
    - Dst: oldap_ssl_connect
      Src: /src/curl/lib/openldap.c:885,1
    - Dst: ssl_installed
      Src: /src/curl/lib/openldap.c:886,1
    - Dst: oldap_perform_mechs
      Src: /src/curl/lib/openldap.c:888,1
    - Dst: oldap_perform_bind
      Src: /src/curl/lib/openldap.c:890,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:896,1
    - Dst: oldap_perform_mechs
      Src: /src/curl/lib/openldap.c:898,1
    - Dst: oldap_perform_bind
      Src: /src/curl/lib/openldap.c:900,1
    - Dst: Curl_ssl_cfilter_add
      Src: /src/curl/lib/openldap.c:903,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/openldap.c:906,1
    - Dst: oldap_ssl_connect
      Src: /src/curl/lib/openldap.c:908,1
    - Dst: oldap_map_error
      Src: /src/curl/lib/openldap.c:910,1
    - Dst: ssl_installed
      Src: /src/curl/lib/openldap.c:911,1
    - Dst: oldap_perform_mechs
      Src: /src/curl/lib/openldap.c:913,1
    - Dst: oldap_perform_bind
      Src: /src/curl/lib/openldap.c:915,1
    - Dst: oldap_state
      Src: /src/curl/lib/openldap.c:918,1
    - Dst: oldap_state_mechs_resp
      Src: /src/curl/lib/openldap.c:926,1
    - Dst: oldap_state_sasl_resp
      Src: /src/curl/lib/openldap.c:929,1
    - Dst: oldap_state_bind_resp
      Src: /src/curl/lib/openldap.c:933,1
    - Dst: ldap_msgfree
      Src: /src/curl/lib/openldap.c:941,1
    - Dst: ldap_abandon_ext
      Src: /src/curl/lib/openldap.c:948,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 825
    functionDepth: 10
    functionLinenumber: 825
    functionLinenumberEnd: 952
    functionName: oldap_connecting
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_result
    - oldap_ssl_connect
    - ldap_abandon_ext
    - FALLTHROUGH
    - ldap_parse_result
    - ssl_installed
    - ldap_set_option
    - Curl_conn_meta_get
    - USE_SSL
    - Curl_ssl_cfilter_add
    - oldap_map_error
    - oldap_state_bind_resp
    - oldap_perform_mechs
    - failf
    - oldap_state
    - ldap_err2string
    - oldap_perform_bind
    - ldap_msgfree
    - oldap_state_mechs_resp
    - oldap_state_sasl_resp
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_connecting(struct Curl_easy *data, bool *done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:958,1
    - Dst: ssl_installed
      Src: /src/curl/lib/openldap.c:966,1
    - Dst: ldap_get_option
      Src: /src/curl/lib/openldap.c:968,1
    - Dst: ber_sockbuf_add_io
      Src: /src/curl/lib/openldap.c:969,1
    - Dst: ldap_unbind_ext
      Src: /src/curl/lib/openldap.c:973,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 954
    functionDepth: 3
    functionLinenumber: 954
    functionLinenumberEnd: 977
    functionName: oldap_disconnect
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ssl_installed
    - ldap_get_option
    - ldap_unbind_ext
    - Curl_conn_meta_get
    - ber_sockbuf_add_io
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode oldap_disconnect(struct Curl_easy *data,\n                                 struct
      connectdata *conn,\n                                 bool dead_connection)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:982,1
    - Dst: infof
      Src: /src/curl/lib/openldap.c:992,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/openldap.c:992,1
    - Dst: oldap_url_parse
      Src: /src/curl/lib/openldap.c:994,1
    - Dst: ssl_installed
      Src: /src/curl/lib/openldap.c:999,1
    - Dst: ldap_get_option
      Src: /src/curl/lib/openldap.c:1002,1
    - Dst: ber_sockbuf_add_io
      Src: /src/curl/lib/openldap.c:1003,1
    - Dst: ldap_free_urldesc
      Src: /src/curl/lib/openldap.c:1004,1
    - Dst: ldap_search_ext
      Src: /src/curl/lib/openldap.c:1010,1
    - Dst: ldap_free_urldesc
      Src: /src/curl/lib/openldap.c:1013,1
    - Dst: failf
      Src: /src/curl/lib/openldap.c:1015,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/openldap.c:1015,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/openldap.c:1020,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/openldap.c:1022,1
    - Dst: ldap_abandon_ext
      Src: /src/curl/lib/openldap.c:1023,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/openldap.c:1029,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 979
    functionDepth: 3
    functionLinenumber: 979
    functionLinenumberEnd: 1034
    functionName: oldap_do
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ssl_installed
    - ldap_get_option
    - ldap_free_urldesc
    - failf
    - ldap_err2string
    - oldap_url_parse
    - Curl_xfer_setup_recv
    - ldap_search_ext
    - Curl_meta_set
    - ldap_abandon_ext
    - infof
    - Curl_conn_meta_get
    - ber_sockbuf_add_io
    - Curl_bufref_ptr
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode oldap_do(struct Curl_easy *data, bool *done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/openldap.c:1040,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:1048,1
    - Dst: ldap_abandon_ext
      Src: /src/curl/lib/openldap.c:1050,1
    - Dst: Curl_meta_remove
      Src: /src/curl/lib/openldap.c:1054,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - data
    - res
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1058
    functionName: oldap_done
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - Curl_meta_remove
    - ldap_abandon_ext
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode oldap_done(struct Curl_easy *data, CURLcode res,\n                           bool
      premature)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_client_write
      Src: /src/curl/lib/openldap.c:1072,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/openldap.c:1075,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/openldap.c:1078,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 7
    argNames:
    - data
    - prefix
    - plen
    - value
    - len
    - suffix
    - slen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1081
    functionName: client_write
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 19
    functionsReached:
    - Curl_client_write
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode client_write(struct Curl_easy *data,\n                             const
      char *prefix, size_t plen,\n                             const char *value,
      size_t len,\n                             const char *suffix, size_t slen)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/openldap.c:1087,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/openldap.c:1088,1
    - Dst: ldap_result
      Src: /src/curl/lib/openldap.c:1105,1
    - Dst: failf
      Src: /src/curl/lib/openldap.c:1107,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/openldap.c:1107,1
    - Dst: ldap_msgtype
      Src: /src/curl/lib/openldap.c:1117,1
    - Dst: ldap_parse_result
      Src: /src/curl/lib/openldap.c:1120,1
    - Dst: failf
      Src: /src/curl/lib/openldap.c:1122,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/openldap.c:1123,1
    - Dst: infof
      Src: /src/curl/lib/openldap.c:1133,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/openldap.c:1134,1
    - Dst: failf
      Src: /src/curl/lib/openldap.c:1139,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/openldap.c:1139,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/openldap.c:1145,1
    - Dst: ldap_get_dn_ber
      Src: /src/curl/lib/openldap.c:1149,1
    - Dst: client_write
      Src: /src/curl/lib/openldap.c:1155,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1155,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1156,1
    - Dst: ldap_get_attribute_ber
      Src: /src/curl/lib/openldap.c:1160,1
    - Dst: ldap_get_attribute_ber
      Src: /src/curl/lib/openldap.c:1162,1
    - Dst: client_write
      Src: /src/curl/lib/openldap.c:1170,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1170,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1171,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/openldap.c:1178,1
    - Dst: client_write
      Src: /src/curl/lib/openldap.c:1183,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1183,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1184,1
    - Dst: ISBLANK
      Src: /src/curl/lib/openldap.c:1191,1
    - Dst: ISBLANK
      Src: /src/curl/lib/openldap.c:1192,1
    - Dst: ISPRINT
      Src: /src/curl/lib/openldap.c:1198,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/openldap.c:1210,1
    - Dst: client_write
      Src: /src/curl/lib/openldap.c:1214,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1214,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1215,1
    - Dst: curlx_free
      Src: /src/curl/lib/openldap.c:1216,1
    - Dst: client_write
      Src: /src/curl/lib/openldap.c:1219,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1219,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1221,1
    - Dst: ber_memfree
      Src: /src/curl/lib/openldap.c:1226,1
    - Dst: client_write
      Src: /src/curl/lib/openldap.c:1229,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1229,1
    - Dst: client_write
      Src: /src/curl/lib/openldap.c:1235,1
    - Dst: STRCONST
      Src: /src/curl/lib/openldap.c:1235,1
    - Dst: ber_free
      Src: /src/curl/lib/openldap.c:1241,1
    - Dst: ldap_msgfree
      Src: /src/curl/lib/openldap.c:1242,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 101
    argCount: 5
    argNames:
    - data
    - sockindex
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1083
    functionDepth: 4
    functionLinenumber: 1083
    functionLinenumberEnd: 1244
    functionName: oldap_recv
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_result
    - ldap_get_attribute_ber
    - Curl_meta_get
    - ISBLANK
    - FALLTHROUGH
    - ldap_parse_result
    - ber_memfree
    - Curl_conn_meta_get
    - curl_strnequal
    - ber_free
    - failf
    - ldap_get_dn_ber
    - curlx_base64_encode
    - curlx_free
    - ISPRINT
    - STRCONST
    - ldap_err2string
    - ldap_msgtype
    - infof
    - client_write
    - ldap_msgfree
    - ldap_memfree
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode oldap_recv(struct Curl_easy *data, int sockindex, char *buf,\n
      \                          size_t len, size_t *pnread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ldap_get_option
      Src: /src/curl/lib/openldap.c:1251,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/openldap.c:1257,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/openldap.c:1259,1
    - Dst: ber_memvfree
      Src: /src/curl/lib/openldap.c:1260,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/openldap.c:1263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1246
    functionDepth: 7
    functionLinenumber: 1246
    functionLinenumberEnd: 1264
    functionName: Curl_ldap_version
    functionSourceFile: /src/curl/lib/openldap.c
    functionUses: 0
    functionsReached:
    - ldap_memfree
    - ldap_get_option
    - ber_memvfree
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: void Curl_ldap_version(char *buf, size_t bufsz)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:64,1
    - Dst: strlen
      Src: /src/curl/lib/formdata.c:65,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:65,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/formdata.c:69,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/formdata.c:71,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:71,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/formdata.c:73,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:73,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/formdata.c:77,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:77,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/formdata.c:80,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - src
    - parent_post
    - httppost
    - last_post
    argTypes:
    - struct FormInfo*
    - struct curl_httppost*
    - struct curl_httppost**
    - struct curl_httppost**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 103
    functionName: AddHttpPost
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_ptr
    - curlx_calloc
    - strlen
    - CURL_UNCONST
    linkageType: ''
    returnType: struct curl_httppost
    signature: "struct curl_httppost *AddHttpPost(struct FormInfo *src,\n                                         struct
      curl_httppost *parent_post,\n                                         struct
      curl_httppost **httppost,\n                                         struct curl_httppost
      **last_post)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/formdata.c:108,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/formdata.c:111,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/formdata.c:112,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/formdata.c:113,1
    - Dst: Curl_bufref_init
      Src: /src/curl/lib/formdata.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: NewFormInfo
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_init
    - curlx_calloc
    linkageType: ''
    returnType: struct FormInfo
    signature: struct FormInfo *NewFormInfo(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:123,1
    - Dst: strlen
      Src: /src/curl/lib/formdata.c:128,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/formdata.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - field
    - len
    argTypes:
    - struct bufref*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: FormInfoCopyField
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_ptr
    - Curl_bufref_memdup0
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode FormInfoCopyField(struct bufref *field, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - form_info
    - parent
    argTypes:
    - struct FormInfo*
    - struct FormInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: AddFormInfo
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AddFormInfo(struct FormInfo *form_info, struct FormInfo *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/formdata.c:158,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/formdata.c:159,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/formdata.c:160,1
    - Dst: Curl_bufref_free
      Src: /src/curl/lib/formdata.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct FormInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: free_formlist
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_free
    linkageType: ''
    returnType: void
    signature: void free_formlist(struct FormInfo *ptr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:227,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:229,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:246,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:247,1
    - Dst: Curl_mime_contenttype
      Src: /src/curl/lib/formdata.c:249,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/formdata.c:256,1
    - Dst: strlen
      Src: /src/curl/lib/formdata.c:256,1
    - Dst: memchr
      Src: /src/curl/lib/formdata.c:260,1
    - Dst: FormInfoCopyField
      Src: /src/curl/lib/formdata.c:266,1
    - Dst: FormInfoCopyField
      Src: /src/curl/lib/formdata.c:272,1
    - Dst: AddHttpPost
      Src: /src/curl/lib/formdata.c:275,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:280,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:281,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 32
    argCount: 3
    argNames:
    - first_form
    - httppost
    - last_post
    argTypes:
    - struct FormInfo*
    - struct curl_httppost**
    - struct curl_httppost**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 285
    functionName: FormAddCheck
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 0
    functionsReached:
    - Curl_mime_contenttype
    - memchr
    - Curl_bufref_ptr
    - Curl_bufref_memdup0
    - FormInfoCopyField
    - strlen
    - AddHttpPost
    linkageType: ''
    returnType: CURLFORMcode
    signature: "CURLFORMcode FormAddCheck(struct FormInfo *first_form,\n                                 struct
      curl_httppost **httppost,\n                                 struct curl_httppost
      **last_post)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_chain
      Src: /src/curl/lib/formdata.c:294,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct curl_httppost*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: free_chain
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 1
    functionsReached:
    - curlx_free
    - free_chain
    linkageType: ''
    returnType: void
    signature: void free_chain(struct curl_httppost *c)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: NewFormInfo
      Src: /src/curl/lib/formdata.c:321,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/formdata.c:336,1
    - Dst: va_arg
      Src: /src/curl/lib/formdata.c:349,1
    - Dst: va_arg
      Src: /src/curl/lib/formdata.c:360,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/formdata.c:371,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:373,1
    - Dst: form_ptr_arg
      Src: /src/curl/lib/formdata.c:376,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/formdata.c:378,1
    - Dst: form_int_arg
      Src: /src/curl/lib/formdata.c:387,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/formdata.c:395,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:397,1
    - Dst: form_ptr_arg
      Src: /src/curl/lib/formdata.c:400,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/formdata.c:402,1
    - Dst: form_int_arg
      Src: /src/curl/lib/formdata.c:408,1
    - Dst: form_int_arg
      Src: /src/curl/lib/formdata.c:413,1
    - Dst: form_ptr_arg
      Src: /src/curl/lib/formdata.c:421,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/formdata.c:423,1
    - Dst: strlen
      Src: /src/curl/lib/formdata.c:423,1
    - Dst: form_ptr_arg
      Src: /src/curl/lib/formdata.c:435,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:436,1
    - Dst: NewFormInfo
      Src: /src/curl/lib/formdata.c:439,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/formdata.c:441,1
    - Dst: strlen
      Src: /src/curl/lib/formdata.c:441,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:442,1
    - Dst: AddFormInfo
      Src: /src/curl/lib/formdata.c:446,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/formdata.c:459,1
    - Dst: strlen
      Src: /src/curl/lib/formdata.c:459,1
    - Dst: form_ptr_arg
      Src: /src/curl/lib/formdata.c:474,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/formdata.c:478,1
    - Dst: form_int_arg
      Src: /src/curl/lib/formdata.c:489,1
    - Dst: form_ptr_arg
      Src: /src/curl/lib/formdata.c:497,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/formdata.c:503,1
    - Dst: form_ptr_arg
      Src: /src/curl/lib/formdata.c:511,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:512,1
    - Dst: NewFormInfo
      Src: /src/curl/lib/formdata.c:515,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/formdata.c:516,1
    - Dst: strlen
      Src: /src/curl/lib/formdata.c:517,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:518,1
    - Dst: AddFormInfo
      Src: /src/curl/lib/formdata.c:522,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/formdata.c:534,1
    - Dst: strlen
      Src: /src/curl/lib/formdata.c:534,1
    - Dst: form_ptr_arg
      Src: /src/curl/lib/formdata.c:544,1
    - Dst: form_ptr_arg
      Src: /src/curl/lib/formdata.c:555,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/formdata.c:556,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/formdata.c:558,1
    - Dst: strlen
      Src: /src/curl/lib/formdata.c:558,1
    - Dst: FormAddCheck
      Src: /src/curl/lib/formdata.c:569,1
    - Dst: free_formlist
      Src: /src/curl/lib/formdata.c:574,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:581,1
    - Dst: free_chain
      Src: /src/curl/lib/formdata.c:595,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 192
    argCount: 3
    argNames:
    - httppost
    - last_post
    - params
    argTypes:
    - struct curl_httppost**
    - struct curl_httppost**
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 300
    functionDepth: 6
    functionLinenumber: 300
    functionLinenumberEnd: 600
    functionName: FormAdd
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 0
    functionsReached:
    - va_arg
    - Curl_bufref_set
    - FormAddCheck
    - form_ptr_arg
    - form_int_arg
    - NewFormInfo
    - AddFormInfo
    - CURL_UNCONST
    - curlx_free
    - Curl_bufref_ptr
    - Curl_bufref_memdup0
    - free_chain
    - free_formlist
    - strlen
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLFORMcode
    signature: "CURLFORMcode FormAdd(struct curl_httppost **httppost,\n                            struct
      curl_httppost **last_post, va_list params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: form_ptr_arg
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: form_ptr_arg(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: form_int_arg
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: form_int_arg(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: form_int_arg
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: form_int_arg(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/formdata.c:613,1
    - Dst: FormAdd
      Src: /src/curl/lib/formdata.c:614,1
    - Dst: va_end
      Src: /src/curl/lib/formdata.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - httppost
    - last_post
    argTypes:
    - struct curl_httppost**
    - struct curl_httppost**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 608
    functionDepth: 7
    functionLinenumber: 608
    functionLinenumberEnd: 617
    functionName: curl_formadd
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 9
    functionsReached:
    - FormAdd
    - va_start
    - va_end
    linkageType: ''
    returnType: CURLFORMcode
    signature: "CURLFORMcode curl_formadd(struct curl_httppost **httppost,\n                          struct
      curl_httppost **last_post, ...)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mime_initpart
      Src: /src/curl/lib/formdata.c:636,1
    - Dst: Curl_getformdata
      Src: /src/curl/lib/formdata.c:637,1
    - Dst: Curl_mime_prepare_headers
      Src: /src/curl/lib/formdata.c:639,1
    - Dst: Curl_mime_read
      Src: /src/curl/lib/formdata.c:644,1
    - Dst: append
      Src: /src/curl/lib/formdata.c:649,1
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/formdata.c:656,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - form
    - arg
    - append
    argTypes:
    - struct curl_httppost*
    - void*
    - curl_formget_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 626
    functionDepth: 5
    functionLinenumber: 626
    functionLinenumberEnd: 658
    functionName: curl_formget
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 2
    functionsReached:
    - Curl_mime_initpart
    - Curl_getformdata
    - Curl_mime_cleanpart
    - append
    - Curl_mime_prepare_headers
    - Curl_mime_read
    linkageType: ''
    returnType: int
    signature: "int curl_formget(struct curl_httppost *form, void *arg,\n                 curl_formget_callback
      append)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_formfree
      Src: /src/curl/lib/formdata.c:676,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:679,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:682,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:683,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:684,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - form
    argTypes:
    - struct curl_httppost*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 688
    functionName: curl_formfree
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 8
    functionsReached:
    - curlx_free
    - curl_formfree
    linkageType: ''
    returnType: void
    signature: void curl_formfree(struct curl_httppost *form)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mime_name
      Src: /src/curl/lib/formdata.c:697,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/formdata.c:698,1
    - Dst: curl_mime_name
      Src: /src/curl/lib/formdata.c:701,1
    - Dst: curlx_free
      Src: /src/curl/lib/formdata.c:702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - part
    - name
    - len
    argTypes:
    - curl_mimepart*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 704
    functionName: setname
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curl_mime_name
    - curlx_memdup0
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode setname(curl_mimepart *part, const char *name, size_t len)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/formdata.c:726,1
    - Dst: curl_mime_init
      Src: /src/curl/lib/formdata.c:731,1
    - Dst: curl_mime_subparts
      Src: /src/curl/lib/formdata.c:736,1
    - Dst: curl_mime_addpart
      Src: /src/curl/lib/formdata.c:743,1
    - Dst: setname
      Src: /src/curl/lib/formdata.c:747,1
    - Dst: curl_mime_init
      Src: /src/curl/lib/formdata.c:749,1
    - Dst: curl_mime_subparts
      Src: /src/curl/lib/formdata.c:754,1
    - Dst: curl_mime_addpart
      Src: /src/curl/lib/formdata.c:760,1
    - Dst: curl_mime_headers
      Src: /src/curl/lib/formdata.c:766,1
    - Dst: curl_mime_type
      Src: /src/curl/lib/formdata.c:770,1
    - Dst: setname
      Src: /src/curl/lib/formdata.c:774,1
    - Dst: strcmp
      Src: /src/curl/lib/formdata.c:784,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/lib/formdata.c:793,1
    - Dst: curl_mime_filedata
      Src: /src/curl/lib/formdata.c:802,1
    - Dst: curl_mime_filename
      Src: /src/curl/lib/formdata.c:804,1
    - Dst: curl_mime_data
      Src: /src/curl/lib/formdata.c:807,1
    - Dst: curl_mime_data_cb
      Src: /src/curl/lib/formdata.c:815,1
    - Dst: curl_mime_data
      Src: /src/curl/lib/formdata.c:824,1
    - Dst: curl_mime_filename
      Src: /src/curl/lib/formdata.c:832,1
    - Dst: Curl_mime_cleanpart
      Src: /src/curl/lib/formdata.c:837,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 66
    argCount: 4
    argNames:
    - data
    - finalform
    - post
    - fread_func
    argTypes:
    - CURL*
    - curl_mimepart*
    - struct curl_httppost*
    - curl_read_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 716
    functionDepth: 3
    functionLinenumber: 716
    functionLinenumberEnd: 840
    functionName: Curl_getformdata
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 2
    functionsReached:
    - curl_mime_headers
    - Curl_mime_cleanpart
    - curl_mime_subparts
    - curl_mime_filename
    - curl_mime_data_cb
    - curl_mime_addpart
    - strcmp
    - curl_mime_init
    - curl_mime_data
    - setname
    - curl_mime_type
    - curl_mime_filedata
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_getformdata(CURL *data,\n                          curl_mimepart
      *finalform,\n                          struct curl_httppost *post,\n                          curl_read_callback
      fread_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - httppost
    - last_post
    argTypes:
    - struct curl_httppost**
    - struct curl_httppost**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 849
    functionName: curl_formadd
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: CURLFORMcode
    signature: "CURLFORMcode curl_formadd(struct curl_httppost **httppost,\n                          struct
      curl_httppost **last_post, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - form
    - arg
    - append
    argTypes:
    - struct curl_httppost*
    - void*
    - curl_formget_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 858
    functionName: curl_formget
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int curl_formget(struct curl_httppost *form, void *arg,\n                 curl_formget_callback
      append)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - form
    argTypes:
    - struct curl_httppost*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 864
    functionName: curl_formfree
    functionSourceFile: /src/curl/lib/formdata.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void curl_formfree(struct curl_httppost *form)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: GOOD_MULTI_HANDLE
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOOD_MULTI_HANDLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: GOOD_MULTI_HANDLE
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOOD_MULTI_HANDLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_pnow
      Src: /src/curl/lib/multi.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: multi_now
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - curlx_pnow
    linkageType: ''
    returnType: struct curltime
    signature: struct curltime *multi_now(struct Curl_multi *multi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_init_CONNECT
      Src: /src/curl/lib/multi.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - from_state
    argTypes:
    - struct Curl_easy*
    - CURLMstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: mstate_enter_connect
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_init_CONNECT
    linkageType: ''
    returnType: void
    signature: "void mstate_enter_connect(struct Curl_easy *data,\n                                 CURLMstate
      from_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/multi.c:125,1
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/multi.c:126,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/multi.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - from_state
    argTypes:
    - struct Curl_easy*
    - CURLMstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: mstate_enter_did
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_pgrsTime
    - CURL_REQ_WANT_SEND
    linkageType: ''
    returnType: void
    signature: "void mstate_enter_did(struct Curl_easy *data,\n                             CURLMstate
      from_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURLM_NTFY
      Src: /src/curl/lib/multi.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - from_state
    argTypes:
    - struct Curl_easy*
    - CURLMstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: mstate_enter_done
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - CURLM_NTFY
    linkageType: ''
    returnType: void
    signature: "void mstate_enter_done(struct Curl_easy *data,\n                              CURLMstate
      from_state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/multi.c:143,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/multi.c:144,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/multi.c:145,1
    - Dst: Curl_pgrsCompleted
      Src: /src/curl/lib/multi.c:147,1
    - Dst: CURLM_NTFY
      Src: /src/curl/lib/multi.c:149,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:151,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/lib/multi.c:151,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:152,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:153,1
    - Dst: Curl_uint32_bset_empty
      Src: /src/curl/lib/multi.c:155,1
    - Dst: multi_xfer_bufs_free
      Src: /src/curl/lib/multi.c:157,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/multi.c:161,1
    - Dst: Curl_expire_clear
      Src: /src/curl/lib/multi.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - data
    - from_state
    argTypes:
    - struct Curl_easy*
    - CURLMstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 163
    functionName: mstate_enter_completed
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_xfer_bufs_free
    - Curl_uint32_bset_empty
    - Curl_expire_clear
    - DEBUGASSERT
    - Curl_detach_connection
    - CURLM_NTFY
    - Curl_uint32_bset_contains
    - Curl_pgrsTime
    - Curl_uint32_bset_remove
    - Curl_pgrsCompleted
    linkageType: ''
    returnType: void
    signature: "void mstate_enter_completed(struct Curl_easy *data,\n                                   CURLMstate
      from_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NOVERBOSE
      Src: /src/curl/lib/multi.c:197,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:198,1
    - Dst: CURL_MSTATE_NAME
      Src: /src/curl/lib/multi.c:198,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:200,1
    - Dst: CURL_MSTATE_NAME
      Src: /src/curl/lib/multi.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - state
    - lineno
    argTypes:
    - struct Curl_easy*
    - CURLMstate
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 207
    functionName: mstate
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - NOVERBOSE
    - CURL_TRC_M
    - CURL_MSTATE_NAME
    linkageType: ''
    returnType: void
    signature: "void mstate(struct Curl_easy *data, CURLMstate state\n#ifdef DEBUGBUILD\n
      \                  , int lineno\n#endif\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: multistate
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multistate(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: multistate
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multistate(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: ph_freeentry
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void ph_freeentry(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_count
      Src: /src/curl/lib/multi.c:234,1
    - Dst: CURLM_NTFY
      Src: /src/curl/lib/multi.c:235,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/multi.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - multi
    - msg
    argTypes:
    - struct Curl_multi*
    - struct Curl_message*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: multi_addmsg
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_llist_append
    - CURLM_NTFY
    linkageType: ''
    returnType: void
    signature: void multi_addmsg(struct Curl_multi *multi, struct Curl_message *msg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/multi.c:245,1
    - Dst: Curl_dnscache_init
      Src: /src/curl/lib/multi.c:252,1
    - Dst: Curl_mntfy_init
      Src: /src/curl/lib/multi.c:253,1
    - Dst: Curl_multi_ev_init
      Src: /src/curl/lib/multi.c:254,1
    - Dst: Curl_uint32_tbl_init
      Src: /src/curl/lib/multi.c:255,1
    - Dst: Curl_uint32_bset_init
      Src: /src/curl/lib/multi.c:256,1
    - Dst: Curl_uint32_bset_init
      Src: /src/curl/lib/multi.c:257,1
    - Dst: Curl_uint32_bset_init
      Src: /src/curl/lib/multi.c:258,1
    - Dst: Curl_uint32_bset_init
      Src: /src/curl/lib/multi.c:259,1
    - Dst: Curl_hash_init
      Src: /src/curl/lib/multi.c:260,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/multi.c:262,1
    - Dst: Curl_mntfy_resize
      Src: /src/curl/lib/multi.c:272,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/lib/multi.c:273,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/lib/multi.c:274,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/lib/multi.c:275,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/lib/multi.c:276,1
    - Dst: Curl_uint32_tbl_resize
      Src: /src/curl/lib/multi.c:277,1
    - Dst: curl_easy_init
      Src: /src/curl/lib/multi.c:280,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/multi.c:286,1
    - Dst: getenv
      Src: /src/curl/lib/multi.c:289,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/lib/multi.c:292,1
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/lib/multi.c:293,1
    - Dst: Curl_cshutdn_init
      Src: /src/curl/lib/multi.c:295,1
    - Dst: Curl_cpool_init
      Src: /src/curl/lib/multi.c:298,1
    - Dst: Curl_ssl_scache_create
      Src: /src/curl/lib/multi.c:301,1
    - Dst: WSACreateEvent
      Src: /src/curl/lib/multi.c:308,1
    - Dst: Curl_wakeup_init
      Src: /src/curl/lib/multi.c:315,1
    - Dst: Curl_probeipv6
      Src: /src/curl/lib/multi.c:319,1
    - Dst: Curl_async_thrdd_multi_init
      Src: /src/curl/lib/multi.c:324,1
    - Dst: Curl_async_thrdd_multi_init
      Src: /src/curl/lib/multi.c:328,1
    - Dst: Curl_multi_ev_cleanup
      Src: /src/curl/lib/multi.c:340,1
    - Dst: Curl_hash_destroy
      Src: /src/curl/lib/multi.c:341,1
    - Dst: Curl_dnscache_destroy
      Src: /src/curl/lib/multi.c:342,1
    - Dst: Curl_cpool_destroy
      Src: /src/curl/lib/multi.c:343,1
    - Dst: Curl_cshutdn_destroy
      Src: /src/curl/lib/multi.c:344,1
    - Dst: Curl_ssl_scache_destroy
      Src: /src/curl/lib/multi.c:346,1
    - Dst: Curl_multi_ev_xfer_done
      Src: /src/curl/lib/multi.c:349,1
    - Dst: Curl_close
      Src: /src/curl/lib/multi.c:351,1
    - Dst: Curl_mntfy_cleanup
      Src: /src/curl/lib/multi.c:353,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/lib/multi.c:355,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/lib/multi.c:356,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/lib/multi.c:357,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/lib/multi.c:358,1
    - Dst: Curl_uint32_tbl_destroy
      Src: /src/curl/lib/multi.c:359,1
    - Dst: Curl_wakeup_destroy
      Src: /src/curl/lib/multi.c:361,1
    - Dst: curlx_free
      Src: /src/curl/lib/multi.c:364,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 5
    argNames:
    - xfer_table_size
    - ev_hashsize
    - chashsize
    - dnssize
    - sesssize
    argTypes:
    - uint32_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 239
    functionDepth: 10
    functionLinenumber: 239
    functionLinenumberEnd: 366
    functionName: Curl_multi_handle
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - Curl_cshutdn_destroy
    - getenv
    - Curl_uint32_bset_resize
    - Curl_uint32_bset_init
    - Curl_mntfy_init
    - Curl_wakeup_destroy
    - Curl_probeipv6
    - Curl_ssl_scache_create
    - Curl_uint32_tbl_destroy
    - Curl_llist_init
    - Curl_cpool_init
    - Curl_mntfy_cleanup
    - Curl_close
    - Curl_uint32_bset_add
    - Curl_cshutdn_init
    - Curl_async_thrdd_multi_init
    - Curl_ssl_scache_destroy
    - Curl_uint32_tbl_init
    - Curl_uint32_tbl_add
    - Curl_multi_ev_cleanup
    - Curl_hash_init
    - Curl_mntfy_resize
    - Curl_wakeup_init
    - curlx_free
    - curlx_calloc
    - Curl_cpool_destroy
    - Curl_multi_ev_init
    - Curl_hash_destroy
    - Curl_multi_ev_xfer_done
    - curl_easy_init
    - Curl_uint32_bset_destroy
    - Curl_uint32_tbl_resize
    - Curl_dnscache_init
    - Curl_dnscache_destroy
    - WSACreateEvent
    linkageType: ''
    returnType: struct Curl_multi
    signature: "struct Curl_multi *Curl_multi_handle(uint32_t xfer_table_size,\n                                     size_t
      ev_hashsize,  /* event hash */\n                                     size_t
      chashsize, /* connection hash */\n                                     size_t
      dnssize,   /* dns hash */\n                                     size_t sesssize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_handle
      Src: /src/curl/lib/multi.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 11
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: curl_multi_init
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 43
    functionsReached:
    - Curl_multi_handle
    linkageType: ''
    returnType: CURLM
    signature: CURLM *curl_multi_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/multi.c:381,1
    - Dst: infof
      Src: /src/curl/lib/multi.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - multi
    - data
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: multi_warn_debug
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - infof
    linkageType: ''
    returnType: void
    signature: void multi_warn_debug(struct Curl_multi *multi, struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: multi_warn_debug
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_warn_debug(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: Curl_is_connecting
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_is_connecting(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_ev_assess_xfer
      Src: /src/curl/lib/multi.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: multi_assess_wakeup
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_multi_ev_assess_xfer
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode multi_assess_wakeup(struct Curl_multi *multi)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_tbl_capacity
      Src: /src/curl/lib/multi.c:410,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/lib/multi.c:423,1
    - Dst: CURLMAX
      Src: /src/curl/lib/multi.c:425,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:447,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/lib/multi.c:448,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/lib/multi.c:449,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/lib/multi.c:450,1
    - Dst: Curl_uint32_bset_resize
      Src: /src/curl/lib/multi.c:451,1
    - Dst: Curl_uint32_tbl_resize
      Src: /src/curl/lib/multi.c:452,1
    - Dst: Curl_uint32_tbl_add
      Src: /src/curl/lib/multi.c:457,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:459,1
    - Dst: Curl_uint32_tbl_capacity
      Src: /src/curl/lib/multi.c:459,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/lib/multi.c:460,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 2
    argNames:
    - multi
    - data
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 464
    functionName: multi_xfers_add
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - CURLMAX
    - Curl_uint32_tbl_add
    - Curl_uint32_tbl_capacity
    - DEBUGASSERT
    - Curl_uint32_bset_resize
    - Curl_uint32_tbl_resize
    - CURL_TRC_M
    - Curl_uint32_tbl_count
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multi_xfers_add(struct Curl_multi *multi,\n                                 struct
      Curl_easy *data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:473,1
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/multi.c:477,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/lib/multi.c:493,1
    - Dst: Curl_uint32_tbl_contains
      Src: /src/curl/lib/multi.c:494,1
    - Dst: Curl_uint32_bset_clear
      Src: /src/curl/lib/multi.c:497,1
    - Dst: Curl_uint32_bset_clear
      Src: /src/curl/lib/multi.c:498,1
    - Dst: Curl_uint32_bset_clear
      Src: /src/curl/lib/multi.c:499,1
    - Dst: Curl_uint32_bset_clear
      Src: /src/curl/lib/multi.c:500,1
    - Dst: curl_multi_cleanup
      Src: /src/curl/lib/multi.c:506,1
    - Dst: multi_xfers_add
      Src: /src/curl/lib/multi.c:511,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/multi.c:515,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:533,1
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/lib/multi.c:544,1
    - Dst: Curl_cpool_xfer_init
      Src: /src/curl/lib/multi.c:548,1
    - Dst: multi_warn_debug
      Src: /src/curl/lib/multi.c:549,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/multi.c:552,1
    - Dst: Curl_update_timer
      Src: /src/curl/lib/multi.c:556,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/lib/multi.c:559,1
    - Dst: multi_assess_wakeup
      Src: /src/curl/lib/multi.c:573,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:575,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:579,1
    - Dst: Curl_multi_xfers_running
      Src: /src/curl/lib/multi.c:580,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/lib/multi.c:581,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - m
    - curl
    argTypes:
    - CURLM*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 466
    functionDepth: 7
    functionLinenumber: 466
    functionLinenumberEnd: 583
    functionName: curl_multi_add_handle
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 46
    functionsReached:
    - Curl_multi_mark_dirty
    - multi_assess_wakeup
    - Curl_uint32_tbl_remove
    - multi_warn_debug
    - Curl_llist_init
    - Curl_multi_xfers_running
    - Curl_uint32_bset_clear
    - GOOD_EASY_HANDLE
    - Curl_uint32_bset_add
    - CURL_TRC_M
    - failf
    - GOOD_MULTI_HANDLE
    - multi_xfers_add
    - Curl_cpool_xfer_init
    - multistate
    - Curl_uint32_tbl_count
    - Curl_uint32_tbl_contains
    - Curl_update_timer
    - curl_multi_cleanup
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_add_handle(CURLM *m, CURL *curl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/multi.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 592
    functionDepth: 6
    functionLinenumber: 592
    functionLinenumberEnd: 598
    functionName: debug_print_sock_hash
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void debug_print_sock_hash(void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_is_multiplex
      Src: /src/curl/lib/multi.c:640,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 3
    argNames:
    - conn
    - data
    - premature
    argTypes:
    - struct connectdata*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 644
    functionName: multi_conn_should_close
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_multiplex
    linkageType: ''
    returnType: bool
    signature: "bool multi_conn_should_close(struct connectdata *conn,\n                                    struct
      Curl_easy *data,\n                                    bool premature)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/multi.c:652,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:654,1
    - Dst: CONN_INUSE
      Src: /src/curl/lib/multi.c:655,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:657,1
    - Dst: Curl_dnscache_prune
      Src: /src/curl/lib/multi.c:665,1
    - Dst: multi_conn_should_close
      Src: /src/curl/lib/multi.c:667,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:668,1
    - Dst: Curl_conn_is_multiplex
      Src: /src/curl/lib/multi.c:672,1
    - Dst: connclose
      Src: /src/curl/lib/multi.c:673,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/multi.c:674,1
    - Dst: Curl_conn_get_max_concurrent
      Src: /src/curl/lib/multi.c:676,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:677,1
    - Dst: connclose
      Src: /src/curl/lib/multi.c:680,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/multi.c:681,1
    - Dst: Curl_cpool_conn_now_idle
      Src: /src/curl/lib/multi.c:685,1
    - Dst: infof
      Src: /src/curl/lib/multi.c:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - conn
    - data
    - userdata
    argTypes:
    - struct connectdata*
    - struct Curl_easy*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 696
    functionName: multi_done_locked
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_conn_should_close
    - CONN_INUSE
    - Curl_detach_connection
    - Curl_conn_get_max_concurrent
    - infof
    - Curl_conn_is_multiplex
    - Curl_cpool_conn_now_idle
    - Curl_dnscache_prune
    - connclose
    - Curl_conn_terminate
    - CURL_TRC_M
    linkageType: ''
    returnType: void
    signature: "void multi_done_locked(struct connectdata *conn,\n                              struct
      Curl_easy *data,\n                              void *userdata)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:706,1
    - Dst: Curl_resolv_shutdown_all
      Src: /src/curl/lib/multi.c:714,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/multi.c:717,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/multi.c:718,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/multi.c:729,1
    - Dst: struct connectdata*::scheme::run::done
      Src: /src/curl/lib/multi.c:736,1
    - Dst: Curl_pgrsDone
      Src: /src/curl/lib/multi.c:746,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/multi.c:752,1
    - Dst: Curl_xfer_write_done
      Src: /src/curl/lib/multi.c:752,1
    - Dst: Curl_conn_ev_data_done
      Src: /src/curl/lib/multi.c:756,1
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:758,1
    - Dst: Curl_req_done
      Src: /src/curl/lib/multi.c:761,1
    - Dst: memset
      Src: /src/curl/lib/multi.c:768,1
    - Dst: Curl_cpool_do_locked
      Src: /src/curl/lib/multi.c:770,1
    - Dst: Curl_netrc_cleanup
      Src: /src/curl/lib/multi.c:774,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 698
    functionDepth: 8
    functionLinenumber: 698
    functionLinenumberEnd: 776
    functionName: multi_done
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - struct connectdata*::scheme::run::done
    - Curl_cpool_do_locked
    - Curl_1st_fatal
    - Curl_netrc_cleanup
    - Curl_req_done
    - Curl_pgrsDone
    - process_pending_handles
    - Curl_xfer_write_done
    - Curl_conn_ev_data_done
    - memset
    - Curl_resolv_shutdown_all
    - CURL_TRC_M
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode multi_done(struct Curl_easy *data,\n                           CURLcode
      status,  /* an error if this is called\n                                                after
      an error was detected */\n                           bool premature)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connclose
      Src: /src/curl/lib/multi.c:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - conn
    - data
    - userdata
    argTypes:
    - struct connectdata*
    - struct Curl_easy*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 786
    functionName: close_connect_only
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - connclose
    linkageType: ''
    returnType: void
    signature: "void close_connect_only(struct connectdata *conn,\n                               struct
      Curl_easy *data,\n                               void *userdata)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:798,1
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/multi.c:802,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:814,1
    - Dst: Curl_uint32_tbl_get
      Src: /src/curl/lib/multi.c:817,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:818,1
    - Dst: streamclose
      Src: /src/curl/lib/multi.c:834,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:843,1
    - Dst: Curl_expire_clear
      Src: /src/curl/lib/multi.c:849,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/lib/multi.c:852,1
    - Dst: Curl_wildcard_dtor
      Src: /src/curl/lib/multi.c:855,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/multi.c:860,1
    - Dst: Curl_multi_ev_xfer_done
      Src: /src/curl/lib/multi.c:863,1
    - Dst: Curl_getconnectinfo
      Src: /src/curl/lib/multi.c:876,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/multi.c:878,1
    - Dst: Curl_cpool_do_by_id
      Src: /src/curl/lib/multi.c:884,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/multi.c:896,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/multi.c:896,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/multi.c:897,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/multi.c:900,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:908,1
    - Dst: Curl_uint32_tbl_contains
      Src: /src/curl/lib/multi.c:908,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/lib/multi.c:909,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:910,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:911,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:912,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:913,1
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:920,1
    - Dst: Curl_update_timer
      Src: /src/curl/lib/multi.c:922,1
    - Dst: multi_assess_wakeup
      Src: /src/curl/lib/multi.c:926,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:928,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:932,1
    - Dst: Curl_multi_xfers_running
      Src: /src/curl/lib/multi.c:933,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/lib/multi.c:934,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 2
    argNames:
    - m
    - curl
    argTypes:
    - CURLM*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 788
    functionDepth: 9
    functionLinenumber: 788
    functionLinenumberEnd: 936
    functionName: curl_multi_remove_handle
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 65
    functionsReached:
    - DEBUGASSERT
    - multi_assess_wakeup
    - streamclose
    - Curl_uint32_tbl_remove
    - Curl_llist_head
    - Curl_node_remove
    - Curl_getconnectinfo
    - Curl_node_elem
    - Curl_multi_xfers_running
    - GOOD_EASY_HANDLE
    - Curl_uint32_bset_remove
    - CURL_TRC_M
    - failf
    - GOOD_MULTI_HANDLE
    - Curl_node_next
    - Curl_wildcard_dtor
    - Curl_uint32_bset_contains
    - Curl_conn_terminate
    - Curl_uint32_tbl_count
    - Curl_uint32_tbl_get
    - Curl_expire_clear
    - Curl_multi_ev_xfer_done
    - multi_done
    - Curl_detach_connection
    - Curl_uint32_tbl_contains
    - process_pending_handles
    - Curl_cpool_do_by_id
    - Curl_update_timer
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_remove_handle(CURLM *m, CURL *curl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 942
    functionName: Curl_multiplex_wanted
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_multiplex_wanted(const struct Curl_multi *multi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:955,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 963
    functionName: Curl_detach_connection
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 15
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_detach_connection(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:973,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:974,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:975,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:976,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:982,1
    - Dst: struct connectdata*::scheme::run::attach
      Src: /src/curl/lib/multi.c:985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 986
    functionName: Curl_attach_connection
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 13
    functionsReached:
    - struct connectdata*::scheme::run::attach
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_attach_connection(struct Curl_easy *data,\n                            struct
      connectdata *conn)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/multi.c:995,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/lib/multi.c:998,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/lib/multi.c:999,1
    - Dst: Curl_pollset_want_recv
      Src: /src/curl/lib/multi.c:1006,1
    - Dst: Curl_pollset_remove_in
      Src: /src/curl/lib/multi.c:1007,1
    - Dst: Curl_pollset_want_send
      Src: /src/curl/lib/multi.c:1011,1
    - Dst: Curl_pollset_remove_out
      Src: /src/curl/lib/multi.c:1012,1
    - Dst: Curl_pollset_want_recv
      Src: /src/curl/lib/multi.c:1022,1
    - Dst: Curl_conn_data_pending
      Src: /src/curl/lib/multi.c:1023,1
    - Dst: Curl_pollset_want_recv
      Src: /src/curl/lib/multi.c:1024,1
    - Dst: Curl_conn_data_pending
      Src: /src/curl/lib/multi.c:1025,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:1026,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/multi.c:1028,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 26
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 989
    functionDepth: 3
    functionLinenumber: 989
    functionLinenumberEnd: 1032
    functionName: multi_adjust_pollset
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_conn_data_pending
    - Curl_multi_mark_dirty
    - Curl_rlimit_avail
    - Curl_pollset_want_recv
    - Curl_pollset_remove_in
    - Curl_pollset_remove_out
    - CURL_TRC_M
    - Curl_pollset_want_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode multi_adjust_pollset(struct Curl_easy *data,\n                                     struct
      easy_pollset *ps)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_recv_is_paused
      Src: /src/curl/lib/multi.c:1041,1
    - Dst: Curl_conn_get_first_socket
      Src: /src/curl/lib/multi.c:1046,1
    - Dst: Curl_pollset_change
      Src: /src/curl/lib/multi.c:1048,1
    - Dst: multi_adjust_pollset
      Src: /src/curl/lib/multi.c:1050,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/multi.c:1053,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1034
    functionDepth: 4
    functionLinenumber: 1034
    functionLinenumberEnd: 1055
    functionName: mstate_connecting_pollset
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_adjust_pollset
    - Curl_conn_adjust_pollset
    - Curl_xfer_recv_is_paused
    - Curl_conn_get_first_socket
    - Curl_pollset_change
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mstate_connecting_pollset(struct Curl_easy *data,\n                                          struct
      easy_pollset *ps)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct connectdata*::scheme::run::proto_pollset
      Src: /src/curl/lib/multi.c:1064,1
    - Dst: Curl_pollset_change
      Src: /src/curl/lib/multi.c:1069,1
    - Dst: multi_adjust_pollset
      Src: /src/curl/lib/multi.c:1073,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/multi.c:1075,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1057
    functionDepth: 4
    functionLinenumber: 1057
    functionLinenumberEnd: 1077
    functionName: mstate_protocol_pollset
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_conn_adjust_pollset
    - multi_adjust_pollset
    - struct connectdata*::scheme::run::proto_pollset
    - Curl_pollset_change
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mstate_protocol_pollset(struct Curl_easy *data,\n                                        struct
      easy_pollset *ps)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct connectdata*::scheme::run::doing_pollset
      Src: /src/curl/lib/multi.c:1086,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/multi.c:1087,1
    - Dst: Curl_pollset_add_out
      Src: /src/curl/lib/multi.c:1089,1
    - Dst: multi_adjust_pollset
      Src: /src/curl/lib/multi.c:1092,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/multi.c:1094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1079
    functionDepth: 4
    functionLinenumber: 1079
    functionLinenumberEnd: 1096
    functionName: mstate_do_pollset
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - multi_adjust_pollset
    - Curl_conn_adjust_pollset
    - struct connectdata*::scheme::run::doing_pollset
    - Curl_pollset_add_out
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mstate_do_pollset(struct Curl_easy *data,\n                                  struct
      easy_pollset *ps)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct connectdata*::scheme::run::domore_pollset
      Src: /src/curl/lib/multi.c:1105,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/multi.c:1106,1
    - Dst: Curl_pollset_add_out
      Src: /src/curl/lib/multi.c:1108,1
    - Dst: multi_adjust_pollset
      Src: /src/curl/lib/multi.c:1111,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/multi.c:1113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1098
    functionDepth: 4
    functionLinenumber: 1098
    functionLinenumberEnd: 1115
    functionName: mstate_domore_pollset
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - multi_adjust_pollset
    - struct connectdata*::scheme::run::domore_pollset
    - Curl_conn_adjust_pollset
    - Curl_pollset_add_out
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mstate_domore_pollset(struct Curl_easy *data,\n                                      struct
      easy_pollset *ps)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct connectdata*::scheme::run::perform_pollset
      Src: /src/curl/lib/multi.c:1124,1
    - Dst: Curl_req_want_recv
      Src: /src/curl/lib/multi.c:1127,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/multi.c:1127,1
    - Dst: Curl_pollset_add_in
      Src: /src/curl/lib/multi.c:1128,1
    - Dst: Curl_req_want_send
      Src: /src/curl/lib/multi.c:1130,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/multi.c:1131,1
    - Dst: Curl_pollset_add_out
      Src: /src/curl/lib/multi.c:1132,1
    - Dst: multi_adjust_pollset
      Src: /src/curl/lib/multi.c:1136,1
    - Dst: Curl_conn_adjust_pollset
      Src: /src/curl/lib/multi.c:1138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1117
    functionDepth: 4
    functionLinenumber: 1117
    functionLinenumberEnd: 1140
    functionName: mstate_perform_pollset
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_req_want_recv
    - CONN_SOCK_IDX_VALID
    - multi_adjust_pollset
    - Curl_pollset_add_in
    - Curl_conn_adjust_pollset
    - Curl_req_want_send
    - Curl_pollset_add_out
    - struct connectdata*::scheme::run::perform_pollset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mstate_perform_pollset(struct Curl_easy *data,\n                                       struct
      easy_pollset *ps)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_reset
      Src: /src/curl/lib/multi.c:1149,1
    - Dst: Curl_pollset_add_in
      Src: /src/curl/lib/multi.c:1155,1
    - Dst: Curl_resolv_pollset
      Src: /src/curl/lib/multi.c:1172,1
    - Dst: mstate_connecting_pollset
      Src: /src/curl/lib/multi.c:1174,1
    - Dst: mstate_protocol_pollset
      Src: /src/curl/lib/multi.c:1179,1
    - Dst: mstate_do_pollset
      Src: /src/curl/lib/multi.c:1184,1
    - Dst: mstate_domore_pollset
      Src: /src/curl/lib/multi.c:1188,1
    - Dst: mstate_perform_pollset
      Src: /src/curl/lib/multi.c:1193,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:1207,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1208,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:1216,1
    - Dst: CURL_TRC_M_is_verbose
      Src: /src/curl/lib/multi.c:1221,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/multi.c:1222,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:1225,1
    - Dst: Curl_xfer_send_is_paused
      Src: /src/curl/lib/multi.c:1227,1
    - Dst: Curl_xfer_recv_is_paused
      Src: /src/curl/lib/multi.c:1228,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:1231,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:1238,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:1249,1
    - Dst: CURL_TRC_EASY_TIMERS
      Src: /src/curl/lib/multi.c:1252,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1144
    functionDepth: 5
    functionLinenumber: 1144
    functionLinenumberEnd: 1257
    functionName: Curl_multi_pollset
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - Curl_llist_count
    - mstate_protocol_pollset
    - failf
    - Curl_pollset_reset
    - DEBUGASSERT
    - Curl_pollset_add_in
    - CURL_TRC_EASY_TIMERS
    - Curl_xfer_recv_is_paused
    - mstate_do_pollset
    - CURL_TRC_M_is_verbose
    - Curl_resolv_pollset
    - mstate_domore_pollset
    - mstate_perform_pollset
    - mstate_connecting_pollset
    - CURL_TRC_M
    - Curl_xfer_send_is_paused
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode Curl_multi_pollset(struct Curl_easy *data,\n                             struct
      easy_pollset *ps)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:1273,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/multi.c:1279,1
    - Dst: Curl_uint32_bset_first
      Src: /src/curl/lib/multi.c:1280,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi.c:1282,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1285,1
    - Dst: Curl_multi_pollset
      Src: /src/curl/lib/multi.c:1289,1
    - Dst: FDSET_SOCK
      Src: /src/curl/lib/multi.c:1291,1
    - Dst: FD_SET
      Src: /src/curl/lib/multi.c:1295,1
    - Dst: FD_SET
      Src: /src/curl/lib/multi.c:1297,1
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/lib/multi.c:1301,1
    - Dst: Curl_cshutdn_setfds
      Src: /src/curl/lib/multi.c:1304,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/multi.c:1308,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - m
    - read_fd_set
    - write_fd_set
    - exc_fd_set
    - max_fd
    argTypes:
    - CURLM*
    - fd_set*
    - fd_set*
    - fd_set*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1259
    functionDepth: 6
    functionLinenumber: 1259
    functionLinenumberEnd: 1311
    functionName: curl_multi_fdset
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 9
    functionsReached:
    - DEBUGASSERT
    - GOOD_MULTI_HANDLE
    - Curl_uint32_bset_next
    - FDSET_SOCK
    - Curl_uint32_bset_first
    - Curl_multi_get_easy
    - Curl_cshutdn_setfds
    - Curl_pollset_cleanup
    - FD_SET
    - Curl_pollset_init
    - Curl_multi_pollset
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode curl_multi_fdset(CURLM *m,\n                           fd_set
      *read_fd_set, fd_set *write_fd_set,\n                           fd_set *exc_fd_set,
      int *max_fd)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:1328,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/multi.c:1334,1
    - Dst: Curl_waitfds_init
      Src: /src/curl/lib/multi.c:1335,1
    - Dst: Curl_uint32_bset_first
      Src: /src/curl/lib/multi.c:1336,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi.c:1338,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1340,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:1341,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:1342,1
    - Dst: Curl_multi_pollset
      Src: /src/curl/lib/multi.c:1345,1
    - Dst: Curl_waitfds_add_ps
      Src: /src/curl/lib/multi.c:1346,1
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/lib/multi.c:1347,1
    - Dst: Curl_cshutdn_add_waitfds
      Src: /src/curl/lib/multi.c:1350,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/multi.c:1357,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 4
    argNames:
    - m
    - ufds
    - size
    - fd_count
    argTypes:
    - CURLM*
    - struct curl_waitfd*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1313
    functionDepth: 6
    functionLinenumber: 1313
    functionLinenumberEnd: 1359
    functionName: curl_multi_waitfds
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    - GOOD_MULTI_HANDLE
    - Curl_uint32_bset_next
    - Curl_cshutdn_add_waitfds
    - Curl_uint32_bset_first
    - Curl_multi_get_easy
    - Curl_pollset_cleanup
    - Curl_waitfds_init
    - Curl_waitfds_add_ps
    - Curl_uint32_bset_remove
    - Curl_pollset_init
    - Curl_multi_pollset
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode curl_multi_waitfds(CURLM *m,\n                             struct
      curl_waitfd *ufds,\n                             unsigned int size,\n                             unsigned
      int *fd_count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/curl/lib/multi.c:1372,1
    - Dst: swrite
      Src: /src/curl/lib/multi.c:1373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1374
    functionName: reset_socket_fdwrite
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - swrite
    - getsockopt
    linkageType: ''
    returnType: void
    signature: void reset_socket_fdwrite(curl_socket_t s)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1390,1
    - Dst: reset_socket_fdwrite
      Src: /src/curl/lib/multi.c:1401,1
    - Dst: WSAEventSelect
      Src: /src/curl/lib/multi.c:1404,1
    - Dst: Curl_poll
      Src: /src/curl/lib/multi.c:1415,1
    - Dst: WSAWaitForMultipleEvents
      Src: /src/curl/lib/multi.c:1425,1
    - Dst: WSAEnumNetworkEvents
      Src: /src/curl/lib/multi.c:1439,1
    - Dst: WSAEventSelect
      Src: /src/curl/lib/multi.c:1449,1
    - Dst: WSAEnumNetworkEvents
      Src: /src/curl/lib/multi.c:1470,1
    - Dst: WSAEventSelect
      Src: /src/curl/lib/multi.c:1474,1
    - Dst: WSAResetEvent
      Src: /src/curl/lib/multi.c:1476,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 72
    argCount: 8
    argNames:
    - multi
    - cpfds
    - curl_nfds
    - extra_fds
    - extra_nfds
    - timeout_ms
    - extrawait
    - pnevents
    argTypes:
    - struct Curl_multi*
    - struct curl_pollfds*
    - unsigned int
    - struct curl_waitfd[]
    - unsigned int
    - int
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1376
    functionDepth: 2
    functionLinenumber: 1376
    functionLinenumberEnd: 1482
    functionName: multi_winsock_select
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - reset_socket_fdwrite
    - WSAResetEvent
    - DEBUGASSERT
    - WSAWaitForMultipleEvents
    - WSAEnumNetworkEvents
    - Curl_poll
    - WSAEventSelect
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multi_winsock_select(struct Curl_multi *multi,\n                                      struct
      curl_pollfds *cpfds,\n                                      unsigned int curl_nfds,\n
      \                                     struct curl_waitfd extra_fds[],\n                                      unsigned
      int extra_nfds,\n                                      int timeout_ms,\n                                      bool
      extrawait,\n                                      int *pnevents)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_poll
      Src: /src/curl/lib/multi.c:1501,1
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/multi.c:1527,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 8
    argNames:
    - multi
    - cpfds
    - curl_nfds
    - extra_fds
    - extra_nfds
    - timeout_ms
    - extrawait
    - pnevents
    argTypes:
    - struct Curl_multi*
    - struct curl_pollfds*
    - unsigned int
    - struct curl_waitfd[]
    - unsigned int
    - int
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1533
    functionName: multi_posix_poll
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_poll
    - curlx_wait_ms
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multi_posix_poll(struct Curl_multi *multi,\n                                  struct
      curl_pollfds *cpfds,\n                                  unsigned int curl_nfds,\n
      \                                 struct curl_waitfd extra_fds[],\n                                  unsigned
      int extra_nfds,\n                                  int timeout_ms,\n                                  bool
      extrawait,\n                                  int *pnevents)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:1561,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/multi.c:1570,1
    - Dst: Curl_pollfds_init
      Src: /src/curl/lib/multi.c:1571,1
    - Dst: Curl_uint32_bset_first
      Src: /src/curl/lib/multi.c:1574,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi.c:1576,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1578,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:1579,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:1580,1
    - Dst: Curl_multi_pollset
      Src: /src/curl/lib/multi.c:1583,1
    - Dst: Curl_pollfds_add_ps
      Src: /src/curl/lib/multi.c:1584,1
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/lib/multi.c:1588,1
    - Dst: Curl_cshutdn_add_pollfds
      Src: /src/curl/lib/multi.c:1591,1
    - Dst: Curl_pollfds_add_sock
      Src: /src/curl/lib/multi.c:1603,1
    - Dst: Curl_pollfds_add_sock
      Src: /src/curl/lib/multi.c:1620,1
    - Dst: multi_timeout
      Src: /src/curl/lib/multi.c:1632,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:1637,1
    - Dst: multi_winsock_select
      Src: /src/curl/lib/multi.c:1641,1
    - Dst: multi_posix_poll
      Src: /src/curl/lib/multi.c:1645,1
    - Dst: Curl_wakeup_consume
      Src: /src/curl/lib/multi.c:1653,1
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/multi.c:1661,1
    - Dst: Curl_pollfds_cleanup
      Src: /src/curl/lib/multi.c:1662,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 73
    argCount: 6
    argNames:
    - multi
    - extra_fds
    - extra_nfds
    - timeout_ms
    - ret
    - extrawait
    argTypes:
    - struct Curl_multi*
    - struct curl_waitfd[]
    - unsigned int
    - int
    - int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1539
    functionDepth: 6
    functionLinenumber: 1539
    functionLinenumberEnd: 1666
    functionName: multi_wait
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 11
    functionsReached:
    - DEBUGASSERT
    - multi_winsock_select
    - Curl_pollfds_cleanup
    - Curl_pollfds_add_sock
    - Curl_pollfds_add_ps
    - Curl_uint32_bset_next
    - Curl_cshutdn_add_pollfds
    - multi_timeout
    - CURL_TRC_M
    - Curl_uint32_bset_remove
    - Curl_pollset_init
    - multi_posix_poll
    - GOOD_MULTI_HANDLE
    - Curl_pollfds_init
    - Curl_uint32_bset_first
    - Curl_multi_get_easy
    - Curl_wakeup_consume
    - Curl_pollset_cleanup
    - Curl_multi_pollset
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multi_wait(struct Curl_multi *multi,\n                            struct
      curl_waitfd extra_fds[],\n                            unsigned int extra_nfds,\n
      \                           int timeout_ms,\n                            int
      *ret,\n                            bool extrawait)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: multi_wait
      Src: /src/curl/lib/multi.c:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - m
    - extra_fds
    - extra_nfds
    - timeout_ms
    - ret
    argTypes:
    - CURLM*
    - struct curl_waitfd[]
    - unsigned int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1668
    functionDepth: 7
    functionLinenumber: 1668
    functionLinenumberEnd: 1675
    functionName: curl_multi_wait
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 11
    functionsReached:
    - multi_wait
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode curl_multi_wait(CURLM *m,\n                          struct
      curl_waitfd extra_fds[],\n                          unsigned int extra_nfds,\n
      \                         int timeout_ms,\n                          int *ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: multi_wait
      Src: /src/curl/lib/multi.c:1683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - m
    - extra_fds
    - extra_nfds
    - timeout_ms
    - ret
    argTypes:
    - CURLM*
    - struct curl_waitfd[]
    - unsigned int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1677
    functionDepth: 7
    functionLinenumber: 1677
    functionLinenumberEnd: 1684
    functionName: curl_multi_poll
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 22
    functionsReached:
    - multi_wait
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode curl_multi_poll(CURLM *m,\n                          struct
      curl_waitfd extra_fds[],\n                          unsigned int extra_nfds,\n
      \                         int timeout_ms,\n                          int *ret)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:1695,1
    - Dst: Curl_wakeup_signal
      Src: /src/curl/lib/multi.c:1702,1
    - Dst: WSASetEvent
      Src: /src/curl/lib/multi.c:1706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - CURLM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1686
    functionDepth: 1
    functionLinenumber: 1686
    functionLinenumberEnd: 1710
    functionName: curl_multi_wakeup
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_wakeup_signal
    - WSASetEvent
    - GOOD_MULTI_HANDLE
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_wakeup(CURLM *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - multi
    - clear
    argTypes:
    - struct Curl_multi*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1730
    functionName: multi_ischanged
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: bool multi_ischanged(struct Curl_multi *multi, bool clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1742
    functionName: Curl_multi_connchanged
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_multi_connchanged(struct Curl_multi *multi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_add_handle
      Src: /src/curl/lib/multi.c:1753,1
    - Dst: Curl_init_do
      Src: /src/curl/lib/multi.c:1759,1
    - Dst: curl_multi_remove_handle
      Src: /src/curl/lib/multi.c:1761,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:1766,1
    - Dst: Curl_attach_connection
      Src: /src/curl/lib/multi.c:1767,1
    - Dst: CURL_REQ_SET_RECV
      Src: /src/curl/lib/multi.c:1768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - multi
    - data
    - conn
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1744
    functionDepth: 10
    functionLinenumber: 1744
    functionLinenumberEnd: 1771
    functionName: Curl_multi_add_perform
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - curl_multi_remove_handle
    - Curl_attach_connection
    - Curl_init_do
    - multistate
    - CURL_REQ_SET_RECV
    - curl_multi_add_handle
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode Curl_multi_add_perform(struct Curl_multi *multi,\n                                 struct
      Curl_easy *data,\n                                 struct connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1778,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1779,1
    - Dst: struct connectdata*::scheme::run::do_it
      Src: /src/curl/lib/multi.c:1782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1773
    functionDepth: 1
    functionLinenumber: 1773
    functionLinenumberEnd: 1785
    functionName: multi_do
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - struct connectdata*::scheme::run::do_it
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode multi_do(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct connectdata*::scheme::run::do_more
      Src: /src/curl/lib/multi.c:1804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - complete
    argTypes:
    - struct Curl_easy*
    - domore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1807
    functionName: multi_do_more
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - struct connectdata*::scheme::run::do_more
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode multi_do_more(struct Curl_easy *data, domore *complete)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/multi.c:1818,1
    - Dst: Curl_is_connecting
      Src: /src/curl/lib/multi.c:1822,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:1827,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/multi.c:1829,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/multi.c:1829,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:1833,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/multi.c:1836,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/multi.c:1836,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:1840,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/multi.c:1842,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/multi.c:1842,1
    - Dst: streamclose
      Src: /src/curl/lib/multi.c:1850,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:1853,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - data
    - stream_error
    - result
    argTypes:
    - struct Curl_easy*
    - bool*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1812
    functionDepth: 9
    functionLinenumber: 1812
    functionLinenumberEnd: 1859
    functionName: multi_handle_timeout
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - failf
    - streamclose
    - multi_done
    - Curl_is_connecting
    - Curl_timeleft_ms
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: bool
    signature: "bool multi_handle_timeout(struct Curl_easy *data,\n                                 bool
      *stream_error,\n                                 CURLcode *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct connectdata*::scheme::run::connecting
      Src: /src/curl/lib/multi.c:1874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1867
    functionDepth: 0
    functionLinenumber: 1867
    functionLinenumberEnd: 1880
    functionName: protocol_connecting
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - struct connectdata*::scheme::run::connecting
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode protocol_connecting(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct connectdata*::scheme::run::doing
      Src: /src/curl/lib/multi.c:1894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1900
    functionName: protocol_doing
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - struct connectdata*::scheme::run::doing
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode protocol_doing(struct Curl_easy *data, bool *done)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1912,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1913,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:1914,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/multi.c:1914,1
    - Dst: struct connectdata*::scheme::run::connect_it
      Src: /src/curl/lib/multi.c:1920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - data
    - protocol_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1907
    functionDepth: 2
    functionLinenumber: 1907
    functionLinenumberEnd: 1932
    functionName: protocol_connect
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - struct connectdata*::scheme::run::connect_it
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode protocol_connect(struct Curl_easy *data, bool *protocol_done)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - multi
    - value
    argTypes:
    - struct Curl_multi*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1937
    functionName: set_in_callback
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_in_callback(struct Curl_multi *multi, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/curl/lib/multi.c:1947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1942
    functionDepth: 0
    functionLinenumber: 1942
    functionLinenumberEnd: 1951
    functionName: multi_posttransfer
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - signal
    linkageType: ''
    returnType: void
    signature: void multi_posttransfer(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_scheme*::run::follow
      Src: /src/curl/lib/multi.c:1965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - data
    - handler
    - newurl
    - type
    argTypes:
    - struct Curl_easy*
    - struct Curl_scheme*
    - char*
    - followtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1959
    functionDepth: 0
    functionLinenumber: 1959
    functionLinenumberEnd: 1973
    functionName: multi_follow
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - struct Curl_scheme*::run::follow
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode multi_follow(struct Curl_easy *data,\n                             const
      struct Curl_scheme *handler,\n                             const char *newurl,
      /* the Location: string */\n                             followtype type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_active
      Src: /src/curl/lib/multi.c:1977,1
    - Dst: Curl_rlimit_active
      Src: /src/curl/lib/multi.c:1978,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/multi.c:1980,1
    - Dst: Curl_rlimit_wait_ms
      Src: /src/curl/lib/multi.c:1983,1
    - Dst: Curl_rlimit_wait_ms
      Src: /src/curl/lib/multi.c:1984,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:1988,1
    - Dst: Curl_expire
      Src: /src/curl/lib/multi.c:1990,1
    - Dst: CURLMAX
      Src: /src/curl/lib/multi.c:1990,1
    - Dst: Curl_multi_clear_dirty
      Src: /src/curl/lib/multi.c:1991,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:1992,1
    - Dst: CURLMAX
      Src: /src/curl/lib/multi.c:1993,1
    - Dst: Curl_rlimit_next_step_ms
      Src: /src/curl/lib/multi.c:1999,1
    - Dst: Curl_rlimit_next_step_ms
      Src: /src/curl/lib/multi.c:2000,1
    - Dst: CURLMIN
      Src: /src/curl/lib/multi.c:2002,1
    - Dst: CURLMAX
      Src: /src/curl/lib/multi.c:2004,1
    - Dst: Curl_expire
      Src: /src/curl/lib/multi.c:2005,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:2006,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:2013,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2014,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1975
    functionDepth: 3
    functionLinenumber: 1975
    functionLinenumberEnd: 2017
    functionName: mspeed_check
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_rlimit_wait_ms
    - CURLMAX
    - Curl_multi_clear_dirty
    - CURLMIN
    - Curl_rlimit_next_step_ms
    - Curl_expire
    - multistate
    - Curl_rlimit_active
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode mspeed_check(struct Curl_easy *data)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: mspeed_check
      Src: /src/curl/lib/multi.c:2029,1
    - Dst: Curl_sendrecv
      Src: /src/curl/lib/multi.c:2033,1
    - Dst: Curl_retry_request
      Src: /src/curl/lib/multi.c:2040,1
    - Dst: Curl_h2_http_1_1_error
      Src: /src/curl/lib/multi.c:2055,1
    - Dst: Curl_retry_request
      Src: /src/curl/lib/multi.c:2056,1
    - Dst: infof
      Src: /src/curl/lib/multi.c:2059,1
    - Dst: streamclose
      Src: /src/curl/lib/multi.c:2060,1
    - Dst: Curl_bufref_dup
      Src: /src/curl/lib/multi.c:2067,1
    - Dst: streamclose
      Src: /src/curl/lib/multi.c:2095,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2097,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2098,1
    - Dst: Curl_cwriter_is_paused
      Src: /src/curl/lib/multi.c:2100,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2104,1
    - Dst: curlx_free
      Src: /src/curl/lib/multi.c:2113,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2120,1
    - Dst: multi_follow
      Src: /src/curl/lib/multi.c:2122,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2124,1
    - Dst: curlx_free
      Src: /src/curl/lib/multi.c:2134,1
    - Dst: multi_follow
      Src: /src/curl/lib/multi.c:2137,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2140,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2145,1
    - Dst: mspeed_check
      Src: /src/curl/lib/multi.c:2151,1
    - Dst: curlx_free
      Src: /src/curl/lib/multi.c:2153,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 77
    argCount: 3
    argNames:
    - data
    - stream_errorp
    - resultp
    argTypes:
    - struct Curl_easy*
    - bool*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2019
    functionDepth: 9
    functionLinenumber: 2019
    functionLinenumberEnd: 2156
    functionName: multistate_performing
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_posttransfer
    - Curl_retry_request
    - streamclose
    - Curl_cwriter_is_paused
    - multi_done
    - infof
    - curlx_free
    - multistate
    - Curl_h2_http_1_1_error
    - Curl_bufref_dup
    - mspeed_check
    - multi_follow
    - Curl_sendrecv
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_performing(struct Curl_easy *data,\n                                       bool
      *stream_errorp,\n                                       CURLcode *resultp)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/multi.c:2168,1
    - Dst: struct Curl_easy*::set::fprereq
      Src: /src/curl/lib/multi.c:2169,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/multi.c:2174,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:2176,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2179,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2180,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2187,1
    - Dst: multi_do
      Src: /src/curl/lib/multi.c:2193,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2205,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2208,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2216,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2224,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2229,1
    - Dst: Curl_retry_request
      Src: /src/curl/lib/multi.c:2245,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2252,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2253,1
    - Dst: multi_follow
      Src: /src/curl/lib/multi.c:2260,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2262,1
    - Dst: curlx_free
      Src: /src/curl/lib/multi.c:2280,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2284,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2286,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 79
    argCount: 3
    argNames:
    - data
    - stream_errorp
    - resultp
    argTypes:
    - struct Curl_easy*
    - bool*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2158
    functionDepth: 9
    functionLinenumber: 2158
    functionLinenumberEnd: 2293
    functionName: multistate_do
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_posttransfer
    - failf
    - Curl_retry_request
    - multi_done
    - curlx_free
    - multistate
    - Curl_set_in_callback
    - multi_do
    - multi_follow
    - struct Curl_easy*::set::fprereq
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_do(struct Curl_easy *data,\n                               bool
      *stream_errorp,\n                               CURLcode *resultp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:2300,1
    - Dst: Curl_pgrsCheck
      Src: /src/curl/lib/multi.c:2302,1
    - Dst: streamclose
      Src: /src/curl/lib/multi.c:2307,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2309,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2310,1
    - Dst: mspeed_check
      Src: /src/curl/lib/multi.c:2313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - data
    - resultp
    argTypes:
    - struct Curl_easy*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2295
    functionDepth: 9
    functionLinenumber: 2295
    functionLinenumberEnd: 2318
    functionName: multistate_ratelimiting
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_posttransfer
    - DEBUGASSERT
    - streamclose
    - Curl_pgrsCheck
    - multi_done
    - mspeed_check
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_ratelimiting(struct Curl_easy *data,\n                                         CURLcode
      *resultp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_connect
      Src: /src/curl/lib/multi.c:2328,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2332,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:2334,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:2335,1
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/lib/multi.c:2336,1
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:2341,1
    - Dst: Curl_conn_is_multiplex
      Src: /src/curl/lib/multi.c:2351,1
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:2353,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2355,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - multi
    - data
    - resultp
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2320
    functionDepth: 12
    functionLinenumber: 2320
    functionLinenumberEnd: 2363
    functionName: multistate_connect
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_connect
    - process_pending_handles
    - multistate
    - Curl_conn_is_multiplex
    - Curl_uint32_bset_add
    - Curl_uint32_bset_remove
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_connect(struct Curl_multi *multi,\n                                    struct
      Curl_easy *data,\n                                    CURLcode *resultp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:2382,1
    - Dst: Curl_detach_connection
      Src: /src/curl/lib/multi.c:2393,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/multi.c:2394,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2399,1
    - Dst: Curl_pgrsUpdate_nometer
      Src: /src/curl/lib/multi.c:2400,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2403,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/multi.c:2407,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/multi.c:2408,1
    - Dst: streamclose
      Src: /src/curl/lib/multi.c:2412,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2415,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - multi
    - data
    - stream_error
    - result
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - bool
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2366
    functionDepth: 4
    functionLinenumber: 2366
    functionLinenumberEnd: 2422
    functionName: is_finished
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - multi_posttransfer
    - Curl_pgrsUpdate_nometer
    - streamclose
    - Curl_detach_connection
    - process_pending_handles
    - multistate
    - Curl_conn_terminate
    - Curl_pgrsUpdate
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode is_finished(struct Curl_multi *multi,\n                            struct
      Curl_easy *data,\n                            bool stream_error,\n                            CURLcode
      result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:2432,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi.c:2433,1
    - Dst: struct Curl_easy*::sub_xfer_done
      Src: /src/curl/lib/multi.c:2436,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:2438,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:2442,1
    - Dst: multi_addmsg
      Src: /src/curl/lib/multi.c:2453,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:2454,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2456,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:2459,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:2460,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:2461,1
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/lib/multi.c:2462,1
    - Dst: multi_assess_wakeup
      Src: /src/curl/lib/multi.c:2465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - multi
    - data
    - result
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2466
      start: 2424
    functionDepth: 7
    functionLinenumber: 2424
    functionLinenumberEnd: 2466
    functionName: handle_completed
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - struct Curl_easy*::sub_xfer_done
    - DEBUGASSERT
    - multi_assess_wakeup
    - Curl_multi_get_easy
    - multi_addmsg
    - multistate
    - Curl_uint32_bset_add
    - Curl_uint32_bset_remove
    - CURL_TRC_M
    linkageType: ''
    returnType: void
    signature: "void handle_completed(struct Curl_multi *multi,\n                             struct
      Curl_easy *data,\n                             CURLcode result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pretransfer
      Src: /src/curl/lib/multi.c:2470,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2475,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/multi.c:2476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - result
    argTypes:
    - struct Curl_easy*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2468
    functionDepth: 4
    functionLinenumber: 2468
    functionLinenumberEnd: 2478
    functionName: multistate_init
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_pgrsTime
    - multistate
    - Curl_pretransfer
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode multistate_init(struct Curl_easy *data, CURLcode *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/multi.c:2482,1
    - Dst: Curl_expire
      Src: /src/curl/lib/multi.c:2484,1
    - Dst: Curl_expire
      Src: /src/curl/lib/multi.c:2489,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2480
    functionDepth: 4
    functionLinenumber: 2480
    functionLinenumberEnd: 2493
    functionName: multistate_setup
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_pgrsTime
    - Curl_expire
    - multistate
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode multistate_setup(struct Curl_easy *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:2502,1
    - Dst: Curl_xfer_recv_is_paused
      Src: /src/curl/lib/multi.c:2506,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/multi.c:2507,1
    - Dst: Curl_conn_is_multiplex
      Src: /src/curl/lib/multi.c:2510,1
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:2512,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2514,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:2519,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2520,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2521,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - data
    - stream_error
    - result
    argTypes:
    - struct Curl_easy*
    - bool*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2495
    functionDepth: 9
    functionLinenumber: 2495
    functionLinenumberEnd: 2527
    functionName: multistate_connecting
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_posttransfer
    - DEBUGASSERT
    - Curl_xfer_recv_is_paused
    - multi_done
    - Curl_conn_connect
    - process_pending_handles
    - Curl_conn_is_multiplex
    - multistate
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_connecting(struct Curl_easy *data,\n                                       bool
      *stream_error,\n                                       CURLcode *result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2540,1
    - Dst: protocol_connect
      Src: /src/curl/lib/multi.c:2544,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2547,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2552,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2557,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - data
    - stream_error
    - result
    argTypes:
    - struct Curl_easy*
    - bool*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2529
    functionDepth: 9
    functionLinenumber: 2529
    functionLinenumberEnd: 2561
    functionName: multistate_protoconnect
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_done
    - multistate
    - multi_posttransfer
    - protocol_connect
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_protoconnect(struct Curl_easy *data,\n                                         bool
      *stream_error,\n                                         CURLcode *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: protocol_connecting
      Src: /src/curl/lib/multi.c:2570,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2573,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2578,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - data
    - stream_error
    - result
    argTypes:
    - struct Curl_easy*
    - bool*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2563
    functionDepth: 9
    functionLinenumber: 2563
    functionLinenumberEnd: 2583
    functionName: multistate_protoconnecting
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - protocol_connecting
    - multistate
    - multi_posttransfer
    - multi_done
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_protoconnecting(struct Curl_easy *data,\n                                            bool
      *stream_error,\n                                            CURLcode *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:2592,1
    - Dst: protocol_doing
      Src: /src/curl/lib/multi.c:2593,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2597,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2604,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - data
    - stream_error
    - result
    argTypes:
    - struct Curl_easy*
    - bool*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2585
    functionDepth: 9
    functionLinenumber: 2585
    functionLinenumberEnd: 2609
    functionName: multistate_doing
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_posttransfer
    - DEBUGASSERT
    - multi_done
    - multistate
    - protocol_doing
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_doing(struct Curl_easy *data,\n                                  bool
      *stream_error,\n                                  CURLcode *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:2620,1
    - Dst: multi_do_more
      Src: /src/curl/lib/multi.c:2621,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2627,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2635,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - data
    - stream_error
    - result
    argTypes:
    - struct Curl_easy*
    - bool*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2611
    functionDepth: 9
    functionLinenumber: 2611
    functionLinenumberEnd: 2640
    functionName: multistate_doing_more
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_posttransfer
    - DEBUGASSERT
    - multi_done
    - multistate
    - multi_do_more
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_doing_more(struct Curl_easy *data,\n                                       bool
      *stream_error,\n                                       CURLcode *result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:2645,1
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:2648,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/multi.c:2652,1
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/multi.c:2653,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2654,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2662,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - multi
    - data
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2642
    functionDepth: 1
    functionLinenumber: 2642
    functionLinenumberEnd: 2665
    functionName: multistate_did
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - process_pending_handles
    - multistate
    - CONN_SOCK_IDX_VALID
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multistate_did(struct Curl_multi *multi,\n                                struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2673,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2685,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - data
    - presult
    argTypes:
    - struct Curl_easy*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2667
    functionDepth: 9
    functionLinenumber: 2667
    functionLinenumberEnd: 2694
    functionName: multistate_done
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multistate
    - multi_done
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode multistate_done(struct Curl_easy *data, CURLcode *presult)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/multi.c:2703,1
    - Dst: multi_posttransfer
      Src: /src/curl/lib/multi.c:2710,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2711,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:2712,1
    - Dst: multi_warn_debug
      Src: /src/curl/lib/multi.c:2715,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:2719,1
    - Dst: Curl_wakeup_consume
      Src: /src/curl/lib/multi.c:2725,1
    - Dst: Curl_async_thrdd_multi_process
      Src: /src/curl/lib/multi.c:2728,1
    - Dst: Curl_cshutdn_perform
      Src: /src/curl/lib/multi.c:2730,1
    - Dst: sigpipe_apply
      Src: /src/curl/lib/multi.c:2734,1
    - Dst: multi_ischanged
      Src: /src/curl/lib/multi.c:2741,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:2742,1
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:2743,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:2749,1
    - Dst: multi_handle_timeout
      Src: /src/curl/lib/multi.c:2757,1
    - Dst: multistate_init
      Src: /src/curl/lib/multi.c:2765,1
    - Dst: multistate_setup
      Src: /src/curl/lib/multi.c:2771,1
    - Dst: multistate_connect
      Src: /src/curl/lib/multi.c:2775,1
    - Dst: multistate_connecting
      Src: /src/curl/lib/multi.c:2780,1
    - Dst: multistate_protoconnect
      Src: /src/curl/lib/multi.c:2784,1
    - Dst: multistate_protoconnecting
      Src: /src/curl/lib/multi.c:2789,1
    - Dst: multistate_do
      Src: /src/curl/lib/multi.c:2793,1
    - Dst: multistate_doing
      Src: /src/curl/lib/multi.c:2798,1
    - Dst: multistate_doing_more
      Src: /src/curl/lib/multi.c:2805,1
    - Dst: multistate_did
      Src: /src/curl/lib/multi.c:2809,1
    - Dst: multistate_ratelimiting
      Src: /src/curl/lib/multi.c:2813,1
    - Dst: multistate_performing
      Src: /src/curl/lib/multi.c:2817,1
    - Dst: multistate_done
      Src: /src/curl/lib/multi.c:2821,1
    - Dst: multi_ischanged
      Src: /src/curl/lib/multi.c:2839,1
    - Dst: multi_handle_timeout
      Src: /src/curl/lib/multi.c:2846,1
    - Dst: is_finished
      Src: /src/curl/lib/multi.c:2851,1
    - Dst: handle_completed
      Src: /src/curl/lib/multi.c:2856,1
    - Dst: multi_ischanged
      Src: /src/curl/lib/multi.c:2860,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 95
    argCount: 3
    argNames:
    - multi
    - data
    - sigpipe_ctx
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    - struct Curl_sigpipe_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2864
      start: 2696
    functionDepth: 13
    functionLinenumber: 2696
    functionLinenumberEnd: 2864
    functionName: multi_runsingle
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multistate_doing_more
    - multi_posttransfer
    - DEBUGASSERT
    - multistate_setup
    - multistate_protoconnect
    - Curl_cshutdn_perform
    - multi_warn_debug
    - multistate_do
    - multistate_doing
    - multistate_did
    - is_finished
    - handle_completed
    - GOOD_EASY_HANDLE
    - Curl_uint32_bset_remove
    - CURL_TRC_M
    - multi_ischanged
    - multistate_performing
    - multistate_done
    - multistate
    - multi_handle_timeout
    - multistate_ratelimiting
    - sigpipe_apply
    - multistate_connect
    - multistate_connecting
    - multi_done
    - multistate_protoconnecting
    - process_pending_handles
    - Curl_async_thrdd_multi_process
    - Curl_wakeup_consume
    - multistate_init
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multi_runsingle(struct Curl_multi *multi,\n                                 struct
      Curl_easy *data,\n                                 struct Curl_sigpipe_ctx *sigpipe_ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: multi_now
      Src: /src/curl/lib/multi.c:2870,1
    - Dst: sigpipe_init
      Src: /src/curl/lib/multi.c:2880,1
    - Dst: Curl_uint32_bset_first
      Src: /src/curl/lib/multi.c:2882,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:2883,1
    - Dst: Curl_multi_xfers_running
      Src: /src/curl/lib/multi.c:2884,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi.c:2886,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:2889,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:2890,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:2891,1
    - Dst: multi_runsingle
      Src: /src/curl/lib/multi.c:2894,1
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/lib/multi.c:2897,1
    - Dst: sigpipe_restore
      Src: /src/curl/lib/multi.c:2899,1
    - Dst: multi_ischanged
      Src: /src/curl/lib/multi.c:2901,1
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:2902,1
    - Dst: CURL_MNTFY_HAS_ENTRIES
      Src: /src/curl/lib/multi.c:2904,1
    - Dst: Curl_mntfy_dispatch_all
      Src: /src/curl/lib/multi.c:2905,1
    - Dst: Curl_splaygetbest
      Src: /src/curl/lib/multi.c:2920,1
    - Dst: Curl_splayget
      Src: /src/curl/lib/multi.c:2923,1
    - Dst: add_next_timeout
      Src: /src/curl/lib/multi.c:2924,1
    - Dst: multi_handle_timeout
      Src: /src/curl/lib/multi.c:2928,1
    - Dst: infof
      Src: /src/curl/lib/multi.c:2929,1
    - Dst: move_pending_to_connect
      Src: /src/curl/lib/multi.c:2930,1
    - Dst: Curl_multi_xfers_running
      Src: /src/curl/lib/multi.c:2938,1
    - Dst: Curl_update_timer
      Src: /src/curl/lib/multi.c:2943,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - multi
    - running_handles
    argTypes:
    - struct Curl_multi*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2866
    functionDepth: 14
    functionLinenumber: 2866
    functionLinenumberEnd: 2946
    functionName: multi_perform
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 71
    functionsReached:
    - DEBUGASSERT
    - sigpipe_restore
    - multi_runsingle
    - Curl_splaygetbest
    - multi_now
    - add_next_timeout
    - Curl_mntfy_dispatch_all
    - sigpipe_init
    - Curl_uint32_bset_next
    - Curl_multi_xfers_running
    - Curl_splayget
    - Curl_uint32_bset_remove
    - CURL_TRC_M
    - multi_ischanged
    - Curl_uint32_bset_first
    - Curl_multi_get_easy
    - CURL_MNTFY_HAS_ENTRIES
    - multi_handle_timeout
    - move_pending_to_connect
    - infof
    - process_pending_handles
    - Curl_update_timer
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multi_perform(struct Curl_multi *multi,\n                               int
      *running_handles)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:2952,1
    - Dst: multi_perform
      Src: /src/curl/lib/multi.c:2955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - m
    - running_handles
    argTypes:
    - CURLM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2948
    functionDepth: 1
    functionLinenumber: 2948
    functionLinenumberEnd: 2956
    functionName: curl_multi_perform
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 38
    functionsReached:
    - multi_perform
    - GOOD_MULTI_HANDLE
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_perform(CURLM *m, int *running_handles)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:2961,1
    - Dst: Curl_uint32_tbl_first
      Src: /src/curl/lib/multi.c:2971,1
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/multi.c:2974,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:2979,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:2981,1
    - Dst: multi_done
      Src: /src/curl/lib/multi.c:2990,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/lib/multi.c:2993,1
    - Dst: Curl_close
      Src: /src/curl/lib/multi.c:3001,1
    - Dst: Curl_uint32_tbl_next
      Src: /src/curl/lib/multi.c:3002,1
    - Dst: Curl_async_thrdd_multi_destroy
      Src: /src/curl/lib/multi.c:3006,1
    - Dst: Curl_cpool_destroy
      Src: /src/curl/lib/multi.c:3008,1
    - Dst: Curl_cshutdn_destroy
      Src: /src/curl/lib/multi.c:3009,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:3011,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/lib/multi.c:3013,1
    - Dst: Curl_close
      Src: /src/curl/lib/multi.c:3014,1
    - Dst: Curl_multi_ev_cleanup
      Src: /src/curl/lib/multi.c:3019,1
    - Dst: Curl_hash_destroy
      Src: /src/curl/lib/multi.c:3020,1
    - Dst: Curl_dnscache_destroy
      Src: /src/curl/lib/multi.c:3021,1
    - Dst: Curl_psl_destroy
      Src: /src/curl/lib/multi.c:3022,1
    - Dst: Curl_ssl_scache_destroy
      Src: /src/curl/lib/multi.c:3024,1
    - Dst: WSACloseEvent
      Src: /src/curl/lib/multi.c:3028,1
    - Dst: Curl_wakeup_destroy
      Src: /src/curl/lib/multi.c:3031,1
    - Dst: multi_xfer_bufs_free
      Src: /src/curl/lib/multi.c:3034,1
    - Dst: Curl_mntfy_cleanup
      Src: /src/curl/lib/multi.c:3035,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/lib/multi.c:3037,1
    - Dst: multi_xfer_tbl_dump
      Src: /src/curl/lib/multi.c:3038,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:3039,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/lib/multi.c:3042,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/lib/multi.c:3043,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/lib/multi.c:3044,1
    - Dst: Curl_uint32_bset_destroy
      Src: /src/curl/lib/multi.c:3045,1
    - Dst: Curl_uint32_tbl_destroy
      Src: /src/curl/lib/multi.c:3046,1
    - Dst: curlx_free
      Src: /src/curl/lib/multi.c:3047,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - m
    argTypes:
    - CURLM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 2958
    functionDepth: 10
    functionLinenumber: 2958
    functionLinenumberEnd: 3052
    functionName: curl_multi_cleanup
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 89
    functionsReached:
    - Curl_uint32_tbl_first
    - DEBUGASSERT
    - Curl_cshutdn_destroy
    - Curl_uint32_tbl_remove
    - Curl_wakeup_destroy
    - Curl_uint32_tbl_destroy
    - WSACloseEvent
    - Curl_mntfy_cleanup
    - Curl_close
    - GOOD_EASY_HANDLE
    - Curl_ssl_scache_destroy
    - CURL_TRC_M
    - GOOD_MULTI_HANDLE
    - Curl_multi_ev_cleanup
    - Curl_uint32_tbl_next
    - curlx_free
    - Curl_cpool_destroy
    - Curl_uint32_tbl_count
    - multi_xfer_bufs_free
    - Curl_hash_destroy
    - multi_xfer_tbl_dump
    - Curl_async_thrdd_multi_destroy
    - Curl_uint32_bset_destroy
    - multi_done
    - Curl_psl_destroy
    - Curl_dnscache_destroy
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_cleanup(CURLM *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:3071,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/multi.c:3073,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/multi.c:3078,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/multi.c:3080,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/multi.c:3083,1
    - Dst: curlx_uztosi
      Src: /src/curl/lib/multi.c:3085,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/multi.c:3085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - m
    - msgs_in_queue
    argTypes:
    - CURLM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3064
    functionDepth: 4
    functionLinenumber: 3064
    functionLinenumberEnd: 3090
    functionName: curl_multi_info_read
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 41
    functionsReached:
    - Curl_llist_count
    - curlx_uztosi
    - GOOD_MULTI_HANDLE
    - Curl_node_elem
    - Curl_llist_head
    - Curl_node_remove
    linkageType: ''
    returnType: CURLMsg
    signature: CURLMsg *curl_multi_info_read(CURLM *m, int *msgs_in_queue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:3097,1
    - Dst: Curl_multi_ev_socket_done
      Src: /src/curl/lib/multi.c:3098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - s
    argTypes:
    - struct Curl_easy*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3101
      start: 3092
    functionDepth: 4
    functionLinenumber: 3092
    functionLinenumberEnd: 3101
    functionName: Curl_multi_will_close
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - CURL_TRC_M
    - Curl_multi_ev_socket_done
    linkageType: ''
    returnType: void
    signature: void Curl_multi_will_close(struct Curl_easy *data, curl_socket_t s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/multi.c:3126,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/multi.c:3127,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/multi.c:3128,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/multi.c:3129,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/multi.c:3132,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/multi.c:3138,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/multi.c:3146,1
    - Dst: memcpy
      Src: /src/curl/lib/multi.c:3148,1
    - Dst: Curl_splayinsert
      Src: /src/curl/lib/multi.c:3152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - pnow
    - multi
    - d
    argTypes:
    - struct curltime*
    - struct Curl_multi*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3115
    functionDepth: 4
    functionLinenumber: 3115
    functionLinenumberEnd: 3156
    functionName: add_next_timeout
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - curlx_ptimediff_us
    - memcpy
    - Curl_node_elem
    - Curl_splayinsert
    - Curl_node_next
    - Curl_llist_head
    - Curl_node_remove
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode add_next_timeout(const struct curltime *pnow,\n                                  struct
      Curl_multi *multi,\n                                  struct Curl_easy *d)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_splaygetbest
      Src: /src/curl/lib/multi.c:3172,1
    - Dst: Curl_splayget
      Src: /src/curl/lib/multi.c:3176,1
    - Dst: CURL_TRC_TIMER_is_verbose
      Src: /src/curl/lib/multi.c:3180,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/multi.c:3181,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/multi.c:3183,1
    - Dst: CURL_TRC_TIMER
      Src: /src/curl/lib/multi.c:3184,1
    - Dst: add_next_timeout
      Src: /src/curl/lib/multi.c:3188,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/multi.c:3189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - multi
    - ts
    argTypes:
    - struct Curl_multi*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3191
      start: 3158
    functionDepth: 5
    functionLinenumber: 3158
    functionLinenumberEnd: 3191
    functionName: multi_mark_expired_as_dirty
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_multi_mark_dirty
    - Curl_node_elem
    - Curl_llist_head
    - CURL_TRC_TIMER_is_verbose
    - CURL_TRC_TIMER
    - Curl_splayget
    - Curl_splaygetbest
    - add_next_timeout
    linkageType: ''
    returnType: void
    signature: "void multi_mark_expired_as_dirty(struct Curl_multi *multi,\n                                        const
      struct curltime *ts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_first
      Src: /src/curl/lib/multi.c:3201,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi.c:3203,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:3205,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/lib/multi.c:3207,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:3209,1
    - Dst: multi_runsingle
      Src: /src/curl/lib/multi.c:3215,1
    - Dst: Curl_multi_ev_assess_xfer
      Src: /src/curl/lib/multi.c:3219,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:3225,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:3226,1
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/lib/multi.c:3228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - multi
    - sigpipe_ctx
    - pnum
    argTypes:
    - struct Curl_multi*
    - struct Curl_sigpipe_ctx*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3233
      start: 3193
    functionDepth: 14
    functionLinenumber: 3193
    functionLinenumberEnd: 3233
    functionName: multi_run_dirty
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_multi_ev_assess_xfer
    - Curl_uint32_bset_next
    - Curl_uint32_bset_first
    - Curl_multi_get_easy
    - Curl_uint32_bset_contains
    - multi_runsingle
    - Curl_uint32_bset_remove
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multi_run_dirty(struct Curl_multi *multi,\n                                 struct
      Curl_sigpipe_ctx *sigpipe_ctx,\n                                 uint32_t *pnum)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sigpipe_init
      Src: /src/curl/lib/multi.c:3246,1
    - Dst: multi_perform
      Src: /src/curl/lib/multi.c:3250,1
    - Dst: Curl_multi_ev_assess_xfer_bset
      Src: /src/curl/lib/multi.c:3254,1
    - Dst: Curl_multi_ev_dirty_xfers
      Src: /src/curl/lib/multi.c:3261,1
    - Dst: memset
      Src: /src/curl/lib/multi.c:3269,1
    - Dst: multi_assess_wakeup
      Src: /src/curl/lib/multi.c:3275,1
    - Dst: multi_mark_expired_as_dirty
      Src: /src/curl/lib/multi.c:3280,1
    - Dst: multi_now
      Src: /src/curl/lib/multi.c:3280,1
    - Dst: multi_run_dirty
      Src: /src/curl/lib/multi.c:3281,1
    - Dst: multi_mark_expired_as_dirty
      Src: /src/curl/lib/multi.c:3291,1
    - Dst: multi_run_dirty
      Src: /src/curl/lib/multi.c:3292,1
    - Dst: sigpipe_restore
      Src: /src/curl/lib/multi.c:3296,1
    - Dst: multi_ischanged
      Src: /src/curl/lib/multi.c:3298,1
    - Dst: process_pending_handles
      Src: /src/curl/lib/multi.c:3299,1
    - Dst: CURL_MNTFY_HAS_ENTRIES
      Src: /src/curl/lib/multi.c:3301,1
    - Dst: Curl_mntfy_dispatch_all
      Src: /src/curl/lib/multi.c:3302,1
    - Dst: Curl_multi_xfers_running
      Src: /src/curl/lib/multi.c:3305,1
    - Dst: Curl_update_timer
      Src: /src/curl/lib/multi.c:3310,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 5
    argNames:
    - multi
    - checkall
    - s
    - ev_bitmask
    - running_handles
    argTypes:
    - struct Curl_multi*
    - bool
    - curl_socket_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3312
      start: 3235
    functionDepth: 15
    functionLinenumber: 3235
    functionLinenumberEnd: 3312
    functionName: multi_socket
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_run_dirty
    - Curl_multi_ev_dirty_xfers
    - multi_mark_expired_as_dirty
    - sigpipe_init
    - Curl_mntfy_dispatch_all
    - multi_assess_wakeup
    - Curl_multi_ev_assess_xfer_bset
    - CURL_MNTFY_HAS_ENTRIES
    - multi_perform
    - process_pending_handles
    - sigpipe_restore
    - Curl_multi_xfers_running
    - memset
    - Curl_update_timer
    - multi_now
    - multi_ischanged
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multi_socket(struct Curl_multi *multi,\n                              bool
      checkall,\n                              curl_socket_t s,\n                              int
      ev_bitmask,\n                              int *running_handles)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:3322,1
    - Dst: va_start
      Src: /src/curl/lib/multi.c:3328,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3332,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3335,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3338,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3341,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3344,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3347,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3350,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3353,1
    - Dst: curlx_sltouz
      Src: /src/curl/lib/multi.c:3358,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3358,1
    - Dst: curlx_sltouz
      Src: /src/curl/lib/multi.c:3362,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3362,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3377,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3384,1
    - Dst: Curl_dnscache_clear
      Src: /src/curl/lib/multi.c:3391,1
    - Dst: Curl_cpool_nw_changed
      Src: /src/curl/lib/multi.c:3394,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3399,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3402,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3406,1
    - Dst: Curl_async_thrdd_multi_set_props
      Src: /src/curl/lib/multi.c:3410,1
    - Dst: va_arg
      Src: /src/curl/lib/multi.c:3430,1
    - Dst: va_end
      Src: /src/curl/lib/multi.c:3436,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 103
    argCount: 2
    argNames:
    - m
    - option
    argTypes:
    - CURLM*
    - CURLMoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3315
    functionDepth: 1
    functionLinenumber: 3315
    functionLinenumberEnd: 3438
    functionName: curl_multi_setopt
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 22
    functionsReached:
    - va_arg
    - GOOD_MULTI_HANDLE
    - curlx_sltouz
    - va_start
    - va_end
    - Curl_cpool_nw_changed
    - Curl_dnscache_clear
    - Curl_async_thrdd_multi_set_props
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_setopt(CURLM *m, CURLMoption option, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: multi_socket
      Src: /src/curl/lib/multi.c:3450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - m
    - s
    - running_handles
    argTypes:
    - CURLM*
    - curl_socket_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3451
      start: 3443
    functionDepth: 16
    functionLinenumber: 3443
    functionLinenumberEnd: 3451
    functionName: curl_multi_socket
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_socket
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_socket(CURLM *m, curl_socket_t s, int *running_handles)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: multi_socket
      Src: /src/curl/lib/multi.c:3461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - m
    - s
    - ev_bitmask
    - running_handles
    argTypes:
    - CURLM*
    - curl_socket_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3462
      start: 3453
    functionDepth: 16
    functionLinenumber: 3453
    functionLinenumberEnd: 3462
    functionName: curl_multi_socket_action
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 20
    functionsReached:
    - multi_socket
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode curl_multi_socket_action(CURLM *m, curl_socket_t s,\n                                   int
      ev_bitmask, int *running_handles)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: multi_socket
      Src: /src/curl/lib/multi.c:3471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - m
    - running_handles
    argTypes:
    - CURLM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3472
      start: 3464
    functionDepth: 16
    functionLinenumber: 3464
    functionLinenumberEnd: 3472
    functionName: curl_multi_socket_all
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - multi_socket
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_socket_all(CURLM *m, int *running_handles)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_first
      Src: /src/curl/lib/multi.c:3477,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi.c:3479,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/lib/multi.c:3481,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:3484,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:3487,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:3488,1
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/lib/multi.c:3490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3493
      start: 3474
    functionDepth: 1
    functionLinenumber: 3474
    functionLinenumberEnd: 3493
    functionName: multi_has_dirties
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_bset_next
    - Curl_uint32_bset_first
    - Curl_multi_get_easy
    - Curl_uint32_bset_contains
    - Curl_uint32_bset_remove
    - CURL_TRC_M
    linkageType: ''
    returnType: bool
    signature: bool multi_has_dirties(struct Curl_multi *multi)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: multi_has_dirties
      Src: /src/curl/lib/multi.c:3507,1
    - Dst: multi_now
      Src: /src/curl/lib/multi.c:3508,1
    - Dst: multi_now
      Src: /src/curl/lib/multi.c:3513,1
    - Dst: Curl_splay
      Src: /src/curl/lib/multi.c:3515,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/multi.c:3523,1
    - Dst: curlx_timediff_ceil_ms
      Src: /src/curl/lib/multi.c:3526,1
    - Dst: VERBOSE
      Src: /src/curl/lib/multi.c:3527,1
    - Dst: Curl_splayget
      Src: /src/curl/lib/multi.c:3527,1
    - Dst: VERBOSE
      Src: /src/curl/lib/multi.c:3534,1
    - Dst: Curl_splayget
      Src: /src/curl/lib/multi.c:3534,1
    - Dst: CURL_TRC_TIMER_is_verbose
      Src: /src/curl/lib/multi.c:3545,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/multi.c:3546,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/multi.c:3548,1
    - Dst: CURL_TRC_TIMER
      Src: /src/curl/lib/multi.c:3549,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - multi
    - expire_time
    - timeout_ms
    argTypes:
    - struct Curl_multi*
    - struct curltime*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3495
    functionDepth: 2
    functionLinenumber: 3495
    functionLinenumberEnd: 3554
    functionName: multi_timeout
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 9
    functionsReached:
    - curlx_ptimediff_us
    - Curl_splay
    - curlx_timediff_ceil_ms
    - Curl_node_elem
    - VERBOSE
    - Curl_llist_head
    - CURL_TRC_TIMER_is_verbose
    - multi_has_dirties
    - CURL_TRC_TIMER
    - Curl_splayget
    - multi_now
    linkageType: ''
    returnType: void
    signature: "void multi_timeout(struct Curl_multi *multi,\n                          struct
      curltime *expire_time,\n                          long *timeout_ms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:3563,1
    - Dst: multi_timeout
      Src: /src/curl/lib/multi.c:3569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - m
    - timeout_ms
    argTypes:
    - CURLM*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3571
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3571
    functionName: curl_multi_timeout
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 4
    functionsReached:
    - multi_timeout
    - GOOD_MULTI_HANDLE
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode curl_multi_timeout(CURLM *m,\n                             long
      *timeout_ms)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: multi_timeout
      Src: /src/curl/lib/multi.c:3586,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:3593,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:3598,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/multi.c:3601,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:3605,1
    - Dst: set_in_callback
      Src: /src/curl/lib/multi.c:3618,1
    - Dst: struct Curl_multi*::timer_cb
      Src: /src/curl/lib/multi.c:3619,1
    - Dst: set_in_callback
      Src: /src/curl/lib/multi.c:3620,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3627
      start: 3577
    functionDepth: 1
    functionLinenumber: 3577
    functionLinenumberEnd: 3627
    functionName: Curl_update_timer
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 5
    functionsReached:
    - curlx_ptimediff_us
    - struct Curl_multi*::timer_cb
    - set_in_callback
    - multi_timeout
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode Curl_update_timer(struct Curl_multi *multi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/multi.c:3639,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/multi.c:3639,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/multi.c:3640,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/multi.c:3642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - eid
    argTypes:
    - struct Curl_easy*
    - expire_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3634
    functionDepth: 4
    functionLinenumber: 3634
    functionLinenumberEnd: 3646
    functionName: multi_deltimeout
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_llist_head
    - Curl_node_remove
    - Curl_node_elem
    - Curl_node_next
    linkageType: ''
    returnType: void
    signature: void multi_deltimeout(struct Curl_easy *data, expire_id eid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/multi.c:3668,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/multi.c:3671,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/multi.c:3674,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/multi.c:3674,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/multi.c:3675,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/multi.c:3676,1
    - Dst: Curl_llist_insert_next
      Src: /src/curl/lib/multi.c:3685,1
    - Dst: CURL_TRC_TIMER
      Src: /src/curl/lib/multi.c:3686,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/multi.c:3687,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/multi.c:3687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - data
    - stamp
    - eid
    argTypes:
    - struct Curl_easy*
    - struct curltime*
    - expire_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3689
      start: 3655
    functionDepth: 2
    functionLinenumber: 3655
    functionLinenumberEnd: 3689
    functionName: multi_addtimeout
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - Curl_pgrs_now
    - memcpy
    - curlx_ptimediff_us
    - Curl_llist_insert_next
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - CURL_TRC_TIMER
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode multi_addtimeout(struct Curl_easy *data,\n                                  struct
      curltime *stamp,\n                                  expire_id eid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:3703,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/multi.c:3705,1
    - Dst: multi_deltimeout
      Src: /src/curl/lib/multi.c:3715,1
    - Dst: multi_addtimeout
      Src: /src/curl/lib/multi.c:3719,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/multi.c:3725,1
    - Dst: Curl_splayremove
      Src: /src/curl/lib/multi.c:3736,1
    - Dst: infof
      Src: /src/curl/lib/multi.c:3739,1
    - Dst: Curl_splayset
      Src: /src/curl/lib/multi.c:3745,1
    - Dst: Curl_splayinsert
      Src: /src/curl/lib/multi.c:3746,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - data
    - milli
    - id
    argTypes:
    - struct Curl_easy*
    - timediff_t
    - expire_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3748
      start: 3691
    functionDepth: 5
    functionLinenumber: 3691
    functionLinenumberEnd: 3748
    functionName: Curl_expire_ex
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - Curl_splayremove
    - DEBUGASSERT
    - Curl_splayset
    - Curl_splayinsert
    - infof
    - multi_deltimeout
    - curlx_ptimediff_ms
    - multi_addtimeout
    linkageType: ''
    returnType: void
    signature: "void Curl_expire_ex(struct Curl_easy *data,\n                    timediff_t
      milli, expire_id id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_expire_ex
      Src: /src/curl/lib/multi.c:3763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - milli
    - id
    argTypes:
    - struct Curl_easy*
    - timediff_t
    - expire_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3764
      start: 3761
    functionDepth: 6
    functionLinenumber: 3761
    functionLinenumberEnd: 3764
    functionName: Curl_expire
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 7
    functionsReached:
    - Curl_expire_ex
    linkageType: ''
    returnType: void
    signature: void Curl_expire(struct Curl_easy *data, timediff_t milli, expire_id
      id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: multi_deltimeout
      Src: /src/curl/lib/multi.c:3775,1
    - Dst: CURL_TRC_TIMER
      Src: /src/curl/lib/multi.c:3776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - id
    argTypes:
    - struct Curl_easy*
    - expire_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3777
      start: 3772
    functionDepth: 5
    functionLinenumber: 3772
    functionLinenumberEnd: 3777
    functionName: Curl_expire_done
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 2
    functionsReached:
    - multi_deltimeout
    - CURL_TRC_TIMER
    linkageType: ''
    returnType: void
    signature: void Curl_expire_done(struct Curl_easy *data, expire_id id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_splayremove
      Src: /src/curl/lib/multi.c:3800,1
    - Dst: infof
      Src: /src/curl/lib/multi.c:3803,1
    - Dst: Curl_llist_destroy
      Src: /src/curl/lib/multi.c:3806,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:3809,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3784
    functionDepth: 4
    functionLinenumber: 3784
    functionLinenumberEnd: 3813
    functionName: Curl_expire_clear
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 3
    functionsReached:
    - Curl_splayremove
    - CURL_TRC_M
    - Curl_llist_destroy
    - infof
    linkageType: ''
    returnType: void
    signature: void Curl_expire_clear(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:3819,1
    - Dst: Curl_multi_ev_assign
      Src: /src/curl/lib/multi.c:3822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - m
    - sockfd
    - sockp
    argTypes:
    - CURLM*
    - curl_socket_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3823
      start: 3815
    functionDepth: 3
    functionLinenumber: 3815
    functionLinenumberEnd: 3823
    functionName: curl_multi_assign
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 7
    functionsReached:
    - Curl_multi_ev_assign
    - GOOD_MULTI_HANDLE
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode curl_multi_assign(CURLM *m, curl_socket_t sockfd,\n                            void
      *sockp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:3828,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:3831,1
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/lib/multi.c:3832,1
    - Dst: multistate
      Src: /src/curl/lib/multi.c:3834,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/multi.c:3835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - multi
    - data
    argTypes:
    - struct Curl_multi*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3836
      start: 3825
    functionDepth: 1
    functionLinenumber: 3825
    functionLinenumberEnd: 3836
    functionName: move_pending_to_connect
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - Curl_multi_mark_dirty
    - multistate
    - Curl_uint32_bset_add
    - Curl_uint32_bset_remove
    linkageType: ''
    returnType: void
    signature: "void move_pending_to_connect(struct Curl_multi *multi,\n                                    struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/lib/multi.c:3857,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi.c:3858,1
    - Dst: move_pending_to_connect
      Src: /src/curl/lib/multi.c:3860,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:3865,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:3866,1
    - Dst: Curl_uint32_bset_first
      Src: /src/curl/lib/multi.c:3873,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/multi.c:3875,1
    - Dst: move_pending_to_connect
      Src: /src/curl/lib/multi.c:3877,1
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:3882,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:3883,1
    - Dst: Curl_uint32_bset_next
      Src: /src/curl/lib/multi.c:3884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3852
    functionDepth: 2
    functionLinenumber: 3852
    functionLinenumberEnd: 3886
    functionName: process_pending_handles
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 9
    functionsReached:
    - DEBUGASSERT
    - Curl_uint32_bset_next
    - Curl_uint32_bset_first
    - move_pending_to_connect
    - Curl_multi_get_easy
    - Curl_uint32_bset_remove
    linkageType: ''
    returnType: void
    signature: void process_pending_handles(struct Curl_multi *multi)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - data
    - value
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3888
    functionDepth: 0
    functionLinenumber: 3888
    functionLinenumberEnd: 3892
    functionName: Curl_set_in_callback
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_set_in_callback(struct Curl_easy *data, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3894
    functionDepth: 0
    functionLinenumber: 3894
    functionLinenumberEnd: 3897
    functionName: Curl_is_in_callback
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_is_in_callback(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:3901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3903
      start: 3899
    functionDepth: 1
    functionLinenumber: 3899
    functionLinenumberEnd: 3903
    functionName: Curl_multi_max_concurrent_streams
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 3
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Curl_multi_max_concurrent_streams(struct Curl_multi *multi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/lib/multi.c:3909,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/multi.c:3910,1
    - Dst: Curl_uint32_tbl_first
      Src: /src/curl/lib/multi.c:3915,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:3918,1
    - Dst: Curl_uint32_tbl_next
      Src: /src/curl/lib/multi.c:3921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3926
      start: 3905
    functionDepth: 2
    functionLinenumber: 3905
    functionLinenumberEnd: 3926
    functionName: curl_multi_get_handles
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 2
    functionsReached:
    - Curl_uint32_tbl_first
    - DEBUGASSERT
    - Curl_uint32_tbl_next
    - curlx_malloc
    - Curl_uint32_tbl_count
    linkageType: ''
    returnType: CURL
    signature: CURL **curl_multi_get_handles(CURLM *m)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:3935,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/lib/multi.c:3942,1
    - Dst: Curl_uint32_bset_count
      Src: /src/curl/lib/multi.c:3948,1
    - Dst: Curl_uint32_bset_contains
      Src: /src/curl/lib/multi.c:3949,1
    - Dst: Curl_uint32_bset_count
      Src: /src/curl/lib/multi.c:3954,1
    - Dst: Curl_uint32_bset_count
      Src: /src/curl/lib/multi.c:3957,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - m
    - info
    - pvalue
    argTypes:
    - CURLM*
    - CURLMinfo_offt
    - curl_off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3966
      start: 3928
    functionDepth: 1
    functionLinenumber: 3928
    functionLinenumberEnd: 3966
    functionName: curl_multi_get_offt
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 3
    functionsReached:
    - Curl_uint32_bset_contains
    - Curl_uint32_bset_count
    - Curl_uint32_tbl_count
    - GOOD_MULTI_HANDLE
    linkageType: ''
    returnType: CURLMcode
    signature: "CURLMcode curl_multi_get_offt(CURLM *m,\n                              CURLMinfo_offt
      info,\n                              curl_off_t *pvalue)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:3971,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:3972,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:3976,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:3980,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:3984,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/multi.c:3991,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/multi.c:3996,1
    - Dst: curlx_uitouz
      Src: /src/curl/lib/multi.c:3996,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:3998,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - data
    - pbuf
    - pbuflen
    argTypes:
    - struct Curl_easy*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3968
    functionDepth: 1
    functionLinenumber: 3968
    functionLinenumberEnd: 4009
    functionName: Curl_multi_xfer_buf_borrow
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - curlx_uitouz
    - failf
    - DEBUGASSERT
    - curlx_malloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_multi_xfer_buf_borrow(struct Curl_easy *data,\n                                    char
      **pbuf, size_t *pbuflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4014,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4015,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - buf
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4018
      start: 4011
    functionDepth: 1
    functionLinenumber: 4011
    functionLinenumberEnd: 4018
    functionName: Curl_multi_xfer_buf_release
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_multi_xfer_buf_release(struct Curl_easy *data, char *buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4023,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4024,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:4028,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:4032,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:4036,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/multi.c:4043,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/multi.c:4049,1
    - Dst: curlx_uitouz
      Src: /src/curl/lib/multi.c:4049,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:4051,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - data
    - pbuf
    - pbuflen
    argTypes:
    - struct Curl_easy*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4020
    functionDepth: 1
    functionLinenumber: 4020
    functionLinenumberEnd: 4062
    functionName: Curl_multi_xfer_ulbuf_borrow
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - curlx_uitouz
    - failf
    - DEBUGASSERT
    - curlx_malloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_multi_xfer_ulbuf_borrow(struct Curl_easy *data,\n                                      char
      **pbuf, size_t *pbuflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4067,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4068,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - buf
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4071
      start: 4064
    functionDepth: 1
    functionLinenumber: 4064
    functionLinenumberEnd: 4071
    functionName: Curl_multi_xfer_ulbuf_release
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_multi_xfer_ulbuf_release(struct Curl_easy *data, char *buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4076,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4077,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:4080,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:4084,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/multi.c:4090,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/multi.c:4095,1
    - Dst: failf
      Src: /src/curl/lib/multi.c:4097,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - data
    - blen
    - pbuf
    argTypes:
    - struct Curl_easy*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4106
      start: 4073
    functionDepth: 1
    functionLinenumber: 4073
    functionLinenumberEnd: 4106
    functionName: Curl_multi_xfer_sockbuf_borrow
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - failf
    - DEBUGASSERT
    - curlx_malloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_multi_xfer_sockbuf_borrow(struct Curl_easy *data,\n
      \                                       size_t blen, char **pbuf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4111,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4112,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - buf
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4115
      start: 4108
    functionDepth: 1
    functionLinenumber: 4108
    functionLinenumberEnd: 4115
    functionName: Curl_multi_xfer_sockbuf_release
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_multi_xfer_sockbuf_release(struct Curl_easy *data, char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4119,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/multi.c:4120,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/multi.c:4123,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/multi.c:4126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4129
      start: 4117
    functionDepth: 1
    functionLinenumber: 4117
    functionLinenumberEnd: 4129
    functionName: multi_xfer_bufs_free
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void multi_xfer_bufs_free(struct Curl_multi *multi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_tbl_get
      Src: /src/curl/lib/multi.c:4134,1
    - Dst: GOOD_EASY_HANDLE
      Src: /src/curl/lib/multi.c:4135,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/multi.c:4137,1
    - Dst: Curl_uint32_tbl_remove
      Src: /src/curl/lib/multi.c:4139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - multi
    - mid
    argTypes:
    - struct Curl_multi*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4131
    functionDepth: 3
    functionLinenumber: 4131
    functionLinenumberEnd: 4141
    functionName: Curl_multi_get_easy
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 12
    functionsReached:
    - Curl_uint32_tbl_remove
    - CURL_TRC_M
    - GOOD_EASY_HANDLE
    - Curl_uint32_tbl_get
    linkageType: ''
    returnType: struct Curl_easy
    signature: "struct Curl_easy *Curl_multi_get_easy(struct Curl_multi *multi,\n
      \                                     uint32_t mid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/multi.c:4145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4149
      start: 4143
    functionDepth: 1
    functionLinenumber: 4143
    functionLinenumberEnd: 4149
    functionName: Curl_multi_xfers_running
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 4
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Curl_multi_xfers_running(struct Curl_multi *multi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_add
      Src: /src/curl/lib/multi.c:4154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4155
      start: 4151
    functionDepth: 1
    functionLinenumber: 4151
    functionLinenumberEnd: 4155
    functionName: Curl_multi_mark_dirty
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 16
    functionsReached:
    - Curl_uint32_bset_add
    linkageType: ''
    returnType: void
    signature: void Curl_multi_mark_dirty(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_bset_remove
      Src: /src/curl/lib/multi.c:4160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4161
      start: 4157
    functionDepth: 1
    functionLinenumber: 4157
    functionLinenumberEnd: 4161
    functionName: Curl_multi_clear_dirty
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - Curl_uint32_bset_remove
    linkageType: ''
    returnType: void
    signature: void Curl_multi_clear_dirty(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:4167,1
    - Dst: Curl_mntfy_enable
      Src: /src/curl/lib/multi.c:4169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - m
    - notification
    argTypes:
    - CURLM*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4170
      start: 4163
    functionDepth: 2
    functionLinenumber: 4163
    functionLinenumberEnd: 4170
    functionName: curl_multi_notify_enable
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - Curl_mntfy_enable
    - GOOD_MULTI_HANDLE
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_notify_enable(CURLM *m, unsigned int notification)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_MULTI_HANDLE
      Src: /src/curl/lib/multi.c:4176,1
    - Dst: Curl_mntfy_disable
      Src: /src/curl/lib/multi.c:4178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - m
    - notification
    argTypes:
    - CURLM*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4179
      start: 4172
    functionDepth: 2
    functionLinenumber: 4172
    functionLinenumberEnd: 4179
    functionName: curl_multi_notify_disable
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_mntfy_disable
    - GOOD_MULTI_HANDLE
    linkageType: ''
    returnType: CURLMcode
    signature: CURLMcode curl_multi_notify_disable(CURLM *m, unsigned int notification)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/multi.c:4189,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/multi.c:4192,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/multi.c:4196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - multi
    - mid
    - entry
    argTypes:
    - struct Curl_multi*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4198
      start: 4182
    functionDepth: 6
    functionLinenumber: 4182
    functionLinenumberEnd: 4198
    functionName: multi_xfer_dump
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_ptr
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: "void multi_xfer_dump(struct Curl_multi *multi, uint32_t mid,\n                            void
      *entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/multi.c:4204,1
    - Dst: Curl_uint32_tbl_count
      Src: /src/curl/lib/multi.c:4205,1
    - Dst: Curl_uint32_tbl_capacity
      Src: /src/curl/lib/multi.c:4206,1
    - Dst: Curl_uint32_tbl_first
      Src: /src/curl/lib/multi.c:4207,1
    - Dst: multi_xfer_dump
      Src: /src/curl/lib/multi.c:4208,1
    - Dst: Curl_uint32_tbl_next
      Src: /src/curl/lib/multi.c:4209,1
    - Dst: multi_xfer_dump
      Src: /src/curl/lib/multi.c:4210,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/multi.c:4212,1
    - Dst: fflush
      Src: /src/curl/lib/multi.c:4213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4214
      start: 4200
    functionDepth: 7
    functionLinenumber: 4200
    functionLinenumberEnd: 4214
    functionName: multi_xfer_tbl_dump
    functionSourceFile: /src/curl/lib/multi.c
    functionUses: 1
    functionsReached:
    - curl_mfprintf
    - Curl_uint32_tbl_first
    - multi_xfer_dump
    - Curl_uint32_tbl_next
    - Curl_uint32_tbl_count
    - fflush
    - Curl_uint32_tbl_capacity
    linkageType: ''
    returnType: void
    signature: void multi_xfer_tbl_dump(struct Curl_multi *multi)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/curl_get_line.c:39,1
    - Dst: fgets
      Src: /src/curl/lib/curl_get_line.c:42,1
    - Dst: ferror
      Src: /src/curl/lib/curl_get_line.c:43,1
    - Dst: feof
      Src: /src/curl/lib/curl_get_line.c:46,1
    - Dst: strlen
      Src: /src/curl/lib/curl_get_line.c:48,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/curl_get_line.c:50,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/curl_get_line.c:56,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/curl_get_line.c:57,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/curl_get_line.c:63,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - buf
    - input
    - eof
    argTypes:
    - struct dynbuf*
    - FILE*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 67
    functionName: Curl_get_line
    functionSourceFile: /src/curl/lib/curl_get_line.c
    functionUses: 2
    functionsReached:
    - fgets
    - ferror
    - curlx_dyn_addn
    - curlx_dyn_len
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - feof
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_get_line(struct dynbuf *buf, FILE *input, bool *eof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/peer.c:96,1
    - Dst: curlx_free
      Src: /src/curl/lib/peer.c:97,1
    - Dst: curlx_free
      Src: /src/curl/lib/peer.c:98,1
    - Dst: memset
      Src: /src/curl/lib/peer.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pp
    argTypes:
    - struct peer_parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: peer_parse_clear
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - memset
    linkageType: ''
    returnType: void
    signature: void peer_parse_clear(struct peer_parse *pp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/peer.c:121,1
    - Dst: memcpy
      Src: /src/curl/lib/peer.c:138,1
    - Dst: memcpy
      Src: /src/curl/lib/peer.c:142,1
    - Dst: memcpy
      Src: /src/curl/lib/peer.c:147,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/peer.c:153,1
    - Dst: if_nametoindex
      Src: /src/curl/lib/peer.c:161,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/peer.c:178,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - pp
    - ppeer
    argTypes:
    - struct peer_parse*
    - struct Curl_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 180
    functionName: peer_create
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 2
    functionsReached:
    - if_nametoindex
    - memcpy
    - curlx_str_number
    - Curl_peer_unlink
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode peer_create(struct peer_parse *pp,\n                            struct
      Curl_peer **ppeer)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_until
      Src: /src/curl/lib/peer.c:192,1
    - Dst: Curl_looks_like_ipv6
      Src: /src/curl/lib/peer.c:195,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:197,1
    - Dst: Curl_is_ASCII_str
      Src: /src/curl/lib/peer.c:205,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/peer.c:209,1
    - Dst: Curl_idn_decode
      Src: /src/curl/lib/peer.c:214,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:218,1
    - Dst: Curl_looks_like_ipv6
      Src: /src/curl/lib/peer.c:223,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - data
    - pp
    - scan_for_ipv6
    argTypes:
    - struct Curl_easy*
    - struct peer_parse*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 231
    functionName: peer_parse_host
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 0
    functionsReached:
    - Curl_looks_like_ipv6
    - Curl_idn_decode
    - failf
    - curlx_str_until
    - Curl_is_ASCII_str
    - curlx_memdup0
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode peer_parse_host(struct Curl_easy *data,\n                                struct
      peer_parse *pp,\n                                bool scan_for_ipv6)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/peer.c:242,1
    - Dst: memset
      Src: /src/curl/lib/peer.c:243,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:246,1
    - Dst: peer_parse_host
      Src: /src/curl/lib/peer.c:249,1
    - Dst: peer_create
      Src: /src/curl/lib/peer.c:251,1
    - Dst: peer_parse_clear
      Src: /src/curl/lib/peer.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - data
    - scheme
    - hostname
    - port
    - ppeer
    argTypes:
    - struct Curl_easy*
    - struct Curl_scheme*
    - char*
    - uint16_t
    - struct Curl_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 255
    functionName: Curl_peer_create
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 2
    functionsReached:
    - peer_parse_clear
    - peer_create
    - Curl_peer_unlink
    - memset
    - strlen
    - peer_parse_host
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_peer_create(struct Curl_easy *data,\n                          const
      struct Curl_scheme *scheme,\n                          const char *hostname,\n
      \                         uint16_t port,\n                          struct Curl_peer
      **ppeer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/peer.c:264,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/peer.c:267,1
    - Dst: memset
      Src: /src/curl/lib/peer.c:268,1
    - Dst: peer_create
      Src: /src/curl/lib/peer.c:280,1
    - Dst: peer_parse_clear
      Src: /src/curl/lib/peer.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - scheme
    - path
    - abstract_unix_socket
    - ppeer
    argTypes:
    - struct Curl_scheme*
    - char*
    - bool
    - struct Curl_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: Curl_peer_uds_create
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 1
    functionsReached:
    - peer_parse_clear
    - peer_create
    - Curl_peer_unlink
    - memset
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_peer_uds_create(const struct Curl_scheme *scheme,\n
      \                             const char *path,\n                              bool
      abstract_unix_socket,\n                              struct Curl_peer **ppeer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/peer.c:289,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/peer.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pdest
    - src
    argTypes:
    - struct Curl_peer**
    - struct Curl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: Curl_peer_link
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 7
    functionsReached:
    - Curl_peer_unlink
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_peer_link(struct Curl_peer **pdest, struct Curl_peer *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/peer.c:303,1
    - Dst: curlx_free
      Src: /src/curl/lib/peer.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ppeer
    argTypes:
    - struct Curl_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: Curl_peer_unlink
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 14
    functionsReached:
    - curlx_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_peer_unlink(struct Curl_peer **ppeer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_same_destination
      Src: /src/curl/lib/peer.c:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - struct Curl_peer*
    - struct Curl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: Curl_peer_equal
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 3
    functionsReached:
    - Curl_peer_same_destination
    linkageType: ''
    returnType: bool
    signature: bool Curl_peer_equal(struct Curl_peer *p1, struct Curl_peer *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/peer.c:329,1
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - struct Curl_peer*
    - struct Curl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 331
    functionName: peer_same_hostname
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool peer_same_hostname(struct Curl_peer *p1, struct Curl_peer *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_same_hostname
      Src: /src/curl/lib/peer.c:338,1
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:340,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - struct Curl_peer*
    - struct Curl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 341
    functionName: Curl_peer_same_destination
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 3
    functionsReached:
    - curl_strequal
    - peer_same_hostname
    linkageType: ''
    returnType: bool
    signature: bool Curl_peer_same_destination(struct Curl_peer *p1, struct Curl_peer
      *p2)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/peer.c:354,1
    - Dst: memset
      Src: /src/curl/lib/peer.c:355,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/peer.c:357,1
    - Dst: curl_url_get
      Src: /src/curl/lib/peer.c:358,1
    - Dst: Curl_uc_to_curlcode
      Src: /src/curl/lib/peer.c:360,1
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/peer.c:361,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:363,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/peer.c:369,1
    - Dst: curl_url_get
      Src: /src/curl/lib/peer.c:370,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:379,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:380,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:386,1
    - Dst: peer_parse_host
      Src: /src/curl/lib/peer.c:388,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/peer.c:395,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/peer.c:399,1
    - Dst: curl_url_set
      Src: /src/curl/lib/peer.c:400,1
    - Dst: curl_url_get
      Src: /src/curl/lib/peer.c:409,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/peer.c:424,1
    - Dst: curl_url_get
      Src: /src/curl/lib/peer.c:434,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:441,1
    - Dst: peer_create
      Src: /src/curl/lib/peer.c:445,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:447,1
    - Dst: peer_parse_clear
      Src: /src/curl/lib/peer.c:451,1
    - Dst: curlx_free
      Src: /src/curl/lib/peer.c:452,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 88
    argCount: 6
    argNames:
    - uh
    - data
    - port_override
    - scopeid_override
    - up
    - ppeer
    argTypes:
    - CURLU*
    - struct Curl_easy*
    - uint16_t
    - uint32_t
    - struct urlpieces*
    - struct Curl_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 343
    functionDepth: 7
    functionLinenumber: 343
    functionLinenumberEnd: 454
    functionName: Curl_peer_from_url
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - curl_url_set
    - curl_msnprintf
    - failf
    - peer_parse_clear
    - Curl_get_scheme
    - peer_create
    - curlx_str_number
    - curlx_free
    - Curl_peer_unlink
    - curl_url_get
    - memset
    - Curl_uc_to_curlcode
    - strlen
    - peer_parse_host
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_peer_from_url(CURLU *uh, struct Curl_easy *data,\n                            uint16_t
      port_override,\n                            uint32_t scopeid_override,\n                            struct
      urlpieces *up,\n                            struct Curl_peer **ppeer)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/peer.c:467,1
    - Dst: memset
      Src: /src/curl/lib/peer.c:468,1
    - Dst: strchr
      Src: /src/curl/lib/peer.c:476,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:478,1
    - Dst: strchr
      Src: /src/curl/lib/peer.c:482,1
    - Dst: strchr
      Src: /src/curl/lib/peer.c:488,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:491,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:496,1
    - Dst: peer_parse_host
      Src: /src/curl/lib/peer.c:499,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/peer.c:506,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:507,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:518,1
    - Dst: peer_create
      Src: /src/curl/lib/peer.c:524,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/peer.c:525,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/peer.c:528,1
    - Dst: peer_parse_clear
      Src: /src/curl/lib/peer.c:529,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 4
    argNames:
    - data
    - dest
    - connect_to
    - ppeer
    argTypes:
    - struct Curl_easy*
    - struct Curl_peer*
    - char*
    - struct Curl_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 531
    functionName: Curl_peer_from_connect_to
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 1
    functionsReached:
    - failf
    - peer_parse_clear
    - peer_create
    - curlx_str_number
    - Curl_peer_unlink
    - strchr
    - memset
    - strlen
    - peer_parse_host
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_peer_from_connect_to(struct Curl_easy *data,\n                                   const
      struct Curl_peer *dest,\n                                   const char *connect_to,\n
      \                                  struct Curl_peer **ppeer)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:546,1
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:550,1
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:552,1
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:554,1
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:556,1
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:556,1
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:558,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:564,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - data
    - scheme
    - proxytype
    - url
    argTypes:
    - struct Curl_easy*
    - char*
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 568
    functionName: Curl_scheme_to_proxytype
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 1
    functionsReached:
    - curl_strequal
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_scheme_to_proxytype(struct Curl_easy *data,\n                                  const
      char *scheme,\n                                  uint8_t *proxytype, const char
      *url)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/peer.c:586,1
    - Dst: memset
      Src: /src/curl/lib/peer.c:587,1
    - Dst: curl_url_get
      Src: /src/curl/lib/peer.c:589,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:620,1
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/peer.c:626,1
    - Dst: Curl_scheme_to_proxytype
      Src: /src/curl/lib/peer.c:627,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/peer.c:631,1
    - Dst: IS_HTTPS_PROXY
      Src: /src/curl/lib/peer.c:633,1
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/peer.c:634,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:635,1
    - Dst: failf
      Src: /src/curl/lib/peer.c:650,1
    - Dst: curl_url_get
      Src: /src/curl/lib/peer.c:655,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/peer.c:663,1
    - Dst: curlx_free
      Src: /src/curl/lib/peer.c:666,1
    - Dst: curl_url_get
      Src: /src/curl/lib/peer.c:677,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:683,1
    - Dst: curl_strequal
      Src: /src/curl/lib/peer.c:686,1
    - Dst: curl_url_get
      Src: /src/curl/lib/peer.c:687,1
    - Dst: strcmp
      Src: /src/curl/lib/peer.c:693,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:695,1
    - Dst: peer_parse_host
      Src: /src/curl/lib/peer.c:705,1
    - Dst: curl_url_get
      Src: /src/curl/lib/peer.c:710,1
    - Dst: strlen
      Src: /src/curl/lib/peer.c:717,1
    - Dst: peer_create
      Src: /src/curl/lib/peer.c:721,1
    - Dst: peer_parse_clear
      Src: /src/curl/lib/peer.c:724,1
    - Dst: curlx_free
      Src: /src/curl/lib/peer.c:725,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/peer.c:728,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 128
    argCount: 6
    argNames:
    - uh
    - data
    - url
    - proxytype
    - ppeer
    - pproxytype
    argTypes:
    - CURLU*
    - struct Curl_easy*
    - char*
    - uint8_t
    - struct Curl_peer**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 731
    functionName: Curl_peer_from_proxy_url
    functionSourceFile: /src/curl/lib/peer.c
    functionUses: 1
    functionsReached:
    - failf
    - DEBUGASSERT
    - peer_parse_clear
    - Curl_get_scheme
    - peer_create
    - curlx_str_number
    - IS_HTTPS_PROXY
    - curlx_free
    - curl_strequal
    - Curl_peer_unlink
    - strcmp
    - curl_url_get
    - Curl_ssl_supports
    - memset
    - peer_parse_host
    - strlen
    - Curl_scheme_to_proxytype
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_peer_from_proxy_url(CURLU *uh,\n                                  struct
      Curl_easy *data,\n                                  const char *url,\n                                  uint8_t
      proxytype,\n                                  struct Curl_peer **ppeer,\n                                  uint8_t
      *pproxytype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: FREE_ON_WINLDAP
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_ON_WINLDAP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: FREE_ON_WINLDAP
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_ON_WINLDAP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: LDAP_TRACE
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LDAP_TRACE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: LDAP_TRACE
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LDAP_TRACE(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/ldap.c:163,1
    - Dst: Curl_create_sspi_identity
      Src: /src/curl/lib/ldap.c:188,1
    - Dst: ldap_bind_s
      Src: /src/curl/lib/ldap.c:190,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/ldap.c:191,1
    - Dst: ldap_bind_s
      Src: /src/curl/lib/ldap.c:200,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - server
    - user
    - passwd
    - authflags
    argTypes:
    - LDAP*
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 203
    functionName: ldap_win_bind_auth
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached:
    - ldap_bind_s
    - Curl_sspi_free_identity
    - Curl_create_sspi_identity
    - memset
    linkageType: ''
    returnType: ULONG
    signature: "ULONG ldap_win_bind_auth(LDAP *server, const char *user,\n                                const
      char *passwd, unsigned long authflags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/ldap.c:215,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/ldap.c:216,1
    - Dst: ldap_simple_bind_s
      Src: /src/curl/lib/ldap.c:218,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:220,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:221,1
    - Dst: ldap_win_bind_auth
      Src: /src/curl/lib/ldap.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - data
    - server
    - user
    - passwd
    argTypes:
    - struct Curl_easy*
    - LDAP*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 230
    functionName: ldap_win_bind
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - ldap_simple_bind_s
    - curlx_convert_UTF8_to_tchar
    - ldap_win_bind_auth
    linkageType: ''
    returnType: ULONG
    signature: "ULONG ldap_win_bind(struct Curl_easy *data, LDAP *server,\n                           const
      char *user, const char *passwd)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/ldap.c:255,1
    - Dst: Curl_creds_has_passwd
      Src: /src/curl/lib/ldap.c:257,1
    - Dst: infof
      Src: /src/curl/lib/ldap.c:264,1
    - Dst: infof
      Src: /src/curl/lib/ldap.c:266,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/ldap.c:266,1
    - Dst: ldap_url_parse
      Src: /src/curl/lib/ldap.c:269,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/ldap.c:269,1
    - Dst: ldap_url_parse_low
      Src: /src/curl/lib/ldap.c:271,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:274,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/ldap.c:274,1
    - Dst: Curl_conn_get_ip_info
      Src: /src/curl/lib/ldap.c:279,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/ldap.c:284,1
    - Dst: infof
      Src: /src/curl/lib/ldap.c:286,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/ldap.c:290,1
    - Dst: ldap_sslinit
      Src: /src/curl/lib/ldap.c:302,1
    - Dst: ldap_init
      Src: /src/curl/lib/ldap.c:305,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:307,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/ldap.c:314,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/ldap.c:316,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/ldap.c:319,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/ldap.c:325,1
    - Dst: curl_strequal
      Src: /src/curl/lib/ldap.c:333,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:334,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:339,1
    - Dst: infof
      Src: /src/curl/lib/ldap.c:343,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/ldap.c:344,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:346,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/ldap.c:347,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/ldap.c:356,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:358,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/ldap.c:359,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/ldap.c:364,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:366,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/ldap.c:367,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:376,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:385,1
    - Dst: ldap_win_bind
      Src: /src/curl/lib/ldap.c:391,1
    - Dst: ldap_simple_bind_s
      Src: /src/curl/lib/ldap.c:393,1
    - Dst: ldap_set_option
      Src: /src/curl/lib/ldap.c:397,1
    - Dst: ldap_win_bind
      Src: /src/curl/lib/ldap.c:399,1
    - Dst: ldap_simple_bind_s
      Src: /src/curl/lib/ldap.c:401,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:406,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/ldap.c:407,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:409,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/ldap.c:410,1
    - Dst: Curl_pgrsReset
      Src: /src/curl/lib/ldap.c:416,1
    - Dst: ldap_search_s
      Src: /src/curl/lib/ldap.c:417,1
    - Dst: failf
      Src: /src/curl/lib/ldap.c:422,1
    - Dst: ldap_err2string
      Src: /src/curl/lib/ldap.c:422,1
    - Dst: ldap_first_entry
      Src: /src/curl/lib/ldap.c:428,1
    - Dst: ldap_next_entry
      Src: /src/curl/lib/ldap.c:430,1
    - Dst: ldap_get_dn
      Src: /src/curl/lib/ldap.c:443,1
    - Dst: curlx_convert_tchar_to_UTF8
      Src: /src/curl/lib/ldap.c:444,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:446,1
    - Dst: ldap_get_dn
      Src: /src/curl/lib/ldap.c:453,1
    - Dst: strlen
      Src: /src/curl/lib/ldap.c:458,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:459,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:462,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:464,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:465,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:466,1
    - Dst: ldap_first_attribute
      Src: /src/curl/lib/ldap.c:472,1
    - Dst: ldap_next_attribute
      Src: /src/curl/lib/ldap.c:474,1
    - Dst: curlx_convert_tchar_to_UTF8
      Src: /src/curl/lib/ldap.c:478,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:480,1
    - Dst: strlen
      Src: /src/curl/lib/ldap.c:487,1
    - Dst: ldap_get_values_len
      Src: /src/curl/lib/ldap.c:489,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:492,1
    - Dst: ldap_value_free_len
      Src: /src/curl/lib/ldap.c:494,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:495,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:496,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:500,1
    - Dst: ldap_value_free_len
      Src: /src/curl/lib/ldap.c:502,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:503,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:504,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:508,1
    - Dst: ldap_value_free_len
      Src: /src/curl/lib/ldap.c:510,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:511,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:512,1
    - Dst: curl_strequal
      Src: /src/curl/lib/ldap.c:517,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/ldap.c:520,1
    - Dst: ldap_value_free_len
      Src: /src/curl/lib/ldap.c:524,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:525,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:526,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:531,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:533,1
    - Dst: ldap_value_free_len
      Src: /src/curl/lib/ldap.c:535,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:536,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:537,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:544,1
    - Dst: ldap_value_free_len
      Src: /src/curl/lib/ldap.c:547,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:548,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:549,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:554,1
    - Dst: ldap_value_free_len
      Src: /src/curl/lib/ldap.c:556,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:557,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:558,1
    - Dst: ldap_value_free_len
      Src: /src/curl/lib/ldap.c:564,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:568,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:569,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/ldap.c:571,1
    - Dst: ber_free
      Src: /src/curl/lib/ldap.c:577,1
    - Dst: ber_free
      Src: /src/curl/lib/ldap.c:584,1
    - Dst: ldap_msgfree
      Src: /src/curl/lib/ldap.c:586,1
    - Dst: LDAP_TRACE
      Src: /src/curl/lib/ldap.c:587,1
    - Dst: infof
      Src: /src/curl/lib/ldap.c:590,1
    - Dst: ldap_free_urldesc
      Src: /src/curl/lib/ldap.c:592,1
    - Dst: ldap_unbind_s
      Src: /src/curl/lib/ldap.c:594,1
    - Dst: FREE_ON_WINLDAP
      Src: /src/curl/lib/ldap.c:596,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/ldap.c:599,1
    - Dst: connclose
      Src: /src/curl/lib/ldap.c:600,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 247
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 603
    functionName: ldap_do
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached:
    - ldap_get_dn
    - ldap_first_attribute
    - ldap_search_s
    - ldap_value_free_len
    - connclose
    - Curl_creds_has_user
    - ldap_free_urldesc
    - Curl_conn_get_ip_info
    - ldap_set_option
    - FREE_ON_WINLDAP
    - ldap_next_entry
    - curlx_convert_tchar_to_UTF8
    - Curl_client_write
    - Curl_xfer_setup_nop
    - ldap_next_attribute
    - Curl_bufref_ptr
    - ber_free
    - ldap_simple_bind_s
    - ldap_win_bind
    - ldap_url_parse_low
    - ldap_first_entry
    - ldap_sslinit
    - ldap_get_values_len
    - Curl_creds_has_passwd
    - Curl_pgrsReset
    - failf
    - curlx_base64_encode
    - ldap_unbind_s
    - curl_strequal
    - curlx_free
    - curlx_convert_UTF8_to_tchar
    - ldap_init
    - Curl_conn_is_ssl
    - ldap_err2string
    - ldap_url_parse
    - infof
    - ldap_msgfree
    - LDAP_TRACE
    - ldap_memfree
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ldap_do(struct Curl_easy *data, bool *done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/ldap.c:612,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ldap.c:614,1
    - Dst: va_start
      Src: /src/curl/lib/ldap.c:620,1
    - Dst: curl_mvfprintf
      Src: /src/curl/lib/ldap.c:621,1
    - Dst: va_end
      Src: /src/curl/lib/ldap.c:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 606
    functionDepth: 6
    functionLinenumber: 606
    functionLinenumberEnd: 623
    functionName: ldap_trace_low
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached:
    - getenv
    - va_start
    - va_end
    - curlx_str_number
    - curl_mvfprintf
    linkageType: ''
    returnType: void
    signature: void ldap_trace_low(const char *fmt, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/ldap.c:633,1
    - Dst: curl_strequal
      Src: /src/curl/lib/ldap.c:635,1
    - Dst: curl_strequal
      Src: /src/curl/lib/ldap.c:637,1
    - Dst: curl_strequal
      Src: /src/curl/lib/ldap.c:639,1
    - Dst: curl_strequal
      Src: /src/curl/lib/ldap.c:641,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 644
    functionName: str2scope
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    linkageType: ''
    returnType: int
    signature: int str2scope(const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/lib/ldap.c:651,1
    - Dst: strchr
      Src: /src/curl/lib/ldap.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 657
    functionName: num_entries
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: size_t
    signature: size_t num_entries(const char *s)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/ldap.c:687,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/ldap.c:695,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/ldap.c:701,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:703,1
    - Dst: LDAP_TRACE
      Src: /src/curl/lib/ldap.c:714,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/ldap.c:717,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/ldap.c:726,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:729,1
    - Dst: strchr
      Src: /src/curl/lib/ldap.c:746,1
    - Dst: num_entries
      Src: /src/curl/lib/ldap.c:751,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/ldap.c:756,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/ldap.c:758,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/ldap.c:770,1
    - Dst: LDAP_TRACE
      Src: /src/curl/lib/ldap.c:773,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/ldap.c:776,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/ldap.c:784,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:787,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/ldap.c:798,1
    - Dst: strchr
      Src: /src/curl/lib/ldap.c:808,1
    - Dst: str2scope
      Src: /src/curl/lib/ldap.c:813,1
    - Dst: LDAP_TRACE
      Src: /src/curl/lib/ldap.c:819,1
    - Dst: strchr
      Src: /src/curl/lib/ldap.c:827,1
    - Dst: LDAP_TRACE
      Src: /src/curl/lib/ldap.c:836,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/ldap.c:839,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/ldap.c:848,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:851,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:871,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:872,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 122
    argCount: 3
    argNames:
    - data
    - conn
    - ludp
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - LDAPURLDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 875
    functionName: ldap_url_parse2_low
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached:
    - num_entries
    - Curl_urldecode
    - curlx_str_single
    - curlx_str_until
    - curlx_strdup
    - curl_strnequal
    - curlx_free
    - curlx_convert_UTF8_to_tchar
    - LDAP_TRACE
    - curlx_calloc
    - strchr
    - str2scope
    linkageType: ''
    returnType: curl_ldap_num_t
    signature: "curl_ldap_num_t ldap_url_parse2_low(struct Curl_easy *data,\n                                           const
      struct connectdata *conn,\n                                           LDAPURLDesc
      *ludp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/ldap.c:881,1
    - Dst: ldap_url_parse2_low
      Src: /src/curl/lib/ldap.c:888,1
    - Dst: ldap_free_urldesc_low
      Src: /src/curl/lib/ldap.c:890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - data
    - conn
    - ludpp
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - LDAPURLDesc**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 877
    functionDepth: 3
    functionLinenumber: 877
    functionLinenumberEnd: 895
    functionName: ldap_url_parse_low
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 1
    functionsReached:
    - ldap_url_parse2_low
    - curlx_calloc
    - ldap_free_urldesc_low
    linkageType: ''
    returnType: curl_ldap_num_t
    signature: "curl_ldap_num_t ldap_url_parse_low(struct Curl_easy *data,\n                                          const
      struct connectdata *conn,\n                                          LDAPURLDesc
      **ludpp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:902,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:903,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:908,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:910,1
    - Dst: curlx_free
      Src: /src/curl/lib/ldap.c:913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ludp
    argTypes:
    - LDAPURLDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 914
    functionName: ldap_free_urldesc_low
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 1
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void ldap_free_urldesc_low(LDAPURLDesc *ludp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/ldap.c:920,1
    - Dst: ldap_get_option
      Src: /src/curl/lib/ldap.c:932,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/ldap.c:939,1
    - Dst: ldap_value_free
      Src: /src/curl/lib/ldap.c:940,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/ldap.c:943,1
    - Dst: ldap_memfree
      Src: /src/curl/lib/ldap.c:945,1
    - Dst: ber_memvfree
      Src: /src/curl/lib/ldap.c:946,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/ldap.c:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 917
    functionDepth: 7
    functionLinenumber: 917
    functionLinenumberEnd: 952
    functionName: Curl_ldap_version
    functionSourceFile: /src/curl/lib/ldap.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - ldap_get_option
    - ldap_value_free
    - ber_memvfree
    - ldap_memfree
    linkageType: ''
    returnType: void
    signature: void Curl_ldap_version(char *buf, size_t bufsz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ipv4_resolve_r
      Src: /src/curl/lib/hostip4.c:81,1
    - Dst: infof
      Src: /src/curl/lib/hostip4.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - data
    - dns_queries
    - hostname
    - port
    - transport
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - char*
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 86
    functionName: Curl_sync_getaddrinfo
    functionSourceFile: /src/curl/lib/hostip4.c
    functionUses: 1
    functionsReached:
    - Curl_ipv4_resolve_r
    - infof
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *Curl_sync_getaddrinfo(struct Curl_easy *data,\n
      \                                           uint8_t dns_queries,\n                                            const
      char *hostname,\n                                            uint16_t port,\n
      \                                           uint8_t transport)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/hostip4.c:118,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/hostip4.c:122,1
    - Dst: Curl_getaddrinfo_ex
      Src: /src/curl/lib/hostip4.c:126,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/hostip4.c:136,1
    - Dst: gethostbyname_r
      Src: /src/curl/lib/hostip4.c:147,1
    - Dst: gethostbyname_r
      Src: /src/curl/lib/hostip4.c:166,1
    - Dst: gethostbyname_r
      Src: /src/curl/lib/hostip4.c:233,1
    - Dst: curlx_free
      Src: /src/curl/lib/hostip4.c:259,1
    - Dst: gethostbyname
      Src: /src/curl/lib/hostip4.c:268,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/hostip4.c:268,1
    - Dst: Curl_he2ai
      Src: /src/curl/lib/hostip4.c:274,1
    - Dst: curlx_free
      Src: /src/curl/lib/hostip4.c:277,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - hostname
    - port
    argTypes:
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 100
    functionDepth: 7
    functionLinenumber: 100
    functionLinenumberEnd: 282
    functionName: Curl_ipv4_resolve_r
    functionSourceFile: /src/curl/lib/hostip4.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - Curl_getaddrinfo_ex
    - CURL_UNCONST
    - curlx_free
    - curlx_calloc
    - gethostbyname_r
    - memset
    - gethostbyname
    - Curl_he2ai
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *Curl_ipv4_resolve_r(const char *hostname,\n
      \                                         uint16_t port)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/curl_gethostname.c:60,1
    - Dst: strlen
      Src: /src/curl/lib/curl_gethostname.c:62,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/curl_gethostname.c:63,1
    - Dst: strlen
      Src: /src/curl/lib/curl_gethostname.c:63,1
    - Dst: gethostname
      Src: /src/curl/lib/curl_gethostname.c:70,1
    - Dst: gethostname
      Src: /src/curl/lib/curl_gethostname.c:77,1
    - Dst: gethostname
      Src: /src/curl/lib/curl_gethostname.c:79,1
    - Dst: strchr
      Src: /src/curl/lib/curl_gethostname.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - name
    - namelen
    argTypes:
    - char*
    - GETHOSTNAME_TYPE_ARG2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 96
    functionName: Curl_gethostname
    functionSourceFile: /src/curl/lib/curl_gethostname.c
    functionUses: 1
    functionsReached:
    - getenv
    - curlx_strcopy
    - strchr
    - gethostname
    - strlen
    linkageType: ''
    returnType: int
    signature: int Curl_gethostname(char * const name, GETHOSTNAME_TYPE_ARG2 namelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: Curl_easyopts_check
    functionSourceFile: /src/curl/lib/easyoptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Curl_easyopts_check(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/lib/curl_range.c:41,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/curl_range.c:44,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/curl_range.c:48,1
    - Dst: DEBUGF
      Src: /src/curl/lib/curl_range.c:52,1
    - Dst: infof
      Src: /src/curl/lib/curl_range.c:52,1
    - Dst: DEBUGF
      Src: /src/curl/lib/curl_range.c:62,1
    - Dst: infof
      Src: /src/curl/lib/curl_range.c:62,1
    - Dst: DEBUGF
      Src: /src/curl/lib/curl_range.c:78,1
    - Dst: infof
      Src: /src/curl/lib/curl_range.c:78,1
    - Dst: DEBUGF
      Src: /src/curl/lib/curl_range.c:82,1
    - Dst: infof
      Src: /src/curl/lib/curl_range.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 89
    functionName: Curl_range
    functionSourceFile: /src/curl/lib/curl_range.c
    functionUses: 1
    functionsReached:
    - DEBUGF
    - curlx_str_single
    - curlx_str_number
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_range(struct Curl_easy *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/hmac.c:56,1
    - Dst: struct HMAC_params*::hinit
      Src: /src/curl/lib/hmac.c:67,1
    - Dst: struct HMAC_params*::hupdate
      Src: /src/curl/lib/hmac.c:69,1
    - Dst: struct HMAC_params*::hfinal
      Src: /src/curl/lib/hmac.c:71,1
    - Dst: struct HMAC_params*::hinit
      Src: /src/curl/lib/hmac.c:77,1
    - Dst: struct HMAC_params*::hinit
      Src: /src/curl/lib/hmac.c:78,1
    - Dst: struct HMAC_params*::hupdate
      Src: /src/curl/lib/hmac.c:83,1
    - Dst: struct HMAC_params*::hupdate
      Src: /src/curl/lib/hmac.c:85,1
    - Dst: struct HMAC_params*::hupdate
      Src: /src/curl/lib/hmac.c:89,1
    - Dst: struct HMAC_params*::hupdate
      Src: /src/curl/lib/hmac.c:90,1
    - Dst: curlx_free
      Src: /src/curl/lib/hmac.c:97,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - hashparams
    - key
    - keylen
    argTypes:
    - struct HMAC_params*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 99
    functionName: Curl_HMAC_init
    functionSourceFile: /src/curl/lib/hmac.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - curlx_free
    - struct HMAC_params*::hupdate
    - struct HMAC_params*::hinit
    - struct HMAC_params*::hfinal
    linkageType: ''
    returnType: struct HMAC_context
    signature: "struct HMAC_context *Curl_HMAC_init(const struct HMAC_params *hashparams,\n
      \                                   const unsigned char *key,\n                                    unsigned
      int keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct HMAC_context*::hash::hupdate
      Src: /src/curl/lib/hmac.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctxt
    - data
    - len
    argTypes:
    - struct HMAC_context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: Curl_HMAC_update
    functionSourceFile: /src/curl/lib/hmac.c
    functionUses: 0
    functionsReached:
    - struct HMAC_context*::hash::hupdate
    linkageType: ''
    returnType: void
    signature: "void Curl_HMAC_update(struct HMAC_context *ctxt,\n                      const
      unsigned char *data,\n                      unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct HMAC_params*::hfinal
      Src: /src/curl/lib/hmac.c:119,1
    - Dst: struct HMAC_params*::hupdate
      Src: /src/curl/lib/hmac.c:120,1
    - Dst: struct HMAC_params*::hfinal
      Src: /src/curl/lib/hmac.c:121,1
    - Dst: curlx_free
      Src: /src/curl/lib/hmac.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctxt
    - output
    argTypes:
    - struct HMAC_context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: Curl_HMAC_final
    functionSourceFile: /src/curl/lib/hmac.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - struct HMAC_params*::hupdate
    - struct HMAC_params*::hfinal
    linkageType: ''
    returnType: int
    signature: int Curl_HMAC_final(struct HMAC_context *ctxt, unsigned char *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_HMAC_init
      Src: /src/curl/lib/hmac.c:151,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/hmac.c:151,1
    - Dst: CURLMIN
      Src: /src/curl/lib/hmac.c:158,1
    - Dst: Curl_HMAC_update
      Src: /src/curl/lib/hmac.c:159,1
    - Dst: Curl_HMAC_final
      Src: /src/curl/lib/hmac.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - hashparams
    - key
    - keylen
    - data
    - datalen
    - output
    argTypes:
    - struct HMAC_params*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: Curl_hmacit
    functionSourceFile: /src/curl/lib/hmac.c
    functionUses: 4
    functionsReached:
    - Curl_HMAC_update
    - CURLMIN
    - Curl_HMAC_final
    - Curl_HMAC_init
    - curlx_uztoui
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_hmacit(const struct HMAC_params *hashparams,\n                     const
      unsigned char *key, const size_t keylen,\n                     const unsigned
      char *data, size_t datalen,\n                     unsigned char *output)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ares_library_init
      Src: /src/curl/lib/asyn-thrdd.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: Curl_async_global_init
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - ares_library_init
    linkageType: ''
    returnType: int
    signature: int Curl_async_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ares_library_cleanup
      Src: /src/curl/lib/asyn-thrdd.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: Curl_async_global_cleanup
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - ares_library_cleanup
    linkageType: ''
    returnType: void
    signature: void Curl_async_global_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: async_item_description
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_item_description(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: async_item_description
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_item_description(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/asyn-thrdd.c:132,1
    - Dst: curlx_free
      Src: /src/curl/lib/asyn-thrdd.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct async_thrdd_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: async_thrdd_item_destroy
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_freeaddrinfo
    linkageType: ''
    returnType: void
    signature: void async_thrdd_item_destroy(struct async_thrdd_item *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/asyn-thrdd.c:144,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/asyn-thrdd.c:147,1
    - Dst: memcpy
      Src: /src/curl/lib/asyn-thrdd.c:152,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/asyn-thrdd.c:160,1
    - Dst: Curl_resolv_query_str
      Src: /src/curl/lib/asyn-thrdd.c:163,1
    - Dst: getenv
      Src: /src/curl/lib/asyn-thrdd.c:169,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/asyn-thrdd.c:172,1
    - Dst: getenv
      Src: /src/curl/lib/asyn-thrdd.c:176,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/asyn-thrdd.c:179,1
    - Dst: Curl_rand_bytes
      Src: /src/curl/lib/asyn-thrdd.c:181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - data
    - resolv_id
    - dns_queries
    - hostname
    - port
    - transport
    argTypes:
    - struct Curl_easy*
    - uint32_t
    - uint8_t
    - char*
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 138
    functionDepth: 7
    functionLinenumber: 138
    functionLinenumberEnd: 189
    functionName: async_thrdd_item_create
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - memcpy
    - Curl_rand_bytes
    - getenv
    - curlx_str_number
    - curlx_calloc
    - Curl_resolv_query_str
    - strlen
    linkageType: ''
    returnType: struct async_thrdd_item
    signature: "struct async_thrdd_item *async_thrdd_item_create(\n  struct Curl_easy
      *data,\n  uint32_t resolv_id, uint8_t dns_queries,\n  const char *hostname,
      uint16_t port,\n  uint8_t transport)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_httpsrr_from_ares
      Src: /src/curl/lib/asyn-thrdd.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - user_data
    - status
    - timeouts
    - dnsrec
    argTypes:
    - void*
    - ares_status_t
    - size_t
    - ares_dns_record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 209
    functionName: async_thrdd_rr_done
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - Curl_httpsrr_from_ares
    linkageType: ''
    returnType: void
    signature: "void async_thrdd_rr_done(void *user_data, ares_status_t status,\n
      \                               size_t timeouts,\n                                const
      ares_dns_record_t *dnsrec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-thrdd.c:218,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/asyn-thrdd.c:220,1
    - Dst: ares_init_options
      Src: /src/curl/lib/asyn-thrdd.c:224,1
    - Dst: curlx_free
      Src: /src/curl/lib/asyn-thrdd.c:227,1
    - Dst: getenv
      Src: /src/curl/lib/asyn-thrdd.c:231,1
    - Dst: getenv
      Src: /src/curl/lib/asyn-thrdd.c:232,1
    - Dst: ares_set_servers_ports_csv
      Src: /src/curl/lib/asyn-thrdd.c:233,1
    - Dst: curlx_free
      Src: /src/curl/lib/asyn-thrdd.c:235,1
    - Dst: memset
      Src: /src/curl/lib/asyn-thrdd.c:241,1
    - Dst: ares_query_dnsrec
      Src: /src/curl/lib/asyn-thrdd.c:244,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-thrdd.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 211
    functionDepth: 7
    functionLinenumber: 211
    functionLinenumberEnd: 251
    functionName: async_rr_start
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - DEBUGASSERT
    - CURL_TRC_DNS
    - getenv
    - ares_query_dnsrec
    - curlx_free
    - ares_set_servers_ports_csv
    - memset
    - ares_init_options
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode async_rr_start(struct Curl_easy *data,\n                               struct
      Curl_resolv_async *async)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_thrdd_destroy
      Src: /src/curl/lib/asyn-thrdd.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: Curl_async_thrdd_shutdown
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - Curl_async_thrdd_destroy
    linkageType: ''
    returnType: void
    signature: "void Curl_async_thrdd_shutdown(struct Curl_easy *data,\n                               struct
      Curl_resolv_async *async)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - qitem
    - match_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: async_thrdd_match_item
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool async_thrdd_match_item(void *qitem, void *match_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_thrdq_clear
      Src: /src/curl/lib/asyn-thrdd.c:282,1
    - Dst: ares_destroy
      Src: /src/curl/lib/asyn-thrdd.c:287,1
    - Dst: Curl_httpsrr_cleanup
      Src: /src/curl/lib/asyn-thrdd.c:290,1
    - Dst: async_thrdd_item_destroy
      Src: /src/curl/lib/asyn-thrdd.c:292,1
    - Dst: async_thrdd_item_destroy
      Src: /src/curl/lib/asyn-thrdd.c:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 296
    functionName: Curl_async_thrdd_destroy
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - Curl_thrdq_clear
    - ares_destroy
    - Curl_httpsrr_cleanup
    - async_thrdd_item_destroy
    linkageType: ''
    returnType: void
    signature: "void Curl_async_thrdd_destroy(struct Curl_easy *data,\n                              struct
      Curl_resolv_async *async)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_get
      Src: /src/curl/lib/asyn-thrdd.c:305,1
    - Dst: Curl_async_thrdd_multi_process
      Src: /src/curl/lib/asyn-thrdd.c:313,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/asyn-thrdd.c:317,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/asyn-thrdd.c:317,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-thrdd.c:326,1
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/asyn-thrdd.c:327,1
    - Dst: Curl_async_take_result
      Src: /src/curl/lib/asyn-thrdd.c:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - data
    - resolv_id
    - pdns
    argTypes:
    - struct Curl_easy*
    - uint32_t
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 330
    functionName: Curl_async_await
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - Curl_async_take_result
    - curlx_wait_ms
    - Curl_async_get
    - Curl_async_thrdd_multi_process
    - CURL_TRC_DNS
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_await(struct Curl_easy *data, uint32_t resolv_id,\n
      \                         struct Curl_dns_entry **pdns)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/asyn-thrdd.c:345,1
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/asyn-thrdd.c:348,1
    - Dst: memset
      Src: /src/curl/lib/asyn-thrdd.c:353,1
    - Dst: Curl_socktype_for_transport
      Src: /src/curl/lib/asyn-thrdd.c:360,1
    - Dst: Curl_protocol_for_transport
      Src: /src/curl/lib/asyn-thrdd.c:361,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/asyn-thrdd.c:368,1
    - Dst: Curl_getaddrinfo_ex
      Src: /src/curl/lib/asyn-thrdd.c:373,1
    - Dst: Curl_addrinfo_set_port
      Src: /src/curl/lib/asyn-thrdd.c:380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 335
    functionDepth: 7
    functionLinenumber: 335
    functionLinenumberEnd: 382
    functionName: async_thrdd_item_process
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - Curl_getaddrinfo_ex
    - Curl_protocol_for_transport
    - curlx_wait_ms
    - Curl_addrinfo_set_port
    - memset
    - Curl_socktype_for_transport
    linkageType: ''
    returnType: void
    signature: void async_thrdd_item_process(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/asyn-thrdd.c:393,1
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/asyn-thrdd.c:396,1
    - Dst: Curl_ipv4_resolve_r
      Src: /src/curl/lib/asyn-thrdd.c:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 406
    functionName: async_thrdd_item_process
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - Curl_ipv4_resolve_r
    - curlx_wait_ms
    linkageType: ''
    returnType: void
    signature: void async_thrdd_item_process(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_wakeup
      Src: /src/curl/lib/asyn-thrdd.c:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - tqueue
    - ev
    - user_data
    argTypes:
    - struct curl_thrdq*
    - Curl_thrdq_event
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: async_thrdd_event
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - curl_multi_wakeup
    linkageType: ''
    returnType: void
    signature: "void async_thrdd_event(const struct curl_thrdq *tqueue,\n                              Curl_thrdq_event
      ev,\n                              void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_thrdd_item_destroy
      Src: /src/curl/lib/asyn-thrdd.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: async_thrdd_item_free
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - async_thrdd_item_destroy
    linkageType: ''
    returnType: void
    signature: void async_thrdd_item_free(void *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-thrdd.c:441,1
    - Dst: Curl_thrdq_create
      Src: /src/curl/lib/asyn-thrdd.c:442,1
    - Dst: getenv
      Src: /src/curl/lib/asyn-thrdd.c:450,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/asyn-thrdd.c:453,1
    - Dst: Curl_async_thrdd_multi_set_props
      Src: /src/curl/lib/asyn-thrdd.c:454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - multi
    - min_threads
    - max_threads
    - idle_time_ms
    argTypes:
    - struct Curl_multi*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 461
    functionName: Curl_async_thrdd_multi_init
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - getenv
    - curlx_str_number
    - Curl_thrdq_create
    - Curl_async_thrdd_multi_set_props
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_thrdd_multi_init(struct Curl_multi *multi,\n                                     uint32_t
      min_threads,\n                                     uint32_t max_threads,\n                                     uint32_t
      idle_time_ms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-thrdd.c:468,1
    - Dst: Curl_thrdq_trace
      Src: /src/curl/lib/asyn-thrdd.c:469,1
    - Dst: Curl_thrdq_destroy
      Src: /src/curl/lib/asyn-thrdd.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - multi
    - join
    argTypes:
    - struct Curl_multi*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 474
    functionName: Curl_async_thrdd_multi_destroy
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - Curl_thrdq_destroy
    - Curl_thrdq_trace
    - CURL_TRC_DNS
    linkageType: ''
    returnType: void
    signature: void Curl_async_thrdd_multi_destroy(struct Curl_multi *multi, bool
      join)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_DNS_is_verbose
      Src: /src/curl/lib/asyn-thrdd.c:487,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/asyn-thrdd.c:490,1
    - Dst: Curl_printable_address
      Src: /src/curl/lib/asyn-thrdd.c:493,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/asyn-thrdd.c:494,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-thrdd.c:496,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-thrdd.c:503,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/asyn-thrdd.c:506,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/asyn-thrdd.c:506,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/asyn-thrdd.c:508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - data
    - item
    argTypes:
    - struct Curl_easy*
    - struct async_thrdd_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 509
    functionName: async_thrdd_report_item
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addf
    - Curl_printable_address
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_ptr
    - CURL_TRC_DNS
    - CURL_TRC_DNS_is_verbose
    linkageType: ''
    returnType: void
    signature: "void async_thrdd_report_item(struct Curl_easy *data,\n                                    struct
      async_thrdd_item *item)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_thrdq_recv
      Src: /src/curl/lib/asyn-thrdd.c:520,1
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/asyn-thrdd.c:525,1
    - Dst: Curl_async_get
      Src: /src/curl/lib/asyn-thrdd.c:527,1
    - Dst: VERBOSE
      Src: /src/curl/lib/asyn-thrdd.c:540,1
    - Dst: async_thrdd_report_item
      Src: /src/curl/lib/asyn-thrdd.c:540,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-thrdd.c:545,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/asyn-thrdd.c:546,1
    - Dst: async_thrdd_item_free
      Src: /src/curl/lib/asyn-thrdd.c:548,1
    - Dst: Curl_thrdq_trace
      Src: /src/curl/lib/asyn-thrdd.c:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct Curl_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 553
    functionName: Curl_async_thrdd_multi_process
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 2
    functionsReached:
    - async_thrdd_item_free
    - DEBUGASSERT
    - Curl_multi_mark_dirty
    - async_thrdd_report_item
    - Curl_multi_get_easy
    - VERBOSE
    - Curl_async_get
    - Curl_thrdq_recv
    - Curl_thrdq_trace
    linkageType: ''
    returnType: void
    signature: void Curl_async_thrdd_multi_process(struct Curl_multi *multi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_thrdq_set_props
      Src: /src/curl/lib/asyn-thrdd.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - multi
    - min_threads
    - max_threads
    - idle_time_ms
    argTypes:
    - struct Curl_multi*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 562
    functionName: Curl_async_thrdd_multi_set_props
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 2
    functionsReached:
    - Curl_thrdq_set_props
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_thrdd_multi_set_props(struct Curl_multi *multi,\n
      \                                         uint32_t min_threads,\n                                          uint32_t
      max_threads,\n                                          uint32_t idle_time_ms)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: async_thrdd_item_create
      Src: /src/curl/lib/asyn-thrdd.c:571,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-thrdd.c:578,1
    - Dst: Curl_thrdq_send
      Src: /src/curl/lib/asyn-thrdd.c:579,1
    - Dst: async_item_description
      Src: /src/curl/lib/asyn-thrdd.c:580,1
    - Dst: async_thrdd_item_free
      Src: /src/curl/lib/asyn-thrdd.c:588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - data
    - async
    - dns_queries
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 564
    functionDepth: 8
    functionLinenumber: 564
    functionLinenumberEnd: 590
    functionName: async_thrdd_query
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached:
    - async_thrdd_item_free
    - Curl_thrdq_send
    - CURL_TRC_DNS
    - async_thrdd_item_create
    - async_item_description
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode async_thrdd_query(struct Curl_easy *data,\n                                  struct
      Curl_resolv_async *async,\n                                  uint8_t dns_queries)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-thrdd.c:602,1
    - Dst: async_rr_start
      Src: /src/curl/lib/asyn-thrdd.c:604,1
    - Dst: Curl_resolv_announce_start
      Src: /src/curl/lib/asyn-thrdd.c:611,1
    - Dst: async_thrdd_query
      Src: /src/curl/lib/asyn-thrdd.c:620,1
    - Dst: async_thrdd_query
      Src: /src/curl/lib/asyn-thrdd.c:626,1
    - Dst: Curl_thrdq_trace
      Src: /src/curl/lib/asyn-thrdd.c:632,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-thrdd.c:637,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 592
    functionDepth: 9
    functionLinenumber: 592
    functionLinenumberEnd: 640
    functionName: Curl_async_getaddrinfo
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - async_rr_start
    - async_thrdd_query
    - CURL_TRC_DNS
    - Curl_thrdq_trace
    - Curl_resolv_announce_start
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_getaddrinfo(struct Curl_easy *data,\n                                struct
      Curl_resolv_async *async)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_timeleft_ms
      Src: /src/curl/lib/asyn-thrdd.c:648,1
    - Dst: Curl_ares_pollset
      Src: /src/curl/lib/asyn-thrdd.c:651,1
    - Dst: Curl_ares_timeout_ms
      Src: /src/curl/lib/asyn-thrdd.c:654,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/asyn-thrdd.c:663,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/asyn-thrdd.c:663,1
    - Dst: CURLMIN
      Src: /src/curl/lib/asyn-thrdd.c:672,1
    - Dst: Curl_expire
      Src: /src/curl/lib/asyn-thrdd.c:674,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - data
    - async
    - ps
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 642
    functionDepth: 7
    functionLinenumber: 642
    functionLinenumberEnd: 677
    functionName: Curl_async_pollset
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - Curl_ares_timeout_ms
    - CURLMIN
    - Curl_expire
    - Curl_ares_pollset
    - Curl_async_timeleft_ms
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_pollset(struct Curl_easy *data,\n                            struct
      Curl_resolv_async *async,\n                            struct easy_pollset *ps)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-thrdd.c:692,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-thrdd.c:695,1
    - Dst: Curl_ares_perform
      Src: /src/curl/lib/asyn-thrdd.c:702,1
    - Dst: Curl_async_thrdd_multi_process
      Src: /src/curl/lib/asyn-thrdd.c:705,1
    - Dst: Curl_expire_done
      Src: /src/curl/lib/asyn-thrdd.c:711,1
    - Dst: Curl_dnscache_mk_entry2
      Src: /src/curl/lib/asyn-thrdd.c:719,1
    - Dst: Curl_httpsrr_dup_move
      Src: /src/curl/lib/asyn-thrdd.c:733,1
    - Dst: Curl_httpsrr_trace
      Src: /src/curl/lib/asyn-thrdd.c:739,1
    - Dst: Curl_dns_entry_set_https_rr
      Src: /src/curl/lib/asyn-thrdd.c:740,1
    - Dst: Curl_thrdq_trace
      Src: /src/curl/lib/asyn-thrdd.c:750,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/asyn-thrdd.c:754,1
    - Dst: Curl_async_thrdd_shutdown
      Src: /src/curl/lib/asyn-thrdd.c:755,1
    - Dst: Curl_async_failed
      Src: /src/curl/lib/asyn-thrdd.c:757,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-thrdd.c:761,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 3
    argNames:
    - data
    - async
    - pdns
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 684
    functionDepth: 6
    functionLinenumber: 684
    functionLinenumberEnd: 765
    functionName: Curl_async_take_result
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 2
    functionsReached:
    - Curl_httpsrr_trace
    - DEBUGASSERT
    - Curl_dns_entry_unlink
    - Curl_async_failed
    - Curl_async_thrdd_shutdown
    - Curl_httpsrr_dup_move
    - Curl_async_thrdd_multi_process
    - Curl_dnscache_mk_entry2
    - Curl_dns_entry_set_https_rr
    - CURL_TRC_DNS
    - Curl_expire_done
    - Curl_thrdq_trace
    - Curl_ares_perform
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_take_result(struct Curl_easy *data,\n                                struct
      Curl_resolv_async *async,\n                                struct Curl_dns_entry
      **pdns)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ai
    - ai_family
    - index
    argTypes:
    - struct Curl_addrinfo*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 780
    functionName: async_thrdd_get_ai
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *async_thrdd_get_ai(\n  const struct Curl_addrinfo
      *ai,\n  int ai_family, unsigned int index)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: async_thrdd_get_ai
      Src: /src/curl/lib/asyn-thrdd.c:793,1
    - Dst: async_thrdd_get_ai
      Src: /src/curl/lib/asyn-thrdd.c:797,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - data
    - async
    - ai_family
    - index
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 803
    functionName: Curl_async_get_ai
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - async_thrdd_get_ai
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *Curl_async_get_ai(struct Curl_easy *data,\n
      \                                             struct Curl_resolv_async *async,\n
      \                                             int ai_family,\n                                              unsigned
      int index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_knows_https
      Src: /src/curl/lib/asyn-thrdd.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 818
    functionName: Curl_async_get_https
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 1
    functionsReached:
    - Curl_async_knows_https
    linkageType: ''
    returnType: struct Curl_https_rrinfo
    signature: "struct Curl_https_rrinfo *Curl_async_get_https(\n  struct Curl_easy
      *data,\n  struct Curl_resolv_async *async)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 827
    functionName: Curl_async_knows_https
    functionSourceFile: /src/curl/lib/asyn-thrdd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_async_knows_https(struct Curl_easy *data,\n                            struct
      Curl_resolv_async *async)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreCopyProxies
      Src: /src/curl/lib/macos.c:44,1
    - Dst: CFRelease
      Src: /src/curl/lib/macos.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: Curl_macos_init
    functionSourceFile: /src/curl/lib/macos.c
    functionUses: 1
    functionsReached:
    - CFRelease
    - SCDynamicStoreCopyProxies
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_macos_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: STARTS_WITH_DRIVE_PREFIX
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STARTS_WITH_DRIVE_PREFIX(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: STARTS_WITH_URL_DRIVE_PREFIX
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STARTS_WITH_URL_DRIVE_PREFIX(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:70,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:71,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:72,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:73,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:74,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:75,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:76,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:77,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:78,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - u
    argTypes:
    - struct Curl_URL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: free_urlhandle
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void free_urlhandle(struct Curl_URL *u)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/curl/lib/urlapi.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: find_host_sep
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: char
    signature: char *find_host_sep(const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: cc2cu
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cc2cu(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:135,1
    - Dst: find_host_sep
      Src: /src/curl/lib/urlapi.c:139,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:143,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:150,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:152,1
    - Dst: Curl_hexbyte
      Src: /src/curl/lib/urlapi.c:156,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:157,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/urlapi.c:160,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/urlapi.c:160,1
    - Dst: ISLOWER
      Src: /src/curl/lib/urlapi.c:161,1
    - Dst: ISLOWER
      Src: /src/curl/lib/urlapi.c:161,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/urlapi.c:163,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/urlapi.c:164,1
    - Dst: Curl_hexbyte
      Src: /src/curl/lib/urlapi.c:166,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:167,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:172,1
    - Dst: cc2cu
      Src: /src/curl/lib/urlapi.c:179,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 5
    argNames:
    - o
    - url
    - len
    - relative
    - query
    argTypes:
    - struct dynbuf*
    - char*
    - size_t
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 181
    functionName: urlencode_str
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - ISLOWER
    - find_host_sep
    - curlx_dyn_addn
    - DEBUGASSERT
    - ISXDIGIT
    - cc2cu
    - Curl_hexbyte
    - curlx_hexval
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST urlencode_str(struct dynbuf *o, const char *url,\n                                 size_t
      len, bool relative,\n                                 unsigned int query)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:195,1
    - Dst: STARTS_WITH_DRIVE_PREFIX
      Src: /src/curl/lib/urlapi.c:200,1
    - Dst: ISALPHA
      Src: /src/curl/lib/urlapi.c:203,1
    - Dst: ISALNUM
      Src: /src/curl/lib/urlapi.c:206,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/urlapi.c:223,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 22
    argCount: 4
    argNames:
    - url
    - buf
    - buflen
    - guess_scheme
    argTypes:
    - char*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 229
    functionName: Curl_is_absolute_url
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 3
    functionsReached:
    - Curl_strntolower
    - STARTS_WITH_DRIVE_PREFIX
    - DEBUGASSERT
    - ISALNUM
    - ISALPHA
    linkageType: ''
    returnType: size_t
    signature: "size_t Curl_is_absolute_url(const char *url, char *buf, size_t buflen,\n
      \                           bool guess_scheme)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - url
    - urllen
    - allowspace
    argTypes:
    - char*
    - size_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: Curl_junkscan
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode Curl_junkscan(const char *url, size_t *urllen, bool allowspace)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:285,1
    - Dst: memchr
      Src: /src/curl/lib/urlapi.c:288,1
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/urlapi.c:299,1
    - Dst: Curl_parse_login_details
      Src: /src/curl/lib/urlapi.c:303,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:320,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:325,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:330,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:340,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:341,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:342,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:343,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:344,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:345,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 5
    argNames:
    - u
    - login
    - len
    - flags
    - hostname_offset
    argTypes:
    - struct Curl_URL*
    - char*
    - size_t
    - unsigned int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 348
    functionName: parse_hostname_login
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - Curl_get_scheme
    - memchr
    - curlx_free
    - Curl_parse_login_details
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST parse_hostname_login(struct Curl_URL *u,\n                                        const
      char *login,\n                                        size_t len,\n                                        unsigned
      int flags,\n                                        size_t *hostname_offset)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:357,1
    - Dst: strchr
      Src: /src/curl/lib/urlapi.c:362,1
    - Dst: strchr
      Src: /src/curl/lib/urlapi.c:375,1
    - Dst: curlx_dyn_setlen
      Src: /src/curl/lib/urlapi.c:388,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/urlapi.c:393,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:398,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/urlapi.c:399,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - u
    - host
    - has_scheme
    argTypes:
    - struct Curl_URL*
    - struct dynbuf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 353
    functionDepth: 7
    functionLinenumber: 353
    functionLinenumberEnd: 405
    functionName: parse_port
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 2
    functionsReached:
    - curl_maprintf
    - curlx_str_number
    - curlx_dyn_setlen
    - curlx_dyn_ptr
    - curlx_free
    - strchr
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST parse_port(struct Curl_URL *u, struct dynbuf *host,\n                              bool
      has_scheme)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:418,1
    - Dst: strspn
      Src: /src/curl/lib/urlapi.c:425,1
    - Dst: strncmp
      Src: /src/curl/lib/urlapi.c:435,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/urlapi.c:442,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/urlapi.c:457,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/urlapi.c:459,1
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:460,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - u
    - hostname
    - hlen
    argTypes:
    - struct Curl_URL*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 466
    functionName: ipv6_parse
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_inet_ntop
    - DEBUGASSERT
    - strlen
    - curlx_strdup
    - strspn
    - curlx_inet_pton
    - strncmp
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST ipv6_parse(struct Curl_URL *u, char *hostname,\n                              size_t
      hlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:472,1
    - Dst: ipv6_parse
      Src: /src/curl/lib/urlapi.c:477,1
    - Dst: strcspn
      Src: /src/curl/lib/urlapi.c:480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - u
    - hostname
    - hlen
    argTypes:
    - struct Curl_URL*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 493
    functionName: hostname_check
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - strcspn
    - ipv6_parse
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode hostname_check(struct Curl_URL *u, char *hostname,\n                                size_t
      hlen)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:517,1
    - Dst: Curl_raw_tolower
      Src: /src/curl/lib/urlapi.c:528,1
    - Dst: curlx_str_hex
      Src: /src/curl/lib/urlapi.c:530,1
    - Dst: curlx_str_octal
      Src: /src/curl/lib/urlapi.c:535,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/urlapi.c:538,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/urlapi.c:573,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/urlapi.c:575,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/urlapi.c:584,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/urlapi.c:585,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/urlapi.c:594,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/urlapi.c:595,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/urlapi.c:605,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/urlapi.c:606,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 65
    argCount: 1
    argNames:
    - host
    argTypes:
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 616
    functionName: ipv4_normalize
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 1
    functionsReached:
    - Curl_raw_tolower
    - curlx_str_number
    - curlx_str_octal
    - curlx_dyn_ptr
    - curlx_dyn_reset
    - curlx_dyn_addf
    - curlx_str_hex
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST ipv4_normalize(struct dynbuf *host)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:622,1
    - Dst: strchr
      Src: /src/curl/lib/urlapi.c:623,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/urlapi.c:631,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/urlapi.c:635,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:636,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:637,1
    - Dst: cc2cu
      Src: /src/curl/lib/urlapi.c:639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - host
    argTypes:
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 643
    functionName: urldecode_host
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - Curl_urldecode
    - curlx_dyn_addn
    - cc2cu
    - curlx_dyn_ptr
    - curlx_dyn_reset
    - curlx_free
    - strchr
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode urldecode_host(struct dynbuf *host)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: parse_hostname_login
      Src: /src/curl/lib/urlapi.c:658,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:662,1
    - Dst: cc2cu
      Src: /src/curl/lib/urlapi.c:664,1
    - Dst: parse_port
      Src: /src/curl/lib/urlapi.c:668,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/urlapi.c:672,1
    - Dst: urldecode_host
      Src: /src/curl/lib/urlapi.c:675,1
    - Dst: ipv4_normalize
      Src: /src/curl/lib/urlapi.c:679,1
    - Dst: ipv6_parse
      Src: /src/curl/lib/urlapi.c:683,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:683,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/urlapi.c:683,1
    - Dst: hostname_check
      Src: /src/curl/lib/urlapi.c:686,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:686,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/urlapi.c:686,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 6
    argNames:
    - u
    - auth
    - authlen
    - flags
    - host
    - has_scheme
    argTypes:
    - struct Curl_URL*
    - char*
    - size_t
    - unsigned int
    - struct dynbuf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 645
    functionDepth: 8
    functionLinenumber: 645
    functionLinenumberEnd: 697
    functionName: parse_authority
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - ipv6_parse
    - urldecode_host
    - curlx_dyn_addn
    - cc2cu
    - curlx_dyn_len
    - curlx_dyn_ptr
    - parse_hostname_login
    - parse_port
    - ipv4_normalize
    - hostname_check
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode parse_authority(struct Curl_URL *u,\n                                 const
      char *auth, size_t authlen,\n                                 unsigned int flags,\n
      \                                struct dynbuf *host,\n                                 bool
      has_scheme)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:705,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:706,1
    - Dst: parse_authority
      Src: /src/curl/lib/urlapi.c:708,1
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:708,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/urlapi.c:711,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:713,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - u
    - authority
    argTypes:
    - CURLU*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 700
    functionDepth: 9
    functionLinenumber: 700
    functionLinenumberEnd: 717
    functionName: Curl_url_set_authority
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - DEBUGASSERT
    - parse_authority
    - curlx_dyn_free
    - curlx_dyn_ptr
    - curlx_free
    - strlen
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode Curl_url_set_authority(CURLU *u, const char *authority)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - str
    - clen
    argTypes:
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 739
    functionName: is_dot
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_dot(const char **str, size_t *clen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 742
    functionName: ISSLASH
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISSLASH(x)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:773,1
    - Dst: is_dot
      Src: /src/curl/lib/urlapi.c:777,1
    - Dst: ISSLASH
      Src: /src/curl/lib/urlapi.c:778,1
    - Dst: is_dot
      Src: /src/curl/lib/urlapi.c:786,1
    - Dst: ISSLASH
      Src: /src/curl/lib/urlapi.c:790,1
    - Dst: ISSLASH
      Src: /src/curl/lib/urlapi.c:799,1
    - Dst: is_dot
      Src: /src/curl/lib/urlapi.c:805,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:807,1
    - Dst: ISSLASH
      Src: /src/curl/lib/urlapi.c:810,1
    - Dst: is_dot
      Src: /src/curl/lib/urlapi.c:820,1
    - Dst: ISSLASH
      Src: /src/curl/lib/urlapi.c:820,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/urlapi.c:822,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:824,1
    - Dst: memrchr
      Src: /src/curl/lib/urlapi.c:825,1
    - Dst: curlx_dyn_setlen
      Src: /src/curl/lib/urlapi.c:828,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:836,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:847,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/urlapi.c:853,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:854,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/urlapi.c:856,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 3
    argNames:
    - input
    - clen
    - outp
    argTypes:
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 862
    functionName: dedotdotify
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - memrchr
    - curlx_dyn_addn
    - is_dot
    - ISSLASH
    - curlx_dyn_len
    - curlx_strdup
    - curlx_dyn_setlen
    - curlx_dyn_ptr
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST dedotdotify(const char *input, size_t clen, char **outp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STARTS_WITH_URL_DRIVE_PREFIX
      Src: /src/curl/lib/urlapi.c:917,1
    - Dst: checkprefix
      Src: /src/curl/lib/urlapi.c:920,1
    - Dst: checkprefix
      Src: /src/curl/lib/urlapi.c:921,1
    - Dst: STARTS_WITH_URL_DRIVE_PREFIX
      Src: /src/curl/lib/urlapi.c:937,1
    - Dst: STARTS_WITH_URL_DRIVE_PREFIX
      Src: /src/curl/lib/urlapi.c:938,1
    - Dst: STARTS_WITH_URL_DRIVE_PREFIX
      Src: /src/curl/lib/urlapi.c:944,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/urlapi.c:950,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 5
    argNames:
    - url
    - urllen
    - u
    - pathp
    - pathlenp
    argTypes:
    - char*
    - size_t
    - CURLU*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 957
    functionName: parse_file
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_strdup
    - STARTS_WITH_URL_DRIVE_PREFIX
    - checkprefix
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST parse_file(const char *url, size_t urllen, CURLU *u,\n                              const
      char **pathp, size_t *pathlenp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/urlapi.c:975,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/urlapi.c:1001,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 6
    argNames:
    - url
    - u
    - schemebuf
    - schemelen
    - flags
    - hostpp
    argTypes:
    - char*
    - CURLU*
    - char*
    - size_t
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 959
    functionDepth: 3
    functionLinenumber: 959
    functionLinenumberEnd: 1006
    functionName: parse_scheme
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - Curl_get_scheme
    - curlx_strdup
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode parse_scheme(const char *url, CURLU *u, char *schemebuf,\n
      \                             size_t schemelen, unsigned int flags,\n                              const
      char **hostpp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1010,1
    - Dst: checkprefix
      Src: /src/curl/lib/urlapi.c:1013,1
    - Dst: checkprefix
      Src: /src/curl/lib/urlapi.c:1015,1
    - Dst: checkprefix
      Src: /src/curl/lib/urlapi.c:1017,1
    - Dst: checkprefix
      Src: /src/curl/lib/urlapi.c:1019,1
    - Dst: checkprefix
      Src: /src/curl/lib/urlapi.c:1021,1
    - Dst: checkprefix
      Src: /src/curl/lib/urlapi.c:1023,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/urlapi.c:1028,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - u
    - host
    argTypes:
    - CURLU*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1034
    functionName: guess_scheme
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - curlx_strdup
    - checkprefix
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode guess_scheme(CURLU *u, struct dynbuf *host)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:1045,1
    - Dst: urlencode_str
      Src: /src/curl/lib/urlapi.c:1046,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1049,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/urlapi.c:1052,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - u
    - fragment
    - fraglen
    - flags
    argTypes:
    - CURLU*
    - char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1058
    functionName: handle_fragment
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - curlx_dyn_init
    - urlencode_str
    - curlx_memdup0
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode handle_fragment(CURLU *u, const char *fragment,\n                                 size_t
      fraglen, unsigned int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:1068,1
    - Dst: urlencode_str
      Src: /src/curl/lib/urlapi.c:1070,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1073,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/urlapi.c:1076,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/urlapi.c:1083,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - u
    - query
    - qlen
    - flags
    argTypes:
    - CURLU*
    - char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1088
    functionName: handle_query
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - urlencode_str
    - curlx_strdup
    - curlx_dyn_ptr
    - curlx_memdup0
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode handle_query(CURLU *u, const char *query,\n                              size_t
      qlen, unsigned int flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:1097,1
    - Dst: urlencode_str
      Src: /src/curl/lib/urlapi.c:1098,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/urlapi.c:1101,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1102,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/urlapi.c:1108,1
    - Dst: dedotdotify
      Src: /src/curl/lib/urlapi.c:1120,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1124,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - u
    - path
    - pathlen
    - flags
    - is_file
    argTypes:
    - CURLU*
    - char*
    - size_t
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1130
    functionName: handle_path
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - urlencode_str
    - dedotdotify
    - curlx_dyn_len
    - curlx_dyn_ptr
    - curlx_free
    - curlx_memdup0
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode handle_path(CURLU *u, const char *path,\n                             size_t
      pathlen, unsigned int flags,\n                             bool is_file)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:1143,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:1145,1
    - Dst: Curl_junkscan
      Src: /src/curl/lib/urlapi.c:1147,1
    - Dst: Curl_is_absolute_url
      Src: /src/curl/lib/urlapi.c:1151,1
    - Dst: strcmp
      Src: /src/curl/lib/urlapi.c:1156,1
    - Dst: parse_file
      Src: /src/curl/lib/urlapi.c:1158,1
    - Dst: parse_scheme
      Src: /src/curl/lib/urlapi.c:1163,1
    - Dst: strcspn
      Src: /src/curl/lib/urlapi.c:1168,1
    - Dst: parse_authority
      Src: /src/curl/lib/urlapi.c:1174,1
    - Dst: guess_scheme
      Src: /src/curl/lib/urlapi.c:1177,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/urlapi.c:1181,1
    - Dst: strchr
      Src: /src/curl/lib/urlapi.c:1190,1
    - Dst: handle_fragment
      Src: /src/curl/lib/urlapi.c:1193,1
    - Dst: memchr
      Src: /src/curl/lib/urlapi.c:1199,1
    - Dst: handle_query
      Src: /src/curl/lib/urlapi.c:1202,1
    - Dst: handle_path
      Src: /src/curl/lib/urlapi.c:1208,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1210,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/urlapi.c:1214,1
    - Dst: free_urlhandle
      Src: /src/curl/lib/urlapi.c:1215,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - url
    - u
    - flags
    argTypes:
    - char*
    - CURLU*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1132
    functionDepth: 9
    functionLinenumber: 1132
    functionLinenumberEnd: 1217
    functionName: parseurl
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - DEBUGASSERT
    - curlx_dyn_add
    - parse_authority
    - curlx_dyn_ptr
    - strcmp
    - Curl_junkscan
    - handle_path
    - strcspn
    - parse_scheme
    - guess_scheme
    - curlx_dyn_free
    - handle_query
    - free_urlhandle
    - handle_fragment
    - memchr
    - parse_file
    - strchr
    - Curl_is_absolute_url
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode parseurl(const char *url, CURLU *u, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/urlapi.c:1227,1
    - Dst: parseurl
      Src: /src/curl/lib/urlapi.c:1228,1
    - Dst: free_urlhandle
      Src: /src/curl/lib/urlapi.c:1230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - url
    - u
    - flags
    argTypes:
    - char*
    - CURLU*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1222
    functionDepth: 10
    functionLinenumber: 1222
    functionLinenumberEnd: 1234
    functionName: parseurl_and_replace
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - free_urlhandle
    - parseurl
    - memset
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode parseurl_and_replace(const char *url, CURLU *u,\n                                      unsigned
      int flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:1253,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:1254,1
    - Dst: strchr
      Src: /src/curl/lib/urlapi.c:1269,1
    - Dst: strchr
      Src: /src/curl/lib/urlapi.c:1275,1
    - Dst: strchr
      Src: /src/curl/lib/urlapi.c:1282,1
    - Dst: strchr
      Src: /src/curl/lib/urlapi.c:1285,1
    - Dst: memrchr
      Src: /src/curl/lib/urlapi.c:1289,1
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:1290,1
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:1297,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:1300,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:1302,1
    - Dst: urlencode_str
      Src: /src/curl/lib/urlapi.c:1303,1
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:1303,1
    - Dst: parseurl_and_replace
      Src: /src/curl/lib/urlapi.c:1305,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1305,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/urlapi.c:1311,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 4
    argNames:
    - base
    - relurl
    - u
    - flags
    argTypes:
    - char*
    - char*
    - CURLU*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1239
    functionDepth: 11
    functionLinenumber: 1239
    functionLinenumberEnd: 1313
    functionName: redirect_url
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - memrchr
    - urlencode_str
    - parseurl_and_replace
    - DEBUGASSERT
    - curlx_dyn_addn
    - curlx_dyn_free
    - curlx_dyn_ptr
    - strchr
    - strlen
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode redirect_url(const char *base, const char *relurl,\n                              CURLU
      *u, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/urlapi.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1320
    functionName: curl_url
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 44
    functionsReached:
    - curlx_calloc
    linkageType: ''
    returnType: CURLU
    signature: CURLU *curl_url(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_urlhandle
      Src: /src/curl/lib/urlapi.c:1325,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - u
    argTypes:
    - CURLU*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1322
    functionDepth: 2
    functionLinenumber: 1322
    functionLinenumberEnd: 1328
    functionName: curl_url_cleanup
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 45
    functionsReached:
    - free_urlhandle
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void curl_url_cleanup(CURLU *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dest
    - ','
    - src
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1338
    functionName: DUP
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUP(dest, src, name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/urlapi.c:1341,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1343,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1344,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1345,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1346,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1347,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1348,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1349,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1350,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1351,1
    - Dst: DUP
      Src: /src/curl/lib/urlapi.c:1352,1
    - Dst: curl_url_cleanup
      Src: /src/curl/lib/urlapi.c:1359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - in
    argTypes:
    - CURLU*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1339
    functionDepth: 3
    functionLinenumber: 1339
    functionLinenumberEnd: 1361
    functionName: curl_url_dup
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 3
    functionsReached:
    - DUP
    - curlx_calloc
    - curl_url_cleanup
    linkageType: ''
    returnType: CURLU
    signature: CURLU *curl_url_dup(const CURLU *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1365
    functionName: host_decode
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: host_decode(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1366
    functionName: host_encode
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: host_encode(x, y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_idn_decode
      Src: /src/curl/lib/urlapi.c:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - host
    - allochost
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1374
    functionName: host_decode
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - Curl_idn_decode
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode host_decode(const char *host, char **allochost)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_idn_encode
      Src: /src/curl/lib/urlapi.c:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - host
    - allochost
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1376
    functionDepth: 5
    functionLinenumber: 1376
    functionLinenumberEnd: 1383
    functionName: host_encode
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - Curl_idn_encode
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode host_encode(const char *host, char **allochost)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:1391,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/urlapi.c:1396,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/urlapi.c:1414,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1416,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:1424,1
    - Dst: urlencode_str
      Src: /src/curl/lib/urlapi.c:1425,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1427,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1430,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/urlapi.c:1433,1
    - Dst: host_decode
      Src: /src/curl/lib/urlapi.c:1435,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1436,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/urlapi.c:1443,1
    - Dst: host_encode
      Src: /src/curl/lib/urlapi.c:1445,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1446,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 6
    argNames:
    - u
    - what
    - ptr
    - partp
    - plusdecode
    - flags
    argTypes:
    - CURLU*
    - CURLUPart
    - char*
    - char**
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1454
    functionName: urlget_format
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - urlencode_str
    - Curl_urldecode
    - Curl_is_ASCII_name
    - host_encode
    - curlx_dyn_ptr
    - curlx_free
    - curlx_memdup0
    - host_decode
    - strlen
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode urlget_format(const CURLU *u, CURLUPart what,\n                               const
      char *ptr, char **partp,\n                               bool plusdecode, unsigned
      int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/lib/urlapi.c:1460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - u
    - part
    - fragmentsep
    - querysep
    argTypes:
    - CURLU*
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1456
    functionDepth: 7
    functionLinenumber: 1456
    functionLinenumberEnd: 1468
    functionName: file_url
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode file_url(const CURLU *u, char **part,\n                          const
      char *fragmentsep,\n                          const char *querysep)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/urlapi.c:1481,1
    - Dst: file_url
      Src: /src/curl/lib/urlapi.c:1482,1
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/urlapi.c:1498,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/urlapi.c:1503,1
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:1519,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:1520,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/urlapi.c:1521,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1524,1
    - Dst: curl_easy_escape
      Src: /src/curl/lib/urlapi.c:1528,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/urlapi.c:1533,1
    - Dst: host_decode
      Src: /src/curl/lib/urlapi.c:1534,1
    - Dst: Curl_is_ASCII_name
      Src: /src/curl/lib/urlapi.c:1540,1
    - Dst: host_encode
      Src: /src/curl/lib/urlapi.c:1541,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/urlapi.c:1548,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/urlapi.c:1552,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1568,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 56
    argCount: 3
    argNames:
    - u
    - part
    - flags
    argTypes:
    - CURLU*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1470
    functionDepth: 8
    functionLinenumber: 1470
    functionLinenumberEnd: 1574
    functionName: urlget_url
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curl_msnprintf
    - curl_maprintf
    - Curl_is_ASCII_name
    - Curl_get_scheme
    - file_url
    - host_encode
    - curlx_dyn_ptr
    - curl_strequal
    - curlx_free
    - host_decode
    - curlx_dyn_addf
    - strlen
    - curl_easy_escape
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode urlget_url(const CURLU *u, char **part, unsigned int flags)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/urlapi.c:1624,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/urlapi.c:1626,1
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/urlapi.c:1633,1
    - Dst: urlget_url
      Src: /src/curl/lib/urlapi.c:1660,1
    - Dst: urlget_format
      Src: /src/curl/lib/urlapi.c:1666,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 76
    argCount: 4
    argNames:
    - u
    - what
    - part
    - flags
    argTypes:
    - CURLU*
    - CURLUPart
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1576
    functionDepth: 9
    functionLinenumber: 1576
    functionLinenumberEnd: 1669
    functionName: curl_url_get
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 41
    functionsReached:
    - urlget_format
    - Curl_get_scheme
    - urlget_url
    - curl_msnprintf
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode curl_url_get(const CURLU *u, CURLUPart what,\n                       char
      **part, unsigned int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:1674,1
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/urlapi.c:1680,1
    - Dst: ISALPHA
      Src: /src/curl/lib/urlapi.c:1685,1
    - Dst: ISALNUM
      Src: /src/curl/lib/urlapi.c:1689,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 3
    argNames:
    - u
    - scheme
    - flags
    argTypes:
    - CURLU*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1671
    functionDepth: 3
    functionLinenumber: 1671
    functionLinenumberEnd: 1700
    functionName: set_url_scheme
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - strlen
    - ISALNUM
    - ISALPHA
    - Curl_get_scheme
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode set_url_scheme(CURLU *u, const char *scheme,\n                                unsigned
      int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/curl/lib/urlapi.c:1706,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/urlapi.c:1709,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/urlapi.c:1712,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1715,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - u
    - provided_port
    argTypes:
    - CURLU*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1702
    functionDepth: 7
    functionLinenumber: 1702
    functionLinenumberEnd: 1719
    functionName: set_url_port
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curl_maprintf
    - curlx_str_number
    - ISDIGIT
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode set_url_port(CURLU *u, const char *provided_port)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_url_get
      Src: /src/curl/lib/urlapi.c:1736,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1741,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1743,1
    - Dst: Curl_is_absolute_url
      Src: /src/curl/lib/urlapi.c:1752,1
    - Dst: parseurl_and_replace
      Src: /src/curl/lib/urlapi.c:1754,1
    - Dst: curl_url_get
      Src: /src/curl/lib/urlapi.c:1759,1
    - Dst: parseurl_and_replace
      Src: /src/curl/lib/urlapi.c:1763,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:1765,1
    - Dst: redirect_url
      Src: /src/curl/lib/urlapi.c:1767,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1768,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - u
    - url
    - part_size
    - flags
    argTypes:
    - CURLU*
    - char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1721
    functionDepth: 12
    functionLinenumber: 1721
    functionLinenumberEnd: 1770
    functionName: set_url
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - redirect_url
    - DEBUGASSERT
    - curlx_free
    - curl_url_get
    - Curl_is_absolute_url
    - parseurl_and_replace
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode set_url(CURLU *u, const char *url, size_t part_size,\n                         unsigned
      int flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: free_urlhandle
      Src: /src/curl/lib/urlapi.c:1776,1
    - Dst: memset
      Src: /src/curl/lib/urlapi.c:1777,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1780,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1784,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1787,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1790,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1793,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1796,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1800,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1803,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1806,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1810,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 2
    argNames:
    - u
    - what
    argTypes:
    - CURLU*
    - CURLUPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1772
    functionDepth: 2
    functionLinenumber: 1772
    functionLinenumberEnd: 1817
    functionName: urlset_clear
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached:
    - free_urlhandle
    - curlx_safefree
    - memset
    linkageType: ''
    returnType: CURLUcode
    signature: CURLUcode urlset_clear(CURLU *u, CURLUPart what)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1843
    functionName: allowed_in_path
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allowed_in_path(unsigned char x)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: urlset_clear
      Src: /src/curl/lib/urlapi.c:1861,1
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:1863,1
    - Dst: set_url_scheme
      Src: /src/curl/lib/urlapi.c:1870,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/urlapi.c:1888,1
    - Dst: set_url_port
      Src: /src/curl/lib/urlapi.c:1894,1
    - Dst: set_url
      Src: /src/curl/lib/urlapi.c:1912,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/urlapi.c:1916,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:1920,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:1923,1
    - Dst: cc2cu
      Src: /src/curl/lib/urlapi.c:1925,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:1933,1
    - Dst: ISUNRESERVED
      Src: /src/curl/lib/urlapi.c:1937,1
    - Dst: allowed_in_path
      Src: /src/curl/lib/urlapi.c:1938,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:1943,1
    - Dst: cc2cu
      Src: /src/curl/lib/urlapi.c:1945,1
    - Dst: Curl_hexbyte
      Src: /src/curl/lib/urlapi.c:1949,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:1950,1
    - Dst: cc2cu
      Src: /src/curl/lib/urlapi.c:1952,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/urlapi.c:1958,1
    - Dst: cc2cu
      Src: /src/curl/lib/urlapi.c:1960,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1961,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/urlapi.c:1964,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/urlapi.c:1964,1
    - Dst: ISLOWER
      Src: /src/curl/lib/urlapi.c:1965,1
    - Dst: ISLOWER
      Src: /src/curl/lib/urlapi.c:1965,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/urlapi.c:1966,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/urlapi.c:1967,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1974,1
    - Dst: strlen
      Src: /src/curl/lib/urlapi.c:1980,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/urlapi.c:1984,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:1986,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/urlapi.c:1990,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/urlapi.c:1993,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/urlapi.c:1995,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:1996,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/urlapi.c:1997,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/urlapi.c:2000,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/urlapi.c:2005,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/urlapi.c:2019,1
    - Dst: hostname_check
      Src: /src/curl/lib/urlapi.c:2020,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:2022,1
    - Dst: hostname_check
      Src: /src/curl/lib/urlapi.c:2024,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/urlapi.c:2024,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/urlapi.c:2027,1
    - Dst: curlx_free
      Src: /src/curl/lib/urlapi.c:2033,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/urlapi.c:2034,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 141
    argCount: 4
    argNames:
    - u
    - what
    - part
    - flags
    argTypes:
    - CURLU*
    - CURLUPart
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 1845
    functionDepth: 8
    functionLinenumber: 1845
    functionLinenumberEnd: 2037
    functionName: curl_url_set
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 47
    functionsReached:
    - curlx_safefree
    - curlx_dyn_init
    - DEBUGASSERT
    - curlx_dyn_add
    - Curl_raw_toupper
    - CURL_UNCONST
    - curlx_dyn_ptr
    - Curl_hexbyte
    - ISLOWER
    - curlx_dyn_addn
    - Curl_urldecode
    - curlx_dyn_free
    - ISUNRESERVED
    - urlset_clear
    - hostname_check
    - ISXDIGIT
    - cc2cu
    - curlx_dyn_len
    - curlx_free
    - allowed_in_path
    - set_url_port
    - set_url
    - strlen
    - set_url_scheme
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode curl_url_set(CURLU *u, CURLUPart what,\n                       const
      char *part, unsigned int flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/urlapi.c:2046,1
    - Dst: curl_strequal
      Src: /src/curl/lib/urlapi.c:2049,1
    - Dst: curl_strequal
      Src: /src/curl/lib/urlapi.c:2051,1
    - Dst: curl_strequal
      Src: /src/curl/lib/urlapi.c:2054,1
    - Dst: Curl_get_scheme
      Src: /src/curl/lib/urlapi.c:2060,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 2
    argNames:
    - base
    - href
    argTypes:
    - CURLU*
    - CURLU*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2039
    functionDepth: 3
    functionLinenumber: 2039
    functionLinenumberEnd: 2073
    functionName: Curl_url_same_origin
    functionSourceFile: /src/curl/lib/urlapi.c
    functionUses: 2
    functionsReached:
    - curl_strequal
    - Curl_get_scheme
    linkageType: ''
    returnType: bool
    signature: bool Curl_url_same_origin(CURLU *base, CURLU *href)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: Curl_ws_request
    functionSourceFile: /src/curl/lib/ws.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ws_request(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Curl_ws_free
    functionSourceFile: /src/curl/lib/ws.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ws_free(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: CPOOL_IS_LOCKED
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPOOL_IS_LOCKED(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: CPOOL_LOCK
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPOOL_LOCK(c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: CPOOL_UNLOCK
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPOOL_UNLOCK(c, d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/conncache.c:72,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/conncache.c:74,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/conncache.c:77,1
    - Dst: memcpy
      Src: /src/curl/lib/conncache.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dest
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: cpool_bundle_create
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_llist_init
    - strlen
    - curlx_calloc
    - memcpy
    linkageType: ''
    returnType: struct cpool_bundle
    signature: struct cpool_bundle *cpool_bundle_create(const char *dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:85,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/conncache.c:85,1
    - Dst: curlx_free
      Src: /src/curl/lib/conncache.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bundle
    argTypes:
    - struct cpool_bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: cpool_bundle_destroy
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - curlx_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void cpool_bundle_destroy(struct cpool_bundle *bundle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:93,1
    - Dst: Curl_node_llist
      Src: /src/curl/lib/conncache.c:93,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/conncache.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bundle
    - conn
    argTypes:
    - struct cpool_bundle*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: cpool_bundle_add
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_llist_append
    - Curl_node_llist
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void cpool_bundle_add(struct cpool_bundle *bundle,\n                             struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:103,1
    - Dst: Curl_node_llist
      Src: /src/curl/lib/conncache.c:103,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/conncache.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bundle
    - conn
    argTypes:
    - struct cpool_bundle*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: cpool_bundle_remove
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_node_remove
    - Curl_node_llist
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void cpool_bundle_remove(struct cpool_bundle *bundle,\n                                struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpool_bundle_destroy
      Src: /src/curl/lib/conncache.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - freethis
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: cpool_bundle_free_entry
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - cpool_bundle_destroy
    linkageType: ''
    returnType: void
    signature: void cpool_bundle_free_entry(void *freethis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_init
      Src: /src/curl/lib/conncache.c:118,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - cpool
    - idata
    - share
    - size
    argTypes:
    - struct cpool*
    - struct Curl_easy*
    - struct Curl_share*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: Curl_cpool_init
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 2
    functionsReached:
    - Curl_hash_init
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_cpool_init(struct cpool *cpool,\n                     struct
      Curl_easy *idata,\n                     struct Curl_share *share,\n                     size_t
      size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_start_iterate
      Src: /src/curl/lib/conncache.c:136,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/conncache.c:137,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/conncache.c:138,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/conncache.c:140,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/conncache.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cpool
    argTypes:
    - struct cpool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 145
    functionName: cpool_get_first
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_hash_next_element
    - Curl_llist_head
    - Curl_node_elem
    - Curl_hash_start_iterate
    linkageType: ''
    returnType: struct connectdata
    signature: struct connectdata *cpool_get_first(struct cpool *cpool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/conncache.c:150,1
    - Dst: strlen
      Src: /src/curl/lib/conncache.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpool
    - conn
    argTypes:
    - struct cpool*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: cpool_find_bundle
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_hash_pick
    linkageType: ''
    returnType: struct cpool_bundle
    signature: "struct cpool_bundle *cpool_find_bundle(struct cpool *cpool,\n                                              struct
      connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_delete
      Src: /src/curl/lib/conncache.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cpool
    - bundle
    argTypes:
    - struct cpool*
    - struct cpool_bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: cpool_remove_bundle
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_hash_delete
    linkageType: ''
    returnType: void
    signature: "void cpool_remove_bundle(struct cpool *cpool,\n                                struct
      cpool_bundle *bundle)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_node_llist
      Src: /src/curl/lib/conncache.c:165,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:166,1
    - Dst: cpool_find_bundle
      Src: /src/curl/lib/conncache.c:169,1
    - Dst: cpool_bundle_remove
      Src: /src/curl/lib/conncache.c:171,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/conncache.c:172,1
    - Dst: cpool_remove_bundle
      Src: /src/curl/lib/conncache.c:173,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - cpool
    - conn
    argTypes:
    - struct cpool*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: cpool_remove_conn
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - cpool_bundle_remove
    - DEBUGASSERT
    - cpool_remove_bundle
    - cpool_find_bundle
    - Curl_node_llist
    linkageType: ''
    returnType: void
    signature: "void cpool_remove_conn(struct cpool *cpool,\n                              struct
      connectdata *conn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:191,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:192,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:193,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:194,1
    - Dst: CONN_INUSE
      Src: /src/curl/lib/conncache.c:200,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/conncache.c:201,1
    - Dst: Curl_cshutdn_run_once
      Src: /src/curl/lib/conncache.c:222,1
    - Dst: Curl_cshutdn_terminate
      Src: /src/curl/lib/conncache.c:226,1
    - Dst: Curl_cshutdn_add
      Src: /src/curl/lib/conncache.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - cpool
    - data
    - conn
    - aborted
    argTypes:
    - struct cpool*
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 184
    functionDepth: 9
    functionLinenumber: 184
    functionLinenumberEnd: 229
    functionName: cpool_discard_conn
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_cshutdn_add
    - DEBUGASSERT
    - Curl_cshutdn_run_once
    - CONN_INUSE
    - Curl_cshutdn_terminate
    - CURL_TRC_M
    linkageType: ''
    returnType: void
    signature: "void cpool_discard_conn(struct cpool *cpool,\n                               struct
      Curl_easy *data,\n                               struct connectdata *conn,\n
      \                              bool aborted)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/conncache.c:237,1
    - Dst: sigpipe_init
      Src: /src/curl/lib/conncache.c:240,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:241,1
    - Dst: cpool_get_first
      Src: /src/curl/lib/conncache.c:242,1
    - Dst: sigpipe_apply
      Src: /src/curl/lib/conncache.c:244,1
    - Dst: cpool_remove_conn
      Src: /src/curl/lib/conncache.c:246,1
    - Dst: cpool_discard_conn
      Src: /src/curl/lib/conncache.c:247,1
    - Dst: cpool_get_first
      Src: /src/curl/lib/conncache.c:248,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:250,1
    - Dst: sigpipe_restore
      Src: /src/curl/lib/conncache.c:251,1
    - Dst: Curl_hash_destroy
      Src: /src/curl/lib/conncache.c:252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cpool
    argTypes:
    - struct cpool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 231
    functionDepth: 10
    functionLinenumber: 231
    functionLinenumberEnd: 254
    functionName: Curl_cpool_destroy
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 3
    functionsReached:
    - Curl_hash_destroy
    - sigpipe_init
    - cpool_get_first
    - cpool_remove_conn
    - CPOOL_LOCK
    - sigpipe_restore
    - CPOOL_UNLOCK
    - cpool_discard_conn
    - CURL_TRC_M
    - sigpipe_apply
    linkageType: ''
    returnType: void
    signature: void Curl_cpool_destroy(struct cpool *cpool)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CURL_SHARE_KEEP_CONNECT
      Src: /src/curl/lib/conncache.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 267
    functionName: cpool_get_instance
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - CURL_SHARE_KEEP_CONNECT
    linkageType: ''
    returnType: struct cpool
    signature: struct cpool *cpool_get_instance(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:271,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:273,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:275,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 289
    functionName: Curl_cpool_xfer_init
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - CPOOL_LOCK
    - CPOOL_UNLOCK
    - DEBUGASSERT
    - cpool_get_instance
    linkageType: ''
    returnType: void
    signature: void Curl_cpool_xfer_init(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpool_bundle_create
      Src: /src/curl/lib/conncache.c:296,1
    - Dst: Curl_hash_add
      Src: /src/curl/lib/conncache.c:300,1
    - Dst: cpool_bundle_destroy
      Src: /src/curl/lib/conncache.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cpool
    - conn
    argTypes:
    - struct cpool*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 306
    functionName: cpool_add_bundle
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - cpool_bundle_create
    - cpool_bundle_destroy
    - Curl_hash_add
    linkageType: ''
    returnType: struct cpool_bundle
    signature: "struct cpool_bundle *cpool_add_bundle(struct cpool *cpool,\n                                             struct
      connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/conncache.c:318,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/conncache.c:320,1
    - Dst: CONN_INUSE
      Src: /src/curl/lib/conncache.c:322,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/conncache.c:324,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/conncache.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - bundle
    - pnow
    argTypes:
    - struct cpool_bundle*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 334
    functionName: cpool_bundle_get_oldest_idle
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_node_elem
    - Curl_node_next
    - CONN_INUSE
    - Curl_llist_head
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: struct connectdata
    signature: "struct connectdata *cpool_bundle_get_oldest_idle(\n  struct cpool_bundle
      *bundle,\n  const struct curltime *pnow)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_start_iterate
      Src: /src/curl/lib/conncache.c:347,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/conncache.c:349,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/conncache.c:350,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/conncache.c:354,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/conncache.c:355,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/conncache.c:356,1
    - Dst: CONN_INUSE
      Src: /src/curl/lib/conncache.c:357,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/conncache.c:360,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - cpool
    - pnow
    argTypes:
    - struct cpool*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 368
    functionName: cpool_get_oldest_idle
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_hash_next_element
    - Curl_node_elem
    - Curl_node_next
    - Curl_hash_start_iterate
    - CONN_INUSE
    - Curl_llist_head
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: struct connectdata
    signature: "struct connectdata *cpool_get_oldest_idle(struct cpool *cpool,\n                                                 const
      struct curltime *pnow)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:373,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:391,1
    - Dst: cpool_find_bundle
      Src: /src/curl/lib/conncache.c:395,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/conncache.c:396,1
    - Dst: Curl_cshutdn_dest_count
      Src: /src/curl/lib/conncache.c:397,1
    - Dst: Curl_cshutdn_close_oldest
      Src: /src/curl/lib/conncache.c:401,1
    - Dst: cpool_bundle_get_oldest_idle
      Src: /src/curl/lib/conncache.c:410,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/conncache.c:411,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/conncache.c:415,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/conncache.c:418,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/conncache.c:419,1
    - Dst: cpool_find_bundle
      Src: /src/curl/lib/conncache.c:422,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/conncache.c:423,1
    - Dst: Curl_cshutdn_dest_count
      Src: /src/curl/lib/conncache.c:425,1
    - Dst: Curl_cshutdn_count
      Src: /src/curl/lib/conncache.c:434,1
    - Dst: Curl_cshutdn_close_oldest
      Src: /src/curl/lib/conncache.c:438,1
    - Dst: cpool_get_oldest_idle
      Src: /src/curl/lib/conncache.c:443,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/conncache.c:443,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/conncache.c:447,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/conncache.c:451,1
    - Dst: Curl_cshutdn_count
      Src: /src/curl/lib/conncache.c:453,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:462,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 370
    functionDepth: 9
    functionLinenumber: 370
    functionLinenumberEnd: 464
    functionName: Curl_cpool_check_limits
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - Curl_llist_count
    - Curl_cshutdn_close_oldest
    - Curl_pgrs_now
    - cpool_get_oldest_idle
    - CPOOL_UNLOCK
    - Curl_cshutdn_dest_count
    - CPOOL_LOCK
    - cpool_bundle_get_oldest_idle
    - Curl_cshutdn_count
    - cpool_find_bundle
    - Curl_conn_terminate
    - CURL_TRC_M
    - cpool_get_instance
    linkageType: ''
    returnType: int
    signature: "int Curl_cpool_check_limits(struct Curl_easy *data,\n                            struct
      connectdata *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:471,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:472,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:474,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:478,1
    - Dst: cpool_find_bundle
      Src: /src/curl/lib/conncache.c:479,1
    - Dst: cpool_add_bundle
      Src: /src/curl/lib/conncache.c:481,1
    - Dst: cpool_bundle_add
      Src: /src/curl/lib/conncache.c:488,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/conncache.c:491,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 466
    functionDepth: 5
    functionLinenumber: 466
    functionLinenumberEnd: 498
    functionName: Curl_cpool_add
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - cpool_add_bundle
    - DEBUGASSERT
    - cpool_bundle_add
    - CPOOL_LOCK
    - CPOOL_UNLOCK
    - cpool_find_bundle
    - CURL_TRC_M
    - cpool_get_instance
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cpool_add(struct Curl_easy *data,\n                        struct
      connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_start_iterate
      Src: /src/curl/lib/conncache.c:524,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/conncache.c:526,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/conncache.c:530,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/conncache.c:532,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/conncache.c:536,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/conncache.c:537,1
    - Dst: func
      Src: /src/curl/lib/conncache.c:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - data
    - cpool
    - param
    argTypes:
    - struct Curl_easy*
    - struct cpool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 545
    functionName: cpool_foreach
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_hash_next_element
    - Curl_node_elem
    - Curl_node_next
    - Curl_hash_start_iterate
    - Curl_llist_head
    - func
    linkageType: ''
    returnType: bool
    signature: "bool cpool_foreach(struct Curl_easy *data,\n                          struct
      cpool *cpool,\n                          void *param,\n                          int
      (*func)(struct Curl_easy *data,\n                                      struct
      connectdata *conn, void *param))"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:558,1
    - Dst: Curl_multi_xfers_running
      Src: /src/curl/lib/conncache.c:565,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/conncache.c:572,1
    - Dst: CPOOL_IS_LOCKED
      Src: /src/curl/lib/conncache.c:575,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:577,1
    - Dst: infof
      Src: /src/curl/lib/conncache.c:579,1
    - Dst: cpool_get_oldest_idle
      Src: /src/curl/lib/conncache.c:582,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/conncache.c:582,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/conncache.c:585,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:589,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 593
    functionName: Curl_cpool_conn_now_idle
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - cpool_get_oldest_idle
    - Curl_conn_terminate
    - infof
    - CPOOL_LOCK
    - Curl_multi_xfers_running
    - CPOOL_UNLOCK
    - CPOOL_IS_LOCKED
    - cpool_get_instance
    linkageType: ''
    returnType: bool
    signature: "bool Curl_cpool_conn_now_idle(struct Curl_easy *data,\n                              struct
      connectdata *conn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:601,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:605,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:606,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:610,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/conncache.c:611,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/conncache.c:612,1
    - Dst: strlen
      Src: /src/curl/lib/conncache.c:613,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/conncache.c:615,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/conncache.c:617,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/conncache.c:619,1
    - Dst: conn_cb
      Src: /src/curl/lib/conncache.c:621,1
    - Dst: done_cb
      Src: /src/curl/lib/conncache.c:629,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:631,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - data
    - destination
    - conn_cb
    - done_cb
    - userdata
    argTypes:
    - struct Curl_easy*
    - char*
    - Curl_cpool_conn_match_cb*
    - Curl_cpool_done_match_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 633
    functionName: Curl_cpool_find
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - Curl_hash_pick
    - DEBUGASSERT
    - Curl_node_elem
    - CURL_UNCONST
    - Curl_node_next
    - CPOOL_LOCK
    - Curl_llist_head
    - conn_cb
    - done_cb
    - CPOOL_UNLOCK
    - strlen
    - cpool_get_instance
    linkageType: ''
    returnType: bool
    signature: "bool Curl_cpool_find(struct Curl_easy *data,\n                     const
      char *destination,\n                     Curl_cpool_conn_match_cb *conn_cb,\n
      \                    Curl_cpool_done_match_cb *done_cb,\n                     void
      *userdata)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:639,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:642,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:643,1
    - Dst: CONN_INUSE
      Src: /src/curl/lib/conncache.c:649,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:650,1
    - Dst: DEBUGF
      Src: /src/curl/lib/conncache.c:651,1
    - Dst: infof
      Src: /src/curl/lib/conncache.c:651,1
    - Dst: CPOOL_IS_LOCKED
      Src: /src/curl/lib/conncache.c:657,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:659,1
    - Dst: cpool_remove_conn
      Src: /src/curl/lib/conncache.c:662,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/conncache.c:663,1
    - Dst: infof
      Src: /src/curl/lib/conncache.c:673,1
    - Dst: cpool_discard_conn
      Src: /src/curl/lib/conncache.c:675,1
    - Dst: infof
      Src: /src/curl/lib/conncache.c:679,1
    - Dst: Curl_cshutdn_terminate
      Src: /src/curl/lib/conncache.c:680,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:684,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - data
    - conn
    - aborted
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 635
    functionDepth: 10
    functionLinenumber: 635
    functionLinenumberEnd: 685
    functionName: Curl_conn_terminate
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 8
    functionsReached:
    - DEBUGASSERT
    - cpool_remove_conn
    - cpool_discard_conn
    - CONN_INUSE
    - infof
    - CPOOL_LOCK
    - CPOOL_UNLOCK
    - Curl_cshutdn_terminate
    - DEBUGF
    - CPOOL_IS_LOCKED
    - cpool_get_instance
    linkageType: ''
    returnType: void
    signature: "void Curl_conn_terminate(struct Curl_easy *data,\n                         struct
      connectdata *conn,\n                         bool aborted)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONN_INUSE
      Src: /src/curl/lib/conncache.c:696,1
    - Dst: Curl_conn_seems_dead
      Src: /src/curl/lib/conncache.c:700,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/conncache.c:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - data
    - conn
    - param
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 692
    functionDepth: 11
    functionLinenumber: 692
    functionLinenumberEnd: 709
    functionName: cpool_reap_dead_cb
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_conn_seems_dead
    - Curl_conn_terminate
    - CONN_INUSE
    linkageType: ''
    returnType: int
    signature: "int cpool_reap_dead_cb(struct Curl_easy *data,\n                              struct
      connectdata *conn, void *param)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:720,1
    - Dst: memset
      Src: /src/curl/lib/conncache.c:727,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:728,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/conncache.c:729,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/conncache.c:729,1
    - Dst: cpool_foreach
      Src: /src/curl/lib/conncache.c:732,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/conncache.c:734,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 737
    functionName: Curl_cpool_prune_dead
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - CPOOL_LOCK
    - cpool_foreach
    - memset
    - CPOOL_UNLOCK
    - curlx_ptimediff_ms
    - cpool_get_instance
    linkageType: ''
    returnType: void
    signature: void Curl_cpool_prune_dead(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_upkeep
      Src: /src/curl/lib/conncache.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - conn
    - param
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 746
    functionName: conn_upkeep
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - Curl_conn_upkeep
    linkageType: ''
    returnType: int
    signature: "int conn_upkeep(struct Curl_easy *data,\n                       struct
      connectdata *conn,\n                       void *param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:750,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:755,1
    - Dst: cpool_foreach
      Src: /src/curl/lib/conncache.c:756,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 759
    functionName: Curl_cpool_upkeep
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - CPOOL_LOCK
    - CPOOL_UNLOCK
    - cpool_foreach
    - cpool_get_instance
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_cpool_upkeep(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - conn
    - param
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 776
    functionName: cpool_find_conn
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cpool_find_conn(struct Curl_easy *data,\n                           struct
      connectdata *conn, void *param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:781,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:788,1
    - Dst: cpool_foreach
      Src: /src/curl/lib/conncache.c:789,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - conn_id
    argTypes:
    - struct Curl_easy*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 792
    functionName: Curl_cpool_get_conn
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - CPOOL_LOCK
    - CPOOL_UNLOCK
    - cpool_foreach
    - cpool_get_instance
    linkageType: ''
    returnType: struct connectdata
    signature: "struct connectdata *Curl_cpool_get_conn(struct Curl_easy *data,\n
      \                                       curl_off_t conn_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct cpool_do_conn_ctx*::cb
      Src: /src/curl/lib/conncache.c:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - data
    - conn
    - param
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 810
    functionName: cpool_do_conn
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - struct cpool_do_conn_ctx*::cb
    linkageType: ''
    returnType: int
    signature: "int cpool_do_conn(struct Curl_easy *data,\n                         struct
      connectdata *conn, void *param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:815,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:823,1
    - Dst: cpool_foreach
      Src: /src/curl/lib/conncache.c:824,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - data
    - conn_id
    - cb
    - cbdata
    argTypes:
    - struct Curl_easy*
    - curl_off_t
    - Curl_cpool_conn_do_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 812
    functionDepth: 3
    functionLinenumber: 812
    functionLinenumberEnd: 826
    functionName: Curl_cpool_do_by_id
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - CPOOL_LOCK
    - CPOOL_UNLOCK
    - cpool_foreach
    - cpool_get_instance
    linkageType: ''
    returnType: void
    signature: "void Curl_cpool_do_by_id(struct Curl_easy *data, curl_off_t conn_id,\n
      \                        Curl_cpool_conn_do_cb *cb, void *cbdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:832,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:834,1
    - Dst: cb
      Src: /src/curl/lib/conncache.c:835,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:836,1
    - Dst: cb
      Src: /src/curl/lib/conncache.c:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - data
    - conn
    - cb
    - cbdata
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - Curl_cpool_conn_do_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 840
    functionName: Curl_cpool_do_locked
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - CPOOL_LOCK
    - CPOOL_UNLOCK
    - cb
    - cpool_get_instance
    linkageType: ''
    returnType: void
    signature: "void Curl_cpool_do_locked(struct Curl_easy *data,\n                          struct
      connectdata *conn,\n                          Curl_cpool_conn_do_cb *cb, void
      *cbdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - conn
    - param
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 849
    functionName: cpool_mark_stale
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cpool_mark_stale(struct Curl_easy *data,\n                            struct
      connectdata *conn, void *param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONN_INUSE
      Src: /src/curl/lib/conncache.c:855,1
    - Dst: Curl_conn_terminate
      Src: /src/curl/lib/conncache.c:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - conn
    - param
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 851
    functionDepth: 11
    functionLinenumber: 851
    functionLinenumberEnd: 860
    functionName: cpool_reap_no_reuse
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - Curl_conn_terminate
    - CONN_INUSE
    linkageType: ''
    returnType: int
    signature: "int cpool_reap_no_reuse(struct Curl_easy *data,\n                               struct
      connectdata *conn, void *param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_instance
      Src: /src/curl/lib/conncache.c:864,1
    - Dst: CPOOL_LOCK
      Src: /src/curl/lib/conncache.c:867,1
    - Dst: cpool_foreach
      Src: /src/curl/lib/conncache.c:868,1
    - Dst: cpool_foreach
      Src: /src/curl/lib/conncache.c:869,1
    - Dst: CPOOL_UNLOCK
      Src: /src/curl/lib/conncache.c:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 873
    functionName: Curl_cpool_nw_changed
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 1
    functionsReached:
    - CPOOL_LOCK
    - CPOOL_UNLOCK
    - cpool_foreach
    - cpool_get_instance
    linkageType: ''
    returnType: void
    signature: void Curl_cpool_nw_changed(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/conncache.c:886,1
    - Dst: Curl_hash_start_iterate
      Src: /src/curl/lib/conncache.c:888,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/conncache.c:890,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/conncache.c:897,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/conncache.c:898,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/conncache.c:900,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/conncache.c:902,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/conncache.c:903,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/conncache.c:905,1
    - Dst: Curl_hash_next_element
      Src: /src/curl/lib/conncache.c:907,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - cpool
    argTypes:
    - struct cpool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 877
    functionDepth: 6
    functionLinenumber: 877
    functionLinenumberEnd: 909
    functionName: Curl_cpool_print
    functionSourceFile: /src/curl/lib/conncache.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - Curl_hash_next_element
    - Curl_node_elem
    - Curl_node_next
    - Curl_hash_start_iterate
    - Curl_llist_head
    linkageType: ''
    returnType: void
    signature: void Curl_cpool_print(struct cpool *cpool)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - now
    - co
    argTypes:
    - time_t
    - struct Cookie*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: cap_expires
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cap_expires(time_t now, struct Cookie *co)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:65,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:66,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:67,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:68,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - co
    - maintoo
    argTypes:
    - struct Cookie*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: freecookie
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void freecookie(struct Cookie *co, bool maintoo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:77,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/cookie.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - cookie_domain
    - cookie_domain_len
    - hostname
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 100
    functionName: cookie_tailmatch
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: "bool cookie_tailmatch(const char *cookie_domain,\n                             const
      size_t cookie_domain_len,\n                             const char *hostname)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:113,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:120,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:133,1
    - Dst: strncmp
      Src: /src/curl/lib/cookie.c:139,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - cookie_path
    - uri_path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 156
    functionName: pathmatch
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool pathmatch(const char *cookie_path, const char *uri_path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:167,1
    - Dst: memrchr
      Src: /src/curl/lib/cookie.c:168,1
    - Dst: memrchr
      Src: /src/curl/lib/cookie.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - domain
    - outlen
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: get_top_domain
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - strlen
    - memrchr
    linkageType: ''
    returnType: char
    signature: char *get_top_domain(const char * const domain, size_t *outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/cookie.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - domain
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 202
    functionName: cookie_hash_domain
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - Curl_raw_toupper
    linkageType: ''
    returnType: size_t
    signature: size_t cookie_hash_domain(const char *domain, const size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_host_is_ipnum
      Src: /src/curl/lib/cookie.c:216,1
    - Dst: get_top_domain
      Src: /src/curl/lib/cookie.c:219,1
    - Dst: cookie_hash_domain
      Src: /src/curl/lib/cookie.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - domain
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: cookiehash
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - get_top_domain
    - Curl_host_is_ipnum
    - cookie_hash_domain
    linkageType: ''
    returnType: size_t
    signature: size_t cookiehash(const char * const domain)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strdup
      Src: /src/curl/lib/cookie.c:240,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cookie.c:247,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - cookie_path
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 248
    functionName: sanitize_cookie_path
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - curlx_memdup0
    - curlx_strdup
    linkageType: ''
    returnType: char
    signature: char *sanitize_cookie_path(const char *cookie_path, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cookie.c:257,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cookie.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - str
    - newstr
    - len
    argTypes:
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: strstore
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - curlx_memdup0
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode strstore(char **str, const char *newstr, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/curl/lib/cookie.c:276,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cookie.c:297,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cookie.c:298,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cookie.c:299,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/cookie.c:302,1
    - Dst: freecookie
      Src: /src/curl/lib/cookie.c:303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ci
    argTypes:
    - struct CookieInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 315
    functionName: remove_expired
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - Curl_node_elem
    - Curl_node_next
    - time
    - Curl_llist_head
    - Curl_node_remove
    - freecookie
    linkageType: ''
    returnType: void
    signature: void remove_expired(struct CookieInfo *ci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/cookie.c:321,1
    - Dst: memchr
      Src: /src/curl/lib/cookie.c:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - domain
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 334
    functionName: bad_domain
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - memchr
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: bool bad_domain(const char *domain, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 357
    functionName: invalid_octets
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool invalid_octets(const char *ptr, size_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strstore
      Src: /src/curl/lib/cookie.c:376,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:376,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:377,1
    - Dst: strstore
      Src: /src/curl/lib/cookie.c:379,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:379,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:380,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:383,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:384,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:385,1
    - Dst: strrchr
      Src: /src/curl/lib/cookie.c:389,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:393,1
    - Dst: sanitize_cookie_path
      Src: /src/curl/lib/cookie.c:397,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:403,1
    - Dst: strstore
      Src: /src/curl/lib/cookie.c:404,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:404,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:405,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/cookie.c:408,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - co
    - cp
    - path
    - domain
    argTypes:
    - struct Cookie*
    - struct Curl_str*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 414
    functionName: storecookie
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - strstore
    - curlx_str
    - curlx_strdup
    - strrchr
    - sanitize_cookie_path
    - curlx_strlen
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode storecookie(struct Cookie *co, const struct Curl_str *cp,\n
      \                           const char *path, const char *domain)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:427,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:428,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:436,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:436,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:437,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:438,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:438,1
    - Dst: strncmp
      Src: /src/curl/lib/cookie.c:443,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:443,1
    - Dst: strncmp
      Src: /src/curl/lib/cookie.c:445,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - data
    - co
    - cookie
    - name
    - val
    - sep
    argTypes:
    - struct Curl_easy*
    - struct Cookie*
    - struct Curl_str*
    - struct Curl_str*
    - struct Curl_str*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 451
    functionName: parse_first_pair
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - curlx_str
    - strncmp
    - curlx_strlen
    - infof
    linkageType: ''
    returnType: bool
    signature: "bool parse_first_pair(struct Curl_easy *data, struct Cookie *co,\n
      \                            struct Curl_str *cookie,\n                             struct
      Curl_str *name,\n                             struct Curl_str *val,\n                             bool
      sep)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/cookie.c:462,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:466,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/cookie.c:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - data
    - co
    - ci
    - name
    - secure
    argTypes:
    - struct Curl_easy*
    - struct Cookie*
    - struct CookieInfo*
    - struct Curl_str*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 474
    functionName: parse_flag
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - curlx_str_casecompare
    - infof
    linkageType: ''
    returnType: bool
    signature: "bool parse_flag(struct Curl_easy *data, struct Cookie *co,\n                       const
      struct CookieInfo *ci,\n                       struct Curl_str *name, bool secure)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:483,1
    - Dst: curlx_str_nudge
      Src: /src/curl/lib/cookie.c:490,1
    - Dst: bad_domain
      Src: /src/curl/lib/cookie.c:498,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:498,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:498,1
    - Dst: Curl_host_is_ipnum
      Src: /src/curl/lib/cookie.c:504,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:504,1
    - Dst: strncmp
      Src: /src/curl/lib/cookie.c:508,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:508,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:508,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:509,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:509,1
    - Dst: cookie_tailmatch
      Src: /src/curl/lib/cookie.c:510,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:510,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:511,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:522,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:523,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 5
    argNames:
    - data
    - co
    - cookie_domain
    - val
    - domainp
    argTypes:
    - struct Curl_easy*
    - struct Cookie*
    - struct Curl_str*
    - struct Curl_str*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 527
    functionName: parse_domain
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - strlen
    - curlx_str
    - Curl_host_is_ipnum
    - infof
    - cookie_tailmatch
    - curlx_strlen
    - bad_domain
    - curlx_str_nudge
    - strncmp
    linkageType: ''
    returnType: bool
    signature: "bool parse_domain(struct Curl_easy *data, struct Cookie *co,\n                         struct
      Curl_str *cookie_domain,\n                         struct Curl_str *val,\n                         const
      char **domainp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:533,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/cookie.c:536,1
    - Dst: time
      Src: /src/curl/lib/cookie.c:538,1
    - Dst: cap_expires
      Src: /src/curl/lib/cookie.c:558,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - co
    - val
    - nowp
    argTypes:
    - struct Cookie*
    - struct Curl_str*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 559
    functionName: parse_maxage
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - time
    - cap_expires
    - curlx_str
    - curlx_str_number
    linkageType: ''
    returnType: void
    signature: "void parse_maxage(struct Cookie *co, struct Curl_str *val,\n                         time_t
      *nowp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:570,1
    - Dst: memcpy
      Src: /src/curl/lib/cookie.c:573,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:573,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:573,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:574,1
    - Dst: Curl_getdate_capped
      Src: /src/curl/lib/cookie.c:575,1
    - Dst: time
      Src: /src/curl/lib/cookie.c:583,1
    - Dst: cap_expires
      Src: /src/curl/lib/cookie.c:584,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - co
    - val
    - nowp
    argTypes:
    - struct Cookie*
    - struct Curl_str*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 586
    functionName: parse_expires
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - memcpy
    - curlx_str
    - time
    - curlx_strlen
    - cap_expires
    - Curl_getdate_capped
    linkageType: ''
    returnType: void
    signature: "void parse_expires(struct Cookie *co, struct Curl_str *val,\n                          time_t
      *nowp)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:602,1
    - Dst: memset
      Src: /src/curl/lib/cookie.c:611,1
    - Dst: curlx_str_cspn
      Src: /src/curl/lib/cookie.c:616,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/cookie.c:619,1
    - Dst: invalid_octets
      Src: /src/curl/lib/cookie.c:621,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:621,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:621,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:622,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/cookie.c:626,1
    - Dst: curlx_str_cspn
      Src: /src/curl/lib/cookie.c:628,1
    - Dst: curlx_str_trimblanks
      Src: /src/curl/lib/cookie.c:629,1
    - Dst: invalid_octets
      Src: /src/curl/lib/cookie.c:631,1
    - Dst: curlx_str
      Src: /src/curl/lib/cookie.c:631,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:631,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:632,1
    - Dst: curlx_str_init
      Src: /src/curl/lib/cookie.c:637,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:639,1
    - Dst: parse_first_pair
      Src: /src/curl/lib/cookie.c:640,1
    - Dst: parse_flag
      Src: /src/curl/lib/cookie.c:644,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/cookie.c:647,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/cookie.c:649,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:649,1
    - Dst: parse_domain
      Src: /src/curl/lib/cookie.c:650,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/cookie.c:653,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:653,1
    - Dst: parse_maxage
      Src: /src/curl/lib/cookie.c:654,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/cookie.c:655,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:655,1
    - Dst: parse_expires
      Src: /src/curl/lib/cookie.c:656,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/cookie.c:658,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/cookie.c:660,1
    - Dst: storecookie
      Src: /src/curl/lib/cookie.c:662,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 8
    argNames:
    - data
    - co
    - ci
    - okay
    - ptr
    - domain
    - path
    - secure_origin
    argTypes:
    - struct Curl_easy*
    - struct Cookie*
    - struct CookieInfo*
    - bool*
    - char*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 589
    functionDepth: 7
    functionLinenumber: 589
    functionLinenumberEnd: 667
    functionName: parse_cookie_header
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - invalid_octets
    - curlx_str_single
    - parse_expires
    - parse_flag
    - parse_first_pair
    - curlx_str_casecompare
    - curlx_str
    - storecookie
    - curlx_str_cspn
    - infof
    - curlx_str_init
    - parse_maxage
    - curlx_strlen
    - parse_domain
    - memset
    - strlen
    - curlx_str_trimblanks
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_cookie_header(struct Curl_easy *data,\n                    struct
      Cookie *co,\n                    const struct CookieInfo *ci,\n                    bool
      *okay, /* if the cookie was fine */\n                    const char *ptr, /*
      the header */\n                    const char *domain, /* default domain */\n
      \                   /* full path used when this cookie is set */\n                    const
      char *path,\n                    bool secure_origin)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/curl/lib/cookie.c:690,1
    - Dst: strcspn
      Src: /src/curl/lib/cookie.c:706,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cookie.c:714,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/cookie.c:724,1
    - Dst: strncmp
      Src: /src/curl/lib/cookie.c:728,1
    - Dst: strncmp
      Src: /src/curl/lib/cookie.c:728,1
    - Dst: sanitize_cookie_path
      Src: /src/curl/lib/cookie.c:730,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/cookie.c:737,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cookie.c:742,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/cookie.c:745,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/cookie.c:753,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cookie.c:757,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/cookie.c:762,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/cookie.c:764,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/cookie.c:769,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/cookie.c:777,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 5
    argNames:
    - co
    - ci
    - okay
    - lineptr
    - secure_origin
    argTypes:
    - struct Cookie*
    - struct CookieInfo*
    - bool*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 790
    functionName: parse_netscape
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - curlx_strdup
    - curlx_str_number
    - curl_strnequal
    - strcspn
    - sanitize_cookie_path
    - curlx_memdup0
    - strncmp
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_netscape(struct Cookie *co,\n                               const
      struct CookieInfo *ci,\n                               bool *okay,\n                               const
      char *lineptr,\n                               bool secure_origin)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGF
      Src: /src/curl/lib/cookie.c:802,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:802,1
    - Dst: Curl_host_is_ipnum
      Src: /src/curl/lib/cookie.c:804,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:808,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:809,1
    - Dst: Curl_psl_use
      Src: /src/curl/lib/cookie.c:818,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/cookie.c:821,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/cookie.c:823,1
    - Dst: psl_is_cookie_domain_acceptable
      Src: /src/curl/lib/cookie.c:825,1
    - Dst: Curl_psl_release
      Src: /src/curl/lib/cookie.c:826,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:829,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:833,1
    - Dst: DEBUGF
      Src: /src/curl/lib/cookie.c:842,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:842,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - data
    - co
    - domain
    argTypes:
    - struct Curl_easy*
    - struct Cookie*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 846
    functionName: is_public_suffix
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - Curl_strntolower
    - strlen
    - Curl_psl_use
    - Curl_psl_release
    - Curl_host_is_ipnum
    - infof
    - psl_is_cookie_domain_acceptable
    - DEBUGF
    linkageType: ''
    returnType: bool
    signature: "bool is_public_suffix(struct Curl_easy *data,\n                             const
      struct Cookie *co,\n                             const char *domain)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: cookiehash
      Src: /src/curl/lib/cookie.c:858,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cookie.c:859,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cookie.c:859,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cookie.c:860,1
    - Dst: strcmp
      Src: /src/curl/lib/cookie.c:861,1
    - Dst: cookie_tailmatch
      Src: /src/curl/lib/cookie.c:866,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:866,1
    - Dst: cookie_tailmatch
      Src: /src/curl/lib/cookie.c:868,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:868,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cookie.c:888,1
    - Dst: strchr
      Src: /src/curl/lib/cookie.c:890,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:894,1
    - Dst: strncmp
      Src: /src/curl/lib/cookie.c:896,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:897,1
    - Dst: strcmp
      Src: /src/curl/lib/cookie.c:904,1
    - Dst: curl_strequal
      Src: /src/curl/lib/cookie.c:908,1
    - Dst: strcmp
      Src: /src/curl/lib/cookie.c:920,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cookie.c:940,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/cookie.c:946,1
    - Dst: freecookie
      Src: /src/curl/lib/cookie.c:949,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 49
    argCount: 5
    argNames:
    - data
    - co
    - ci
    - secure
    - replacep
    argTypes:
    - struct Curl_easy*
    - struct Cookie*
    - struct CookieInfo*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 849
    functionDepth: 4
    functionLinenumber: 849
    functionLinenumberEnd: 953
    functionName: replace_existing
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_node_elem
    - Curl_node_next
    - infof
    - strcmp
    - Curl_llist_head
    - cookie_tailmatch
    - curl_strequal
    - cookiehash
    - strchr
    - Curl_node_remove
    - strlen
    - strncmp
    - freecookie
    linkageType: ''
    returnType: bool
    signature: "bool replace_existing(struct Curl_easy *data,\n                             struct
      Cookie *co,\n                             const struct CookieInfo *ci,\n                             bool
      secure,\n                             bool *replacep)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cookie.c:981,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cookie.c:982,1
    - Dst: memset
      Src: /src/curl/lib/cookie.c:987,1
    - Dst: parse_cookie_header
      Src: /src/curl/lib/cookie.c:990,1
    - Dst: parse_netscape
      Src: /src/curl/lib/cookie.c:993,1
    - Dst: strcmp
      Src: /src/curl/lib/cookie.c:1007,1
    - Dst: remove_expired
      Src: /src/curl/lib/cookie.c:1029,1
    - Dst: is_public_suffix
      Src: /src/curl/lib/cookie.c:1031,1
    - Dst: replace_existing
      Src: /src/curl/lib/cookie.c:1034,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/cookie.c:1038,1
    - Dst: cookiehash
      Src: /src/curl/lib/cookie.c:1046,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/cookie.c:1047,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:1051,1
    - Dst: freecookie
      Src: /src/curl/lib/cookie.c:1071,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 57
    argCount: 8
    argNames:
    - data
    - ci
    - httpheader
    - noexpire
    - lineptr
    - domain
    - path
    - secure
    argTypes:
    - struct Curl_easy*
    - struct CookieInfo*
    - bool
    - bool
    - char*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 963
    functionDepth: 8
    functionLinenumber: 963
    functionLinenumberEnd: 1073
    functionName: Curl_cookie_add
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    - parse_cookie_header
    - Curl_llist_append
    - replace_existing
    - curlx_memdup
    - is_public_suffix
    - infof
    - strcmp
    - memset
    - parse_netscape
    - remove_expired
    - cookiehash
    - freecookie
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cookie_add(\n  struct Curl_easy *data,\n  struct CookieInfo
      *ci,\n  bool httpheader,     /* TRUE if HTTP header-style line */\n  bool noexpire,
      \      /* if TRUE, skip remove_expired() */\n  const char *lineptr, /* first
      character of the line */\n  const char *domain,  /* default domain */\n  const
      char *path,    /* full path used when this cookie is set, used\n                          to
      get default path for the cookie unless set */\n  bool secure)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cookie.c:1092,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/cookie.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1107
    functionName: Curl_cookie_init
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 4
    functionsReached:
    - Curl_llist_init
    - curlx_calloc
    linkageType: ''
    returnType: struct CookieInfo
    signature: struct CookieInfo *Curl_cookie_init(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cookie.c:1124,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cookie.c:1125,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cookie.c:1126,1
    - Dst: strcmp
      Src: /src/curl/lib/cookie.c:1132,1
    - Dst: curlx_fopen
      Src: /src/curl/lib/cookie.c:1135,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:1137,1
    - Dst: curlx_fstat
      Src: /src/curl/lib/cookie.c:1140,1
    - Dst: fileno
      Src: /src/curl/lib/cookie.c:1140,1
    - Dst: S_ISDIR
      Src: /src/curl/lib/cookie.c:1140,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/cookie.c:1141,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:1143,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/cookie.c:1155,1
    - Dst: Curl_get_line
      Src: /src/curl/lib/cookie.c:1157,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/cookie.c:1159,1
    - Dst: checkprefix
      Src: /src/curl/lib/cookie.c:1161,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/cookie.c:1165,1
    - Dst: Curl_cookie_add
      Src: /src/curl/lib/cookie.c:1168,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/cookie.c:1174,1
    - Dst: remove_expired
      Src: /src/curl/lib/cookie.c:1180,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/cookie.c:1183,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - data
    - file
    - ci
    - newsession
    argTypes:
    - struct Curl_easy*
    - char*
    - struct CookieInfo*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1118
    functionDepth: 9
    functionLinenumber: 1118
    functionLinenumberEnd: 1189
    functionName: cookie_load
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - Curl_cookie_add
    - checkprefix
    - DEBUGASSERT
    - curlx_dyn_free
    - infof
    - curlx_fopen
    - strcmp
    - curlx_dyn_ptr
    - curlx_str_passblanks
    - S_ISDIR
    - curlx_fstat
    - remove_expired
    - fileno
    - Curl_get_line
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cookie_load(struct Curl_easy *data, const char *file,\n                            struct
      CookieInfo *ci, bool newsession)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_share_lock
      Src: /src/curl/lib/cookie.c:1199,1
    - Dst: Curl_cookie_init
      Src: /src/curl/lib/cookie.c:1201,1
    - Dst: cookie_load
      Src: /src/curl/lib/cookie.c:1207,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/cookie.c:1214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1194
    functionDepth: 10
    functionLinenumber: 1194
    functionLinenumberEnd: 1217
    functionName: Curl_cookie_loadfiles
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 2
    functionsReached:
    - Curl_share_lock
    - cookie_load
    - Curl_cookie_init
    - Curl_share_unlock
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_cookie_loadfiles(struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:1234,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:1235,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:1241,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:1242,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:1248,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:1249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1256
    functionName: cookie_sort
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int cookie_sort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1269
    functionName: cookie_sort_ct
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cookie_sort_ct(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/cookie.c:1274,1
    - Dst: strcmp
      Src: /src/curl/lib/cookie.c:1275,1
    - Dst: strcmp
      Src: /src/curl/lib/cookie.c:1276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - host
    argTypes:
    - struct connectdata*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1277
    functionName: Curl_secure_context
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 1
    functionsReached:
    - curl_strequal
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool Curl_secure_context(const struct connectdata *conn, const char
      *host)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_host_is_ipnum
      Src: /src/curl/lib/cookie.c:1297,1
    - Dst: cookiehash
      Src: /src/curl/lib/cookie.c:1298,1
    - Dst: Curl_secure_context
      Src: /src/curl/lib/cookie.c:1300,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/cookie.c:1306,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/cookie.c:1308,1
    - Dst: remove_expired
      Src: /src/curl/lib/cookie.c:1312,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cookie.c:1314,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cookie.c:1314,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cookie.c:1315,1
    - Dst: cookie_tailmatch
      Src: /src/curl/lib/cookie.c:1323,1
    - Dst: strlen
      Src: /src/curl/lib/cookie.c:1323,1
    - Dst: curl_strequal
      Src: /src/curl/lib/cookie.c:1324,1
    - Dst: pathmatch
      Src: /src/curl/lib/cookie.c:1334,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/cookie.c:1339,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:1342,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/cookie.c:1361,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cookie.c:1367,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cookie.c:1369,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cookie.c:1370,1
    - Dst: qsort
      Src: /src/curl/lib/cookie.c:1373,1
    - Dst: Curl_llist_destroy
      Src: /src/curl/lib/cookie.c:1376,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/cookie.c:1379,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:1381,1
    - Dst: Curl_llist_destroy
      Src: /src/curl/lib/cookie.c:1389,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 5
    argNames:
    - data
    - conn
    - okay
    - host
    - list
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool*
    - char*
    - struct Curl_llist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1290
    functionDepth: 5
    functionLinenumber: 1290
    functionLinenumberEnd: 1391
    functionName: Curl_cookie_getlist
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 1
    functionsReached:
    - Curl_secure_context
    - Curl_llist_append
    - Curl_llist_head
    - cookie_tailmatch
    - Curl_llist_count
    - Curl_node_elem
    - Curl_llist_init
    - Curl_host_is_ipnum
    - Curl_node_next
    - curlx_malloc
    - curl_strequal
    - curlx_free
    - remove_expired
    - Curl_llist_destroy
    - pathmatch
    - qsort
    - infof
    - cookiehash
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cookie_getlist(struct Curl_easy *data,\n                             const
      struct connectdata *conn,\n                             bool *okay,\n                             const
      char *host,\n                             struct Curl_llist *list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cookie.c:1404,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cookie.c:1405,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cookie.c:1406,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/cookie.c:1407,1
    - Dst: freecookie
      Src: /src/curl/lib/cookie.c:1408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ci
    argTypes:
    - struct CookieInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1398
    functionDepth: 4
    functionLinenumber: 1398
    functionLinenumberEnd: 1414
    functionName: Curl_cookie_clearall
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 2
    functionsReached:
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - Curl_node_remove
    - freecookie
    linkageType: ''
    returnType: void
    signature: void Curl_cookie_clearall(struct CookieInfo *ci)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cookie.c:1429,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cookie.c:1433,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cookie.c:1434,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/cookie.c:1436,1
    - Dst: freecookie
      Src: /src/curl/lib/cookie.c:1437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ci
    argTypes:
    - struct CookieInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1421
    functionDepth: 4
    functionLinenumber: 1421
    functionLinenumberEnd: 1442
    functionName: Curl_cookie_clearsess
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 1
    functionsReached:
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - Curl_node_remove
    - freecookie
    linkageType: ''
    returnType: void
    signature: void Curl_cookie_clearsess(struct CookieInfo *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cookie_clearall
      Src: /src/curl/lib/cookie.c:1452,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:1453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ci
    argTypes:
    - struct CookieInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1449
    functionDepth: 5
    functionLinenumber: 1449
    functionLinenumberEnd: 1455
    functionName: Curl_cookie_cleanup
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 4
    functionsReached:
    - curlx_free
    - Curl_cookie_clearall
    linkageType: ''
    returnType: void
    signature: void Curl_cookie_cleanup(struct CookieInfo *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/lib/cookie.c:1466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - co
    argTypes:
    - struct Cookie*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1464
    functionDepth: 7
    functionLinenumber: 1464
    functionLinenumberEnd: 1488
    functionName: get_netscape_format
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    linkageType: ''
    returnType: char
    signature: char *get_netscape_format(const struct Cookie *co)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: remove_expired
      Src: /src/curl/lib/cookie.c:1512,1
    - Dst: strcmp
      Src: /src/curl/lib/cookie.c:1514,1
    - Dst: Curl_fopen
      Src: /src/curl/lib/cookie.c:1520,1
    - Dst: fputs
      Src: /src/curl/lib/cookie.c:1525,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/cookie.c:1536,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cookie.c:1544,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cookie.c:1544,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cookie.c:1545,1
    - Dst: qsort
      Src: /src/curl/lib/cookie.c:1552,1
    - Dst: get_netscape_format
      Src: /src/curl/lib/cookie.c:1555,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:1557,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/cookie.c:1561,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:1562,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:1565,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/cookie.c:1569,1
    - Dst: curlx_rename
      Src: /src/curl/lib/cookie.c:1571,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:1582,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/cookie.c:1587,1
    - Dst: unlink
      Src: /src/curl/lib/cookie.c:1589,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:1590,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 3
    argNames:
    - data
    - ci
    - filename
    argTypes:
    - struct Curl_easy*
    - struct CookieInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1498
    functionDepth: 8
    functionLinenumber: 1498
    functionLinenumberEnd: 1593
    functionName: cookie_output
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curl_mfprintf
    - fputs
    - Curl_node_elem
    - Curl_node_next
    - qsort
    - get_netscape_format
    - strcmp
    - Curl_llist_head
    - curlx_calloc
    - Curl_fopen
    - curlx_free
    - remove_expired
    - unlink
    - curlx_rename
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cookie_output(struct Curl_easy *data,\n                              struct
      CookieInfo *ci,\n                              const char *filename)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remove_expired
      Src: /src/curl/lib/cookie.c:1606,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/cookie.c:1609,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/cookie.c:1610,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/cookie.c:1611,1
    - Dst: get_netscape_format
      Src: /src/curl/lib/cookie.c:1615,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/cookie.c:1617,1
    - Dst: Curl_slist_append_nodup
      Src: /src/curl/lib/cookie.c:1620,1
    - Dst: curlx_free
      Src: /src/curl/lib/cookie.c:1622,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/cookie.c:1623,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1595
    functionDepth: 8
    functionLinenumber: 1595
    functionLinenumberEnd: 1631
    functionName: cookie_list
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 1
    functionsReached:
    - Curl_slist_append_nodup
    - Curl_node_elem
    - curl_slist_free_all
    - Curl_node_next
    - get_netscape_format
    - Curl_llist_head
    - curlx_free
    - remove_expired
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *cookie_list(const struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_share_lock
      Src: /src/curl/lib/cookie.c:1636,1
    - Dst: cookie_list
      Src: /src/curl/lib/cookie.c:1637,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/cookie.c:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1633
    functionDepth: 9
    functionLinenumber: 1633
    functionLinenumberEnd: 1640
    functionName: Curl_cookie_list
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 1
    functionsReached:
    - Curl_share_lock
    - Curl_share_unlock
    - cookie_list
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *Curl_cookie_list(struct Curl_easy *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_share_lock
      Src: /src/curl/lib/cookie.c:1644,1
    - Dst: cookie_output
      Src: /src/curl/lib/cookie.c:1652,1
    - Dst: infof
      Src: /src/curl/lib/cookie.c:1655,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/cookie.c:1656,1
    - Dst: Curl_cookie_cleanup
      Src: /src/curl/lib/cookie.c:1660,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/cookie.c:1664,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - data
    - cleanup
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1642
    functionDepth: 9
    functionLinenumber: 1642
    functionLinenumberEnd: 1665
    functionName: Curl_flush_cookies
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 2
    functionsReached:
    - Curl_share_lock
    - Curl_share_unlock
    - curl_easy_strerror
    - infof
    - cookie_output
    - Curl_cookie_cleanup
    linkageType: ''
    returnType: void
    signature: void Curl_flush_cookies(struct Curl_easy *data, bool cleanup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_share_lock
      Src: /src/curl/lib/cookie.c:1669,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/cookie.c:1672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1673
    functionName: Curl_cookie_run
    functionSourceFile: /src/curl/lib/cookie.c
    functionUses: 1
    functionsReached:
    - Curl_share_lock
    - Curl_share_unlock
    linkageType: ''
    returnType: void
    signature: void Curl_cookie_run(struct Curl_easy *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/hostip6.c:84,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/hostip6.c:94,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/hostip6.c:95,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/hostip6.c:102,1
    - Dst: Curl_getaddrinfo_ex
      Src: /src/curl/lib/hostip6.c:106,1
    - Dst: infof
      Src: /src/curl/lib/hostip6.c:108,1
    - Dst: Curl_addrinfo_set_port
      Src: /src/curl/lib/hostip6.c:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - data
    - dns_queries
    - hostname
    - port
    - transport
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - char*
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 65
    functionDepth: 7
    functionLinenumber: 65
    functionLinenumberEnd: 117
    functionName: Curl_sync_getaddrinfo
    functionSourceFile: /src/curl/lib/hostip6.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - Curl_getaddrinfo_ex
    - infof
    - Curl_addrinfo_set_port
    - memset
    - curlx_inet_pton
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *Curl_sync_getaddrinfo(struct Curl_easy *data,\n
      \                                           uint8_t dns_queries,\n                                            const
      char *hostname,\n                                            uint16_t port,\n
      \                                           uint8_t transport)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: SHORTPAIR
    functionSourceFile: /src/curl/lib/curl_ntlm_core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHORTPAIR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: LONGQUARTET
    functionSourceFile: /src/curl/lib/curl_ntlm_core.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LONGQUARTET(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_thread_stop
      Src: /src/curl/lib/dllmain.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpvReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: DllMain
    functionSourceFile: /src/curl/lib/dllmain.c
    functionUses: 0
    functionsReached:
    - OPENSSL_thread_stop
    linkageType: ''
    returnType: BOOL
    signature: BOOL DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/curl/lib/setup-vms.h:90,1
    - Dst: decc$translate_vms
      Src: /src/curl/lib/setup-vms.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: vms_translate_path
    functionSourceFile: /src/curl/lib/setup-vms.h
    functionUses: 0
    functionsReached:
    - decc$translate_vms
    - strpbrk
    linkageType: ''
    returnType: char
    signature: char *vms_translate_path(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: vms_translate_path
    functionSourceFile: /src/curl/lib/setup-vms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vms_translate_path(__path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decc$getenv
      Src: /src/curl/lib/setup-vms.h:122,1
    - Dst: vms_translate_path
      Src: /src/curl/lib/setup-vms.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - envvar
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: vms_getenv
    functionSourceFile: /src/curl/lib/setup-vms.h
    functionUses: 0
    functionsReached:
    - vms_translate_path
    - decc$getenv
    linkageType: ''
    returnType: char
    signature: char *vms_getenv(const char *envvar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: decc_getpwuid
      Src: /src/curl/lib/setup-vms.h:156,1
    - Dst: vms_translate_path
      Src: /src/curl/lib/setup-vms.h:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 183
    functionName: vms_getpwuid
    functionSourceFile: /src/curl/lib/setup-vms.h
    functionUses: 0
    functionsReached:
    - vms_translate_path
    - decc_getpwuid
    linkageType: ''
    returnType: struct passwd
    signature: struct passwd *vms_getpwuid(uid_t uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - appname
    - flags
    argTypes:
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: CONF_modules_load_file
    functionSourceFile: /src/curl/lib/setup-vms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CONF_modules_load_file(const char *filename,\n                                  const
      char *appname,\n                                  unsigned long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/cf-haproxy.c:51,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-haproxy.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_haproxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: cf_haproxy_ctx_free
    functionSourceFile: /src/curl/lib/cf-haproxy.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void cf_haproxy_ctx_free(struct cf_haproxy_ctx *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-haproxy.c:113,1
    - Dst: struct Curl_cfilter*::next::cft::do_connect
      Src: /src/curl/lib/cf-haproxy.c:119,1
    - Dst: cf_haproxy_date_out_set
      Src: /src/curl/lib/cf-haproxy.c:125,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-haproxy.c:129,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cf-haproxy.c:131,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/cf-haproxy.c:134,1
    - Dst: curlx_dyn_uptr
      Src: /src/curl/lib/cf-haproxy.c:135,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/cf-haproxy.c:143,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cf-haproxy.c:144,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-haproxy.c:150,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/cf-haproxy.c:152,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 160
    functionName: cf_haproxy_connect
    functionSourceFile: /src/curl/lib/cf-haproxy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - struct Curl_cfilter*::next::cft::do_connect
    - cf_haproxy_date_out_set
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_uptr
    - Curl_conn_cf_send
    - curlx_dyn_tail
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_haproxy_connect(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-haproxy.c:165,1
    - Dst: cf_haproxy_ctx_free
      Src: /src/curl/lib/cf-haproxy.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: cf_haproxy_destroy
    functionSourceFile: /src/curl/lib/cf-haproxy.c
    functionUses: 0
    functionsReached:
    - cf_haproxy_ctx_free
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_haproxy_destroy(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_set_out_only
      Src: /src/curl/lib/cf-haproxy.c:176,1
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/cf-haproxy.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: cf_haproxy_adjust_pollset
    functionSourceFile: /src/curl/lib/cf-haproxy.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_set_out_only
    - Curl_conn_cf_get_socket
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_haproxy_adjust_pollset(struct Curl_cfilter *cf,\n                                          struct
      Curl_easy *data,\n                                          struct easy_pollset
      *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-haproxy.c:207,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/cf-haproxy.c:213,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-haproxy.c:215,1
    - Dst: cf_haproxy_ctx_free
      Src: /src/curl/lib/cf-haproxy.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - pcf
    - data
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 224
    functionName: cf_haproxy_create
    functionSourceFile: /src/curl/lib/cf-haproxy.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - curlx_dyn_init
    - curlx_calloc
    - cf_haproxy_ctx_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_haproxy_create(struct Curl_cfilter **pcf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_haproxy_create
      Src: /src/curl/lib/cf-haproxy.c:232,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/cf-haproxy.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cf_at
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 239
    functionName: Curl_cf_haproxy_insert_after
    functionSourceFile: /src/curl/lib/cf-haproxy.c
    functionUses: 0
    functionsReached:
    - cf_haproxy_create
    - Curl_conn_cf_insert_after
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_haproxy_insert_after(struct Curl_cfilter *cf_at,\n
      \                                     struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Curl_macos_init
    functionSourceFile: /src/curl/lib/macos.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_macos_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/uint-bset.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_bset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: Curl_uint32_bset_init
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_bset_init(struct uint32_bset *bset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-bset.c:45,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/uint-bset.c:47,1
    - Dst: memcpy
      Src: /src/curl/lib/uint-bset.c:52,1
    - Dst: CURLMIN
      Src: /src/curl/lib/uint-bset.c:53,1
    - Dst: curlx_free
      Src: /src/curl/lib/uint-bset.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - bset
    - nmax
    argTypes:
    - struct uint32_bset*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 61
    functionName: Curl_uint32_bset_resize
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 4
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - CURLMIN
    - curlx_free
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_uint32_bset_resize(struct uint32_bset *bset, uint32_t
      nmax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/uint-bset.c:65,1
    - Dst: curlx_free
      Src: /src/curl/lib/uint-bset.c:66,1
    - Dst: memset
      Src: /src/curl/lib/uint-bset.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_bset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: Curl_uint32_bset_destroy
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 4
    functionsReached:
    - curlx_free
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_bset_destroy(struct uint32_bset *bset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_bset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: uint32_bset_capacity
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UNITTEST
    signature: UNITTEST uint32_bset_capacity(struct uint32_bset *bset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_POPCOUNT64
      Src: /src/curl/lib/uint-bset.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_bset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: Curl_uint32_bset_count
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 2
    functionsReached:
    - CURL_POPCOUNT64
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Curl_uint32_bset_count(struct uint32_bset *bset)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_bset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: Curl_uint32_bset_empty
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_bset_empty(struct uint32_bset *bset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/uint-bset.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bset
    argTypes:
    - struct uint32_bset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: Curl_uint32_bset_clear
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_bset_clear(struct uint32_bset *bset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bset
    - i
    argTypes:
    - struct uint32_bset*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: Curl_uint32_bset_add
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_bset_add(struct uint32_bset *bset, uint32_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bset
    - i
    argTypes:
    - struct uint32_bset*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Curl_uint32_bset_remove
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_uint32_bset_remove(struct uint32_bset *bset, uint32_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bset
    - i
    argTypes:
    - struct uint32_bset*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: Curl_uint32_bset_contains
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_bset_contains(struct uint32_bset *bset, uint32_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_CTZ64
      Src: /src/curl/lib/uint-bset.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bset
    - pfirst
    argTypes:
    - struct uint32_bset*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: Curl_uint32_bset_first
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 9
    functionsReached:
    - CURL_CTZ64
    linkageType: ''
    returnType: bool
    signature: bool Curl_uint32_bset_first(struct uint32_bset *bset, uint32_t *pfirst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_CTZ64
      Src: /src/curl/lib/uint-bset.c:161,1
    - Dst: CURL_CTZ64
      Src: /src/curl/lib/uint-bset.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - bset
    - last
    - pnext
    argTypes:
    - struct uint32_bset*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: Curl_uint32_bset_next
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 9
    functionsReached:
    - CURL_CTZ64
    linkageType: ''
    returnType: bool
    signature: "bool Curl_uint32_bset_next(struct uint32_bset *bset, uint32_t last,\n
      \                          uint32_t *pnext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 193
    functionName: Curl_popcount64
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Curl_popcount64(uint64_t x)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 232
    functionName: Curl_ctz64
    functionSourceFile: /src/curl/lib/uint-bset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Curl_ctz64(uint64_t x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/asyn-base.c:63,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/asyn-base.c:63,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/asyn-base.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: Curl_async_timeleft_ms
    functionSourceFile: /src/curl/lib/asyn-base.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - Curl_timeleft_ms
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t Curl_async_timeleft_ms(struct Curl_easy *data,\n                                  struct
      Curl_resolv_async *async)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-base.c:91,1
    - Dst: ares_getsock
      Src: /src/curl/lib/asyn-base.c:95,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/asyn-base.c:96,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/asyn-base.c:97,1
    - Dst: ARES_GETSOCK_READABLE
      Src: /src/curl/lib/asyn-base.c:99,1
    - Dst: ARES_GETSOCK_WRITABLE
      Src: /src/curl/lib/asyn-base.c:101,1
    - Dst: Curl_pollset_change
      Src: /src/curl/lib/asyn-base.c:105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - data
    - channel
    - ps
    argTypes:
    - struct Curl_easy*
    - ares_channel
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 110
    functionName: Curl_ares_pollset
    functionSourceFile: /src/curl/lib/asyn-base.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - CURL_ARRAYSIZE
    - ares_getsock
    - ARES_GETSOCK_READABLE
    - ARES_GETSOCK_WRITABLE
    - Curl_pollset_change
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ares_pollset(struct Curl_easy *data,\n                           ares_channel
      channel,\n                           struct easy_pollset *ps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-base.c:118,1
    - Dst: Curl_async_timeleft_ms
      Src: /src/curl/lib/asyn-base.c:122,1
    - Dst: ares_timeout
      Src: /src/curl/lib/asyn-base.c:129,1
    - Dst: curlx_tvtoms
      Src: /src/curl/lib/asyn-base.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - data
    - async
    - channel
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - ares_channel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 134
    functionName: Curl_ares_timeout_ms
    functionSourceFile: /src/curl/lib/asyn-base.c
    functionUses: 1
    functionsReached:
    - curlx_tvtoms
    - ares_timeout
    - Curl_async_timeleft_ms
    - DEBUGASSERT
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t Curl_ares_timeout_ms(struct Curl_easy *data,\n                                struct
      Curl_resolv_async *async,\n                                ares_channel channel)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ares_getsock
      Src: /src/curl/lib/asyn-base.c:157,1
    - Dst: ARES_GETSOCK_READABLE
      Src: /src/curl/lib/asyn-base.c:162,1
    - Dst: ARES_GETSOCK_WRITABLE
      Src: /src/curl/lib/asyn-base.c:166,1
    - Dst: Curl_poll
      Src: /src/curl/lib/asyn-base.c:177,1
    - Dst: ares_process_fd
      Src: /src/curl/lib/asyn-base.c:187,1
    - Dst: ares_process_fd
      Src: /src/curl/lib/asyn-base.c:191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - channel
    - timeout_ms
    argTypes:
    - ares_channel
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 198
    functionName: Curl_ares_perform
    functionSourceFile: /src/curl/lib/asyn-base.c
    functionUses: 1
    functionsReached:
    - ares_getsock
    - ARES_GETSOCK_READABLE
    - ARES_GETSOCK_WRITABLE
    - ares_process_fd
    - Curl_poll
    linkageType: ''
    returnType: int
    signature: int Curl_ares_perform(ares_channel channel, timediff_t timeout_ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-base.c:212,1
    - Dst: Curl_async_ares_shutdown
      Src: /src/curl/lib/asyn-base.c:215,1
    - Dst: Curl_async_thrdd_shutdown
      Src: /src/curl/lib/asyn-base.c:218,1
    - Dst: Curl_doh_cleanup
      Src: /src/curl/lib/asyn-base.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 224
    functionName: Curl_async_shutdown
    functionSourceFile: /src/curl/lib/asyn-base.c
    functionUses: 2
    functionsReached:
    - Curl_doh_cleanup
    - Curl_async_thrdd_shutdown
    - Curl_async_ares_shutdown
    - CURL_TRC_DNS
    linkageType: ''
    returnType: void
    signature: "void Curl_async_shutdown(struct Curl_easy *data,\n                         struct
      Curl_resolv_async *async)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-base.c:230,1
    - Dst: Curl_async_ares_destroy
      Src: /src/curl/lib/asyn-base.c:233,1
    - Dst: Curl_async_thrdd_destroy
      Src: /src/curl/lib/asyn-base.c:236,1
    - Dst: Curl_doh_cleanup
      Src: /src/curl/lib/asyn-base.c:239,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/asyn-base.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 243
    functionName: Curl_async_destroy
    functionSourceFile: /src/curl/lib/asyn-base.c
    functionUses: 3
    functionsReached:
    - curlx_safefree
    - Curl_async_thrdd_destroy
    - Curl_async_ares_destroy
    - Curl_doh_cleanup
    - CURL_TRC_DNS
    linkageType: ''
    returnType: void
    signature: "void Curl_async_destroy(struct Curl_easy *data,\n                        struct
      Curl_resolv_async *async)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/asyn-base.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - async
    - detail
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 263
    functionName: Curl_async_failed
    functionSourceFile: /src/curl/lib/asyn-base.c
    functionUses: 3
    functionsReached:
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_failed(struct Curl_easy *data,\n                           struct
      Curl_resolv_async *async,\n                           const char *detail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - line
    - ','
    - wordlen
    - ','
    - mech
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: sasl_mech_equal
    functionSourceFile: /src/curl/lib/curl_sasl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sasl_mech_equal(line, wordlen, mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: Curl_mime_duppart
    functionSourceFile: /src/curl/lib/mime.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mime_duppart(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: Curl_mime_set_subparts
    functionSourceFile: /src/curl/lib/mime.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mime_set_subparts(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: Curl_mime_prepare_headers
    functionSourceFile: /src/curl/lib/mime.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mime_prepare_headers(a, b, c, d, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: Curl_creader_set_mime
    functionSourceFile: /src/curl/lib/mime.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_creader_set_mime(x, y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/strequal.c:38,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/strequal.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: casecompare
    functionSourceFile: /src/curl/lib/strequal.c
    functionUses: 9
    functionsReached:
    - Curl_raw_toupper
    linkageType: ''
    returnType: int
    signature: int casecompare(const char *first, const char *second)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/strequal.c:54,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/strequal.c:54,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/strequal.c:63,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/strequal.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - first
    - second
    - max
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: ncasecompare
    functionSourceFile: /src/curl/lib/strequal.c
    functionUses: 0
    functionsReached:
    - Curl_raw_toupper
    linkageType: ''
    returnType: int
    signature: int ncasecompare(const char *first, const char *second, size_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: casecompare
      Src: /src/curl/lib/strequal.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: curl_strequal
    functionSourceFile: /src/curl/lib/strequal.c
    functionUses: 46
    functionsReached:
    - casecompare
    linkageType: ''
    returnType: int
    signature: int curl_strequal(const char *s1, const char *s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncasecompare
      Src: /src/curl/lib/strequal.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: curl_strnequal
    functionSourceFile: /src/curl/lib/strequal.c
    functionUses: 43
    functionsReached:
    - ncasecompare
    linkageType: ''
    returnType: int
    signature: int curl_strnequal(const char *s1, const char *s2, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: STATUSCODE
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATUSCODE(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: LASTLINE
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LASTLINE(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ftpc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: FTP_CSTATE
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTP_CSTATE(ftpc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOVERBOSE
      Src: /src/curl/lib/ftp.c:144,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:145,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:145,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:148,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - data
    - ftpc
    - newstate
    - lineno
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - ftpstate
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 153
    functionName: ftp_state_low
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - NOVERBOSE
    - CURL_TRC_FTP
    - FTP_CSTATE
    linkageType: ''
    returnType: void
    signature: "void ftp_state_low(struct Curl_easy *data,\n                          struct
      ftp_conn *ftpc,\n                          ftpstate newstate\n#ifdef DEBUGBUILD\n
      \                         , int lineno\n#endif\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: ftp_state
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ftp_state(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: ftp_state
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ftp_state(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:178,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ftpc
    argTypes:
    - struct ftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: freedirs
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void freedirs(struct ftp_conn *ftpc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/lib/ftp.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: numof_slashes
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: size_t
    signature: size_t numof_slashes(const char *str)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: freedirs
      Src: /src/curl/lib/ftp.c:221,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/ftp.c:223,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:225,1
    - Dst: strrchr
      Src: /src/curl/lib/ftp.c:244,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/ftp.c:251,1
    - Dst: numof_slashes
      Src: /src/curl/lib/ftp.c:270,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/ftp.c:277,1
    - Dst: strchr
      Src: /src/curl/lib/ftp.c:283,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:314,1
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:329,1
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:331,1
    - Dst: strncmp
      Src: /src/curl/lib/ftp.c:331,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:332,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 75
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 339
    functionName: ftp_parse_url_path
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_urldecode
    - freedirs
    - failf
    - strrchr
    - infof
    - curlx_calloc
    - strchr
    - strlen
    - strncmp
    - numof_slashes
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_parse_url_path(struct Curl_easy *data,\n                                   struct
      ftp_conn *ftpc,\n                                   struct FTP *ftp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ftpc
    - ascii_wanted
    argTypes:
    - struct ftp_conn*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: ftp_need_type
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ftp_need_type(struct ftp_conn *ftpc,\n                         bool
      ascii_wanted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:357,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:357,1
    - Dst: Curl_conn_cf_discard_all
      Src: /src/curl/lib/ftp.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - ftpc
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: close_secondarysocket
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_discard_all
    - CURL_TRC_FTP
    - FTP_CSTATE
    linkageType: ''
    returnType: void
    signature: "void close_secondarysocket(struct Curl_easy *data,\n                                  struct
      ftp_conn *ftpc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:379,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/ftp.c:385,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/ftp.c:399,1
    - Dst: memchr
      Src: /src/curl/lib/ftp.c:408,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/ftp.c:415,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:428,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/ftp.c:429,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/ftp.c:435,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/ftp.c:438,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - blen
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 441
    functionName: ftp_cw_lc_write
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - memchr
    - DEBUGASSERT
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_cw_lc_write(struct Curl_easy *data,\n                                struct
      Curl_cwriter *writer, int type,\n                                const char
      *buf, size_t blen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftp.c:470,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftp.c:471,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftp.c:472,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:474,1
    - Dst: getftpresponse
      Src: /src/curl/lib/ftp.c:475,1
    - Dst: SOCKET_READABLE
      Src: /src/curl/lib/ftp.c:484,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:489,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:499,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftp.c:501,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftp.c:502,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:504,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftp.c:504,1
    - Dst: LASTLINE
      Src: /src/curl/lib/ftp.c:509,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ftp.c:511,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:516,1
    - Dst: getftpresponse
      Src: /src/curl/lib/ftp.c:522,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:524,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - data
    - ftpc
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 533
    functionName: ftp_check_ctrl_on_data_wait
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - curlx_dyn_len
    - curlx_str_number
    - infof
    - curlx_dyn_ptr
    - SOCKET_READABLE
    - LASTLINE
    - ISDIGIT
    - getftpresponse
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_check_ctrl_on_data_wait(struct Curl_easy *data,\n                                            struct
      ftp_conn *ftpc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:549,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/ftp.c:550,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/ftp.c:557,1
    - Dst: Curl_xfer_setup_send
      Src: /src/curl/lib/ftp.c:561,1
    - Dst: Curl_xfer_set_shutdown
      Src: /src/curl/lib/ftp.c:562,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/ftp.c:566,1
    - Dst: Curl_xfer_set_shutdown
      Src: /src/curl/lib/ftp.c:567,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - data
    - ftpc
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 543
    functionDepth: 9
    functionLinenumber: 543
    functionLinenumberEnd: 574
    functionName: ftp_initiate_transfer
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_setup_recv
    - Curl_xfer_setup_send
    - Curl_conn_connect
    - ftp_state
    - Curl_pgrsSetUploadSize
    - CURL_TRC_FTP
    - Curl_xfer_set_shutdown
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_initiate_transfer(struct Curl_easy *data,\n                                      struct
      ftp_conn *ftpc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LASTLINE
      Src: /src/curl/lib/ftp.c:583,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ftp.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - data
    - conn
    - line
    - len
    - code
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 589
    functionName: ftp_endofresp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_str_number
    - LASTLINE
    linkageType: ''
    returnType: bool
    signature: "bool ftp_endofresp(struct Curl_easy *data, struct connectdata *conn,\n
      \                         const char *line, size_t len, int *code)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_readresp
      Src: /src/curl/lib/ftp.c:599,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:600,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:616,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - data
    - ftpc
    - sockindex
    - pp
    - ftpcodep
    - size
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - int
    - struct pingpong*
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 622
    functionName: ftp_readresp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_readresp
    - ftp_state
    - DEBUGASSERT
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_readresp(struct Curl_easy *data,\n                             struct
      ftp_conn *ftpc,\n                             int sockindex,\n                             struct
      pingpong *pp,\n                             int *ftpcodep, /* return the ftp-code
      if done */\n                             size_t *size)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:646,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:650,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:652,1
    - Dst: Curl_pp_state_timeleft_ms
      Src: /src/curl/lib/ftp.c:661,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:665,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftp.c:687,1
    - Dst: Curl_conn_data_pending
      Src: /src/curl/lib/ftp.c:695,1
    - Dst: Curl_pp_needs_flush
      Src: /src/curl/lib/ftp.c:696,1
    - Dst: Curl_socket_check
      Src: /src/curl/lib/ftp.c:698,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:700,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/ftp.c:705,1
    - Dst: Curl_pp_needs_flush
      Src: /src/curl/lib/ftp.c:710,1
    - Dst: Curl_pp_flushsend
      Src: /src/curl/lib/ftp.c:711,1
    - Dst: ftp_readresp
      Src: /src/curl/lib/ftp.c:716,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftp.c:720,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:734,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 3
    argNames:
    - data
    - nreadp
    - ftpcodep
    argTypes:
    - struct Curl_easy*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 631
    functionDepth: 4
    functionLinenumber: 631
    functionLinenumberEnd: 738
    functionName: getftpresponse
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 1
    functionsReached:
    - Curl_conn_data_pending
    - Curl_pp_flushsend
    - failf
    - DEBUGASSERT
    - Curl_pp_needs_flush
    - curlx_dyn_len
    - Curl_conn_meta_get
    - Curl_socket_check
    - CURL_TRC_FTP
    - ftp_readresp
    - Curl_pp_state_timeleft_ms
    - Curl_pgrsUpdate
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode getftpresponse(struct Curl_easy *data,\n                               size_t
      *nreadp, /* return number of bytes\n                                                  read
      */\n                               int *ftpcodep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:744,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/ftp.c:745,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - data
    - ftpc
    - conn
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 751
    functionName: ftp_state_user
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_creds_user
    - ftp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_user(struct Curl_easy *data,\n                               struct
      ftp_conn *ftpc,\n                               struct connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/ftp.c:758,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:761,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - data
    - ftpc
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 766
    functionName: ftp_state_pwd
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - getenv
    - Curl_pp_sendf
    - ftp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_pwd(struct Curl_easy *data,\n                              struct
      ftp_conn *ftpc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:772,1
    - Dst: Curl_pp_pollset
      Src: /src/curl/lib/ftp.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 774
    functionName: ftp_pollset
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_pollset
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_pollset(struct Curl_easy *data,\n                            struct
      easy_pollset *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:780,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:789,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:789,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:794,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/ftp.c:796,1
    - Dst: Curl_pollset_add_in
      Src: /src/curl/lib/ftp.c:799,1
    - Dst: Curl_pp_pollset
      Src: /src/curl/lib/ftp.c:801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 802
    functionName: ftp_domore_pollset
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - DEBUGASSERT
    - Curl_pollset_add_in
    - Curl_conn_meta_get
    - CURL_TRC_FTP
    - FTP_CSTATE
    - Curl_pp_pollset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_domore_pollset(struct Curl_easy *data,\n                                   struct
      easy_pollset *ps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:806,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ftpc
    - num
    argTypes:
    - struct ftp_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 809
    functionName: pathlen
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int pathlen(struct ftp_conn *ftpc, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:813,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ftpc
    - num
    argTypes:
    - struct ftp_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 816
    functionName: pathpiece
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: char
    signature: char *pathpiece(struct ftp_conn *ftpc, int num)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ftp_state_mdtm
      Src: /src/curl/lib/ftp.c:832,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:835,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:848,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:850,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:857,1
    - Dst: pathlen
      Src: /src/curl/lib/ftp.c:858,1
    - Dst: pathpiece
      Src: /src/curl/lib/ftp.c:858,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:860,1
    - Dst: ftp_state_mdtm
      Src: /src/curl/lib/ftp.c:864,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 869
    functionName: ftp_state_cwd
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - pathlen
    - DEBUGASSERT
    - pathpiece
    - ftp_state
    - Curl_pp_sendf
    - ftp_state_mdtm
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_cwd(struct Curl_easy *data,\n                              struct
      ftp_conn *ftpc,\n                              struct FTP *ftp)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:906,1
    - Dst: strchr
      Src: /src/curl/lib/ftp.c:913,1
    - Dst: strchr
      Src: /src/curl/lib/ftp.c:926,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/ftp.c:935,1
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:937,1
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:944,1
    - Dst: strchr
      Src: /src/curl/lib/ftp.c:949,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ftp.c:954,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/ftp.c:956,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ftp.c:957,1
    - Dst: Curl_conn_get_remote_addr
      Src: /src/curl/lib/ftp.c:971,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:973,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:974,1
    - Dst: memcpy
      Src: /src/curl/lib/ftp.c:977,1
    - Dst: Curl_if2ip
      Src: /src/curl/lib/ftp.c:981,1
    - Dst: Curl_ipv6_scope
      Src: /src/curl/lib/ftp.c:983,1
    - Dst: memcpy
      Src: /src/curl/lib/ftp.c:989,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 9
    argNames:
    - data
    - conn
    - string_ftpport
    - ss
    - port_minp
    - port_maxp
    - hostp
    - hbuf
    - hbuflen
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - struct Curl_sockaddr_storage*
    - unsigned short*
    - unsigned short*
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 882
    functionDepth: 8
    functionLinenumber: 882
    functionLinenumberEnd: 1006
    functionName: ftp_port_parse_string
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - curlx_str_single
    - DEBUGASSERT
    - curlx_str_number
    - Curl_if2ip
    - strchr
    - curlx_inet_pton
    - strlen
    - Curl_conn_get_remote_addr
    - Curl_ipv6_scope
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_port_parse_string(struct Curl_easy *data,\n                                      struct
      connectdata *conn,\n                                      const char *string_ftpport,\n
      \                                     struct Curl_sockaddr_storage *ss,\n                                      unsigned
      short *port_minp,\n                                      unsigned short *port_maxp,\n
      \                                     const char **hostp,\n                                      char
      *hbuf, size_t hbuflen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/curl/lib/ftp.c:1029,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1030,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/ftp.c:1031,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/ftp.c:1037,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/ftp.c:1041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 8
    argNames:
    - data
    - conn
    - ss
    - sslenp
    - hostp
    - hbuf
    - hbuflen
    - non_localp
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_storage*
    - curl_socklen_t*
    - char**
    - char*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1050
    functionName: ftp_port_default_host
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_strerror
    - failf
    - curlx_inet_ntop
    - getsockname
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_port_default_host(struct Curl_easy *data,\n                                      struct
      connectdata *conn,\n                                      struct Curl_sockaddr_storage
      *ss,\n                                      curl_socklen_t *sslenp,\n                                      const
      char **hostp,\n                                      char *hbuf, size_t hbuflen,\n
      \                                     bool *non_localp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_resolv_blocking
      Src: /src/curl/lib/ftp.c:1064,1
    - Dst: Curl_resolv_dns_queries
      Src: /src/curl/lib/ftp.c:1065,1
    - Dst: Curl_conn_get_transport
      Src: /src/curl/lib/ftp.c:1066,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1068,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:1070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - data
    - conn
    - host
    - dns_entryp
    - resp
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - struct Curl_dns_entry**
    - struct Curl_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1055
    functionDepth: 6
    functionLinenumber: 1055
    functionLinenumberEnd: 1074
    functionName: ftp_port_resolve_host
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_resolv_dns_queries
    - failf
    - DEBUGASSERT
    - Curl_conn_get_transport
    - Curl_resolv_blocking
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_port_resolve_host(struct Curl_easy *data,\n                                      struct
      connectdata *conn,\n                                      const char *host,\n
      \                                     struct Curl_dns_entry **dns_entryp,\n
      \                                     const struct Curl_addrinfo **resp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_socket_open
      Src: /src/curl/lib/ftp.c:1092,1
    - Dst: Curl_conn_get_transport
      Src: /src/curl/lib/ftp.c:1093,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1104,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/ftp.c:1105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - data
    - conn
    - res
    - aip
    - portsockp
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_addrinfo*
    - struct Curl_addrinfo**
    - curl_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1079
    functionDepth: 4
    functionLinenumber: 1079
    functionLinenumberEnd: 1110
    functionName: ftp_port_open_socket
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_strerror
    - Curl_conn_get_transport
    - Curl_socket_open
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_port_open_socket(struct Curl_easy *data,\n                                     struct
      connectdata *conn,\n                                     const struct Curl_addrinfo
      *res,\n                                     const struct Curl_addrinfo **aip,\n
      \                                    curl_socket_t *portsockp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/ftp.c:1136,1
    - Dst: htons
      Src: /src/curl/lib/ftp.c:1141,1
    - Dst: htons
      Src: /src/curl/lib/ftp.c:1144,1
    - Dst: bind
      Src: /src/curl/lib/ftp.c:1146,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:1152,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/ftp.c:1153,1
    - Dst: getsockname
      Src: /src/curl/lib/ftp.c:1156,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1157,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/ftp.c:1158,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1166,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/ftp.c:1167,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1177,1
    - Dst: getsockname
      Src: /src/curl/lib/ftp.c:1185,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1186,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/ftp.c:1187,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:1190,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 9
    argNames:
    - data
    - conn
    - portsock
    - ai
    - ss
    - sslen_io
    - port_min
    - port_max
    - non_local
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - curl_socket_t
    - struct Curl_addrinfo*
    - struct Curl_sockaddr_storage*
    - curl_socklen_t*
    - unsigned short
    - unsigned short
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1192
    functionName: ftp_port_bind_socket
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - htons
    - memcpy
    - getsockname
    - failf
    - bind
    - curlx_strerror
    - infof
    - CURL_TRC_FTP
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_port_bind_socket(struct Curl_easy *data,\n                                     struct
      connectdata *conn,\n                                     curl_socket_t portsock,\n
      \                                    const struct Curl_addrinfo *ai,\n                                     struct
      Curl_sockaddr_storage *ss,\n                                     curl_socklen_t
      *sslen_io,\n                                     unsigned short port_min,\n
      \                                    unsigned short port_max,\n                                     bool
      non_local)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/curl/lib/ftp.c:1201,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1202,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/ftp.c:1203,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - portsock
    argTypes:
    - struct Curl_easy*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1208
    functionName: ftp_port_listen
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - listen
    - CURL_TRC_FTP
    - failf
    - curlx_strerror
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ftp_port_listen(struct Curl_easy *data, curl_socket_t portsock)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_printable_address
      Src: /src/curl/lib/ftp.c:1236,1
    - Dst: ntohs
      Src: /src/curl/lib/ftp.c:1257,1
    - Dst: ntohs
      Src: /src/curl/lib/ftp.c:1261,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1276,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1279,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/ftp.c:1280,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/ftp.c:1301,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1303,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1305,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/ftp.c:1306,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1315,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 6
    argNames:
    - data
    - ftpc
    - conn
    - ss
    - ai
    - fcmd
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct connectdata*
    - struct Curl_sockaddr_storage*
    - struct Curl_addrinfo*
    - ftpport
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1213
    functionDepth: 7
    functionLinenumber: 1213
    functionLinenumberEnd: 1317
    functionName: ftp_port_send_command
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - failf
    - ntohs
    - Curl_printable_address
    - curl_easy_strerror
    - ftp_state
    - Curl_pp_sendf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_port_send_command(struct Curl_easy *data,\n                                      struct
      ftp_conn *ftpc,\n                                      struct connectdata *conn,\n
      \                                     struct Curl_sockaddr_storage *ss,\n                                      const
      struct Curl_addrinfo *ai,\n                                      ftpport fcmd)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ftp_port_parse_string
      Src: /src/curl/lib/ftp.c:1346,1
    - Dst: ftp_port_default_host
      Src: /src/curl/lib/ftp.c:1351,1
    - Dst: ftp_port_resolve_host
      Src: /src/curl/lib/ftp.c:1356,1
    - Dst: ftp_port_open_socket
      Src: /src/curl/lib/ftp.c:1360,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:1362,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:1363,1
    - Dst: ftp_port_bind_socket
      Src: /src/curl/lib/ftp.c:1366,1
    - Dst: ftp_port_listen
      Src: /src/curl/lib/ftp.c:1372,1
    - Dst: ftp_port_send_command
      Src: /src/curl/lib/ftp.c:1376,1
    - Dst: Curl_conn_tcp_listen_set
      Src: /src/curl/lib/ftp.c:1380,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/ftp.c:1388,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1390,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/ftp.c:1395,1
    - Dst: Curl_ssl_cfilter_add
      Src: /src/curl/lib/ftp.c:1396,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/ftp.c:1399,1
    - Dst: Curl_expire
      Src: /src/curl/lib/ftp.c:1400,1
    - Dst: Curl_socket_close
      Src: /src/curl/lib/ftp.c:1405,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - data
    - ftpc
    - fcmd
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - ftpport
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1325
    functionDepth: 9
    functionLinenumber: 1325
    functionLinenumberEnd: 1407
    functionName: ftp_state_use_port
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_port_listen
    - ftp_port_send_command
    - Curl_conn_tcp_listen_set
    - Curl_pgrsTime
    - ftp_port_default_host
    - ftp_port_parse_string
    - Curl_socket_close
    - Curl_dns_entry_unlink
    - ftp_state
    - Curl_ssl_cfilter_add
    - ftp_port_open_socket
    - Curl_expire
    - CURL_TRC_FTP
    - FTP_CSTATE
    - ftp_port_bind_socket
    - ftp_port_resolve_host
    - Curl_conn_is_ssl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_use_port(struct Curl_easy *data,\n                                   struct
      ftp_conn *ftpc,\n                                   ftpport fcmd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1440,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1443,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:1444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - data
    - ftpc
    - conn
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1409
    functionDepth: 3
    functionLinenumber: 1409
    functionLinenumberEnd: 1447
    functionName: ftp_state_use_pasv
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - infof
    - ftp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_use_pasv(struct Curl_easy *data,\n                                   struct
      ftp_conn *ftpc,\n                                   struct connectdata *conn)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1467,1
    - Dst: ftp_state_quote
      Src: /src/curl/lib/ftp.c:1468,1
    - Dst: ftp_state_use_port
      Src: /src/curl/lib/ftp.c:1472,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1480,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1485,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1487,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1489,1
    - Dst: ftp_state_use_pasv
      Src: /src/curl/lib/ftp.c:1492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1456
    functionDepth: 10
    functionLinenumber: 1456
    functionLinenumberEnd: 1495
    functionName: ftp_state_prepare_transfer
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state
    - Curl_pp_sendf
    - ftp_state_use_port
    - ftp_state_quote
    - ftp_state_use_pasv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_prepare_transfer(struct Curl_easy *data,\n                                           struct
      ftp_conn *ftpc,\n                                           struct FTP *ftp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1508,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1510,1
    - Dst: ftp_state_prepare_transfer
      Src: /src/curl/lib/ftp.c:1513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1497
    functionDepth: 11
    functionLinenumber: 1497
    functionLinenumberEnd: 1516
    functionName: ftp_state_rest
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - ftp_state_prepare_transfer
    - ftp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_rest(struct Curl_easy *data,\n                               struct
      ftp_conn *ftpc,\n                               struct FTP *ftp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1528,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1530,1
    - Dst: ftp_state_rest
      Src: /src/curl/lib/ftp.c:1533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1518
    functionDepth: 12
    functionLinenumber: 1518
    functionLinenumberEnd: 1536
    functionName: ftp_state_size
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state_rest
    - Curl_pp_sendf
    - ftp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_size(struct Curl_easy *data,\n                               struct
      ftp_conn *ftpc,\n                               struct FTP *ftp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/curl/lib/ftp.c:1564,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/ftp.c:1577,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1587,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:1588,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1591,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1538
    functionDepth: 7
    functionLinenumber: 1538
    functionLinenumberEnd: 1594
    functionName: ftp_state_list
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - strrchr
    - ftp_state
    - curlx_free
    - Curl_pp_sendf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_list(struct Curl_easy *data,\n                               struct
      ftp_conn *ftpc,\n                               struct FTP *ftp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ftp_state_quote
      Src: /src/curl/lib/ftp.c:1601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1602
    functionName: ftp_state_list_prequote
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state_quote
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_list_prequote(struct Curl_easy *data,\n                                        struct
      ftp_conn *ftpc,\n                                        struct FTP *ftp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ftp_state_quote
      Src: /src/curl/lib/ftp.c:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1604
    functionDepth: 1
    functionLinenumber: 1604
    functionLinenumberEnd: 1610
    functionName: ftp_state_retr_prequote
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state_quote
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_retr_prequote(struct Curl_easy *data,\n                                        struct
      ftp_conn *ftpc,\n                                        struct FTP *ftp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ftp_state_quote
      Src: /src/curl/lib/ftp.c:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1612
    functionDepth: 1
    functionLinenumber: 1612
    functionLinenumberEnd: 1618
    functionName: ftp_state_stor_prequote
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state_quote
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_stor_prequote(struct Curl_easy *data,\n                                        struct
      ftp_conn *ftpc,\n                                        struct FTP *ftp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ftp_need_type
      Src: /src/curl/lib/ftp.c:1630,1
    - Dst: ftp_nb_type
      Src: /src/curl/lib/ftp.c:1640,1
    - Dst: ftp_state_size
      Src: /src/curl/lib/ftp.c:1646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1620
    functionDepth: 13
    functionLinenumber: 1620
    functionLinenumberEnd: 1649
    functionName: ftp_state_type
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_need_type
    - ftp_state_size
    - ftp_nb_type
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_type(struct Curl_easy *data,\n                               struct
      ftp_conn *ftpc,\n                               struct FTP *ftp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1664,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1667,1
    - Dst: ftp_state_type
      Src: /src/curl/lib/ftp.c:1670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1653
    functionDepth: 14
    functionLinenumber: 1653
    functionLinenumberEnd: 1673
    functionName: ftp_state_mdtm
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 1
    functionsReached:
    - Curl_pp_sendf
    - ftp_state_type
    - ftp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_mdtm(struct Curl_easy *data,\n                               struct
      ftp_conn *ftpc,\n                               struct FTP *ftp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1702,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1704,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftp.c:1713,1
    - Dst: struct Curl_easy*::set::seek_func
      Src: /src/curl/lib/ftp.c:1714,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftp.c:1716,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1722,1
    - Dst: curlx_sotouz
      Src: /src/curl/lib/ftp.c:1731,1
    - Dst: struct Curl_easy*::state::fread_func
      Src: /src/curl/lib/ftp.c:1734,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1741,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:1751,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/ftp.c:1754,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1760,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1767,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1770,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - data
    - ftpc
    - ftp
    - sizechecked
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1676
    functionDepth: 3
    functionLinenumber: 1676
    functionLinenumberEnd: 1773
    functionName: ftp_state_ul_setup
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_xfer_setup_nop
    - struct Curl_easy*::set::seek_func
    - curlx_sotouz
    - ftp_state
    - infof
    - Curl_pp_sendf
    - struct Curl_easy*::state::fread_func
    - Curl_set_in_callback
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_ul_setup(struct Curl_easy *data,\n                                   struct
      ftp_conn *ftpc,\n                                   struct FTP *ftp,\n                                   bool
      sizechecked)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:1782,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:1782,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1784,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:1793,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1805,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1817,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/ftp.c:1829,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:1830,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1835,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:1840,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1843,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1846,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1850,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1852,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 4
    argNames:
    - data
    - ftpc
    - ftp
    - filesize
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1775
    functionDepth: 3
    functionLinenumber: 1775
    functionLinenumberEnd: 1856
    functionName: ftp_state_retr
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_xfer_setup_nop
    - infof
    - ftp_state
    - Curl_pp_sendf
    - CURL_TRC_FTP
    - FTP_CSTATE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_retr(struct Curl_easy *data,\n                               struct
      ftp_conn *ftpc,\n                               struct FTP *ftp,\n                               curl_off_t
      filesize)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1911,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1914,1
    - Dst: ftp_state_cwd
      Src: /src/curl/lib/ftp.c:1924,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1928,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/ftp.c:1931,1
    - Dst: ftp_state_retr
      Src: /src/curl/lib/ftp.c:1932,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1948,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1950,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1953,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1955,1
    - Dst: ftp_state_ul_setup
      Src: /src/curl/lib/ftp.c:1961,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:1966,1
    - Dst: ftp_state_list
      Src: /src/curl/lib/ftp.c:1967,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 5
    argNames:
    - data
    - ftpc
    - ftp
    - init
    - instate
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - bool
    - ftpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1858
    functionDepth: 8
    functionLinenumber: 1858
    functionLinenumberEnd: 1973
    functionName: ftp_state_quote
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 4
    functionsReached:
    - ftp_state_retr
    - ftp_state_ul_setup
    - Curl_pgrsSetDownloadSize
    - ftp_state
    - Curl_pp_sendf
    - ftp_state_list
    - ftp_state_cwd
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_quote(struct Curl_easy *data,\n                                struct
      ftp_conn *ftpc,\n                                struct FTP *ftp,\n                                bool
      init,\n                                ftpstate instate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/ftp.c:1989,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:1993,1
    - Dst: close_secondarysocket
      Src: /src/curl/lib/ftp.c:1996,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:1999,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - data
    - ftpc
    - conn
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1977
    functionDepth: 4
    functionLinenumber: 1977
    functionLinenumberEnd: 2006
    functionName: ftp_epsv_disable
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    - ftp_state
    - infof
    - Curl_pp_sendf
    - close_secondarysocket
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_epsv_disable(struct Curl_easy *data,\n                                 struct
      ftp_conn *ftpc,\n                                 struct connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strdup
      Src: /src/curl/lib/ftp.c:2020,1
    - Dst: Curl_conn_get_ip_info
      Src: /src/curl/lib/ftp.c:2023,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/ftp.c:2025,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - data
    - newhostp
    argTypes:
    - struct Curl_easy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2008
    functionDepth: 2
    functionLinenumber: 2008
    functionLinenumberEnd: 2033
    functionName: ftp_control_addr_dup
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    - curlx_strdup
    - Curl_conn_get_ip_info
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ftp_control_addr_dup(struct Curl_easy *data, char **newhostp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/lib/ftp.c:2046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - p
    - array
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2051
    functionName: match_pasv_6nums
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_str_number
    linkageType: ''
    returnType: bool
    signature: "bool match_pasv_6nums(const char *p,\n                             unsigned
      int *array)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftp.c:2062,1
    - Dst: strchr
      Src: /src/curl/lib/ftp.c:2067,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftp.c:2073,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ftp.c:2076,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2077,1
    - Dst: ftp_control_addr_dup
      Src: /src/curl/lib/ftp.c:2081,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2089,1
    - Dst: match_pasv_6nums
      Src: /src/curl/lib/ftp.c:2108,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2114,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2122,1
    - Dst: ftp_control_addr_dup
      Src: /src/curl/lib/ftp.c:2124,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/ftp.c:2129,1
    - Dst: ftp_epsv_disable
      Src: /src/curl/lib/ftp.c:2138,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2141,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:2145,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/ftp.c:2146,1
    - Dst: Curl_peer_create
      Src: /src/curl/lib/ftp.c:2147,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/ftp.c:2155,1
    - Dst: Curl_peer_create
      Src: /src/curl/lib/ftp.c:2156,1
    - Dst: Curl_conn_setup
      Src: /src/curl/lib/ftp.c:2163,1
    - Dst: ftp_epsv_disable
      Src: /src/curl/lib/ftp.c:2170,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2185,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2191,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:2194,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 79
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftpcode
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2053
    functionDepth: 7
    functionLinenumber: 2053
    functionLinenumberEnd: 2196
    functionName: ftp_state_pasv_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - failf
    - DEBUGASSERT
    - ftp_epsv_disable
    - curlx_str_number
    - infof
    - curlx_dyn_ptr
    - match_pasv_6nums
    - Curl_peer_create
    - Curl_peer_unlink
    - ftp_state
    - curlx_free
    - strchr
    - ISDIGIT
    - ftp_control_addr_dup
    - Curl_conn_setup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_pasv_resp(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc,\n                                    int ftpcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_statemach
      Src: /src/curl/lib/ftp.c:2203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - ftpc
    - done
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2199
    functionDepth: 3
    functionLinenumber: 2199
    functionLinenumberEnd: 2211
    functionName: ftp_statemach
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_statemach(struct Curl_easy *data,\n                              struct
      ftp_conn *ftpc,\n                              bool *done)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:2225,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/ftp.c:2226,1
    - Dst: Curl_conn_is_tcp_listen
      Src: /src/curl/lib/ftp.c:2248,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/ftp.c:2249,1
    - Dst: Curl_conn_is_ip_connected
      Src: /src/curl/lib/ftp.c:2253,1
    - Dst: ftp_epsv_disable
      Src: /src/curl/lib/ftp.c:2257,1
    - Dst: ftp_statemach
      Src: /src/curl/lib/ftp.c:2266,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/ftp.c:2289,1
    - Dst: ftp_initiate_transfer
      Src: /src/curl/lib/ftp.c:2296,1
    - Dst: ftp_check_ctrl_on_data_wait
      Src: /src/curl/lib/ftp.c:2305,1
    - Dst: ftp_nb_type
      Src: /src/curl/lib/ftp.c:2311,1
    - Dst: ftp_statemach
      Src: /src/curl/lib/ftp.c:2316,1
    - Dst: Curl_range
      Src: /src/curl/lib/ftp.c:2328,1
    - Dst: ftp_nb_type
      Src: /src/curl/lib/ftp.c:2345,1
    - Dst: ftp_nb_type
      Src: /src/curl/lib/ftp.c:2353,1
    - Dst: ftp_nb_type
      Src: /src/curl/lib/ftp.c:2357,1
    - Dst: ftp_statemach
      Src: /src/curl/lib/ftp.c:2364,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/ftp.c:2372,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:2377,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:2377,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 82
    argCount: 2
    argNames:
    - data
    - more
    argTypes:
    - struct Curl_easy*
    - domore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2222
    functionDepth: 10
    functionLinenumber: 2222
    functionLinenumberEnd: 2382
    functionName: ftp_do_more
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_ip_connected
    - Curl_conn_is_tcp_listen
    - Curl_xfer_setup_nop
    - ftp_epsv_disable
    - ftp_statemach
    - Curl_conn_connect
    - Curl_conn_meta_get
    - Curl_meta_get
    - ftp_check_ctrl_on_data_wait
    - ftp_nb_type
    - Curl_range
    - CURL_TRC_FTP
    - ftp_initiate_transfer
    - FTP_CSTATE
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ftp_do_more(struct Curl_easy *data, domore *more)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ftp_do_more
      Src: /src/curl/lib/ftp.c:2392,1
    - Dst: close_secondarysocket
      Src: /src/curl/lib/ftp.c:2395,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/ftp.c:2402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - data
    - ftpc
    - ftp
    - connected
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2385
    functionDepth: 11
    functionLinenumber: 2385
    functionLinenumberEnd: 2410
    functionName: ftp_dophase_done
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_setup_nop
    - close_secondarysocket
    - ftp_do_more
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_dophase_done(struct Curl_easy *data,\n                                 struct
      ftp_conn *ftpc,\n                                 struct FTP *ftp,\n                                 bool
      connected)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2427,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2433,1
    - Dst: ftp_state_use_port
      Src: /src/curl/lib/ftp.c:2438,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2441,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2442,1
    - Dst: ftp_dophase_done
      Src: /src/curl/lib/ftp.c:2443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - data
    - ftpc
    - ftp
    - ftpcode
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2412
    functionDepth: 12
    functionLinenumber: 2412
    functionLinenumberEnd: 2447
    functionName: ftp_state_port_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    - ftp_state
    - infof
    - ftp_state_use_port
    - ftp_dophase_done
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_port_resp(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc,\n                                    struct FTP *ftp,\n                                    int
      ftpcode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftp.c:2452,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftp.c:2452,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/ftp.c:2455,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/ftp.c:2455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2450
    functionDepth: 1
    functionLinenumber: 2450
    functionLinenumberEnd: 2457
    functionName: twodigit
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 1
    functionsReached:
    - curlx_hexval
    - ISDIGIT
    linkageType: ''
    returnType: bool
    signature: bool twodigit(const char *p, int *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:2468,1
    - Dst: twodigit
      Src: /src/curl/lib/ftp.c:2468,1
    - Dst: twodigit
      Src: /src/curl/lib/ftp.c:2468,1
    - Dst: twodigit
      Src: /src/curl/lib/ftp.c:2469,1
    - Dst: twodigit
      Src: /src/curl/lib/ftp.c:2469,1
    - Dst: twodigit
      Src: /src/curl/lib/ftp.c:2470,1
    - Dst: twodigit
      Src: /src/curl/lib/ftp.c:2470,1
    - Dst: twodigit
      Src: /src/curl/lib/ftp.c:2471,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 7
    argCount: 7
    argNames:
    - p
    - year
    - month
    - day
    - hour
    - minute
    - second
    argTypes:
    - char*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2464
    functionDepth: 2
    functionLinenumber: 2464
    functionLinenumberEnd: 2479
    functionName: ftp_213_date
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 1
    functionsReached:
    - strlen
    - twodigit
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST ftp_213_date(const char *p, int *year, int *month, int *day,\n
      \                          int *hour, int *minute, int *second)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_client_write
      Src: /src/curl/lib/ftp.c:2501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - buf
    - blen
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2481
    functionDepth: 3
    functionLinenumber: 2481
    functionLinenumberEnd: 2504
    functionName: client_write_header
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_client_write
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode client_write_header(struct Curl_easy *data,\n                                    char
      *buf, size_t blen)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftp.c:2519,1
    - Dst: ftp_213_date
      Src: /src/curl/lib/ftp.c:2521,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/ftp.c:2524,1
    - Dst: Curl_getdate_capped
      Src: /src/curl/lib/ftp.c:2528,1
    - Dst: curlx_gmtime
      Src: /src/curl/lib/ftp.c:2552,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/ftp.c:2558,1
    - Dst: client_write_header
      Src: /src/curl/lib/ftp.c:2568,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2575,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2580,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2591,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2594,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2600,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2603,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2610,1
    - Dst: ftp_state_type
      Src: /src/curl/lib/ftp.c:2615,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 4
    argNames:
    - data
    - ftpc
    - ftp
    - ftpcode
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2506
    functionDepth: 14
    functionLinenumber: 2506
    functionLinenumberEnd: 2618
    functionName: ftp_state_mdtm_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - client_write_header
    - curlx_gmtime
    - ftp_state_type
    - infof
    - curlx_dyn_ptr
    - ftp_state
    - Curl_getdate_capped
    - ftp_213_date
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_mdtm_resp(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc,\n                                    struct FTP *ftp,\n                                    int
      ftpcode)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2632,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2636,1
    - Dst: ftp_state_size
      Src: /src/curl/lib/ftp.c:2640,1
    - Dst: ftp_state_list
      Src: /src/curl/lib/ftp.c:2642,1
    - Dst: ftp_state_retr_prequote
      Src: /src/curl/lib/ftp.c:2644,1
    - Dst: ftp_state_stor_prequote
      Src: /src/curl/lib/ftp.c:2646,1
    - Dst: ftp_state_list_prequote
      Src: /src/curl/lib/ftp.c:2648,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - data
    - ftpc
    - ftp
    - ftpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - int
    - ftpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2620
    functionDepth: 13
    functionLinenumber: 2620
    functionLinenumberEnd: 2651
    functionName: ftp_state_type_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state_stor_prequote
    - ftp_state_size
    - failf
    - ftp_state_retr_prequote
    - infof
    - ftp_state_list_prequote
    - ftp_state_list
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_type_resp(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc,\n                                    struct FTP *ftp,\n                                    int
      ftpcode,\n                                    ftpstate instate)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftp.c:2661,1
    - Dst: memchr
      Src: /src/curl/lib/ftp.c:2670,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftp.c:2675,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ftp.c:2680,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2687,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/ftp.c:2695,1
    - Dst: client_write_header
      Src: /src/curl/lib/ftp.c:2698,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/ftp.c:2702,1
    - Dst: ftp_state_rest
      Src: /src/curl/lib/ftp.c:2703,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/ftp.c:2706,1
    - Dst: ftp_state_retr
      Src: /src/curl/lib/ftp.c:2707,1
    - Dst: ftp_state_ul_setup
      Src: /src/curl/lib/ftp.c:2711,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - data
    - ftpc
    - ftp
    - ftpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - int
    - ftpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2653
    functionDepth: 12
    functionLinenumber: 2653
    functionLinenumberEnd: 2715
    functionName: ftp_state_size_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state_rest
    - curl_msnprintf
    - ftp_state_retr
    - client_write_header
    - failf
    - ftp_state_ul_setup
    - Curl_pgrsSetDownloadSize
    - memchr
    - curlx_str_number
    - curlx_dyn_ptr
    - ISDIGIT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_size_resp(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc,\n                                    struct FTP *ftp,\n                                    int
      ftpcode,\n                                    ftpstate instate)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: client_write_header
      Src: /src/curl/lib/ftp.c:2730,1
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:2730,1
    - Dst: ftp_state_prepare_transfer
      Src: /src/curl/lib/ftp.c:2734,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2739,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:2743,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2745,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - data
    - ftpc
    - ftp
    - ftpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - int
    - ftpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2717
    functionDepth: 11
    functionLinenumber: 2717
    functionLinenumberEnd: 2751
    functionName: ftp_state_rest_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - client_write_header
    - failf
    - ftp_state_prepare_transfer
    - ftp_state
    - Curl_pp_sendf
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_rest_resp(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc,\n                                    struct FTP *ftp,\n                                    int
      ftpcode,\n                                    ftpstate instate)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2760,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2761,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2769,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/ftp.c:2771,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2776,1
    - Dst: ftp_check_ctrl_on_data_wait
      Src: /src/curl/lib/ftp.c:2778,1
    - Dst: ftp_initiate_transfer
      Src: /src/curl/lib/ftp.c:2782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftpcode
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2753
    functionDepth: 10
    functionLinenumber: 2753
    functionLinenumberEnd: 2783
    functionName: ftp_state_stor_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    - infof
    - Curl_conn_connect
    - ftp_state
    - ftp_check_ctrl_on_data_wait
    - ftp_initiate_transfer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_stor_resp(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc,\n                                    int ftpcode)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftp.c:2835,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftp.c:2840,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ftp.c:2842,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/ftp.c:2843,1
    - Dst: strncmp
      Src: /src/curl/lib/ftp.c:2844,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2860,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2863,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/ftp.c:2868,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:2873,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2874,1
    - Dst: ftp_check_ctrl_on_data_wait
      Src: /src/curl/lib/ftp.c:2876,1
    - Dst: ftp_initiate_transfer
      Src: /src/curl/lib/ftp.c:2880,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2886,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2889,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 45
    argCount: 5
    argNames:
    - data
    - ftpc
    - ftp
    - ftpcode
    - instate
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - int
    - ftpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2786
    functionDepth: 10
    functionLinenumber: 2786
    functionLinenumberEnd: 2897
    functionName: ftp_state_get_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - failf
    - curlx_dyn_len
    - curlx_str_number
    - infof
    - curlx_dyn_ptr
    - Curl_conn_connect
    - ftp_state
    - ftp_check_ctrl_on_data_wait
    - ftp_initiate_transfer
    - strncmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_get_resp(struct Curl_easy *data,\n                                   struct
      ftp_conn *ftpc,\n                                   struct FTP *ftp,\n                                   int
      ftpcode,\n                                   ftpstate instate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/ftp.c:2905,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:2920,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2922,1
    - Dst: ftp_state_pwd
      Src: /src/curl/lib/ftp.c:2925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - ftpc
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2900
    functionDepth: 4
    functionLinenumber: 2900
    functionLinenumberEnd: 2928
    functionName: ftp_state_loggedin
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_conn_is_ssl
    - ftp_state_pwd
    - ftp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_loggedin(struct Curl_easy *data,\n                                   struct
      ftp_conn *ftpc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:2941,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/ftp.c:2942,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2944,1
    - Dst: ftp_state_loggedin
      Src: /src/curl/lib/ftp.c:2949,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:2953,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2956,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2959,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:2972,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:2976,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2980,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftpcode
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2931
    functionDepth: 5
    functionLinenumber: 2931
    functionLinenumberEnd: 2985
    functionName: ftp_state_user_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_creds_passwd
    - failf
    - ftp_state
    - Curl_pp_sendf
    - ftp_state_loggedin
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_user_resp(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc,\n                                    int ftpcode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/ftp.c:2994,1
    - Dst: ftp_state_loggedin
      Src: /src/curl/lib/ftp.c:2998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftpcode
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2988
    functionDepth: 5
    functionLinenumber: 2988
    functionLinenumberEnd: 3001
    functionName: ftp_state_acct_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state_loggedin
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_state_acct_resp(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc,\n                                    int ftpcode)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftp.c:3011,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/ftp.c:3015,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/ftp.c:3036,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftp.c:3041,1
    - Dst: ISCNTRL
      Src: /src/curl/lib/ftp.c:3047,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/ftp.c:3049,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/ftp.c:3052,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/ftp.c:3055,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftp.c:3072,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3075,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/ftp.c:3077,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:3082,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:3084,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:3086,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/ftp.c:3087,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3092,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/ftp.c:3098,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:3099,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3102,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:3103,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:3103,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftpcode
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3003
    functionDepth: 3
    functionLinenumber: 3003
    functionLinenumberEnd: 3105
    functionName: ftp_pwd_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_strdup
    - infof
    - curlx_dyn_ptr
    - Curl_pp_sendf
    - curlx_free
    - ftp_state
    - CURL_TRC_FTP
    - FTP_CSTATE
    - ISCNTRL
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_pwd_resp(struct Curl_easy *data,\n                             struct
      ftp_conn *ftpc,\n                             int ftpcode)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/ftp.c:3118,1
    - Dst: ftp_state_user_resp
      Src: /src/curl/lib/ftp.c:3119,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3122,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/ftp.c:3127,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3143,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3147,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3149,1
    - Dst: ftp_state_user
      Src: /src/curl/lib/ftp.c:3152,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - data
    - conn
    - ftpc
    - ftpcode
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - struct ftp_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3109
    functionDepth: 6
    functionLinenumber: 3109
    functionLinenumberEnd: 3154
    functionName: ftp_wait_resp
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state_user_resp
    - failf
    - ftp_state
    - Curl_pp_sendf
    - Curl_conn_is_ssl
    - ftp_state_user
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_wait_resp(struct Curl_easy *data,\n                              struct
      connectdata *conn,\n                              struct ftp_conn *ftpc,\n                              int
      ftpcode)"
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:3161,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/ftp.c:3162,1
    - Dst: Curl_pp_flushsend
      Src: /src/curl/lib/ftp.c:3170,1
    - Dst: ftp_readresp
      Src: /src/curl/lib/ftp.c:3172,1
    - Dst: ftp_wait_resp
      Src: /src/curl/lib/ftp.c:3179,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/ftp.c:3198,1
    - Dst: Curl_ssl_cfilter_add
      Src: /src/curl/lib/ftp.c:3199,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/ftp.c:3206,1
    - Dst: ftp_state_user
      Src: /src/curl/lib/ftp.c:3209,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3215,1
    - Dst: ftp_state_user
      Src: /src/curl/lib/ftp.c:3225,1
    - Dst: ftp_state_user_resp
      Src: /src/curl/lib/ftp.c:3231,1
    - Dst: ftp_state_acct_resp
      Src: /src/curl/lib/ftp.c:3235,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3240,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3243,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3259,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3261,1
    - Dst: ftp_state_pwd
      Src: /src/curl/lib/ftp.c:3264,1
    - Dst: Curl_ssl_cfilter_remove
      Src: /src/curl/lib/ftp.c:3275,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3279,1
    - Dst: ftp_state_pwd
      Src: /src/curl/lib/ftp.c:3283,1
    - Dst: ftp_pwd_resp
      Src: /src/curl/lib/ftp.c:3287,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftp.c:3292,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/ftp.c:3304,1
    - Dst: curl_strequal
      Src: /src/curl/lib/ftp.c:3309,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3311,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:3313,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:3317,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3319,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:3324,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3331,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:3332,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:3332,1
    - Dst: ftp_state_pwd
      Src: /src/curl/lib/ftp.c:3338,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3342,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:3343,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:3343,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3353,1
    - Dst: ftp_state_quote
      Src: /src/curl/lib/ftp.c:3357,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3373,1
    - Dst: pathlen
      Src: /src/curl/lib/ftp.c:3374,1
    - Dst: pathpiece
      Src: /src/curl/lib/ftp.c:3375,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3377,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3381,1
    - Dst: ftp_state_mdtm
      Src: /src/curl/lib/ftp.c:3391,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3395,1
    - Dst: pathlen
      Src: /src/curl/lib/ftp.c:3396,1
    - Dst: pathpiece
      Src: /src/curl/lib/ftp.c:3397,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3405,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3409,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3411,1
    - Dst: pathlen
      Src: /src/curl/lib/ftp.c:3412,1
    - Dst: pathpiece
      Src: /src/curl/lib/ftp.c:3413,1
    - Dst: ftp_state_mdtm_resp
      Src: /src/curl/lib/ftp.c:3418,1
    - Dst: ftp_state_type_resp
      Src: /src/curl/lib/ftp.c:3426,1
    - Dst: ftp_state_size_resp
      Src: /src/curl/lib/ftp.c:3432,1
    - Dst: ftp_state_rest_resp
      Src: /src/curl/lib/ftp.c:3437,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3443,1
    - Dst: ftp_state_use_pasv
      Src: /src/curl/lib/ftp.c:3446,1
    - Dst: ftp_state_pasv_resp
      Src: /src/curl/lib/ftp.c:3450,1
    - Dst: ftp_state_port_resp
      Src: /src/curl/lib/ftp.c:3454,1
    - Dst: ftp_state_get_resp
      Src: /src/curl/lib/ftp.c:3459,1
    - Dst: ftp_state_stor_resp
      Src: /src/curl/lib/ftp.c:3463,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3469,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 197
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3156
    functionDepth: 15
    functionLinenumber: 3156
    functionLinenumberEnd: 3474
    functionName: ftp_pp_statemachine
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_state_user_resp
    - ftp_pwd_resp
    - ftp_state_use_pasv
    - curlx_dyn_ptr
    - Curl_meta_get
    - Curl_pp_sendf
    - ftp_state_mdtm
    - ftp_readresp
    - curlx_memdup0
    - CURL_TRC_FTP
    - ftp_state_stor_resp
    - ftp_state_mdtm_resp
    - ftp_state_acct_resp
    - pathpiece
    - Curl_conn_meta_get
    - Curl_ssl_cfilter_add
    - ftp_state
    - ftp_state_type_resp
    - FTP_CSTATE
    - ftp_wait_resp
    - ftp_state_user
    - ftp_state_rest_resp
    - pathlen
    - failf
    - Curl_ssl_cfilter_remove
    - curl_strequal
    - curlx_free
    - ftp_state_quote
    - Curl_conn_is_ssl
    - ftp_state_pwd
    - Curl_pp_flushsend
    - ftp_state_pasv_resp
    - ftp_state_port_resp
    - ftp_state_get_resp
    - Curl_conn_connect
    - ftp_state_size_resp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_pp_statemachine(struct Curl_easy *data,\n                                    struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:3480,1
    - Dst: ftp_statemach
      Src: /src/curl/lib/ftp.c:3481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3477
    functionDepth: 4
    functionLinenumber: 3477
    functionLinenumberEnd: 3482
    functionName: ftp_multi_statemach
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 2
    functionsReached:
    - ftp_statemach
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_multi_statemach(struct Curl_easy *data,\n                                    bool
      *done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:3492,1
    - Dst: Curl_pp_statemach
      Src: /src/curl/lib/ftp.c:3493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - data
    - ftpc
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3484
    functionDepth: 3
    functionLinenumber: 3484
    functionLinenumberEnd: 3499
    functionName: ftp_block_statemach
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_statemach
    - CURL_TRC_FTP
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_block_statemach(struct Curl_easy *data,\n                                    struct
      ftp_conn *ftpc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:3514,1
    - Dst: PINGPONG_SETUP
      Src: /src/curl/lib/ftp.c:3521,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/ftp.c:3523,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/ftp.c:3525,1
    - Dst: Curl_pp_init
      Src: /src/curl/lib/ftp.c:3530,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/ftp.c:3530,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3534,1
    - Dst: ftp_statemach
      Src: /src/curl/lib/ftp.c:3536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3539
      start: 3509
    functionDepth: 9
    functionLinenumber: 3509
    functionLinenumberEnd: 3539
    functionName: ftp_connect
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - PINGPONG_SETUP
    - ftp_statemach
    - Curl_conn_connect
    - Curl_conn_meta_get
    - ftp_state
    - Curl_conn_is_ssl
    - Curl_pp_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_connect(struct Curl_easy *data,\n                            bool
      *done)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3576,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/ftp.c:3578,1
    - Dst: getftpresponse
      Src: /src/curl/lib/ftp.c:3579,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3585,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - data
    - ftpc
    - quote
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3594
      start: 3550
    functionDepth: 5
    functionLinenumber: 3550
    functionLinenumberEnd: 3594
    functionName: ftp_sendquote
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_pp_sendf
    - getftpresponse
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_sendquote(struct Curl_easy *data,\n                              struct
      ftp_conn *ftpc,\n                              struct curl_slist *quote)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/ftp.c:3621,1
    - Dst: connclose
      Src: /src/curl/lib/ftp.c:3627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - conn
    - ftpc
    - status
    - premature
    argTypes:
    - struct connectdata*
    - struct ftp_conn*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3631
      start: 3596
    functionDepth: 1
    functionLinenumber: 3596
    functionLinenumberEnd: 3631
    functionName: ftp_done_status
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - connclose
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_done_status(struct connectdata *conn,\n                                struct
      ftp_conn *ftpc, CURLcode status,\n                                bool premature)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftp.c:3637,1
    - Dst: struct Curl_easy*::set::chunk_end
      Src: /src/curl/lib/ftp.c:3638,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftp.c:3639,1
    - Dst: freedirs
      Src: /src/curl/lib/ftp.c:3640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - data
    - ftpc
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3633
    functionDepth: 2
    functionLinenumber: 3633
    functionLinenumberEnd: 3644
    functionName: ftp_done_wildcard
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - freedirs
    - struct Curl_easy*::set::chunk_end
    - Curl_set_in_callback
    linkageType: ''
    returnType: void
    signature: void ftp_done_wildcard(struct Curl_easy *data, struct ftp_conn *ftpc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: connclose
      Src: /src/curl/lib/ftp.c:3654,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:3655,1
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:3663,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:3665,1
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:3672,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/ftp.c:3673,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:3680,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - data
    - ftpc
    - result
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3682
      start: 3646
    functionDepth: 1
    functionLinenumber: 3646
    functionLinenumberEnd: 3682
    functionName: ftp_done_path
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - infof
    - curlx_free
    - curlx_memdup0
    - connclose
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ftp_done_path(struct Curl_easy *data, struct ftp_conn *ftpc,\n
      \                         CURLcode result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_is_setup
      Src: /src/curl/lib/ftp.c:3689,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3692,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3694,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/ftp.c:3695,1
    - Dst: connclose
      Src: /src/curl/lib/ftp.c:3697,1
    - Dst: close_secondarysocket
      Src: /src/curl/lib/ftp.c:3701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - data
    - ftpc
    - result
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3704
      start: 3684
    functionDepth: 4
    functionLinenumber: 3684
    functionLinenumberEnd: 3704
    functionName: ftp_done_secondary_socket
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    - curl_easy_strerror
    - Curl_pp_sendf
    - Curl_conn_is_setup
    - close_secondarysocket
    - connclose
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_done_secondary_socket(struct Curl_easy *data,\n                                          struct
      ftp_conn *ftpc,\n                                          CURLcode result)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/ftp.c:3723,1
    - Dst: getftpresponse
      Src: /src/curl/lib/ftp.c:3724,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3727,1
    - Dst: connclose
      Src: /src/curl/lib/ftp.c:3729,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:3738,1
    - Dst: connclose
      Src: /src/curl/lib/ftp.c:3739,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3750,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3754,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 5
    argNames:
    - data
    - ftpc
    - ftp
    - result
    - premature
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3761
      start: 3706
    functionDepth: 5
    functionLinenumber: 3706
    functionLinenumberEnd: 3761
    functionName: ftp_done_control_reply
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - failf
    - infof
    - connclose
    - getftpresponse
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_done_control_reply(struct Curl_easy *data,\n                                       struct
      ftp_conn *ftpc,\n                                       struct FTP *ftp, CURLcode
      result,\n                                       bool premature)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3780,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3790,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:3797,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 19
    argCount: 5
    argNames:
    - data
    - ftpc
    - ftp
    - result
    - premature
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3763
    functionDepth: 0
    functionLinenumber: 3763
    functionLinenumberEnd: 3802
    functionName: ftp_done_check_partial
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_done_check_partial(struct Curl_easy *data,\n                                       struct
      ftp_conn *ftpc,\n                                       struct FTP *ftp, CURLcode
      result,\n                                       bool premature)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/ftp.c:3816,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:3817,1
    - Dst: ftp_done_status
      Src: /src/curl/lib/ftp.c:3823,1
    - Dst: ftp_done_wildcard
      Src: /src/curl/lib/ftp.c:3825,1
    - Dst: ftp_done_path
      Src: /src/curl/lib/ftp.c:3826,1
    - Dst: ftp_done_secondary_socket
      Src: /src/curl/lib/ftp.c:3827,1
    - Dst: ftp_done_control_reply
      Src: /src/curl/lib/ftp.c:3828,1
    - Dst: ftp_done_check_partial
      Src: /src/curl/lib/ftp.c:3829,1
    - Dst: ftp_sendquote
      Src: /src/curl/lib/ftp.c:3837,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:3838,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:3838,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3840
      start: 3813
    functionDepth: 6
    functionLinenumber: 3813
    functionLinenumberEnd: 3840
    functionName: ftp_done
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_done_control_reply
    - ftp_sendquote
    - ftp_done_status
    - Curl_conn_meta_get
    - ftp_done_path
    - Curl_meta_get
    - ftp_done_secondary_socket
    - ftp_done_check_partial
    - CURL_TRC_FTP
    - FTP_CSTATE
    - ftp_done_wildcard
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_done(struct Curl_easy *data, CURLcode status,\n                         bool
      premature)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3859,1
    - Dst: ftp_state_type_resp
      Src: /src/curl/lib/ftp.c:3860,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:3863,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:3865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - data
    - ftpc
    - ftp
    - ascii
    - newstate
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - bool
    - ftpstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3871
      start: 3850
    functionDepth: 14
    functionLinenumber: 3850
    functionLinenumberEnd: 3871
    functionName: ftp_nb_type
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 2
    functionsReached:
    - Curl_pp_sendf
    - ftp_state_type_resp
    - ftp_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_nb_type(struct Curl_easy *data,\n                            struct
      ftp_conn *ftpc,\n                            struct FTP *ftp,\n                            bool
      ascii, ftpstate newstate)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:3890,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:3890,1
    - Dst: ftp_state_quote
      Src: /src/curl/lib/ftp.c:3900,1
    - Dst: ftp_statemach
      Src: /src/curl/lib/ftp.c:3905,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/ftp.c:3907,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:3910,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:3911,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:3913,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:3914,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:3917,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:3917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - data
    - ftpc
    - ftp
    - connected
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3920
      start: 3880
    functionDepth: 9
    functionLinenumber: 3880
    functionLinenumberEnd: 3920
    functionName: ftp_perform
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 1
    functionsReached:
    - Curl_conn_is_connected
    - ftp_statemach
    - infof
    - ftp_state_quote
    - CURL_TRC_FTP
    - FTP_CSTATE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_perform(\n  struct Curl_easy *data,\n  struct ftp_conn
      *ftpc,\n  struct FTP *ftp,\n  bool *connected,  /* connect status after PASV
      / PORT */\n  bool *dophase_done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ftp_parselist_data_free
      Src: /src/curl/lib/ftp.c:3926,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:3927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3928
      start: 3922
    functionDepth: 1
    functionLinenumber: 3922
    functionLinenumberEnd: 3928
    functionName: wc_data_dtor
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_ftp_parselist_data_free
    linkageType: ''
    returnType: void
    signature: void wc_data_dtor(void *ptr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/curl/lib/ftp.c:3940,1
    - Dst: ftp_parse_url_path
      Src: /src/curl/lib/ftp.c:3945,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/ftp.c:3947,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/ftp.c:3954,1
    - Dst: ftp_parse_url_path
      Src: /src/curl/lib/ftp.c:3961,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/ftp.c:3969,1
    - Dst: Curl_ftp_parselist_data_alloc
      Src: /src/curl/lib/ftp.c:3976,1
    - Dst: ftp_parse_url_path
      Src: /src/curl/lib/ftp.c:3990,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/ftp.c:3995,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:4010,1
    - Dst: Curl_ftp_parselist_data_free
      Src: /src/curl/lib/ftp.c:4015,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:4016,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:4018,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4022
      start: 3930
    functionDepth: 3
    functionLinenumber: 3930
    functionLinenumberEnd: 4022
    functionName: init_wc_data
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_strdup
    - ftp_parse_url_path
    - strrchr
    - infof
    - Curl_ftp_parselist_data_alloc
    - curlx_free
    - curlx_calloc
    - Curl_ftp_parselist_data_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init_wc_data(struct Curl_easy *data,\n                             struct
      ftp_conn *ftpc,\n                             struct FTP *ftp)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: init_wc_data
      Src: /src/curl/lib/ftp.c:4034,1
    - Dst: Curl_ftp_parselist_geterror
      Src: /src/curl/lib/ftp.c:4051,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/ftp.c:4056,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/ftp.c:4066,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/ftp.c:4067,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/ftp.c:4069,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:4074,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:4077,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftp.c:4080,1
    - Dst: struct Curl_easy*::set::chunk_bgn
      Src: /src/curl/lib/ftp.c:4081,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/ftp.c:4083,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftp.c:4084,1
    - Dst: infof
      Src: /src/curl/lib/ftp.c:4087,1
    - Dst: ftp_parse_url_path
      Src: /src/curl/lib/ftp.c:4103,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/ftp.c:4108,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/ftp.c:4108,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/ftp.c:4110,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftp.c:4122,1
    - Dst: struct Curl_easy*::set::chunk_end
      Src: /src/curl/lib/ftp.c:4123,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftp.c:4124,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/ftp.c:4126,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/ftp.c:4126,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/ftp.c:4127,1
    - Dst: Curl_ftp_parselist_geterror
      Src: /src/curl/lib/ftp.c:4136,1
    - Dst: struct WildcardData*::dtor
      Src: /src/curl/lib/ftp.c:4146,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 87
    argCount: 3
    argNames:
    - data
    - ftpc
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4153
      start: 4024
    functionDepth: 7
    functionLinenumber: 4024
    functionLinenumberEnd: 4153
    functionName: wc_statemach
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - curl_maprintf
    - struct WildcardData*::dtor
    - Curl_node_elem
    - ftp_parse_url_path
    - struct Curl_easy*::set::chunk_end
    - infof
    - Curl_llist_head
    - curlx_free
    - Curl_set_in_callback
    - init_wc_data
    - Curl_node_remove
    - struct Curl_easy*::set::chunk_bgn
    - Curl_ftp_parselist_geterror
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wc_statemach(struct Curl_easy *data,\n                             struct
      ftp_conn *ftpc,\n                             struct FTP *ftp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsReset
      Src: /src/curl/lib/ftp.c:4176,1
    - Dst: ftp_perform
      Src: /src/curl/lib/ftp.c:4180,1
    - Dst: ftp_dophase_done
      Src: /src/curl/lib/ftp.c:4190,1
    - Dst: freedirs
      Src: /src/curl/lib/ftp.c:4196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - data
    - ftpc
    - ftp
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    - struct FTP*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4199
      start: 4167
    functionDepth: 12
    functionLinenumber: 4167
    functionLinenumberEnd: 4199
    functionName: ftp_regular_transfer
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_dophase_done
    - ftp_perform
    - freedirs
    - Curl_pgrsReset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_regular_transfer(struct Curl_easy *data,\n                                     struct
      ftp_conn *ftpc,\n                                     struct FTP *ftp,\n                                     bool
      *dophase_done)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:4213,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/ftp.c:4214,1
    - Dst: Curl_cwriter_create
      Src: /src/curl/lib/ftp.c:4226,1
    - Dst: Curl_cwriter_add
      Src: /src/curl/lib/ftp.c:4231,1
    - Dst: Curl_cwriter_free
      Src: /src/curl/lib/ftp.c:4233,1
    - Dst: wc_statemach
      Src: /src/curl/lib/ftp.c:4240,1
    - Dst: ftp_parse_url_path
      Src: /src/curl/lib/ftp.c:4250,1
    - Dst: ftp_regular_transfer
      Src: /src/curl/lib/ftp.c:4255,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4258
      start: 4210
    functionDepth: 13
    functionLinenumber: 4210
    functionLinenumberEnd: 4258
    functionName: ftp_do
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_add
    - ftp_parse_url_path
    - Curl_conn_meta_get
    - wc_statemach
    - Curl_meta_get
    - ftp_regular_transfer
    - Curl_cwriter_free
    - Curl_cwriter_create
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ftp_do(struct Curl_easy *data, bool *done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:4276,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/ftp.c:4277,1
    - Dst: failf
      Src: /src/curl/lib/ftp.c:4279,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/ftp.c:4280,1
    - Dst: connclose
      Src: /src/curl/lib/ftp.c:4282,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:4283,1
    - Dst: ftp_state
      Src: /src/curl/lib/ftp.c:4287,1
    - Dst: ftp_block_statemach
      Src: /src/curl/lib/ftp.c:4289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - data
    - ftpc
    argTypes:
    - struct Curl_easy*
    - struct ftp_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4293
      start: 4270
    functionDepth: 4
    functionLinenumber: 4270
    functionLinenumberEnd: 4293
    functionName: ftp_quit
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - failf
    - curl_easy_strerror
    - ftp_state
    - Curl_pp_sendf
    - CURL_TRC_FTP
    - connclose
    - ftp_block_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_quit(struct Curl_easy *data,\n                         struct
      ftp_conn *ftpc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:4306,1
    - Dst: Curl_pp_needs_flush
      Src: /src/curl/lib/ftp.c:4318,1
    - Dst: ftp_quit
      Src: /src/curl/lib/ftp.c:4322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4302
    functionDepth: 5
    functionLinenumber: 4302
    functionLinenumberEnd: 4324
    functionName: ftp_disconnect
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - Curl_pp_needs_flush
    - ftp_quit
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_disconnect(struct Curl_easy *data,\n                               struct
      connectdata *conn,\n                               bool dead_connection)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:4330,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/ftp.c:4331,1
    - Dst: ftp_statemach
      Src: /src/curl/lib/ftp.c:4336,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:4339,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:4339,1
    - Dst: ftp_dophase_done
      Src: /src/curl/lib/ftp.c:4341,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:4343,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:4343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4346
      start: 4327
    functionDepth: 12
    functionLinenumber: 4327
    functionLinenumberEnd: 4346
    functionName: ftp_doing
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - ftp_statemach
    - Curl_conn_meta_get
    - Curl_meta_get
    - CURL_TRC_FTP
    - FTP_CSTATE
    - ftp_dophase_done
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_doing(struct Curl_easy *data,\n                          bool
      *dophase_done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:4353,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:4354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4348
    functionDepth: 1
    functionLinenumber: 4348
    functionLinenumberEnd: 4355
    functionName: ftp_easy_dtor
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void ftp_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freedirs
      Src: /src/curl/lib/ftp.c:4362,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:4363,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:4364,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:4365,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:4366,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:4367,1
    - Dst: Curl_pp_disconnect
      Src: /src/curl/lib/ftp.c:4368,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftp.c:4369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4370
      start: 4357
    functionDepth: 2
    functionLinenumber: 4357
    functionLinenumberEnd: 4370
    functionName: ftp_conn_dtor
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    - freedirs
    - Curl_pp_disconnect
    linkageType: ''
    returnType: void
    signature: void ftp_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/ftp.c:4374,1
    - Dst: memcmp
      Src: /src/curl/lib/ftp.c:4377,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/ftp.c:4379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - data
    - ftp
    argTypes:
    - struct Curl_easy*
    - struct FTP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4399
      start: 4372
    functionDepth: 1
    functionLinenumber: 4372
    functionLinenumberEnd: 4399
    functionName: type_url_check
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_raw_toupper
    - memcmp
    linkageType: ''
    returnType: void
    signature: void type_url_check(struct Curl_easy *data, struct FTP *ftp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/ftp.c:4408,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/ftp.c:4410,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/ftp.c:4413,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/ftp.c:4415,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/ftp.c:4420,1
    - Dst: Curl_conn_meta_remove
      Src: /src/curl/lib/ftp.c:4422,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/ftp.c:4428,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftp.c:4430,1
    - Dst: Curl_conn_meta_remove
      Src: /src/curl/lib/ftp.c:4431,1
    - Dst: type_url_check
      Src: /src/curl/lib/ftp.c:4438,1
    - Dst: CURL_TRC_FTP
      Src: /src/curl/lib/ftp.c:4447,1
    - Dst: FTP_CSTATE
      Src: /src/curl/lib/ftp.c:4447,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4449
      start: 4401
    functionDepth: 2
    functionLinenumber: 4401
    functionLinenumberEnd: 4449
    functionName: ftp_setup_connection
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - type_url_check
    - Curl_meta_set
    - curlx_strdup
    - Curl_conn_meta_remove
    - Curl_conn_meta_set
    - curlx_calloc
    - CURL_TRC_FTP
    - FTP_CSTATE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_setup_connection(struct Curl_easy *data,\n                                     struct
      connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:4453,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/ftp.c:4454,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/ftp.c:4457,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/ftp.c:4458,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftp.c:4468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - needle
    - conn
    argTypes:
    - struct connectdata*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4472
      start: 4451
    functionDepth: 2
    functionLinenumber: 4451
    functionLinenumberEnd: 4472
    functionName: ftp_conns_match
    functionSourceFile: /src/curl/lib/ftp.c
    functionUses: 1
    functionsReached:
    - Curl_timestrcmp
    - DEBUGASSERT
    - Curl_conn_meta_get
    linkageType: ''
    returnType: bool
    signature: bool ftp_conns_match(struct connectdata *needle, struct connectdata
      *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: Curl_hsts_loadcb
    functionSourceFile: /src/curl/lib/hsts.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_hsts_loadcb(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: Curl_hsts_loadfiles
    functionSourceFile: /src/curl/lib/hsts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_hsts_loadfiles(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - save
    - ','
    - cf
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 664
    functionName: CF_DATA_SAVE
    functionSourceFile: /src/curl/lib/cfilters.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_DATA_SAVE(save, cf, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cf
    - ','
    - save
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 671
    functionName: CF_DATA_RESTORE
    functionSourceFile: /src/curl/lib/cfilters.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_DATA_RESTORE(cf, save)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - save
    - ','
    - cf
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: CF_DATA_SAVE
    functionSourceFile: /src/curl/lib/cfilters.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_DATA_SAVE(save, cf, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cf
    - ','
    - save
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 684
    functionName: CF_DATA_RESTORE
    functionSourceFile: /src/curl/lib/cfilters.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_DATA_RESTORE(cf, save)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 688
    functionName: CF_DATA_CURRENT
    functionSourceFile: /src/curl/lib/cfilters.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_DATA_CURRENT(cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: Curl_cookie_list
    functionSourceFile: /src/curl/lib/cookie.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_cookie_list(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: Curl_cookie_loadfiles
    functionSourceFile: /src/curl/lib/cookie.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_cookie_loadfiles(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: Curl_cookie_init
    functionSourceFile: /src/curl/lib/cookie.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_cookie_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: Curl_cookie_run
    functionSourceFile: /src/curl/lib/cookie.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_cookie_run(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: Curl_cookie_cleanup
    functionSourceFile: /src/curl/lib/cookie.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_cookie_cleanup(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: Curl_flush_cookies
    functionSourceFile: /src/curl/lib/cookie.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_flush_cookies(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: curl2netrc
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl2netrc(r)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - token
    argTypes:
    - curl_netrc_token
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 133
    functionName: netrc_tokenstr
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *netrc_tokenstr(curl_netrc_token token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/netrc.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lexer
    - data
    - content
    argTypes:
    - struct netrc_lexer*
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: netrc_lexer_init
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    linkageType: ''
    returnType: void
    signature: "void netrc_lexer_init(struct netrc_lexer *lexer,\n                             struct
      Curl_easy *data,\n                             const char *content)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/netrc.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lexer
    argTypes:
    - struct netrc_lexer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: netrc_lexer_cleanup
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void netrc_lexer_cleanup(struct netrc_lexer *lexer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/netrc.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - lexer
    argTypes:
    - struct netrc_lexer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: netrc_skip_blanks
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - curlx_str_passblanks
    linkageType: ''
    returnType: void
    signature: void netrc_skip_blanks(struct netrc_lexer *lexer)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - lexer
    argTypes:
    - struct netrc_lexer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: netrc_skip_to_empty_line
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void netrc_skip_to_empty_line(struct netrc_lexer *lexer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/netrc.c:201,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/netrc.c:229,1
    - Dst: curl2netrc
      Src: /src/curl/lib/netrc.c:231,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - lexer
    argTypes:
    - struct netrc_lexer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 239
    functionName: netrc_lexer_quoted
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - curl2netrc
    - DEBUGASSERT
    linkageType: ''
    returnType: NETRCcode
    signature: NETRCcode netrc_lexer_quoted(struct netrc_lexer *lexer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lexer
    argTypes:
    - struct netrc_lexer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: netrc_lexer_push
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void netrc_lexer_push(struct netrc_lexer *lexer)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/netrc.c:259,1
    - Dst: netrc_skip_blanks
      Src: /src/curl/lib/netrc.c:260,1
    - Dst: netrc_lexer_quoted
      Src: /src/curl/lib/netrc.c:268,1
    - Dst: ISBLANK
      Src: /src/curl/lib/netrc.c:275,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/netrc.c:275,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/netrc.c:283,1
    - Dst: curl2netrc
      Src: /src/curl/lib/netrc.c:284,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/netrc.c:286,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/netrc.c:289,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/netrc.c:292,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/netrc.c:295,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/netrc.c:298,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/netrc.c:301,1
    - Dst: netrc_tokenstr
      Src: /src/curl/lib/netrc.c:313,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/netrc.c:314,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 2
    argNames:
    - lexer
    - want_literal
    argTypes:
    - struct netrc_lexer*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 318
    functionName: netrc_lexer_next
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - ISNEWLINE
    - curl_strnequal
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - netrc_skip_blanks
    - curl2netrc
    - netrc_tokenstr
    - netrc_lexer_quoted
    - ISBLANK
    linkageType: ''
    returnType: NETRCcode
    signature: "NETRCcode netrc_lexer_next(struct netrc_lexer *lexer,\n                                  bool
      want_literal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/netrc.c:333,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/netrc.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct netrc_scanner*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: netrc_scan_reset
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void netrc_scan_reset(struct netrc_scanner *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/netrc.c:344,1
    - Dst: netrc_lexer_init
      Src: /src/curl/lib/netrc.c:345,1
    - Dst: netrc_scan_reset
      Src: /src/curl/lib/netrc.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - sc
    - data
    - content
    - hostname
    - user
    argTypes:
    - struct netrc_scanner*
    - struct Curl_easy*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: netrc_scan_init
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - netrc_lexer_init
    - netrc_scan_reset
    - memset
    linkageType: ''
    returnType: void
    signature: "void netrc_scan_init(struct netrc_scanner *sc,\n                            struct
      Curl_easy *data,\n                            const char *content,\n                            const
      char *hostname,\n                            const char *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: netrc_scan_reset
      Src: /src/curl/lib/netrc.c:353,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/netrc.c:356,1
    - Dst: netrc_lexer_cleanup
      Src: /src/curl/lib/netrc.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct netrc_scanner*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 358
    functionName: netrc_scan_cleanup
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - netrc_lexer_cleanup
    - netrc_scan_reset
    - Curl_creds_unlink
    linkageType: ''
    returnType: void
    signature: void netrc_scan_cleanup(struct netrc_scanner *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: netrc_lexer_next
      Src: /src/curl/lib/netrc.c:363,1
    - Dst: curlx_free
      Src: /src/curl/lib/netrc.c:367,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/netrc.c:368,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/netrc.c:368,1
    - Dst: netrc_lexer_push
      Src: /src/curl/lib/netrc.c:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - sc
    - pdest
    argTypes:
    - struct netrc_scanner*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 377
    functionName: netrc_scan_literal
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - curlx_strdup
    - netrc_lexer_push
    - curlx_dyn_ptr
    - curlx_free
    - netrc_lexer_next
    linkageType: ''
    returnType: NETRCcode
    signature: "NETRCcode netrc_scan_literal(struct netrc_scanner *sc,\n                                    char
      **pdest)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/netrc.c:383,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/netrc.c:390,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/netrc.c:409,1
    - Dst: Curl_creds_create
      Src: /src/curl/lib/netrc.c:411,1
    - Dst: netrc_scan_reset
      Src: /src/curl/lib/netrc.c:417,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct netrc_scanner*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 419
    functionName: netrc_scan_end_entry
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - Curl_timestrcmp
    - Curl_creds_create
    - CURL_TRC_M
    - netrc_scan_reset
    linkageType: ''
    returnType: NETRCcode
    signature: NETRCcode netrc_scan_end_entry(struct netrc_scanner *sc)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/netrc.c:430,1
    - Dst: netrc_scan_init
      Src: /src/curl/lib/netrc.c:431,1
    - Dst: netrc_lexer_next
      Src: /src/curl/lib/netrc.c:434,1
    - Dst: netrc_scan_end_entry
      Src: /src/curl/lib/netrc.c:442,1
    - Dst: netrc_lexer_next
      Src: /src/curl/lib/netrc.c:454,1
    - Dst: curl_strequal
      Src: /src/curl/lib/netrc.c:457,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/netrc.c:458,1
    - Dst: netrc_lexer_push
      Src: /src/curl/lib/netrc.c:462,1
    - Dst: netrc_scan_literal
      Src: /src/curl/lib/netrc.c:470,1
    - Dst: netrc_scan_literal
      Src: /src/curl/lib/netrc.c:473,1
    - Dst: netrc_scan_literal
      Src: /src/curl/lib/netrc.c:476,1
    - Dst: netrc_skip_to_empty_line
      Src: /src/curl/lib/netrc.c:479,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/netrc.c:493,1
    - Dst: netrc_scan_cleanup
      Src: /src/curl/lib/netrc.c:497,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 5
    argNames:
    - data
    - content
    - hostname
    - user
    - pcreds
    argTypes:
    - struct Curl_easy*
    - char*
    - char*
    - char*
    - struct Curl_creds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 421
    functionDepth: 5
    functionLinenumber: 421
    functionLinenumberEnd: 499
    functionName: netrc_scan
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 2
    functionsReached:
    - netrc_scan_literal
    - Curl_creds_link
    - netrc_scan_end_entry
    - Curl_creds_unlink
    - netrc_lexer_push
    - curlx_dyn_ptr
    - curl_strequal
    - netrc_skip_to_empty_line
    - netrc_scan_init
    - netrc_lexer_next
    - netrc_scan_cleanup
    linkageType: ''
    returnType: NETRCcode
    signature: "NETRCcode netrc_scan(struct Curl_easy *data,\n                            const
      char *content,\n                            const char *hostname,\n                            const
      char *user,\n                            struct Curl_creds **pcreds)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/lib/netrc.c:504,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/netrc.c:506,1
    - Dst: curlx_fstat
      Src: /src/curl/lib/netrc.c:509,1
    - Dst: fileno
      Src: /src/curl/lib/netrc.c:509,1
    - Dst: S_ISDIR
      Src: /src/curl/lib/netrc.c:509,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/netrc.c:513,1
    - Dst: Curl_get_line
      Src: /src/curl/lib/netrc.c:518,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/netrc.c:520,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/netrc.c:522,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/netrc.c:525,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/netrc.c:528,1
    - Dst: curl2netrc
      Src: /src/curl/lib/netrc.c:529,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/netrc.c:533,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/netrc.c:535,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - filename
    - filebuf
    argTypes:
    - char*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 538
    functionName: file2memory
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 3
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - curlx_dyn_add
    - curlx_dyn_free
    - curlx_fopen
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - curlx_str_passblanks
    - S_ISDIR
    - curlx_fstat
    - curl2netrc
    - fileno
    - Curl_get_line
    linkageType: ''
    returnType: NETRCcode
    signature: NETRCcode file2memory(const char *filename, struct dynbuf *filebuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/netrc.c:549,1
    - Dst: file2memory
      Src: /src/curl/lib/netrc.c:552,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/netrc.c:554,1
    - Dst: curlx_free
      Src: /src/curl/lib/netrc.c:557,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/netrc.c:558,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/netrc.c:560,1
    - Dst: netrc_scan
      Src: /src/curl/lib/netrc.c:566,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/netrc.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - data
    - store
    - hostname
    - user
    - netrcfile
    - pcreds
    argTypes:
    - struct Curl_easy*
    - struct store_netrc*
    - char*
    - char*
    - char*
    - struct Curl_creds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 540
    functionDepth: 6
    functionLinenumber: 540
    functionLinenumberEnd: 567
    functionName: netrc_scan_file
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 0
    functionsReached:
    - netrc_scan
    - curlx_strdup
    - curlx_dyn_reset
    - curlx_free
    - strcmp
    - file2memory
    - curlx_dyn_ptr
    - CURL_TRC_M
    linkageType: ''
    returnType: NETRCcode
    signature: "NETRCcode netrc_scan_file(struct Curl_easy *data,\n                                 struct
      store_netrc *store,\n                                 const char *hostname,\n
      \                                const char *user,\n                                 const
      char *netrcfile,\n                                 struct Curl_creds **pcreds)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/netrc.c:584,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/netrc.c:586,1
    - Dst: curl_getenv
      Src: /src/curl/lib/netrc.c:594,1
    - Dst: curl_getenv
      Src: /src/curl/lib/netrc.c:596,1
    - Dst: getpwuid_r
      Src: /src/curl/lib/netrc.c:603,1
    - Dst: geteuid
      Src: /src/curl/lib/netrc.c:603,1
    - Dst: getpwuid
      Src: /src/curl/lib/netrc.c:611,1
    - Dst: geteuid
      Src: /src/curl/lib/netrc.c:611,1
    - Dst: curl_getenv
      Src: /src/curl/lib/netrc.c:618,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/netrc.c:629,1
    - Dst: curlx_free
      Src: /src/curl/lib/netrc.c:631,1
    - Dst: netrc_scan_file
      Src: /src/curl/lib/netrc.c:636,1
    - Dst: curlx_free
      Src: /src/curl/lib/netrc.c:638,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/netrc.c:642,1
    - Dst: curlx_free
      Src: /src/curl/lib/netrc.c:644,1
    - Dst: netrc_scan_file
      Src: /src/curl/lib/netrc.c:647,1
    - Dst: curlx_free
      Src: /src/curl/lib/netrc.c:649,1
    - Dst: curlx_free
      Src: /src/curl/lib/netrc.c:652,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 6
    argNames:
    - data
    - store
    - hostname
    - user
    - netrcfile
    - pcreds
    argTypes:
    - struct Curl_easy*
    - struct store_netrc*
    - char*
    - char*
    - char*
    - struct Curl_creds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 575
    functionDepth: 7
    functionLinenumber: 575
    functionLinenumberEnd: 653
    functionName: Curl_netrc_scan
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 2
    functionsReached:
    - getpwuid_r
    - getpwuid
    - curl_maprintf
    - netrc_scan_file
    - curl_getenv
    - Curl_creds_unlink
    - curlx_free
    - geteuid
    - CURL_TRC_M
    linkageType: ''
    returnType: NETRCcode
    signature: "NETRCcode Curl_netrc_scan(struct Curl_easy *data,\n                          struct
      store_netrc *store,\n                          const char *hostname,\n                          const
      char *user,\n                          const char *netrcfile,\n                          struct
      Curl_creds **pcreds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/netrc.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct store_netrc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 669
    functionName: Curl_netrc_init
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 3
    functionsReached:
    - curlx_dyn_init
    linkageType: ''
    returnType: void
    signature: void Curl_netrc_init(struct store_netrc *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/netrc.c:672,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/netrc.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct store_netrc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 675
    functionName: Curl_netrc_cleanup
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 3
    functionsReached:
    - curlx_safefree
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void Curl_netrc_cleanup(struct store_netrc *store)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ret
    argTypes:
    - NETRCcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 692
    functionName: Curl_netrc_strerror
    functionSourceFile: /src/curl/lib/netrc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Curl_netrc_strerror(NETRCcode ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: CURL_SB_CLEAR
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SB_CLEAR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: CURL_SB_TERM
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SB_TERM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: CURL_SB_ACCUM
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SB_ACCUM(x, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: CURL_SB_GET
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SB_GET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: CURL_SB_LEN
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_SB_LEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: printoption
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: printoption(a, b, c, d)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TELCMD_OK
      Src: /src/curl/lib/telnet.c:139,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:140,1
    - Dst: CURL_TELCMD
      Src: /src/curl/lib/telnet.c:140,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:142,1
    - Dst: CURL_TELOPT_OK
      Src: /src/curl/lib/telnet.c:151,1
    - Dst: CURL_TELOPT
      Src: /src/curl/lib/telnet.c:152,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:159,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:161,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - data
    - direction
    - cmd
    - option
    argTypes:
    - struct Curl_easy*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 167
    functionName: printoption
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - CURL_TELCMD_OK
    - CURL_TELOPT
    - CURL_TELCMD
    - infof
    - CURL_TELOPT_OK
    linkageType: ''
    returnType: void
    signature: "void printoption(struct Curl_easy *data,\n                        const
      char *direction, int cmd, int option)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/telnet.c:175,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/telnet.c:176,1
    - Dst: curlx_free
      Src: /src/curl/lib/telnet.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: telnet_easy_dtor
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_dyn_free
    - curl_slist_free_all
    linkageType: ''
    returnType: void
    signature: void telnet_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/telnet.c:184,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/telnet.c:188,1
    - Dst: CURL_SB_CLEAR
      Src: /src/curl/lib/telnet.c:193,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/telnet.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 229
    functionName: init_telnet
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_calloc
    - Curl_meta_set
    - CURL_SB_CLEAR
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode init_telnet(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swrite
      Src: /src/curl/lib/telnet.c:241,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:244,1
    - Dst: printoption
      Src: /src/curl/lib/telnet.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - data
    - cmd
    - option
    argTypes:
    - struct Curl_easy*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 248
    functionName: send_negotiation
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - swrite
    - printoption
    - failf
    linkageType: ''
    returnType: void
    signature: void send_negotiation(struct Curl_easy *data, int cmd, int option)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:257,1
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:296,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 4
    argNames:
    - data
    - tn
    - option
    - newstate
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 321
    functionName: set_remote_option
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - send_negotiation
    linkageType: ''
    returnType: void
    signature: "void set_remote_option(struct Curl_easy *data, struct TELNET *tn,\n
      \                             int option, int newstate)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:330,1
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:369,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 4
    argNames:
    - data
    - tn
    - option
    - newstate
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 394
    functionName: set_local_option
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - send_negotiation
    linkageType: ''
    returnType: void
    signature: "void set_local_option(struct Curl_easy *data, struct TELNET *tn,\n
      \                            int option, int newstate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_local_option
      Src: /src/curl/lib/telnet.c:405,1
    - Dst: set_remote_option
      Src: /src/curl/lib/telnet.c:408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - data
    - tn
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 410
    functionName: telnet_negotiate
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - set_remote_option
    - set_local_option
    linkageType: ''
    returnType: void
    signature: void telnet_negotiate(struct Curl_easy *data, struct TELNET *tn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:418,1
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:421,1
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - data
    - tn
    - option
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 456
    functionName: rec_will
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - send_negotiation
    linkageType: ''
    returnType: void
    signature: void rec_will(struct Curl_easy *data, struct TELNET *tn, int option)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:467,1
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:479,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - data
    - tn
    - option
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 496
    functionName: rec_wont
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - send_negotiation
    linkageType: ''
    returnType: void
    signature: void rec_wont(struct Curl_easy *data, struct TELNET *tn, int option)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/telnet.c:506,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:514,1
    - Dst: CURL_TELOPT_OK
      Src: /src/curl/lib/telnet.c:515,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:516,1
    - Dst: CURL_TELOPT
      Src: /src/curl/lib/telnet.c:516,1
    - Dst: CURL_TELCMD_OK
      Src: /src/curl/lib/telnet.c:517,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:518,1
    - Dst: CURL_TELCMD
      Src: /src/curl/lib/telnet.c:518,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:520,1
    - Dst: CURL_TELOPT_OK
      Src: /src/curl/lib/telnet.c:521,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:522,1
    - Dst: CURL_TELOPT
      Src: /src/curl/lib/telnet.c:522,1
    - Dst: CURL_TELCMD_OK
      Src: /src/curl/lib/telnet.c:523,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:524,1
    - Dst: CURL_TELCMD
      Src: /src/curl/lib/telnet.c:524,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:526,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:527,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:536,1
    - Dst: CURL_TELOPT_OK
      Src: /src/curl/lib/telnet.c:540,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:546,1
    - Dst: CURL_TELOPT
      Src: /src/curl/lib/telnet.c:546,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:549,1
    - Dst: CURL_TELOPT
      Src: /src/curl/lib/telnet.c:549,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:554,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:559,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:565,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:568,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:571,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:574,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:581,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:586,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:590,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:593,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:596,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:604,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 94
    argCount: 4
    argNames:
    - data
    - direction
    - pointer
    - length
    argTypes:
    - struct Curl_easy*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 609
    functionName: printsub
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - CURL_TELCMD_OK
    - CURL_TELOPT
    - CURL_TELCMD
    - infof
    - CURL_TELOPT_OK
    linkageType: ''
    returnType: void
    signature: "void printsub(struct Curl_easy *data,\n                     int direction,
      \               /* '<' or '>' */\n                     const unsigned char *pointer,
      /* ptr to suboption data */\n                     size_t length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/telnet.c:623,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/telnet.c:624,1
    - Dst: memchr
      Src: /src/curl/lib/telnet.c:628,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/telnet.c:630,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/telnet.c:633,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/telnet.c:636,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/telnet.c:639,1
    - Dst: curlx_dyn_uptr
      Src: /src/curl/lib/telnet.c:640,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/telnet.c:649,1
    - Dst: Curl_poll
      Src: /src/curl/lib/telnet.c:655,1
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/telnet.c:664,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - data
    - tn
    - buffer
    - nread
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 672
    functionName: send_telnet_data
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - DEBUGASSERT
    - memchr
    - curlx_dyn_len
    - curlx_dyn_uptr
    - curlx_dyn_reset
    - Curl_poll
    - Curl_timeleft_ms
    - Curl_xfer_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode send_telnet_data(struct Curl_easy *data,\n                                 struct
      TELNET *tn,\n                                 const char *buffer, ssize_t nread)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_SB_CLEAR
      Src: /src/curl/lib/telnet.c:691,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:692,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:693,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:694,1
    - Dst: htons
      Src: /src/curl/lib/telnet.c:697,1
    - Dst: htons
      Src: /src/curl/lib/telnet.c:698,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:701,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:702,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:703,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:704,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:706,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:707,1
    - Dst: CURL_SB_TERM
      Src: /src/curl/lib/telnet.c:708,1
    - Dst: printsub
      Src: /src/curl/lib/telnet.c:711,1
    - Dst: CURL_SB_LEN
      Src: /src/curl/lib/telnet.c:712,1
    - Dst: swrite
      Src: /src/curl/lib/telnet.c:715,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:718,1
    - Dst: send_telnet_data
      Src: /src/curl/lib/telnet.c:722,1
    - Dst: swrite
      Src: /src/curl/lib/telnet.c:724,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - data
    - tn
    - option
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 731
    functionName: sendsuboption
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - htons
    - CURL_SB_CLEAR
    - CURL_SB_LEN
    - failf
    - printsub
    - CURL_SB_ACCUM
    - send_telnet_data
    - swrite
    - CURL_SB_TERM
    linkageType: ''
    returnType: void
    signature: "void sendsuboption(struct Curl_easy *data,\n                          struct
      TELNET *tn, int option)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:739,1
    - Dst: sendsuboption
      Src: /src/curl/lib/telnet.c:742,1
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:747,1
    - Dst: sendsuboption
      Src: /src/curl/lib/telnet.c:748,1
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:751,1
    - Dst: sendsuboption
      Src: /src/curl/lib/telnet.c:778,1
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:784,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - data
    - tn
    - option
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 733
    functionDepth: 4
    functionLinenumber: 733
    functionLinenumberEnd: 789
    functionName: rec_do
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - sendsuboption
    - send_negotiation
    linkageType: ''
    returnType: void
    signature: void rec_do(struct Curl_easy *data, struct TELNET *tn, int option)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:800,1
    - Dst: send_negotiation
      Src: /src/curl/lib/telnet.c:812,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - data
    - tn
    - option
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 829
    functionName: rec_dont
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - send_negotiation
    linkageType: ''
    returnType: void
    signature: void rec_dont(struct Curl_easy *data, struct TELNET *tn, int option)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 839
    functionName: str_is_nonascii
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool str_is_nonascii(const char *str)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: str_is_nonascii
      Src: /src/curl/lib/telnet.c:852,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/telnet.c:852,1
    - Dst: DEBUGF
      Src: /src/curl/lib/telnet.c:853,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:853,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/telnet.c:856,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/telnet.c:857,1
    - Dst: curl_slist_append
      Src: /src/curl/lib/telnet.c:858,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/telnet.c:860,1
    - Dst: strchr
      Src: /src/curl/lib/telnet.c:872,1
    - Dst: str_is_nonascii
      Src: /src/curl/lib/telnet.c:876,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/telnet.c:881,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/telnet.c:891,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/telnet.c:901,1
    - Dst: curl_slist_append
      Src: /src/curl/lib/telnet.c:902,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/telnet.c:916,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/telnet.c:920,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/telnet.c:921,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/telnet.c:922,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:923,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/telnet.c:938,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/telnet.c:941,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:951,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:957,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/telnet.c:963,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 88
    argCount: 2
    argNames:
    - data
    - tn
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 841
    functionDepth: 7
    functionLinenumber: 841
    functionLinenumberEnd: 968
    functionName: check_telnet_options
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - str_is_nonascii
    - curlx_str_single
    - failf
    - curl_slist_free_all
    - curlx_str_number
    - infof
    - curl_strnequal
    - curl_slist_append
    - Curl_creds_user
    - strchr
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode check_telnet_options(struct Curl_easy *data,\n                                     struct
      TELNET *tn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/lib/telnet.c:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 976
    functionName: bad_option
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: bool
    signature: bool bad_option(const char *data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CURL_SB_LEN
      Src: /src/curl/lib/telnet.c:993,1
    - Dst: printsub
      Src: /src/curl/lib/telnet.c:996,1
    - Dst: CURL_SB_LEN
      Src: /src/curl/lib/telnet.c:997,1
    - Dst: CURL_SB_GET
      Src: /src/curl/lib/telnet.c:998,1
    - Dst: bad_option
      Src: /src/curl/lib/telnet.c:1000,1
    - Dst: strlen
      Src: /src/curl/lib/telnet.c:1002,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1003,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/telnet.c:1006,1
    - Dst: swrite
      Src: /src/curl/lib/telnet.c:1010,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1014,1
    - Dst: printsub
      Src: /src/curl/lib/telnet.c:1017,1
    - Dst: bad_option
      Src: /src/curl/lib/telnet.c:1020,1
    - Dst: strlen
      Src: /src/curl/lib/telnet.c:1022,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1023,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/telnet.c:1026,1
    - Dst: swrite
      Src: /src/curl/lib/telnet.c:1030,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1033,1
    - Dst: printsub
      Src: /src/curl/lib/telnet.c:1036,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/telnet.c:1039,1
    - Dst: strlen
      Src: /src/curl/lib/telnet.c:1043,1
    - Dst: bad_option
      Src: /src/curl/lib/telnet.c:1044,1
    - Dst: strchr
      Src: /src/curl/lib/telnet.c:1048,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/telnet.c:1050,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/telnet.c:1054,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/telnet.c:1060,1
    - Dst: swrite
      Src: /src/curl/lib/telnet.c:1063,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1066,1
    - Dst: printsub
      Src: /src/curl/lib/telnet.c:1068,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 2
    argNames:
    - data
    - tn
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 984
    functionDepth: 7
    functionLinenumber: 984
    functionLinenumberEnd: 1072
    functionName: suboption
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - CURL_SB_LEN
    - swrite
    - failf
    - printsub
    - CURL_SB_GET
    - strchr
    - strlen
    - bad_option
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode suboption(struct Curl_easy *data, struct TELNET *tn)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: startskipping
      Src: /src/curl/lib/telnet.c:1110,1
    - Dst: writebyte
      Src: /src/curl/lib/telnet.c:1113,1
    - Dst: startskipping
      Src: /src/curl/lib/telnet.c:1119,1
    - Dst: writebyte
      Src: /src/curl/lib/telnet.c:1124,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/telnet.c:1128,1
    - Dst: CURL_SB_CLEAR
      Src: /src/curl/lib/telnet.c:1143,1
    - Dst: writebyte
      Src: /src/curl/lib/telnet.c:1148,1
    - Dst: printoption
      Src: /src/curl/lib/telnet.c:1155,1
    - Dst: printoption
      Src: /src/curl/lib/telnet.c:1161,1
    - Dst: rec_will
      Src: /src/curl/lib/telnet.c:1163,1
    - Dst: printoption
      Src: /src/curl/lib/telnet.c:1168,1
    - Dst: rec_wont
      Src: /src/curl/lib/telnet.c:1170,1
    - Dst: printoption
      Src: /src/curl/lib/telnet.c:1175,1
    - Dst: rec_do
      Src: /src/curl/lib/telnet.c:1177,1
    - Dst: printoption
      Src: /src/curl/lib/telnet.c:1182,1
    - Dst: rec_dont
      Src: /src/curl/lib/telnet.c:1184,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:1192,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1204,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:1207,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:1211,1
    - Dst: CURL_SB_ACCUM
      Src: /src/curl/lib/telnet.c:1212,1
    - Dst: CURL_SB_TERM
      Src: /src/curl/lib/telnet.c:1214,1
    - Dst: suboption
      Src: /src/curl/lib/telnet.c:1215,1
    - Dst: bufferflush
      Src: /src/curl/lib/telnet.c:1224,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 107
    argCount: 4
    argNames:
    - data
    - tn
    - inbuf
    - count
    argTypes:
    - struct Curl_easy*
    - struct TELNET*
    - unsigned char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1074
    functionDepth: 8
    functionLinenumber: 1074
    functionLinenumberEnd: 1226
    functionName: telrcv
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - CURL_SB_CLEAR
    - rec_do
    - startskipping
    - DEBUGASSERT
    - failf
    - rec_dont
    - bufferflush
    - CURL_SB_TERM
    - suboption
    - printoption
    - CURL_SB_ACCUM
    - rec_will
    - writebyte
    - rec_wont
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode telrcv(struct Curl_easy *data,\n                       struct
      TELNET *tn,\n                       const unsigned char *inbuf, /* Data received
      from\n                                                      socket */\n                       ssize_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1096
    functionName: startskipping
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: startskipping()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1100
    functionName: writebyte
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writebyte()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1102
    functionName: bufferflush
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bufferflush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_remove
      Src: /src/curl/lib/telnet.c:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1235
    functionName: telnet_done
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - Curl_meta_remove
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode telnet_done(struct Curl_easy *data,\n                            CURLcode
      status, bool premature)"
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: init_telnet
      Src: /src/curl/lib/telnet.c:1263,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/telnet.c:1267,1
    - Dst: check_telnet_options
      Src: /src/curl/lib/telnet.c:1271,1
    - Dst: WSACreateEvent
      Src: /src/curl/lib/telnet.c:1282,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1284,1
    - Dst: WSAEventSelect
      Src: /src/curl/lib/telnet.c:1289,1
    - Dst: WSACloseEvent
      Src: /src/curl/lib/telnet.c:1290,1
    - Dst: GetStdHandle
      Src: /src/curl/lib/telnet.c:1295,1
    - Dst: GetFileType
      Src: /src/curl/lib/telnet.c:1303,1
    - Dst: WaitForMultipleObjects
      Src: /src/curl/lib/telnet.c:1317,1
    - Dst: struct Curl_easy*::state::fread_func
      Src: /src/curl/lib/telnet.c:1326,1
    - Dst: PeekNamedPipe
      Src: /src/curl/lib/telnet.c:1344,1
    - Dst: ReadFile
      Src: /src/curl/lib/telnet.c:1354,1
    - Dst: send_telnet_data
      Src: /src/curl/lib/telnet.c:1361,1
    - Dst: ReadFile
      Src: /src/curl/lib/telnet.c:1371,1
    - Dst: send_telnet_data
      Src: /src/curl/lib/telnet.c:1377,1
    - Dst: WSAEnumNetworkEvents
      Src: /src/curl/lib/telnet.c:1387,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:1390,1
    - Dst: Curl_xfer_recv
      Src: /src/curl/lib/telnet.c:1399,1
    - Dst: telrcv
      Src: /src/curl/lib/telnet.c:1415,1
    - Dst: telnet_negotiate
      Src: /src/curl/lib/telnet.c:1425,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/telnet.c:1437,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/telnet.c:1437,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1439,1
    - Dst: WSACloseEvent
      Src: /src/curl/lib/telnet.c:1447,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:1448,1
    - Dst: fileno
      Src: /src/curl/lib/telnet.c:1460,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1465,1
    - Dst: DEBUGF
      Src: /src/curl/lib/telnet.c:1472,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:1472,1
    - Dst: Curl_poll
      Src: /src/curl/lib/telnet.c:1473,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/telnet.c:1480,1
    - Dst: Curl_xfer_recv
      Src: /src/curl/lib/telnet.c:1485,1
    - Dst: DEBUGF
      Src: /src/curl/lib/telnet.c:1496,1
    - Dst: infof
      Src: /src/curl/lib/telnet.c:1496,1
    - Dst: Curl_pgrs_download_inc
      Src: /src/curl/lib/telnet.c:1507,1
    - Dst: telrcv
      Src: /src/curl/lib/telnet.c:1508,1
    - Dst: telnet_negotiate
      Src: /src/curl/lib/telnet.c:1518,1
    - Dst: read
      Src: /src/curl/lib/telnet.c:1526,1
    - Dst: struct Curl_easy*::state::fread_func
      Src: /src/curl/lib/telnet.c:1531,1
    - Dst: send_telnet_data
      Src: /src/curl/lib/telnet.c:1542,1
    - Dst: Curl_pgrs_upload_inc
      Src: /src/curl/lib/telnet.c:1547,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/telnet.c:1556,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/telnet.c:1556,1
    - Dst: failf
      Src: /src/curl/lib/telnet.c:1558,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/telnet.c:1565,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/telnet.c:1572,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 225
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1237
    functionDepth: 9
    functionLinenumber: 1237
    functionLinenumberEnd: 1575
    functionName: telnet_do
    functionSourceFile: /src/curl/lib/telnet.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_xfer_recv
    - GetStdHandle
    - Curl_meta_get
    - WaitForMultipleObjects
    - Curl_pgrs_upload_inc
    - Curl_poll
    - Curl_pgrsUpdate
    - FALLTHROUGH
    - read
    - Curl_xfer_setup_nop
    - telrcv
    - WSACloseEvent
    - check_telnet_options
    - send_telnet_data
    - ReadFile
    - curlx_ptimediff_ms
    - failf
    - init_telnet
    - PeekNamedPipe
    - Curl_pgrs_download_inc
    - GetFileType
    - struct Curl_easy*::state::fread_func
    - WSAEventSelect
    - telnet_negotiate
    - infof
    - WSAEnumNetworkEvents
    - DEBUGF
    - fileno
    - WSACreateEvent
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode telnet_do(struct Curl_easy *data, bool *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_init
      Src: /src/curl/lib/md5.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: my_md5_init
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - md5_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_md5_init(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_update
      Src: /src/curl/lib/md5.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: my_md5_update
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - md5_update
    linkageType: ''
    returnType: void
    signature: "void my_md5_update(void *ctx,\n                          const unsigned
      char *input, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_digest
      Src: /src/curl/lib/md5.c:69,1
    - Dst: md5_digest
      Src: /src/curl/lib/md5.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: my_md5_final
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - md5_digest
    linkageType: ''
    returnType: void
    signature: void my_md5_final(unsigned char *digest, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/curl/lib/md5.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: my_md5_init
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - MD5_Init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_md5_init(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Update
      Src: /src/curl/lib/md5.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: my_md5_update
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - MD5_Update
    linkageType: ''
    returnType: void
    signature: "void my_md5_update(void *ctx,\n                          const unsigned
      char *input, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Final
      Src: /src/curl/lib/md5.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: my_md5_final
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - MD5_Final
    linkageType: ''
    returnType: void
    signature: void my_md5_final(unsigned char *digest, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wc_InitMd5
      Src: /src/curl/lib/md5.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: my_md5_init
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - wc_InitMd5
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_md5_init(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wc_Md5Update
      Src: /src/curl/lib/md5.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: my_md5_update
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - wc_Md5Update
    linkageType: ''
    returnType: void
    signature: "void my_md5_update(void *ctx,\n                          const unsigned
      char *input, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wc_Md5Final
      Src: /src/curl/lib/md5.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: my_md5_final
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - wc_Md5Final
    linkageType: ''
    returnType: void
    signature: void my_md5_final(unsigned char *digest, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/md5.c:131,1
    - Dst: psa_hash_setup
      Src: /src/curl/lib/md5.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: my_md5_init
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - psa_hash_setup
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_md5_init(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: psa_hash_update
      Src: /src/curl/lib/md5.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: my_md5_update
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - psa_hash_update
    linkageType: ''
    returnType: void
    signature: "void my_md5_update(void *ctx,\n                          const unsigned
      char *input, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: psa_hash_finish
      Src: /src/curl/lib/md5.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: my_md5_final
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - psa_hash_finish
    linkageType: ''
    returnType: void
    signature: void my_md5_final(unsigned char *digest, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CC_MD5_Init
      Src: /src/curl/lib/md5.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: my_md5_init
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - CC_MD5_Init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_md5_init(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CC_MD5_Update
      Src: /src/curl/lib/md5.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: my_md5_update
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - CC_MD5_Update
    linkageType: ''
    returnType: void
    signature: "void my_md5_update(void *ctx,\n                          const unsigned
      char *input, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CC_MD5_Final
      Src: /src/curl/lib/md5.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: my_md5_final
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - CC_MD5_Final
    linkageType: ''
    returnType: void
    signature: void my_md5_final(unsigned char *digest, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/curl/lib/md5.c:198,1
    - Dst: CryptCreateHash
      Src: /src/curl/lib/md5.c:202,1
    - Dst: CryptReleaseContext
      Src: /src/curl/lib/md5.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: my_md5_init
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - CryptAcquireContext
    - CryptCreateHash
    - CryptReleaseContext
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_md5_init(void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashData
      Src: /src/curl/lib/md5.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - input
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: my_md5_update
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - CryptHashData
    linkageType: ''
    returnType: void
    signature: "void my_md5_update(void *in,\n                          const unsigned
      char *input, unsigned int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashParam
      Src: /src/curl/lib/md5.c:222,1
    - Dst: CryptGetHashParam
      Src: /src/curl/lib/md5.c:224,1
    - Dst: CryptDestroyHash
      Src: /src/curl/lib/md5.c:226,1
    - Dst: CryptReleaseContext
      Src: /src/curl/lib/md5.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - digest
    - in
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: my_md5_final
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - CryptGetHashParam
    - CryptReleaseContext
    - CryptDestroyHash
    linkageType: ''
    returnType: void
    signature: void my_md5_final(unsigned char *digest, void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: MD5_F
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_F(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: MD5_G
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_G(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: MD5_H
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_H(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: MD5_H2
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_H2(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: MD5_I
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_I(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - f
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - x
    - ','
    - t
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: MD5_STEP
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_STEP(f, a, b, c, d, x, t, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: MD5_SET
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_SET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: MD5_GET
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_GET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: MD5_SET
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_SET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: MD5_GET
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_GET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:334,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:334,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:335,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:335,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:336,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:336,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:337,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:337,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:338,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:338,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:339,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:339,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:340,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:340,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:341,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:341,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:342,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:342,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:343,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:343,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:344,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:344,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:345,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:345,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:346,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:346,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:347,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:347,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:348,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:348,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:349,1
    - Dst: MD5_SET
      Src: /src/curl/lib/md5.c:349,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:352,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:352,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:353,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:353,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:354,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:354,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:355,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:355,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:356,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:356,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:357,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:357,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:358,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:358,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:359,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:359,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:360,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:360,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:361,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:361,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:362,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:362,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:363,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:363,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:364,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:364,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:365,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:365,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:366,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:366,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:367,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:367,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:370,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:370,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:371,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:371,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:372,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:372,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:373,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:373,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:374,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:374,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:375,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:375,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:376,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:376,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:377,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:377,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:378,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:378,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:379,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:379,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:380,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:380,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:381,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:381,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:382,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:382,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:383,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:383,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:384,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:384,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:385,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:385,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:388,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:388,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:389,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:389,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:390,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:390,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:391,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:391,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:392,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:392,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:393,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:393,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:394,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:394,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:395,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:395,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:396,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:396,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:397,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:397,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:398,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:398,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:399,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:399,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:400,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:400,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:401,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:401,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:402,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:402,1
    - Dst: MD5_STEP
      Src: /src/curl/lib/md5.c:403,1
    - Dst: MD5_GET
      Src: /src/curl/lib/md5.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 85
    argCount: 3
    argNames:
    - ctx
    - data
    - size
    argTypes:
    - my_md5_ctx*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 419
    functionName: my_md5_body
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - MD5_GET
    - MD5_STEP
    - MD5_SET
    linkageType: ''
    returnType: void
    signature: "void *my_md5_body(my_md5_ctx *ctx,\n                               const
      void *data, unsigned long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 433
    functionName: my_md5_init
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_md5_init(void *in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/md5.c:454,1
    - Dst: memcpy
      Src: /src/curl/lib/md5.c:458,1
    - Dst: my_md5_body
      Src: /src/curl/lib/md5.c:461,1
    - Dst: my_md5_body
      Src: /src/curl/lib/md5.c:465,1
    - Dst: memcpy
      Src: /src/curl/lib/md5.c:469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - in
    - input
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 470
    functionName: my_md5_update
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - my_md5_body
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void my_md5_update(void *in,\n                          const unsigned
      char *input, unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/md5.c:484,1
    - Dst: my_md5_body
      Src: /src/curl/lib/md5.c:485,1
    - Dst: memset
      Src: /src/curl/lib/md5.c:490,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:493,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:494,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:495,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:496,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:497,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:498,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:499,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:500,1
    - Dst: my_md5_body
      Src: /src/curl/lib/md5.c:502,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:504,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:505,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:506,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:507,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:508,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:509,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:510,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:511,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:512,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:513,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:514,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:515,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:516,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:517,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:518,1
    - Dst: curlx_ultouc
      Src: /src/curl/lib/md5.c:519,1
    - Dst: memset
      Src: /src/curl/lib/md5.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 2
    argNames:
    - digest
    - in
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 522
    functionName: my_md5_final
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - curlx_ultouc
    - my_md5_body
    - memset
    linkageType: ''
    returnType: void
    signature: void my_md5_final(unsigned char *digest, void *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: my_md5_init
      Src: /src/curl/lib/md5.c:553,1
    - Dst: CURLMIN
      Src: /src/curl/lib/md5.c:556,1
    - Dst: my_md5_update
      Src: /src/curl/lib/md5.c:557,1
    - Dst: my_md5_final
      Src: /src/curl/lib/md5.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - output
    - input
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: Curl_md5it
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 1
    functionsReached:
    - my_md5_init
    - CURLMIN
    - my_md5_update
    - my_md5_final
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_md5it(unsigned char *output,\n                    const
      unsigned char *input, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/md5.c:571,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/md5.c:576,1
    - Dst: curlx_free
      Src: /src/curl/lib/md5.c:579,1
    - Dst: curlx_free
      Src: /src/curl/lib/md5.c:586,1
    - Dst: curlx_free
      Src: /src/curl/lib/md5.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - md5params
    argTypes:
    - struct MD5_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 592
    functionName: Curl_MD5_init
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - curlx_free
    linkageType: ''
    returnType: struct MD5_context
    signature: struct MD5_context *Curl_MD5_init(const struct MD5_params *md5params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - input
    - len
    argTypes:
    - struct MD5_context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 600
    functionName: Curl_MD5_update
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_MD5_update(struct MD5_context *context,\n                         const
      unsigned char *input, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/md5.c:606,1
    - Dst: curlx_free
      Src: /src/curl/lib/md5.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - context
    - result
    argTypes:
    - struct MD5_context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 610
    functionName: Curl_MD5_final
    functionSourceFile: /src/curl/lib/md5.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_MD5_final(struct MD5_context *context, unsigned char
      *result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/curl/lib/connect.c:79,1
    - Dst: memcmp
      Src: /src/curl/lib/connect.c:81,1
    - Dst: memcmp
      Src: /src/curl/lib/connect.c:83,1
    - Dst: memcmp
      Src: /src/curl/lib/connect.c:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: Curl_alpn2alpnid
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: enum alpnid
    signature: enum alpnid Curl_alpn2alpnid(const unsigned char *name, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_alpn2alpnid
      Src: /src/curl/lib/connect.c:95,1
    - Dst: curlx_str
      Src: /src/curl/lib/connect.c:95,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/connect.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cstr
    argTypes:
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: Curl_str2alpnid
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 2
    functionsReached:
    - curlx_str
    - curlx_strlen
    - Curl_alpn2alpnid
    linkageType: ''
    returnType: enum alpnid
    signature: enum alpnid Curl_str2alpnid(const struct Curl_str *cstr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_shutdown_started
      Src: /src/curl/lib/connect.c:117,1
    - Dst: Curl_shutdown_timeleft
      Src: /src/curl/lib/connect.c:118,1
    - Dst: Curl_is_connecting
      Src: /src/curl/lib/connect.c:119,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/connect.c:123,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/connect.c:133,1
    - Dst: CURLMIN
      Src: /src/curl/lib/connect.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - data
    - pnow
    argTypes:
    - struct Curl_easy*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 143
    functionName: timeleft_now_ms
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 1
    functionsReached:
    - CURLMIN
    - Curl_is_connecting
    - Curl_shutdown_timeleft
    - curlx_ptimediff_ms
    - Curl_shutdown_started
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST timeleft_now_ms(struct Curl_easy *data,\n                                    const
      struct curltime *pnow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timeleft_now_ms
      Src: /src/curl/lib/connect.c:147,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/connect.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: Curl_timeleft_ms
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 15
    functionsReached:
    - Curl_pgrs_now
    - timeleft_now_ms
    linkageType: ''
    returnType: timediff_t
    signature: timediff_t Curl_timeleft_ms(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/connect.c:155,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/connect.c:156,1
    - Dst: Curl_expire_ex
      Src: /src/curl/lib/connect.c:163,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/connect.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - sockindex
    - timeout_ms
    argTypes:
    - struct Curl_easy*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: Curl_shutdown_start
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 2
    functionsReached:
    - Curl_pgrs_now
    - CURL_TRC_M
    - DEBUGASSERT
    - Curl_expire_ex
    linkageType: ''
    returnType: void
    signature: "void Curl_shutdown_start(struct Curl_easy *data, int sockindex,\n
      \                        int timeout_ms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/connect.c:179,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/connect.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - data
    - conn
    - sockindex
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 182
    functionName: Curl_shutdown_timeleft
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 2
    functionsReached:
    - Curl_pgrs_now
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t Curl_shutdown_timeleft(struct Curl_easy *data,\n                                  struct
      connectdata *conn,\n                                  int sockindex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_shutdown_timeleft
      Src: /src/curl/lib/connect.c:193,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: Curl_conn_shutdown_timeleft
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 1
    functionsReached:
    - Curl_shutdown_timeleft
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t Curl_conn_shutdown_timeleft(struct Curl_easy *data,\n                                       struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/connect.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: Curl_shutdown_clear
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_shutdown_clear(struct Curl_easy *data, int sockindex)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: Curl_shutdown_started
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_shutdown_started(struct Curl_easy *data, int sockindex)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/connect.c:233,1
    - Dst: ntohs
      Src: /src/curl/lib/connect.c:234,1
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/connect.c:241,1
    - Dst: ntohs
      Src: /src/curl/lib/connect.c:242,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/connect.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - sa
    - salen
    - addr
    - port
    argTypes:
    - struct sockaddr*
    - curl_socklen_t
    - char*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 217
    functionDepth: 7
    functionLinenumber: 217
    functionLinenumberEnd: 266
    functionName: Curl_addr2string
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 5
    functionsReached:
    - ntohs
    - curlx_inet_ntop
    - curl_msnprintf
    linkageType: ''
    returnType: bool
    signature: "bool Curl_addr2string(struct sockaddr *sa, curl_socklen_t salen,\n
      \                     char *addr, uint16_t *port)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/connect.c:277,1
    - Dst: Curl_cpool_get_conn
      Src: /src/curl/lib/connect.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - connp
    argTypes:
    - struct Curl_easy*
    - struct connectdata**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 299
    functionName: Curl_getconnectinfo
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 5
    functionsReached:
    - Curl_cpool_get_conn
    - DEBUGASSERT
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t Curl_getconnectinfo(struct Curl_easy *data,\n                                  struct
      connectdata **connp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/connect.c:358,1
    - Dst: Curl_cf_haproxy_insert_after
      Src: /src/curl/lib/connect.c:361,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:363,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 371
    functionName: cf_setup_add_haproxy
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - failf
    - Curl_cf_haproxy_insert_after
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_setup_add_haproxy(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_get_destination
      Src: /src/curl/lib/connect.c:385,1
    - Dst: Curl_cf_socks_proxy_insert_after
      Src: /src/curl/lib/connect.c:389,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:394,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 373
    functionDepth: 5
    functionLinenumber: 373
    functionLinenumberEnd: 403
    functionName: cf_setup_add_socks
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - Curl_conn_get_destination
    - CURL_TRC_CF
    - Curl_cf_socks_proxy_insert_after
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_setup_add_socks(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTTPS_PROXY
      Src: /src/curl/lib/connect.c:414,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/connect.c:415,1
    - Dst: Curl_cf_ssl_proxy_insert_after
      Src: /src/curl/lib/connect.c:416,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:418,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:422,1
    - Dst: Curl_conn_get_destination
      Src: /src/curl/lib/connect.c:428,1
    - Dst: Curl_cf_http_proxy_insert_after
      Src: /src/curl/lib/connect.c:429,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:432,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:436,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 441
    functionName: cf_setup_add_http_proxy
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - Curl_conn_get_destination
    - Curl_cf_http_proxy_insert_after
    - IS_HTTPS_PROXY
    - Curl_cf_ssl_proxy_insert_after
    - Curl_conn_is_ssl
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_setup_add_http_proxy(struct Curl_cfilter *cf,\n                                        struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_get_first_peer
      Src: /src/curl/lib/connect.c:455,1
    - Dst: Curl_http_proxy_transport
      Src: /src/curl/lib/connect.c:462,1
    - Dst: failf
      Src: /src/curl/lib/connect.c:464,1
    - Dst: cf_ip_happy_insert_after
      Src: /src/curl/lib/connect.c:471,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:475,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:480,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:485,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 492
    functionName: cf_setup_add_ip_happy
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_http_proxy_transport
    - cf_ip_happy_insert_after
    - Curl_conn_get_first_peer
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_setup_add_ip_happy(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cf_capsule_insert_after
      Src: /src/curl/lib/connect.c:509,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:511,1
    - Dst: Curl_cf_quic_insert_after
      Src: /src/curl/lib/connect.c:514,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:516,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:519,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/connect.c:527,1
    - Dst: Curl_cf_ssl_insert_after
      Src: /src/curl/lib/connect.c:528,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:530,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:534,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 540
    functionName: cf_setup_add_origin_filters
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - Curl_cf_ssl_insert_after
    - Curl_cf_capsule_insert_after
    - Curl_cf_quic_insert_after
    - Curl_conn_is_ssl
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_setup_add_origin_filters(struct Curl_cfilter *cf,\n                                            struct
      Curl_easy *data)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: VERBOSE
      Src: /src/curl/lib/connect.c:556,1
    - Dst: Curl_conn_trc_filters
      Src: /src/curl/lib/connect.c:556,1
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/connect.c:559,1
    - Dst: cf_setup_add_ip_happy
      Src: /src/curl/lib/connect.c:564,1
    - Dst: cf_setup_add_socks
      Src: /src/curl/lib/connect.c:571,1
    - Dst: cf_setup_add_http_proxy
      Src: /src/curl/lib/connect.c:578,1
    - Dst: cf_setup_add_haproxy
      Src: /src/curl/lib/connect.c:585,1
    - Dst: cf_setup_add_origin_filters
      Src: /src/curl/lib/connect.c:592,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 47
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 542
    functionDepth: 8
    functionLinenumber: 542
    functionLinenumberEnd: 602
    functionName: cf_setup_connect_steps
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - cf_setup_add_ip_happy
    - Curl_conn_trc_filters
    - VERBOSE
    - cf_setup_add_http_proxy
    - cf_setup_add_haproxy
    - cf_setup_add_socks
    - cf_setup_add_origin_filters
    - Curl_conn_cf_connect
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_setup_connect_steps(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       bool *done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_setup_connect_steps
      Src: /src/curl/lib/connect.c:617,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:624,1
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/connect.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 604
    functionDepth: 9
    functionLinenumber: 604
    functionLinenumberEnd: 630
    functionName: cf_setup_connect
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_discard_chain
    - cf_setup_connect_steps
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_setup_connect(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/connect.c:636,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/connect.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 638
    functionName: cf_setup_destroy
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: void cf_setup_destroy(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/connect.c:667,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/connect.c:676,1
    - Dst: curlx_free
      Src: /src/curl/lib/connect.c:684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - pcf
    - data
    - transport
    - ssl_mode
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 687
    functionName: cf_setup_create
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - curlx_free
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_setup_create(struct Curl_cfilter **pcf,\n                                struct
      Curl_easy *data,\n                                uint8_t transport,\n                                int
      ssl_mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/connect.c:698,1
    - Dst: cf_setup_create
      Src: /src/curl/lib/connect.c:699,1
    - Dst: Curl_conn_cf_add
      Src: /src/curl/lib/connect.c:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - data
    - conn
    - sockindex
    - transport
    - ssl_mode
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 705
    functionName: cf_setup_add
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 0
    functionsReached:
    - cf_setup_create
    - Curl_conn_cf_add
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_setup_add(struct Curl_easy *data,\n                             struct
      connectdata *conn,\n                             int sockindex,\n                             uint8_t
      transport,\n                             int ssl_mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/connect.c:715,1
    - Dst: cf_setup_create
      Src: /src/curl/lib/connect.c:716,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/connect.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - cf_at
    - data
    - transport
    - ssl_mode
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 722
    functionName: Curl_cf_setup_insert_after
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 1
    functionsReached:
    - cf_setup_create
    - Curl_conn_cf_insert_after
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_setup_insert_after(struct Curl_cfilter *cf_at,\n
      \                                   struct Curl_easy *data,\n                                    uint8_t
      transport,\n                                    int ssl_mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_get_first_peer
      Src: /src/curl/lib/connect.c:730,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/connect.c:733,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/connect.c:734,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/connect.c:735,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/connect.c:743,1
    - Dst: Curl_cf_https_setup
      Src: /src/curl/lib/connect.c:744,1
    - Dst: cf_setup_add
      Src: /src/curl/lib/connect.c:752,1
    - Dst: Curl_resolv_dns_queries
      Src: /src/curl/lib/connect.c:758,1
    - Dst: Curl_cf_dns_add
      Src: /src/curl/lib/connect.c:763,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/connect.c:765,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - data
    - conn
    - sockindex
    - ssl_mode
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 724
    functionDepth: 8
    functionLinenumber: 724
    functionLinenumberEnd: 768
    functionName: Curl_conn_setup
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 2
    functionsReached:
    - cf_setup_add
    - Curl_resolv_dns_queries
    - DEBUGASSERT
    - Curl_cf_dns_add
    - Curl_cf_https_setup
    - Curl_conn_get_first_peer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_setup(struct Curl_easy *data,\n                         struct
      connectdata *conn,\n                         int sockindex,\n                         int
      ssl_mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_connchanged
      Src: /src/curl/lib/connect.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 778
    functionName: Curl_conn_set_multiplex
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 2
    functionsReached:
    - Curl_multi_connchanged
    linkageType: ''
    returnType: void
    signature: void Curl_conn_set_multiplex(struct connectdata *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - sockindex
    argTypes:
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 790
    functionName: Curl_conn_get_destination
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct Curl_peer
    signature: "struct Curl_peer *Curl_conn_get_destination(struct connectdata *conn,\n
      \                                           int sockindex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - sockindex
    argTypes:
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 804
    functionName: Curl_conn_get_first_peer
    functionSourceFile: /src/curl/lib/connect.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct Curl_peer
    signature: "struct Curl_peer *Curl_conn_get_first_peer(struct connectdata *conn,\n
      \                                          int sockindex)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:174,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/pop3.c:193,1
    - Dst: Curl_sasl_parse_url_auth_option
      Src: /src/curl/lib/pop3.c:194,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/pop3.c:197,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 224
    functionName: pop3_parse_url_options
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_parse_url_auth_option
    - curl_strnequal
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_parse_url_options(struct connectdata *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/pop3.c:235,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/pop3.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 242
    functionName: pop3_parse_url_path
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - Curl_urldecode
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_parse_url_path(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/pop3.c:253,1
    - Dst: Curl_urldecode
      Src: /src/curl/lib/pop3.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 263
    functionName: pop3_parse_custom_request
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - Curl_urldecode
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_parse_custom_request(struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/pop3.c:271,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/pop3.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 282
    functionName: pop3_is_multiline
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: bool
    signature: bool pop3_is_multiline(const char *cmdline)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:296,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/pop3.c:298,1
    - Dst: memcmp
      Src: /src/curl/lib/pop3.c:303,1
    - Dst: memcmp
      Src: /src/curl/lib/pop3.c:325,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 5
    argNames:
    - data
    - conn
    - line
    - len
    - resp
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 339
    functionName: pop3_endofresp
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - DEBUGASSERT
    - Curl_conn_meta_get
    linkageType: ''
    returnType: bool
    signature: "bool pop3_endofresp(struct Curl_easy *data, struct connectdata *conn,\n
      \                          const char *line, size_t len, int *resp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:350,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/pop3.c:356,1
    - Dst: ISBLANK
      Src: /src/curl/lib/pop3.c:361,1
    - Dst: ISBLANK
      Src: /src/curl/lib/pop3.c:366,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/pop3.c:366,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/pop3.c:371,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/pop3.c:375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 378
    functionName: pop3_get_message
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_set
    - ISNEWLINE
    - Curl_conn_meta_get
    - curlx_dyn_ptr
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_get_message(struct Curl_easy *data, struct bufref *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:389,1
    - Dst: infof
      Src: /src/curl/lib/pop3.c:409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - newstate
    argTypes:
    - struct Curl_easy*
    - pop3state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 415
    functionName: pop3_state
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - infof
    - Curl_conn_meta_get
    linkageType: ''
    returnType: void
    signature: void pop3_state(struct Curl_easy *data, pop3state newstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:427,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:438,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 444
    functionName: pop3_perform_capa
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - pop3_state
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_perform_capa(struct Curl_easy *data,\n                                  struct
      connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:455,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:462,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 467
    functionName: pop3_perform_starttls
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - pop3_state
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_perform_starttls(struct Curl_easy *data,\n                                      struct
      connectdata *conn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:480,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/pop3.c:487,1
    - Dst: Curl_ssl_cfilter_add
      Src: /src/curl/lib/pop3.c:488,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/pop3.c:495,1
    - Dst: Curl_conn_connect
      Src: /src/curl/lib/pop3.c:496,1
    - Dst: DEBUGF
      Src: /src/curl/lib/pop3.c:497,1
    - Dst: infof
      Src: /src/curl/lib/pop3.c:497,1
    - Dst: pop3_perform_capa
      Src: /src/curl/lib/pop3.c:502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 475
    functionDepth: 9
    functionLinenumber: 475
    functionLinenumberEnd: 511
    functionName: pop3_perform_upgrade_tls
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - DEBUGF
    - pop3_perform_capa
    - Curl_conn_connect
    - Curl_ssl_cfilter_add
    - Curl_conn_meta_get
    - infof
    - Curl_conn_is_ssl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_perform_upgrade_tls(struct Curl_easy *data,\n                                         struct
      connectdata *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:522,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:531,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:537,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/pop3.c:538,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 543
    functionName: pop3_perform_user
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - pop3_state
    - Curl_creds_user
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_perform_user(struct Curl_easy *data,\n                                  struct
      connectdata *conn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:555,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:568,1
    - Dst: Curl_MD5_init
      Src: /src/curl/lib/pop3.c:574,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/pop3.c:578,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/pop3.c:579,1
    - Dst: strlen
      Src: /src/curl/lib/pop3.c:579,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/pop3.c:581,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/pop3.c:581,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/pop3.c:582,1
    - Dst: strlen
      Src: /src/curl/lib/pop3.c:582,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/pop3.c:582,1
    - Dst: Curl_MD5_final
      Src: /src/curl/lib/pop3.c:585,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/pop3.c:589,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:591,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/pop3.c:592,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 552
    functionDepth: 7
    functionLinenumber: 552
    functionLinenumberEnd: 598
    functionName: pop3_perform_apop
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_MD5_init
    - curl_msnprintf
    - Curl_creds_passwd
    - Curl_MD5_final
    - strlen
    - Curl_conn_meta_get
    - curlx_uztoui
    - Curl_pp_sendf
    - Curl_creds_user
    - Curl_MD5_update
    - pop3_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_perform_apop(struct Curl_easy *data,\n                                  struct
      connectdata *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:613,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/pop3.c:615,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:622,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - mech
    - initresp
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 630
    functionName: pop3_perform_auth
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_bufref_ptr
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_perform_auth(struct Curl_easy *data,\n                                  const
      char *mech,\n                                  const struct bufref *initresp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:643,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:649,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/pop3.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - mech
    - resp
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 650
    functionName: pop3_continue_auth
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_bufref_ptr
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_continue_auth(struct Curl_easy *data,\n                                   const
      char *mech,\n                                   const struct bufref *resp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:661,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - mech
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 668
    functionName: pop3_cancel_auth
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_cancel_auth(struct Curl_easy *data, const char *mech)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:681,1
    - Dst: Curl_sasl_can_authenticate
      Src: /src/curl/lib/pop3.c:690,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:691,1
    - Dst: Curl_sasl_start
      Src: /src/curl/lib/pop3.c:697,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:701,1
    - Dst: pop3_perform_apop
      Src: /src/curl/lib/pop3.c:708,1
    - Dst: pop3_perform_user
      Src: /src/curl/lib/pop3.c:713,1
    - Dst: Curl_sasl_is_blocked
      Src: /src/curl/lib/pop3.c:715,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 678
    functionDepth: 8
    functionLinenumber: 678
    functionLinenumberEnd: 719
    functionName: pop3_perform_authentication
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_conn_meta_get
    - Curl_sasl_can_authenticate
    - Curl_sasl_start
    - pop3_perform_user
    - pop3_state
    - pop3_perform_apop
    - Curl_sasl_is_blocked
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_perform_authentication(struct Curl_easy *data,\n                                            struct
      connectdata *conn)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/pop3.c:731,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:732,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:754,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:756,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:759,1
    - Dst: pop3_is_multiline
      Src: /src/curl/lib/pop3.c:760,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 764
    functionName: pop3_perform_command
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_is_multiline
    - Curl_conn_meta_get
    - Curl_meta_get
    - Curl_pp_sendf
    - pop3_state
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_perform_command(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:775,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:782,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 787
    functionName: pop3_perform_quit
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_sendf
    - pop3_state
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_perform_quit(struct Curl_easy *data,\n                                  struct
      connectdata *conn)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:796,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/pop3.c:804,1
    - Dst: failf
      Src: /src/curl/lib/pop3.c:808,1
    - Dst: memchr
      Src: /src/curl/lib/pop3.c:817,1
    - Dst: memchr
      Src: /src/curl/lib/pop3.c:820,1
    - Dst: memchr
      Src: /src/curl/lib/pop3.c:824,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/pop3.c:830,1
    - Dst: pop3_perform_capa
      Src: /src/curl/lib/pop3.c:839,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - data
    - pop3code
    - instate
    argTypes:
    - struct Curl_easy*
    - int
    - pop3state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 790
    functionDepth: 4
    functionLinenumber: 790
    functionLinenumberEnd: 843
    functionName: pop3_state_servergreet_resp
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - failf
    - pop3_perform_capa
    - memchr
    - Curl_conn_meta_get
    - curlx_dyn_ptr
    - curlx_memdup0
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_state_servergreet_resp(struct Curl_easy *data,\n                                            int
      pop3code,\n                                            pop3state instate)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:851,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/pop3.c:859,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/pop3.c:865,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/pop3.c:869,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/pop3.c:873,1
    - Dst: ISBLANK
      Src: /src/curl/lib/pop3.c:886,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/pop3.c:886,1
    - Dst: ISBLANK
      Src: /src/curl/lib/pop3.c:895,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/pop3.c:896,1
    - Dst: Curl_sasl_decode_mech
      Src: /src/curl/lib/pop3.c:900,1
    - Dst: Curl_conn_is_ssl
      Src: /src/curl/lib/pop3.c:914,1
    - Dst: pop3_perform_authentication
      Src: /src/curl/lib/pop3.c:915,1
    - Dst: pop3_perform_starttls
      Src: /src/curl/lib/pop3.c:918,1
    - Dst: pop3_perform_authentication
      Src: /src/curl/lib/pop3.c:921,1
    - Dst: failf
      Src: /src/curl/lib/pop3.c:923,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 45
    argCount: 3
    argNames:
    - data
    - pop3code
    - instate
    argTypes:
    - struct Curl_easy*
    - int
    - pop3state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 846
    functionDepth: 9
    functionLinenumber: 846
    functionLinenumberEnd: 929
    functionName: pop3_state_capa_resp
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - failf
    - ISNEWLINE
    - pop3_perform_starttls
    - curl_strnequal
    - curlx_dyn_ptr
    - Curl_conn_meta_get
    - pop3_perform_authentication
    - Curl_conn_is_ssl
    - ISBLANK
    - Curl_sasl_decode_mech
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_state_capa_resp(struct Curl_easy *data, int pop3code,\n
      \                                    pop3state instate)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:937,1
    - Dst: failf
      Src: /src/curl/lib/pop3.c:950,1
    - Dst: pop3_perform_authentication
      Src: /src/curl/lib/pop3.c:954,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:957,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - data
    - conn
    - pop3code
    - instate
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    - pop3state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 932
    functionDepth: 9
    functionLinenumber: 932
    functionLinenumberEnd: 960
    functionName: pop3_state_starttls_resp
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_perform_authentication
    - pop3_state
    - failf
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_state_starttls_resp(struct Curl_easy *data,\n                                         struct
      connectdata *conn,\n                                         int pop3code,\n
      \                                        pop3state instate)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:969,1
    - Dst: Curl_sasl_continue
      Src: /src/curl/lib/pop3.c:976,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:980,1
    - Dst: pop3_perform_apop
      Src: /src/curl/lib/pop3.c:986,1
    - Dst: pop3_perform_user
      Src: /src/curl/lib/pop3.c:991,1
    - Dst: failf
      Src: /src/curl/lib/pop3.c:993,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - data
    - pop3code
    - instate
    argTypes:
    - struct Curl_easy*
    - int
    - pop3state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 963
    functionDepth: 8
    functionLinenumber: 963
    functionLinenumberEnd: 1002
    functionName: pop3_state_auth_resp
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_perform_apop
    - failf
    - Curl_conn_meta_get
    - pop3_perform_user
    - pop3_state
    - Curl_sasl_continue
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_state_auth_resp(struct Curl_easy *data,\n                                     int
      pop3code,\n                                     pop3state instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/pop3.c:1013,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:1018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - data
    - pop3code
    - instate
    argTypes:
    - struct Curl_easy*
    - int
    - pop3state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1006
    functionDepth: 3
    functionLinenumber: 1006
    functionLinenumberEnd: 1021
    functionName: pop3_state_apop_resp
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_state
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_state_apop_resp(struct Curl_easy *data, int pop3code,\n
      \                                    pop3state instate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:1030,1
    - Dst: failf
      Src: /src/curl/lib/pop3.c:1037,1
    - Dst: Curl_pp_sendf
      Src: /src/curl/lib/pop3.c:1042,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/pop3.c:1043,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:1045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - data
    - pop3code
    - instate
    argTypes:
    - struct Curl_easy*
    - int
    - pop3state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1025
    functionDepth: 3
    functionLinenumber: 1025
    functionLinenumberEnd: 1048
    functionName: pop3_state_user_resp
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_creds_passwd
    - failf
    - Curl_conn_meta_get
    - Curl_pp_sendf
    - pop3_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_state_user_resp(struct Curl_easy *data, int pop3code,\n
      \                                    pop3state instate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/pop3.c:1058,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - data
    - pop3code
    - instate
    argTypes:
    - struct Curl_easy*
    - int
    - pop3state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1051
    functionDepth: 3
    functionLinenumber: 1051
    functionLinenumberEnd: 1066
    functionName: pop3_state_pass_resp
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_state
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_state_pass_resp(struct Curl_easy *data, int pop3code,\n
      \                                    pop3state instate)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:1081,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/pop3.c:1105,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/pop3.c:1163,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/pop3.c:1167,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/pop3.c:1187,1
    - Dst: CURL_REQ_CLEAR_RECV
      Src: /src/curl/lib/pop3.c:1189,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/pop3.c:1200,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 4
    argNames:
    - data
    - str
    - nread
    - is_eos
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1075
    functionDepth: 3
    functionLinenumber: 1075
    functionLinenumberEnd: 1205
    functionName: pop3_write
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - CURL_REQ_CLEAR_RECV
    - Curl_client_write
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_write(struct Curl_easy *data, const char *str,\n                           size_t
      nread, bool is_eos)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/pop3.c:1214,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:1215,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:1224,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/pop3.c:1240,1
    - Dst: curlx_dyn_tail
      Src: /src/curl/lib/pop3.c:1248,1
    - Dst: pop3_write
      Src: /src/curl/lib/pop3.c:1252,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/pop3.c:1252,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/pop3.c:1253,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/pop3.c:1259,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:1267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - data
    - pop3code
    - instate
    argTypes:
    - struct Curl_easy*
    - int
    - pop3state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1208
    functionDepth: 4
    functionLinenumber: 1208
    functionLinenumberEnd: 1270
    functionName: pop3_state_command_resp
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_write
    - Curl_xfer_setup_recv
    - curlx_dyn_len
    - Curl_conn_meta_get
    - curlx_dyn_ptr
    - Curl_meta_get
    - curlx_dyn_reset
    - curlx_dyn_tail
    - pop3_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_state_command_resp(struct Curl_easy *data,\n                                        int
      pop3code,\n                                        pop3state instate)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:1275,1
    - Dst: pop3_perform_upgrade_tls
      Src: /src/curl/lib/pop3.c:1289,1
    - Dst: Curl_pp_flushsend
      Src: /src/curl/lib/pop3.c:1296,1
    - Dst: Curl_pp_readresp
      Src: /src/curl/lib/pop3.c:1300,1
    - Dst: pop3_state_servergreet_resp
      Src: /src/curl/lib/pop3.c:1310,1
    - Dst: pop3_state_capa_resp
      Src: /src/curl/lib/pop3.c:1314,1
    - Dst: pop3_state_starttls_resp
      Src: /src/curl/lib/pop3.c:1318,1
    - Dst: pop3_state_auth_resp
      Src: /src/curl/lib/pop3.c:1326,1
    - Dst: pop3_state_apop_resp
      Src: /src/curl/lib/pop3.c:1331,1
    - Dst: pop3_state_user_resp
      Src: /src/curl/lib/pop3.c:1336,1
    - Dst: pop3_state_pass_resp
      Src: /src/curl/lib/pop3.c:1340,1
    - Dst: pop3_state_command_resp
      Src: /src/curl/lib/pop3.c:1344,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:1348,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:1353,1
    - Dst: Curl_pp_moredata
      Src: /src/curl/lib/pop3.c:1356,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1272
    functionDepth: 10
    functionLinenumber: 1272
    functionLinenumberEnd: 1359
    functionName: pop3_statemachine
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_state_starttls_resp
    - Curl_pp_flushsend
    - pop3_perform_upgrade_tls
    - pop3_state_user_resp
    - pop3_state_command_resp
    - Curl_pp_moredata
    - Curl_conn_meta_get
    - pop3_state_servergreet_resp
    - pop3_state_pass_resp
    - pop3_state_auth_resp
    - pop3_state_apop_resp
    - Curl_pp_readresp
    - pop3_state_capa_resp
    - pop3_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_statemachine(struct Curl_easy *data,\n                                  struct
      connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:1366,1
    - Dst: Curl_pp_statemach
      Src: /src/curl/lib/pop3.c:1370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1362
    functionDepth: 3
    functionLinenumber: 1362
    functionLinenumberEnd: 1374
    functionName: pop3_multi_statemach
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_statemach
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_multi_statemach(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:1381,1
    - Dst: Curl_pp_statemach
      Src: /src/curl/lib/pop3.c:1387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - data
    - conn
    - disconnecting
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1376
    functionDepth: 3
    functionLinenumber: 1376
    functionLinenumberEnd: 1390
    functionName: pop3_block_statemach
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_statemach
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_block_statemach(struct Curl_easy *data,\n                                     struct
      connectdata *conn,\n                                     bool disconnecting)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:1397,1
    - Dst: Curl_pp_pollset
      Src: /src/curl/lib/pop3.c:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1393
    functionDepth: 2
    functionLinenumber: 1393
    functionLinenumberEnd: 1399
    functionName: pop3_pollset
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_pp_pollset
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_pollset(struct Curl_easy *data,\n                             struct
      easy_pollset *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:1429,1
    - Dst: PINGPONG_SETUP
      Src: /src/curl/lib/pop3.c:1436,1
    - Dst: Curl_sasl_init
      Src: /src/curl/lib/pop3.c:1440,1
    - Dst: Curl_pp_init
      Src: /src/curl/lib/pop3.c:1443,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/pop3.c:1443,1
    - Dst: pop3_parse_url_options
      Src: /src/curl/lib/pop3.c:1446,1
    - Dst: pop3_state
      Src: /src/curl/lib/pop3.c:1451,1
    - Dst: pop3_multi_statemach
      Src: /src/curl/lib/pop3.c:1453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1425
    functionDepth: 4
    functionLinenumber: 1425
    functionLinenumberEnd: 1456
    functionName: pop3_connect
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_sasl_init
    - PINGPONG_SETUP
    - Curl_pgrs_now
    - pop3_parse_url_options
    - Curl_conn_meta_get
    - pop3_multi_statemach
    - pop3_state
    - Curl_pp_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_connect(struct Curl_easy *data, bool *done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/pop3.c:1471,1
    - Dst: connclose
      Src: /src/curl/lib/pop3.c:1479,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/pop3.c:1484,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/pop3.c:1485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1467
    functionDepth: 2
    functionLinenumber: 1467
    functionLinenumberEnd: 1491
    functionName: pop3_done
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - connclose
    - Curl_meta_get
    - curlx_safefree
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_done(struct Curl_easy *data, CURLcode status,\n                          bool
      premature)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/pop3.c:1505,1
    - Dst: DEBUGF
      Src: /src/curl/lib/pop3.c:1510,1
    - Dst: infof
      Src: /src/curl/lib/pop3.c:1510,1
    - Dst: pop3_perform_command
      Src: /src/curl/lib/pop3.c:1513,1
    - Dst: pop3_multi_statemach
      Src: /src/curl/lib/pop3.c:1524,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/pop3.c:1525,1
    - Dst: DEBUGF
      Src: /src/curl/lib/pop3.c:1528,1
    - Dst: infof
      Src: /src/curl/lib/pop3.c:1528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - data
    - connected
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1500
    functionDepth: 5
    functionLinenumber: 1500
    functionLinenumberEnd: 1531
    functionName: pop3_perform
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - infof
    - Curl_meta_get
    - pop3_multi_statemach
    - DEBUGF
    - pop3_perform_command
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_perform(struct Curl_easy *data, bool *connected,\n                             bool
      *dophase_done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - connected
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1540
    functionName: pop3_dophase_done
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_dophase_done(struct Curl_easy *data, bool connected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsReset
      Src: /src/curl/lib/pop3.c:1561,1
    - Dst: pop3_perform
      Src: /src/curl/lib/pop3.c:1564,1
    - Dst: pop3_dophase_done
      Src: /src/curl/lib/pop3.c:1568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1551
    functionDepth: 6
    functionLinenumber: 1551
    functionLinenumberEnd: 1571
    functionName: pop3_regular_transfer
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_dophase_done
    - Curl_pgrsReset
    - pop3_perform
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_regular_transfer(struct Curl_easy *data,\n                                      bool
      *dophase_done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pop3_parse_url_path
      Src: /src/curl/lib/pop3.c:1588,1
    - Dst: pop3_parse_custom_request
      Src: /src/curl/lib/pop3.c:1593,1
    - Dst: pop3_regular_transfer
      Src: /src/curl/lib/pop3.c:1597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1582
    functionDepth: 7
    functionLinenumber: 1582
    functionLinenumberEnd: 1600
    functionName: pop3_do
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_parse_url_path
    - pop3_regular_transfer
    - pop3_parse_custom_request
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_do(struct Curl_easy *data, bool *done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/pop3.c:1612,1
    - Dst: Curl_pp_needs_flush
      Src: /src/curl/lib/pop3.c:1623,1
    - Dst: pop3_perform_quit
      Src: /src/curl/lib/pop3.c:1624,1
    - Dst: pop3_block_statemach
      Src: /src/curl/lib/pop3.c:1625,1
    - Dst: Curl_pp_disconnect
      Src: /src/curl/lib/pop3.c:1629,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/pop3.c:1632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1609
    functionDepth: 4
    functionLinenumber: 1609
    functionLinenumberEnd: 1635
    functionName: pop3_disconnect
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - pop3_block_statemach
    - Curl_pp_needs_flush
    - Curl_conn_meta_get
    - Curl_pp_disconnect
    - pop3_perform_quit
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_disconnect(struct Curl_easy *data,\n                                struct
      connectdata *conn, bool dead_connection)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pop3_multi_statemach
      Src: /src/curl/lib/pop3.c:1640,1
    - Dst: DEBUGF
      Src: /src/curl/lib/pop3.c:1643,1
    - Dst: infof
      Src: /src/curl/lib/pop3.c:1643,1
    - Dst: pop3_dophase_done
      Src: /src/curl/lib/pop3.c:1645,1
    - Dst: DEBUGF
      Src: /src/curl/lib/pop3.c:1647,1
    - Dst: infof
      Src: /src/curl/lib/pop3.c:1647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1638
    functionDepth: 4
    functionLinenumber: 1638
    functionLinenumberEnd: 1651
    functionName: pop3_doing
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - pop3_multi_statemach
    - DEBUGF
    - pop3_dophase_done
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode pop3_doing(struct Curl_easy *data, bool *dophase_done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/pop3.c:1658,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/pop3.c:1660,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/pop3.c:1661,1
    - Dst: curlx_free
      Src: /src/curl/lib/pop3.c:1662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1653
    functionDepth: 1
    functionLinenumber: 1653
    functionLinenumberEnd: 1663
    functionName: pop3_easy_dtor
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void pop3_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/pop3.c:1670,1
    - Dst: Curl_pp_disconnect
      Src: /src/curl/lib/pop3.c:1671,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/pop3.c:1672,1
    - Dst: curlx_free
      Src: /src/curl/lib/pop3.c:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1665
    functionDepth: 2
    functionLinenumber: 1665
    functionLinenumberEnd: 1674
    functionName: pop3_conn_dtor
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    - Curl_pp_disconnect
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void pop3_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/pop3.c:1680,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/pop3.c:1682,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/pop3.c:1685,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/pop3.c:1687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1676
    functionDepth: 2
    functionLinenumber: 1676
    functionLinenumberEnd: 1691
    functionName: pop3_setup_connection
    functionSourceFile: /src/curl/lib/pop3.c
    functionUses: 0
    functionsReached:
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_meta_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pop3_setup_connection(struct Curl_easy *data,\n                                      struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - hs
    - index
    - amount
    - e
    - hout
    argTypes:
    - struct Curl_header_store*
    - size_t
    - size_t
    - struct Curl_llist_node*
    - struct curl_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: copy_header_external
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void copy_header_external(struct Curl_header_store *hs,\n                                 size_t
      index,\n                                 size_t amount,\n                                 struct
      Curl_llist_node *e,\n                                 struct curl_header *hout)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_count
      Src: /src/curl/lib/headers.c:73,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/headers.c:81,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/headers.c:81,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/headers.c:82,1
    - Dst: curl_strequal
      Src: /src/curl/lib/headers.c:83,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/headers.c:100,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/headers.c:100,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/headers.c:101,1
    - Dst: curl_strequal
      Src: /src/curl/lib/headers.c:102,1
    - Dst: copy_header_external
      Src: /src/curl/lib/headers.c:114,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 6
    argNames:
    - curl
    - name
    - nameindex
    - origin
    - request
    - hout
    argTypes:
    - CURL*
    - char*
    - size_t
    - unsigned int
    - int
    - struct curl_header**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 118
    functionName: curl_easy_header
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 5
    functionsReached:
    - Curl_llist_count
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - curl_strequal
    - copy_header_external
    linkageType: ''
    returnType: CURLHcode
    signature: "CURLHcode curl_easy_header(CURL *curl,\n                           const
      char *name,\n                           size_t nameindex,\n                           unsigned
      int origin,\n                           int request,\n                           struct
      curl_header **hout)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_node_next
      Src: /src/curl/lib/headers.c:143,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/headers.c:146,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/headers.c:151,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/headers.c:154,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/headers.c:162,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/headers.c:166,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/headers.c:166,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/headers.c:167,1
    - Dst: curl_strequal
      Src: /src/curl/lib/headers.c:168,1
    - Dst: copy_header_external
      Src: /src/curl/lib/headers.c:176,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 4
    argNames:
    - curl
    - origin
    - request
    - prev
    argTypes:
    - CURL*
    - unsigned int
    - int
    - struct curl_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 179
    functionName: curl_easy_nextheader
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 4
    functionsReached:
    - Curl_node_elem
    - Curl_node_next
    - curl_strequal
    - Curl_llist_head
    - copy_header_external
    linkageType: ''
    returnType: struct curl_header
    signature: "struct curl_header *curl_easy_nextheader(CURL *curl,\n                                         unsigned
      int origin,\n                                         int request,\n                                         struct
      curl_header *prev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/headers.c:185,1
    - Dst: ISBLANK
      Src: /src/curl/lib/headers.c:205,1
    - Dst: ISBLANK
      Src: /src/curl/lib/headers.c:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 5
    argNames:
    - header
    - hlen
    - type
    - name
    - value
    argTypes:
    - char*
    - size_t
    - unsigned int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 214
    functionName: namevalue
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 0
    functionsReached:
    - ISBLANK
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode namevalue(char *header, size_t hlen, unsigned int type,\n
      \                         char **name, char **value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/lib/headers.c:244,1
    - Dst: ISBLANK
      Src: /src/curl/lib/headers.c:246,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/headers.c:253,1
    - Dst: failf
      Src: /src/curl/lib/headers.c:254,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/headers.c:259,1
    - Dst: memcpy
      Src: /src/curl/lib/headers.c:262,1
    - Dst: namevalue
      Src: /src/curl/lib/headers.c:265,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/headers.c:273,1
    - Dst: failf
      Src: /src/curl/lib/headers.c:277,1
    - Dst: curlx_free
      Src: /src/curl/lib/headers.c:278,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - data
    - header
    - hlen
    - type
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 281
    functionName: Curl_headers_push
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 1
    functionsReached:
    - Curl_llist_count
    - memcpy
    - failf
    - Curl_llist_append
    - curlx_free
    - curlx_calloc
    - namevalue
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_headers_push(struct Curl_easy *data, const char *header,\n
      \                          size_t hlen, /* length of header */\n                           unsigned
      char type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_init
      Src: /src/curl/lib/headers.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: headers_reset
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 0
    functionsReached:
    - Curl_llist_init
    linkageType: ''
    returnType: void
    signature: void headers_reset(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_headers_push
      Src: /src/curl/lib/headers.c:306,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/headers.c:307,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/headers.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - blen
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 313
    functionName: hds_cw_collect_write
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_WRITE
    - Curl_cwriter_write
    - Curl_headers_push
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode hds_cw_collect_write(struct Curl_easy *data,\n                                     struct
      Curl_cwriter *writer, int type,\n                                     const
      char *buf, size_t blen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_get_by_name
      Src: /src/curl/lib/headers.c:331,1
    - Dst: Curl_cwriter_create
      Src: /src/curl/lib/headers.c:334,1
    - Dst: Curl_cwriter_add
      Src: /src/curl/lib/headers.c:339,1
    - Dst: Curl_cwriter_free
      Src: /src/curl/lib/headers.c:341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: Curl_headers_init
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 2
    functionsReached:
    - Curl_cwriter_create
    - Curl_cwriter_get_by_name
    - Curl_cwriter_add
    - Curl_cwriter_free
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_headers_init(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/headers.c:356,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/headers.c:357,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/headers.c:358,1
    - Dst: curlx_free
      Src: /src/curl/lib/headers.c:359,1
    - Dst: headers_reset
      Src: /src/curl/lib/headers.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: Curl_headers_cleanup
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 2
    functionsReached:
    - Curl_node_elem
    - headers_reset
    - Curl_node_next
    - curlx_free
    - Curl_llist_head
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_headers_cleanup(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - easy
    - name
    - index
    - origin
    - request
    - hout
    argTypes:
    - CURL*
    - char*
    - size_t
    - unsigned int
    - int
    - struct curl_header**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 381
    functionName: curl_easy_header
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: CURLHcode
    signature: "CURLHcode curl_easy_header(CURL *easy,\n                           const
      char *name,\n                           size_t index,\n                           unsigned
      int origin,\n                           int request,\n                           struct
      curl_header **hout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - easy
    - type
    - request
    - prev
    argTypes:
    - CURL*
    - unsigned int
    - int
    - struct curl_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: curl_easy_nextheader
    functionSourceFile: /src/curl/lib/headers.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct curl_header
    signature: "struct curl_header *curl_easy_nextheader(CURL *easy,\n                                         unsigned
      int type,\n                                         int request,\n                                         struct
      curl_header *prev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/hsts.c:52,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/hsts.c:56,1
    - Dst: time
      Src: /src/curl/lib/hsts.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: hsts_debugtime
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached:
    - time
    - getenv
    - curlx_str_number
    linkageType: ''
    returnType: time_t
    signature: time_t hsts_debugtime(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: time
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: time(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/hsts.c:68,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/hsts.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: Curl_hsts_init
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 6
    functionsReached:
    - Curl_llist_init
    - curlx_calloc
    linkageType: ''
    returnType: struct hsts
    signature: struct hsts *Curl_hsts_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: hsts_free
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsts_free(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/hsts.c:83,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/hsts.c:84,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/hsts.c:85,1
    - Dst: hsts_free
      Src: /src/curl/lib/hsts.c:86,1
    - Dst: curlx_free
      Src: /src/curl/lib/hsts.c:88,1
    - Dst: curlx_free
      Src: /src/curl/lib/hsts.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - hp
    argTypes:
    - struct hsts**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: Curl_hsts_cleanup
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 9
    functionsReached:
    - hsts_free
    - Curl_node_elem
    - Curl_node_next
    - curlx_free
    - Curl_llist_head
    linkageType: ''
    returnType: void
    signature: void Curl_hsts_cleanup(struct hsts **hp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_count
      Src: /src/curl/lib/hsts.c:98,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/hsts.c:100,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/hsts.c:101,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/hsts.c:102,1
    - Dst: hsts_free
      Src: /src/curl/lib/hsts.c:103,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/hsts.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - h
    - sts
    argTypes:
    - struct hsts*
    - struct stsentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: hsts_append
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - hsts_free
    - Curl_llist_append
    - Curl_node_elem
    - Curl_llist_head
    - Curl_node_remove
    linkageType: ''
    returnType: void
    signature: void hsts_append(struct hsts *h, struct stsentry *sts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hsts.c:114,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hsts.c:115,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/hsts.c:121,1
    - Dst: memcpy
      Src: /src/curl/lib/hsts.c:125,1
    - Dst: hsts_append
      Src: /src/curl/lib/hsts.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - h
    - hostname
    - hlen
    - subdomains
    - expires
    argTypes:
    - struct hsts*
    - char*
    - size_t
    - bool
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 131
    functionName: hsts_create
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached:
    - hsts_append
    - curlx_calloc
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode hsts_create(struct hsts *h,\n                            const
      char *hostname,\n                            size_t hlen,\n                            bool
      subdomains,\n                            curl_off_t expires)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/curl/lib/hsts.c:149,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/hsts.c:160,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/hsts.c:161,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/hsts.c:163,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/hsts.c:166,1
    - Dst: hsts_free
      Src: /src/curl/lib/hsts.c:167,1
    - Dst: strlen
      Src: /src/curl/lib/hsts.c:170,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/hsts.c:174,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/hsts.c:182,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 4
    argNames:
    - h
    - hostname
    - hlen
    - subdomain
    argTypes:
    - struct hsts*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 187
    functionName: hsts_check
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 1
    functionsReached:
    - hsts_free
    - Curl_node_elem
    - Curl_node_next
    - curl_strnequal
    - time
    - Curl_llist_head
    - strlen
    - Curl_node_remove
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST *hsts_check(struct hsts *h, const char *hostname,\n                                     size_t
      hlen, bool subdomain)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/curl/lib/hsts.c:198,1
    - Dst: strlen
      Src: /src/curl/lib/hsts.c:199,1
    - Dst: Curl_host_is_ipnum
      Src: /src/curl/lib/hsts.c:201,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/hsts.c:207,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/hsts.c:208,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/hsts.c:216,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/hsts.c:217,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/hsts.c:219,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/hsts.c:221,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/hsts.c:224,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/hsts.c:238,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/hsts.c:251,1
    - Dst: hsts_check
      Src: /src/curl/lib/hsts.c:262,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/hsts.c:264,1
    - Dst: hsts_free
      Src: /src/curl/lib/hsts.c:265,1
    - Dst: hsts_check
      Src: /src/curl/lib/hsts.c:277,1
    - Dst: hsts_create
      Src: /src/curl/lib/hsts.c:284,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 3
    argNames:
    - h
    - hostname
    - header
    argTypes:
    - struct hsts*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 189
    functionDepth: 6
    functionLinenumber: 189
    functionLinenumberEnd: 287
    functionName: Curl_hsts_parse
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 2
    functionsReached:
    - hsts_create
    - curlx_str_single
    - hsts_free
    - Curl_host_is_ipnum
    - curlx_str_number
    - curl_strnequal
    - time
    - curlx_str_passblanks
    - strlen
    - Curl_node_remove
    - hsts_check
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_hsts_parse(struct hsts *h, const char *hostname,\n                         const
      char *header)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/hsts.c:303,1
    - Dst: curlx_gmtime
      Src: /src/curl/lib/hsts.c:307,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/hsts.c:311,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/hsts.c:316,1
    - Dst: STRCONST
      Src: /src/curl/lib/hsts.c:316,1
    - Dst: struct Curl_easy*::set::hsts_write
      Src: /src/curl/lib/hsts.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - data
    - i
    - sts
    - stop
    argTypes:
    - struct Curl_easy*
    - struct curl_index*
    - struct stsentry*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 321
    functionName: hsts_push
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - STRCONST
    - curlx_gmtime
    - struct Curl_easy*::set::hsts_write
    - curlx_strcopy
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode hsts_push(struct Curl_easy *data,\n                          struct
      curl_index *i,\n                          struct stsentry *sts,\n                          bool
      *stop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_gmtime
      Src: /src/curl/lib/hsts.c:330,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/hsts.c:333,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/hsts.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sts
    - fp
    argTypes:
    - struct stsentry*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 326
    functionDepth: 6
    functionLinenumber: 326
    functionLinenumberEnd: 342
    functionName: hsts_out
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    - curlx_gmtime
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode hsts_out(struct stsentry *sts, FILE *fp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_fopen
      Src: /src/curl/lib/hsts.c:368,1
    - Dst: fputs
      Src: /src/curl/lib/hsts.c:370,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/hsts.c:373,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/hsts.c:374,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/hsts.c:375,1
    - Dst: hsts_out
      Src: /src/curl/lib/hsts.c:376,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/hsts.c:380,1
    - Dst: curlx_rename
      Src: /src/curl/lib/hsts.c:381,1
    - Dst: unlink
      Src: /src/curl/lib/hsts.c:385,1
    - Dst: curlx_free
      Src: /src/curl/lib/hsts.c:387,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/hsts.c:392,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/hsts.c:394,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/hsts.c:395,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/hsts.c:397,1
    - Dst: hsts_push
      Src: /src/curl/lib/hsts.c:398,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 3
    argNames:
    - data
    - h
    - file
    argTypes:
    - struct Curl_easy*
    - struct hsts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 347
    functionDepth: 8
    functionLinenumber: 347
    functionLinenumberEnd: 405
    functionName: Curl_hsts_save
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 3
    functionsReached:
    - curlx_fclose
    - Curl_llist_count
    - fputs
    - Curl_node_elem
    - hsts_out
    - Curl_node_next
    - Curl_llist_head
    - curlx_free
    - Curl_fopen
    - unlink
    - hsts_push
    - curlx_rename
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_hsts_save(struct Curl_easy *data, struct hsts *h,\n
      \                       const char *file)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/curl/lib/hsts.c:417,1
    - Dst: memcpy
      Src: /src/curl/lib/hsts.c:422,1
    - Dst: strcmp
      Src: /src/curl/lib/hsts.c:425,1
    - Dst: Curl_getdate_capped
      Src: /src/curl/lib/hsts.c:428,1
    - Dst: hsts_check
      Src: /src/curl/lib/hsts.c:445,1
    - Dst: hsts_create
      Src: /src/curl/lib/hsts.c:447,1
    - Dst: strlen
      Src: /src/curl/lib/hsts.c:449,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/hsts.c:450,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 6
    argNames:
    - h
    - host
    - hostlen
    - expire
    - explen
    - subdomain
    argTypes:
    - struct hsts*
    - char*
    - size_t
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 408
    functionDepth: 6
    functionLinenumber: 408
    functionLinenumberEnd: 460
    functionName: hsts_add_host_expire
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached:
    - hsts_create
    - memcpy
    - hsts_check
    - curl_strnequal
    - time
    - strcmp
    - strlen
    - Curl_getdate_capped
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode hsts_add_host_expire(struct hsts *h,\n                                     const
      char *host, size_t hostlen,\n                                     const char
      *expire, size_t explen,\n                                     bool subdomain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_word
      Src: /src/curl/lib/hsts.c:472,1
    - Dst: curlx_str_singlespace
      Src: /src/curl/lib/hsts.c:473,1
    - Dst: curlx_str_quotedword
      Src: /src/curl/lib/hsts.c:474,1
    - Dst: curlx_str_newline
      Src: /src/curl/lib/hsts.c:475,1
    - Dst: hsts_add_host_expire
      Src: /src/curl/lib/hsts.c:478,1
    - Dst: curlx_str
      Src: /src/curl/lib/hsts.c:478,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/hsts.c:478,1
    - Dst: curlx_str
      Src: /src/curl/lib/hsts.c:479,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/hsts.c:479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - h
    - line
    argTypes:
    - struct hsts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 463
    functionDepth: 7
    functionLinenumber: 463
    functionLinenumberEnd: 484
    functionName: hsts_add
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached:
    - curlx_str_word
    - curlx_str_newline
    - curlx_str_singlespace
    - curlx_str_quotedword
    - curlx_str
    - hsts_add_host_expire
    - curlx_strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode hsts_add(struct hsts *h, const char *line)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hsts.c:495,1
    - Dst: struct Curl_easy*::set::hsts_read
      Src: /src/curl/lib/hsts.c:506,1
    - Dst: hsts_add_host_expire
      Src: /src/curl/lib/hsts.c:516,1
    - Dst: strlen
      Src: /src/curl/lib/hsts.c:516,1
    - Dst: strlen
      Src: /src/curl/lib/hsts.c:517,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - data
    - h
    argTypes:
    - struct Curl_easy*
    - struct hsts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 490
    functionDepth: 7
    functionLinenumber: 490
    functionLinenumberEnd: 528
    functionName: hsts_pull
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached:
    - hsts_add_host_expire
    - strlen
    - struct Curl_easy*::set::hsts_read
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode hsts_pull(struct Curl_easy *data, struct hsts *h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/hsts.c:545,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/hsts.c:546,1
    - Dst: curlx_fopen
      Src: /src/curl/lib/hsts.c:550,1
    - Dst: curlx_fstat
      Src: /src/curl/lib/hsts.c:553,1
    - Dst: fileno
      Src: /src/curl/lib/hsts.c:553,1
    - Dst: S_ISDIR
      Src: /src/curl/lib/hsts.c:553,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/hsts.c:556,1
    - Dst: Curl_get_line
      Src: /src/curl/lib/hsts.c:558,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/hsts.c:560,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/hsts.c:561,1
    - Dst: strlen
      Src: /src/curl/lib/hsts.c:566,1
    - Dst: hsts_add
      Src: /src/curl/lib/hsts.c:569,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/hsts.c:572,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/hsts.c:574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - h
    - file
    argTypes:
    - struct hsts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 538
    functionDepth: 8
    functionLinenumber: 538
    functionLinenumberEnd: 577
    functionName: hsts_load
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_dyn_init
    - curlx_dyn_free
    - curlx_strdup
    - curlx_fopen
    - curlx_dyn_ptr
    - curlx_free
    - curlx_str_passblanks
    - hsts_add
    - S_ISDIR
    - curlx_fstat
    - strlen
    - fileno
    - Curl_get_line
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode hsts_load(struct hsts *h, const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/hsts.c:585,1
    - Dst: hsts_load
      Src: /src/curl/lib/hsts.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - h
    - file
    argTypes:
    - struct Curl_easy*
    - struct hsts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 582
    functionDepth: 9
    functionLinenumber: 582
    functionLinenumberEnd: 588
    functionName: Curl_hsts_loadfile
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 3
    functionsReached:
    - hsts_load
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_hsts_loadfile(struct Curl_easy *data,\n                            struct
      hsts *h, const char *file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hsts_pull
      Src: /src/curl/lib/hsts.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - h
    argTypes:
    - struct Curl_easy*
    - struct hsts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 593
    functionDepth: 8
    functionLinenumber: 593
    functionLinenumberEnd: 598
    functionName: Curl_hsts_loadcb
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 2
    functionsReached:
    - hsts_pull
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_hsts_loadcb(struct Curl_easy *data, struct hsts *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_share_lock
      Src: /src/curl/lib/hsts.c:605,1
    - Dst: Curl_hsts_loadfile
      Src: /src/curl/lib/hsts.c:608,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/hsts.c:613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 600
    functionDepth: 10
    functionLinenumber: 600
    functionLinenumberEnd: 616
    functionName: Curl_hsts_loadfiles
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 1
    functionsReached:
    - Curl_share_lock
    - Curl_share_unlock
    - Curl_hsts_loadfile
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_hsts_loadfiles(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hsts_check
      Src: /src/curl/lib/hsts.c:620,1
    - Dst: strlen
      Src: /src/curl/lib/hsts.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - dest
    argTypes:
    - struct hsts*
    - struct Curl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 5
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: Curl_hsts_applies
    functionSourceFile: /src/curl/lib/hsts.c
    functionUses: 1
    functionsReached:
    - strlen
    - hsts_check
    linkageType: ''
    returnType: bool
    signature: bool Curl_hsts_applies(struct hsts *h, const struct Curl_peer *dest)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_alpn2alpnid
      Src: /src/curl/lib/httpsrr.c:54,1
    - Dst: memchr
      Src: /src/curl/lib/httpsrr.c:58,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - cp
    - len
    - alpns
    argTypes:
    - uint8_t*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 70
    functionName: httpsrr_decode_alpn
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 0
    functionsReached:
    - Curl_alpn2alpnid
    - memchr
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode httpsrr_decode_alpn(const uint8_t *cp, size_t len,\n                                    unsigned
      char *alpns)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_ntop
      Src: /src/curl/lib/httpsrr.c:85,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/httpsrr.c:86,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/httpsrr.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - dyn
    - ai_family
    - addr
    - total_len
    argTypes:
    - struct dynbuf*
    - int
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: httpsrr_print_addr
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addf
    - curlx_inet_ntop
    - curlx_dyn_add
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode httpsrr_print_addr(struct dynbuf *dyn,\n                                   int
      ai_family,\n                                   const uint8_t *addr,\n                                   size_t
      total_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/httpsrr.c:101,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/httpsrr.c:104,1
    - Dst: Curl_httpsrr_print
      Src: /src/curl/lib/httpsrr.c:105,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/httpsrr.c:107,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/httpsrr.c:107,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/httpsrr.c:109,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/httpsrr.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - rr
    argTypes:
    - struct Curl_easy*
    - struct Curl_https_rrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: Curl_httpsrr_trace
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 2
    functionsReached:
    - curlx_dyn_init
    - Curl_httpsrr_print
    - curlx_dyn_free
    - curlx_dyn_ptr
    - CURL_TRC_DNS
    linkageType: ''
    returnType: void
    signature: "void Curl_httpsrr_trace(struct Curl_easy *data,\n                        struct
      Curl_https_rrinfo *rr)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/httpsrr.c:119,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/httpsrr.c:120,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/httpsrr.c:123,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/httpsrr.c:126,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/httpsrr.c:142,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/httpsrr.c:148,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/httpsrr.c:151,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/httpsrr.c:153,1
    - Dst: httpsrr_print_addr
      Src: /src/curl/lib/httpsrr.c:155,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/httpsrr.c:159,1
    - Dst: httpsrr_print_addr
      Src: /src/curl/lib/httpsrr.c:161,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/httpsrr.c:165,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 2
    argNames:
    - tmp
    - rr
    argTypes:
    - struct dynbuf*
    - struct Curl_https_rrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 168
    functionName: Curl_httpsrr_print
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 2
    functionsReached:
    - curlx_dyn_reset
    - curlx_dyn_add
    - httpsrr_print_addr
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_httpsrr_print(struct dynbuf *tmp,\n                            struct
      Curl_https_rrinfo *rr)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: httpsrr_decode_alpn
      Src: /src/curl/lib/httpsrr.c:181,1
    - Dst: curlx_free
      Src: /src/curl/lib/httpsrr.c:191,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/httpsrr.c:192,1
    - Dst: curlx_free
      Src: /src/curl/lib/httpsrr.c:200,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/httpsrr.c:201,1
    - Dst: curlx_free
      Src: /src/curl/lib/httpsrr.c:209,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/httpsrr.c:210,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 4
    argNames:
    - rr
    - rrkey
    - val
    - vlen
    argTypes:
    - struct Curl_https_rrinfo*
    - uint16_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 226
    functionName: Curl_httpsrr_set
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 1
    functionsReached:
    - curlx_free
    - curlx_memdup
    - httpsrr_decode_alpn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_httpsrr_set(struct Curl_https_rrinfo *rr,\n                          uint16_t
      rrkey, const uint8_t *val, size_t vlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_memdup
      Src: /src/curl/lib/httpsrr.c:231,1
    - Dst: memset
      Src: /src/curl/lib/httpsrr.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rrinfo
    argTypes:
    - struct Curl_https_rrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: Curl_httpsrr_dup_move
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 1
    functionsReached:
    - curlx_memdup
    - memset
    linkageType: ''
    returnType: struct Curl_https_rrinfo
    signature: "struct Curl_https_rrinfo *Curl_httpsrr_dup_move(\n  struct Curl_https_rrinfo
      *rrinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/httpsrr.c:239,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/httpsrr.c:240,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/httpsrr.c:241,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/httpsrr.c:242,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/httpsrr.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - rrinfo
    argTypes:
    - struct Curl_https_rrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: Curl_httpsrr_cleanup
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 3
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void Curl_httpsrr_cleanup(struct Curl_https_rrinfo *rrinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 2
    argNames:
    - data
    - rr
    argTypes:
    - struct Curl_easy*
    - struct Curl_https_rrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: Curl_httpsrr_applicable
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_httpsrr_applicable(struct Curl_easy *data,\n                             const
      struct Curl_https_rrinfo *rr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ares_dns_rr_get_opt
      Src: /src/curl/lib/httpsrr.c:267,1
    - Dst: Curl_httpsrr_set
      Src: /src/curl/lib/httpsrr.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - rr
    - key
    - idx
    - hinfo
    argTypes:
    - ares_dns_rr_t*
    - ares_dns_rr_key_t
    - size_t
    - struct Curl_https_rrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: httpsrr_opt
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 0
    functionsReached:
    - ares_dns_rr_get_opt
    - Curl_httpsrr_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode httpsrr_opt(const ares_dns_rr_t *rr,\n                            ares_dns_rr_key_t
      key, size_t idx,\n                            struct Curl_https_rrinfo *hinfo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ares_dns_record_rr_cnt
      Src: /src/curl/lib/httpsrr.c:277,1
    - Dst: ares_dns_record_rr_get_const
      Src: /src/curl/lib/httpsrr.c:281,1
    - Dst: ares_dns_rr_get_type
      Src: /src/curl/lib/httpsrr.c:282,1
    - Dst: ares_dns_rr_get_str
      Src: /src/curl/lib/httpsrr.c:286,1
    - Dst: curlx_free
      Src: /src/curl/lib/httpsrr.c:288,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/httpsrr.c:289,1
    - Dst: ares_dns_rr_get_u16
      Src: /src/curl/lib/httpsrr.c:295,1
    - Dst: ares_dns_rr_get_opt_cnt
      Src: /src/curl/lib/httpsrr.c:296,1
    - Dst: httpsrr_opt
      Src: /src/curl/lib/httpsrr.c:298,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/httpsrr.c:305,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - dnsrec
    - hinfo
    argTypes:
    - ares_dns_record_t*
    - struct Curl_https_rrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 307
    functionName: Curl_httpsrr_from_ares
    functionSourceFile: /src/curl/lib/httpsrr.c
    functionUses: 1
    functionsReached:
    - ares_dns_rr_get_u16
    - curlx_safefree
    - httpsrr_opt
    - ares_dns_rr_get_str
    - curlx_strdup
    - curlx_free
    - ares_dns_rr_get_type
    - ares_dns_rr_get_opt_cnt
    - ares_dns_record_rr_get_const
    - ares_dns_record_rr_cnt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_httpsrr_from_ares(const ares_dns_record_t *dnsrec,\n
      \                               struct Curl_https_rrinfo *hinfo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cw-pause.c:47,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/cw-pause.c:51,1
    - Dst: Curl_bufq_init
      Src: /src/curl/lib/cw-pause.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - buflen
    argTypes:
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: cw_pause_buf_create
    functionSourceFile: /src/curl/lib/cw-pause.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_init
    - curlx_calloc
    - Curl_bufq_init2
    linkageType: ''
    returnType: struct cw_pause_buf
    signature: struct cw_pause_buf *cw_pause_buf_create(int type, size_t buflen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/cw-pause.c:62,1
    - Dst: curlx_free
      Src: /src/curl/lib/cw-pause.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cwbuf
    argTypes:
    - struct cw_pause_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: cw_pause_buf_free
    functionSourceFile: /src/curl/lib/cw-pause.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void cw_pause_buf_free(struct cw_pause_buf *cwbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: cw_pause_init
    functionSourceFile: /src/curl/lib/cw-pause.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_pause_init(struct Curl_easy *data,\n                              struct
      Curl_cwriter *writer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cw_pause_buf_free
      Src: /src/curl/lib/cw-pause.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cw_pause_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: cw_pause_bufs_free
    functionSourceFile: /src/curl/lib/cw-pause.c
    functionUses: 0
    functionsReached:
    - cw_pause_buf_free
    linkageType: ''
    returnType: void
    signature: void cw_pause_bufs_free(struct cw_pause_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cw_pause_bufs_free
      Src: /src/curl/lib/cw-pause.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: cw_pause_close
    functionSourceFile: /src/curl/lib/cw-pause.c
    functionUses: 0
    functionsReached:
    - cw_pause_bufs_free
    linkageType: ''
    returnType: void
    signature: void cw_pause_close(struct Curl_easy *data, struct Curl_cwriter *writer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_is_content_decoding
      Src: /src/curl/lib/cw-pause.c:103,1
    - Dst: Curl_cwriter_is_paused
      Src: /src/curl/lib/cw-pause.c:107,1
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/cw-pause.c:114,1
    - Dst: CURLMIN
      Src: /src/curl/lib/cw-pause.c:116,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/cw-pause.c:117,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/cw-pause.c:119,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/cw-pause.c:121,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cw-pause.c:122,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/cw-pause.c:128,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/cw-pause.c:130,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/cw-pause.c:134,1
    - Dst: cw_pause_buf_free
      Src: /src/curl/lib/cw-pause.c:135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - data
    - cw_pause
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 140
    functionName: cw_pause_flush
    functionSourceFile: /src/curl/lib/cw-pause.c
    functionUses: 2
    functionsReached:
    - Curl_cwriter_write
    - cw_pause_buf_free
    - DEBUGASSERT
    - CURLMIN
    - Curl_cwriter_is_paused
    - Curl_bufq_skip
    - Curl_bufq_peek
    - Curl_bufq_is_empty
    - CURL_TRC_WRITE
    - Curl_cwriter_is_content_decoding
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_pause_flush(struct Curl_easy *data,\n                               struct
      Curl_cwriter *cw_pause)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_is_content_decoding
      Src: /src/curl/lib/cw-pause.c:149,1
    - Dst: Curl_cwriter_is_paused
      Src: /src/curl/lib/cw-pause.c:151,1
    - Dst: cw_pause_flush
      Src: /src/curl/lib/cw-pause.c:152,1
    - Dst: Curl_cwriter_is_paused
      Src: /src/curl/lib/cw-pause.c:157,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cw-pause.c:159,1
    - Dst: CURLMIN
      Src: /src/curl/lib/cw-pause.c:163,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/cw-pause.c:166,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/cw-pause.c:167,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/cw-pause.c:182,1
    - Dst: cw_pause_buf_create
      Src: /src/curl/lib/cw-pause.c:186,1
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/cw-pause.c:191,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/cw-pause.c:193,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - blen
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 142
    functionDepth: 6
    functionLinenumber: 142
    functionLinenumberEnd: 204
    functionName: cw_pause_write
    functionSourceFile: /src/curl/lib/cw-pause.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - DEBUGASSERT
    - CURLMIN
    - Curl_cwriter_is_paused
    - cw_pause_buf_create
    - Curl_bufq_cwrite
    - CURL_TRC_WRITE
    - Curl_cwriter_is_content_decoding
    - cw_pause_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cw_pause_write(struct Curl_easy *data,\n                               struct
      Curl_cwriter *writer, int type,\n                               const char *buf,
      size_t blen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_get_by_type
      Src: /src/curl/lib/cw-pause.c:220,1
    - Dst: cw_pause_flush
      Src: /src/curl/lib/cw-pause.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: Curl_cw_pause_flush
    functionSourceFile: /src/curl/lib/cw-pause.c
    functionUses: 2
    functionsReached:
    - cw_pause_flush
    - Curl_cwriter_get_by_type
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_cw_pause_flush(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: RTP_PKT_LENGTH
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTP_PKT_LENGTH(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_add_out
      Src: /src/curl/lib/rtsp.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: rtsp_do_pollset
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_add_out
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtsp_do_pollset(struct Curl_easy *data,\n                                struct
      easy_pollset *ps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/rtsp.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: rtsp_easy_dtor
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void rtsp_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/rtsp.c:101,1
    - Dst: curlx_free
      Src: /src/curl/lib/rtsp.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: rtsp_conn_dtor
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void rtsp_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/rtsp.c:111,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/rtsp.c:114,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/rtsp.c:115,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/rtsp.c:118,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/rtsp.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 124
    functionName: rtsp_setup_connection
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_meta_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtsp_setup_connection(struct Curl_easy *data,\n                                      struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_is_alive
      Src: /src/curl/lib/rtsp.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: rtsp_conn_is_dead
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_alive
    linkageType: ''
    returnType: bool
    signature: "bool rtsp_conn_is_dead(struct Curl_easy *data,\n                              struct
      connectdata *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/rtsp.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 155
    functionName: rtsp_connect
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode rtsp_connect(struct Curl_easy *data, bool *done)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/rtsp.c:161,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/rtsp.c:162,1
    - Dst: Curl_http_done
      Src: /src/curl/lib/rtsp.c:172,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:179,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:185,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:189,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: rtsp_done
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - Curl_http_done
    - failf
    - infof
    - Curl_conn_meta_get
    - Curl_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtsp_done(struct Curl_easy *data,\n                          CURLcode
      status, bool premature)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creader_set_fread
      Src: /src/curl/lib/rtsp.c:210,1
    - Dst: strlen
      Src: /src/curl/lib/rtsp.c:217,1
    - Dst: Curl_creader_set_buf
      Src: /src/curl/lib/rtsp.c:219,1
    - Dst: Curl_creader_set_fread
      Src: /src/curl/lib/rtsp.c:223,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/rtsp.c:227,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:236,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:236,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/rtsp.c:237,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:245,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:245,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/rtsp.c:246,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:246,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:254,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:254,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/rtsp.c:255,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:255,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/rtsp.c:269,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 3
    argNames:
    - data
    - rtspreq
    - reqp
    argTypes:
    - struct Curl_easy*
    - Curl_RtspReq
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 271
    functionName: rtsp_setup_body
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - Curl_creader_set_fread
    - STRCONST
    - curlx_dyn_addn
    - Curl_checkheaders
    - Curl_creader_set_null
    - curlx_dyn_addf
    - Curl_creader_set_buf
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtsp_setup_body(struct Curl_easy *data,\n                                Curl_RtspReq
      rtspreq,\n                                struct dynbuf *reqp)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/rtsp.c:278,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/rtsp.c:299,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:311,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:352,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/rtsp.c:357,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:366,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:381,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:381,1
    - Dst: curlx_free
      Src: /src/curl/lib/rtsp.c:385,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/rtsp.c:387,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:393,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:405,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:405,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:409,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:409,1
    - Dst: curlx_free
      Src: /src/curl/lib/rtsp.c:411,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/rtsp.c:413,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:428,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:428,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/rtsp.c:430,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:432,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:432,1
    - Dst: Curl_http_output_auth
      Src: /src/curl/lib/rtsp.c:438,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/rtsp.c:449,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/rtsp.c:450,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:451,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:451,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/rtsp.c:453,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/rtsp.c:453,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:467,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:467,1
    - Dst: curlx_free
      Src: /src/curl/lib/rtsp.c:468,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/rtsp.c:469,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:478,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:478,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:479,1
    - Dst: Curl_checkheaders
      Src: /src/curl/lib/rtsp.c:483,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:483,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:484,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/rtsp.c:490,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/rtsp.c:502,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/rtsp.c:510,1
    - Dst: Curl_add_timecondition
      Src: /src/curl/lib/rtsp.c:533,1
    - Dst: Curl_add_custom_headers
      Src: /src/curl/lib/rtsp.c:538,1
    - Dst: rtsp_setup_body
      Src: /src/curl/lib/rtsp.c:542,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/rtsp.c:547,1
    - Dst: STRCONST
      Src: /src/curl/lib/rtsp.c:547,1
    - Dst: Curl_xfer_setup_sendrecv
      Src: /src/curl/lib/rtsp.c:551,1
    - Dst: Curl_req_send
      Src: /src/curl/lib/rtsp.c:554,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:556,1
    - Dst: Curl_pgrsSetUploadCounter
      Src: /src/curl/lib/rtsp.c:566,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/rtsp.c:567,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/rtsp.c:570,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 180
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 273
    functionDepth: 7
    functionLinenumber: 273
    functionLinenumberEnd: 572
    functionName: rtsp_do
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_dyn_init
    - Curl_req_send
    - Curl_checkheaders
    - Curl_meta_get
    - curlx_dyn_addf
    - Curl_pgrsUpdate
    - curl_maprintf
    - curlx_dyn_addn
    - curlx_dyn_free
    - Curl_bufref_ptr
    - Curl_http_output_auth
    - rtsp_setup_body
    - failf
    - Curl_xfer_setup_recv
    - Curl_pgrsSetUploadCounter
    - curlx_free
    - STRCONST
    - Curl_add_custom_headers
    - Curl_add_timecondition
    - Curl_xfer_setup_sendrecv
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode rtsp_do(struct Curl_easy *data, bool *done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rtsp.c:589,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/rtsp.c:593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - data
    - rtspc
    - buf
    - blen
    argTypes:
    - struct Curl_easy*
    - struct rtsp_conn*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 596
    functionName: rtp_write_body_junk
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - Curl_client_write
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtp_write_body_junk(struct Curl_easy *data,\n                                    struct
      rtsp_conn *rtspc,\n                                    const char *buf,\n                                    size_t
      blen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:606,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/rtsp.c:623,1
    - Dst: writeit
      Src: /src/curl/lib/rtsp.c:624,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/rtsp.c:624,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/rtsp.c:625,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:628,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - data
    - ptr
    - len
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 598
    functionDepth: 4
    functionLinenumber: 598
    functionLinenumberEnd: 638
    functionName: rtp_client_write
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - writeit
    - Curl_set_in_callback
    - failf
    - CURL_UNCONST
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtp_client_write(struct Curl_easy *data, const char *ptr,\n
      \                                size_t len)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rtsp.c:657,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/rtsp.c:657,1
    - Dst: strncmp
      Src: /src/curl/lib/rtsp.c:661,1
    - Dst: DEBUGF
      Src: /src/curl/lib/rtsp.c:664,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:664,1
    - Dst: rtp_write_body_junk
      Src: /src/curl/lib/rtsp.c:682,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/rtsp.c:687,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rtsp.c:702,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/rtsp.c:702,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rtsp.c:706,1
    - Dst: DEBUGF
      Src: /src/curl/lib/rtsp.c:708,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:708,1
    - Dst: rtp_write_body_junk
      Src: /src/curl/lib/rtsp.c:713,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/rtsp.c:714,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/rtsp.c:722,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/rtsp.c:727,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/rtsp.c:739,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rtsp.c:741,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/rtsp.c:742,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/rtsp.c:751,1
    - Dst: RTP_PKT_LENGTH
      Src: /src/curl/lib/rtsp.c:752,1
    - Dst: DEBUGF
      Src: /src/curl/lib/rtsp.c:756,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:756,1
    - Dst: rtp_client_write
      Src: /src/curl/lib/rtsp.c:758,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/rtsp.c:759,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/rtsp.c:770,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rtsp.c:772,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/rtsp.c:775,1
    - Dst: DEBUGF
      Src: /src/curl/lib/rtsp.c:783,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:783,1
    - Dst: rtp_client_write
      Src: /src/curl/lib/rtsp.c:785,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/rtsp.c:785,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/rtsp.c:787,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/rtsp.c:793,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/rtsp.c:805,1
    - Dst: rtp_write_body_junk
      Src: /src/curl/lib/rtsp.c:811,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 140
    argCount: 5
    argNames:
    - data
    - rtspc
    - buf
    - blen
    - pconsumed
    argTypes:
    - struct Curl_easy*
    - struct rtsp_conn*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 640
    functionDepth: 5
    functionLinenumber: 640
    functionLinenumberEnd: 813
    functionName: rtsp_filter_rtp
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - RTP_PKT_LENGTH
    - rtp_client_write
    - DEBUGASSERT
    - curlx_dyn_addn
    - DEBUGF
    - curlx_dyn_free
    - curlx_dyn_len
    - infof
    - curlx_dyn_ptr
    - strncmp
    - rtp_write_body_junk
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtsp_filter_rtp(struct Curl_easy *data,\n                                struct
      rtsp_conn *rtspc,\n                                const char *buf,\n                                size_t
      blen,\n                                size_t *pconsumed)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/rtsp.c:831,1
    - Dst: DEBUGF
      Src: /src/curl/lib/rtsp.c:844,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:844,1
    - Dst: rtsp_filter_rtp
      Src: /src/curl/lib/rtsp.c:849,1
    - Dst: DEBUGF
      Src: /src/curl/lib/rtsp.c:856,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:856,1
    - Dst: Curl_http_write_resp_hds
      Src: /src/curl/lib/rtsp.c:863,1
    - Dst: rtsp_filter_rtp
      Src: /src/curl/lib/rtsp.c:881,1
    - Dst: DEBUGF
      Src: /src/curl/lib/rtsp.c:894,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:894,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/rtsp.c:899,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 4
    argNames:
    - data
    - buf
    - blen
    - is_eos
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 825
    functionDepth: 8
    functionLinenumber: 825
    functionLinenumberEnd: 912
    functionName: rtsp_rtp_write_resp
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - Curl_client_write
    - infof
    - Curl_conn_meta_get
    - rtsp_filter_rtp
    - DEBUGF
    - Curl_http_write_resp_hds
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtsp_rtp_write_resp(struct Curl_easy *data,\n                                    const
      char *buf,\n                                    size_t blen,\n                                    bool
      is_eos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtsp_rtp_write_resp
      Src: /src/curl/lib/rtsp.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - buf
    - blen
    - is_eos
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 914
    functionDepth: 9
    functionLinenumber: 914
    functionLinenumberEnd: 920
    functionName: rtsp_rtp_write_resp_hd
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - rtsp_rtp_write_resp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtsp_rtp_write_resp_hd(struct Curl_easy *data,\n                                       const
      char *buf,\n                                       size_t blen,\n                                       bool
      is_eos)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/rtsp.c:932,1
    - Dst: strchr
      Src: /src/curl/lib/rtsp.c:933,1
    - Dst: checkprefix
      Src: /src/curl/lib/rtsp.c:934,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/rtsp.c:937,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/rtsp.c:940,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/rtsp.c:941,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:942,1
    - Dst: infof
      Src: /src/curl/lib/rtsp.c:954,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - data
    - transport
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 963
    functionName: rtsp_parse_transport
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - checkprefix
    - curlx_str_number
    - curlx_str_passblanks
    - infof
    - strchr
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode rtsp_parse_transport(struct Curl_easy *data,\n                                     const
      char *transport)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: checkprefix
      Src: /src/curl/lib/rtsp.c:967,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/rtsp.c:969,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/rtsp.c:973,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/rtsp.c:974,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:975,1
    - Dst: checkprefix
      Src: /src/curl/lib/rtsp.c:980,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/rtsp.c:986,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:989,1
    - Dst: strlen
      Src: /src/curl/lib/rtsp.c:1007,1
    - Dst: strncmp
      Src: /src/curl/lib/rtsp.c:1008,1
    - Dst: failf
      Src: /src/curl/lib/rtsp.c:1009,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/rtsp.c:1020,1
    - Dst: checkprefix
      Src: /src/curl/lib/rtsp.c:1025,1
    - Dst: rtsp_parse_transport
      Src: /src/curl/lib/rtsp.c:1027,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - data
    - header
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 965
    functionDepth: 2
    functionLinenumber: 965
    functionLinenumberEnd: 1032
    functionName: Curl_rtsp_parseheader
    functionSourceFile: /src/curl/lib/rtsp.c
    functionUses: 1
    functionsReached:
    - checkprefix
    - failf
    - curlx_str_number
    - curlx_str_passblanks
    - Curl_meta_get
    - curlx_memdup0
    - strlen
    - strncmp
    - rtsp_parse_transport
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_rtsp_parseheader(struct Curl_easy *data, const char *header)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ares_library_init
      Src: /src/curl/lib/asyn-ares.c:95,1
    - Dst: ares_version
      Src: /src/curl/lib/asyn-ares.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: Curl_async_global_init
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - ares_library_init
    - ares_version
    linkageType: ''
    returnType: int
    signature: int Curl_async_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ares_library_cleanup
      Src: /src/curl/lib/asyn-ares.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: Curl_async_global_cleanup
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - ares_library_cleanup
    linkageType: ''
    returnType: void
    signature: void Curl_async_global_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-ares.c:121,1
    - Dst: Curl_multi_will_close
      Src: /src/curl/lib/asyn-ares.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - data
    - socket_fd
    - readable
    - writable
    argTypes:
    - void*
    - ares_socket_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: sock_state_cb
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 0
    functionsReached:
    - Curl_multi_will_close
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void sock_state_cb(void *data, ares_socket_t socket_fd,\n                          int
      readable, int writable)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-ares.c:142,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-ares.c:152,1
    - Dst: ares_init_options
      Src: /src/curl/lib/asyn-ares.c:158,1
    - Dst: async_ares_set_dns_servers
      Src: /src/curl/lib/asyn-ares.c:165,1
    - Dst: async_ares_set_dns_interface
      Src: /src/curl/lib/asyn-ares.c:169,1
    - Dst: async_ares_set_dns_local_ip4
      Src: /src/curl/lib/asyn-ares.c:173,1
    - Dst: async_ares_set_dns_local_ip6
      Src: /src/curl/lib/asyn-ares.c:177,1
    - Dst: ares_destroy
      Src: /src/curl/lib/asyn-ares.c:185,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 189
    functionName: async_ares_init
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - async_ares_set_dns_interface
    - async_ares_set_dns_servers
    - ares_destroy
    - async_ares_set_dns_local_ip6
    - async_ares_set_dns_local_ip4
    - ares_init_options
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode async_ares_init(struct Curl_easy *data,\n                                struct
      Curl_resolv_async *async)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/asyn-ares.c:198,1
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/asyn-ares.c:202,1
    - Dst: Curl_httpsrr_cleanup
      Src: /src/curl/lib/asyn-ares.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - async
    argTypes:
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: async_ares_cleanup
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 0
    functionsReached:
    - Curl_httpsrr_cleanup
    - Curl_freeaddrinfo
    linkageType: ''
    returnType: void
    signature: void async_ares_cleanup(struct Curl_resolv_async *async)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_ares_destroy
      Src: /src/curl/lib/asyn-ares.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: Curl_async_ares_shutdown
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - Curl_async_ares_destroy
    linkageType: ''
    returnType: void
    signature: "void Curl_async_ares_shutdown(struct Curl_easy *data,\n                              struct
      Curl_resolv_async *async)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ares_destroy
      Src: /src/curl/lib/asyn-ares.c:227,1
    - Dst: async_ares_cleanup
      Src: /src/curl/lib/asyn-ares.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: Curl_async_ares_destroy
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 2
    functionsReached:
    - ares_destroy
    - async_ares_cleanup
    linkageType: ''
    returnType: void
    signature: "void Curl_async_ares_destroy(struct Curl_easy *data,\n                             struct
      Curl_resolv_async *async)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ares_pollset
      Src: /src/curl/lib/asyn-ares.c:241,1
    - Dst: Curl_ares_timeout_ms
      Src: /src/curl/lib/asyn-ares.c:243,1
    - Dst: Curl_expire
      Src: /src/curl/lib/asyn-ares.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - data
    - async
    - ps
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 7
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: Curl_async_pollset
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - Curl_ares_pollset
    - Curl_ares_timeout_ms
    - Curl_expire
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_pollset(struct Curl_easy *data,\n                            struct
      Curl_resolv_async *async,\n                            struct easy_pollset *ps)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-ares.c:264,1
    - Dst: Curl_ares_perform
      Src: /src/curl/lib/asyn-ares.c:269,1
    - Dst: Curl_dnscache_mk_entry2
      Src: /src/curl/lib/asyn-ares.c:283,1
    - Dst: Curl_httpsrr_dup_move
      Src: /src/curl/lib/asyn-ares.c:293,1
    - Dst: Curl_dns_entry_set_https_rr
      Src: /src/curl/lib/asyn-ares.c:297,1
    - Dst: Curl_dns_entry_set_https_rr
      Src: /src/curl/lib/asyn-ares.c:300,1
    - Dst: ares_strerror
      Src: /src/curl/lib/asyn-ares.c:312,1
    - Dst: Curl_async_failed
      Src: /src/curl/lib/asyn-ares.c:313,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-ares.c:316,1
    - Dst: async_ares_cleanup
      Src: /src/curl/lib/asyn-ares.c:318,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - data
    - async
    - pdns
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 324
    functionName: Curl_async_take_result
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    - Curl_async_failed
    - async_ares_cleanup
    - Curl_httpsrr_dup_move
    - Curl_dnscache_mk_entry2
    - Curl_dns_entry_set_https_rr
    - CURL_TRC_DNS
    - ares_strerror
    - Curl_ares_perform
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_take_result(struct Curl_easy *data,\n                                struct
      Curl_resolv_async *async,\n                                struct Curl_dns_entry
      **pdns)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ares_timeout
      Src: /src/curl/lib/asyn-ares.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ares
    - timeout_ms
    argTypes:
    - struct async_ares_ctx*
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 350
    functionName: async_ares_poll_timeout
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 0
    functionsReached:
    - ares_timeout
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t async_ares_poll_timeout(struct async_ares_ctx *ares,\n
      \                                         timediff_t timeout_ms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ai
    - ai_family
    - index
    argTypes:
    - struct Curl_addrinfo*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 366
    functionName: async_ares_get_ai
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *async_ares_get_ai(\n  const struct Curl_addrinfo
      *ai,\n  int ai_family,\n  unsigned int index)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: async_ares_get_ai
      Src: /src/curl/lib/asyn-ares.c:379,1
    - Dst: async_ares_get_ai
      Src: /src/curl/lib/asyn-ares.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - data
    - async
    - ai_family
    - index
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 389
    functionName: Curl_async_get_ai
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - async_ares_get_ai
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *Curl_async_get_ai(struct Curl_easy *data,\n
      \                                             struct Curl_resolv_async *async,\n
      \                                             int ai_family,\n                                              unsigned
      int index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_knows_https
      Src: /src/curl/lib/asyn-ares.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: Curl_async_get_https
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - Curl_async_knows_https
    linkageType: ''
    returnType: struct Curl_https_rrinfo
    signature: "struct Curl_https_rrinfo *Curl_async_get_https(\n  struct Curl_easy
      *data,\n  struct Curl_resolv_async *async)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: Curl_async_knows_https
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_async_knows_https(struct Curl_easy *data,\n                            struct
      Curl_resolv_async *async)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_async_get
      Src: /src/curl/lib/asyn-ares.c:427,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/asyn-ares.c:429,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-ares.c:432,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/asyn-ares.c:442,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/asyn-ares.c:444,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/asyn-ares.c:444,1
    - Dst: Curl_ares_perform
      Src: /src/curl/lib/asyn-ares.c:456,1
    - Dst: async_ares_poll_timeout
      Src: /src/curl/lib/asyn-ares.c:457,1
    - Dst: Curl_async_take_result
      Src: /src/curl/lib/asyn-ares.c:462,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/asyn-ares.c:468,1
    - Dst: ares_cancel
      Src: /src/curl/lib/asyn-ares.c:475,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 3
    argNames:
    - data
    - resolv_id
    - pdns
    argTypes:
    - struct Curl_easy*
    - uint32_t
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 424
    functionDepth: 4
    functionLinenumber: 424
    functionLinenumberEnd: 477
    functionName: Curl_async_await
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_pgrsUpdate
    - async_ares_poll_timeout
    - Curl_async_take_result
    - Curl_async_get
    - ares_cancel
    - Curl_timeleft_ms
    - curlx_ptimediff_ms
    - Curl_ares_perform
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_await(struct Curl_easy *data, uint32_t resolv_id,\n
      \                         struct Curl_dns_entry **pdns)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/asyn-ares.c:514,1
    - Dst: memcpy
      Src: /src/curl/lib/asyn-ares.c:533,1
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/asyn-ares.c:547,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ares_addrinfo_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 552
    functionName: async_ares_node2addr
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - memcpy
    - Curl_freeaddrinfo
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *async_ares_node2addr(\n  struct ares_addrinfo_node
      *node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: async_ares_node2addr
      Src: /src/curl/lib/asyn-ares.c:569,1
    - Dst: ares_freeaddrinfo
      Src: /src/curl/lib/asyn-ares.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - user_data
    - status
    - timeouts
    - ares_ai
    argTypes:
    - void*
    - int
    - int
    - struct ares_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 574
    functionName: async_ares_A_cb
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 0
    functionsReached:
    - async_ares_node2addr
    - ares_freeaddrinfo
    linkageType: ''
    returnType: void
    signature: "void async_ares_A_cb(void *user_data, int status, int timeouts,\n
      \                           struct ares_addrinfo *ares_ai)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: async_ares_node2addr
      Src: /src/curl/lib/asyn-ares.c:592,1
    - Dst: ares_freeaddrinfo
      Src: /src/curl/lib/asyn-ares.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - user_data
    - status
    - timeouts
    - ares_ai
    argTypes:
    - void*
    - int
    - int
    - struct ares_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 597
    functionName: async_ares_AAAA_cb
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 0
    functionsReached:
    - async_ares_node2addr
    - ares_freeaddrinfo
    linkageType: ''
    returnType: void
    signature: "void async_ares_AAAA_cb(void *user_data, int status, int timeouts,\n
      \                              struct ares_addrinfo *ares_ai)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_httpsrr_from_ares
      Src: /src/curl/lib/asyn-ares.c:617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - user_data
    - status
    - timeouts
    - dnsrec
    argTypes:
    - void*
    - ares_status_t
    - size_t
    - ares_dns_record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 601
    functionDepth: 5
    functionLinenumber: 601
    functionLinenumberEnd: 618
    functionName: async_ares_rr_done
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 0
    functionsReached:
    - Curl_httpsrr_from_ares
    linkageType: ''
    returnType: void
    signature: "void async_ares_rr_done(void *user_data, ares_status_t status,\n                               size_t
      timeouts,\n                               const ares_dns_record_t *dnsrec)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/asyn-ares.c:635,1
    - Dst: async_ares_init
      Src: /src/curl/lib/asyn-ares.c:640,1
    - Dst: Curl_resolv_announce_start
      Src: /src/curl/lib/asyn-ares.c:644,1
    - Dst: CURL_TRC_DNS_is_verbose
      Src: /src/curl/lib/asyn-ares.c:649,1
    - Dst: ares_get_servers_csv
      Src: /src/curl/lib/asyn-ares.c:650,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-ares.c:651,1
    - Dst: ares_free_string
      Src: /src/curl/lib/asyn-ares.c:652,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/asyn-ares.c:656,1
    - Dst: Curl_conn_get_transport
      Src: /src/curl/lib/asyn-ares.c:658,1
    - Dst: memset
      Src: /src/curl/lib/asyn-ares.c:665,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-ares.c:666,1
    - Dst: ares_getaddrinfo
      Src: /src/curl/lib/asyn-ares.c:671,1
    - Dst: memset
      Src: /src/curl/lib/asyn-ares.c:679,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-ares.c:680,1
    - Dst: ares_getaddrinfo
      Src: /src/curl/lib/asyn-ares.c:685,1
    - Dst: memset
      Src: /src/curl/lib/asyn-ares.c:690,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/asyn-ares.c:694,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/asyn-ares.c:698,1
    - Dst: ares_query_dnsrec
      Src: /src/curl/lib/asyn-ares.c:702,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 626
    functionDepth: 7
    functionLinenumber: 626
    functionLinenumberEnd: 712
    functionName: Curl_async_getaddrinfo
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - curl_maprintf
    - ares_getaddrinfo
    - DEBUGASSERT
    - Curl_conn_get_transport
    - async_ares_init
    - ares_query_dnsrec
    - ares_free_string
    - memset
    - CURL_TRC_DNS
    - ares_get_servers_csv
    - Curl_resolv_announce_start
    - CURL_TRC_DNS_is_verbose
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_async_getaddrinfo(struct Curl_easy *data,\n                                struct
      Curl_resolv_async *async)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/asyn-ares.c:729,1
    - Dst: getenv
      Src: /src/curl/lib/asyn-ares.c:730,1
    - Dst: ares_set_servers_ports_csv
      Src: /src/curl/lib/asyn-ares.c:738,1
    - Dst: DEBUGF
      Src: /src/curl/lib/asyn-ares.c:750,1
    - Dst: infof
      Src: /src/curl/lib/asyn-ares.c:750,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 755
    functionName: async_ares_set_dns_servers
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - getenv
    - DEBUGF
    - ares_set_servers_ports_csv
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode async_ares_set_dns_servers(struct Curl_easy *data,\n                                           struct
      Curl_resolv_async *async)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ares_set_local_dev
      Src: /src/curl/lib/asyn-ares.c:768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 771
    functionName: async_ares_set_dns_interface
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - ares_set_local_dev
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode async_ares_set_dns_interface(struct Curl_easy *data,\n                                             struct
      Curl_resolv_async *async)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/asyn-ares.c:784,1
    - Dst: DEBUGF
      Src: /src/curl/lib/asyn-ares.c:785,1
    - Dst: infof
      Src: /src/curl/lib/asyn-ares.c:785,1
    - Dst: ares_set_local_ip4
      Src: /src/curl/lib/asyn-ares.c:792,1
    - Dst: ntohl
      Src: /src/curl/lib/asyn-ares.c:792,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 795
    functionName: async_ares_set_dns_local_ip4
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - infof
    - ares_set_local_ip4
    - ntohl
    - curlx_inet_pton
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode async_ares_set_dns_local_ip4(struct Curl_easy *data,\n                                             struct
      Curl_resolv_async *async)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/asyn-ares.c:807,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/asyn-ares.c:810,1
    - Dst: DEBUGF
      Src: /src/curl/lib/asyn-ares.c:811,1
    - Dst: infof
      Src: /src/curl/lib/asyn-ares.c:811,1
    - Dst: ares_set_local_ip6
      Src: /src/curl/lib/asyn-ares.c:818,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - data
    - async
    argTypes:
    - struct Curl_easy*
    - struct Curl_resolv_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 826
    functionName: async_ares_set_dns_local_ip6
    functionSourceFile: /src/curl/lib/asyn-ares.c
    functionUses: 1
    functionsReached:
    - ares_set_local_ip6
    - infof
    - memset
    - curlx_inet_pton
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode async_ares_set_dns_local_ip6(struct Curl_easy *data,\n                                             struct
      Curl_resolv_async *async)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_create
      Src: /src/curl/lib/curl_sha512_256.c:115,1
    - Dst: EVP_DigestInit_ex
      Src: /src/curl/lib/curl_sha512_256.c:119,1
    - Dst: EVP_sha512_256
      Src: /src/curl/lib/curl_sha512_256.c:119,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_sha512_256.c:121,1
    - Dst: EVP_MD_CTX_size
      Src: /src/curl/lib/curl_sha512_256.c:121,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_sha512_256.c:123,1
    - Dst: EVP_MD_CTX_block_size
      Src: /src/curl/lib/curl_sha512_256.c:123,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/curl/lib/curl_sha512_256.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: Curl_sha512_256_init
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - EVP_sha512_256
    - EVP_MD_CTX_create
    - EVP_MD_CTX_destroy
    - EVP_DigestInit_ex
    - EVP_MD_CTX_size
    - EVP_MD_CTX_block_size
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sha512_256_init(void *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/curl/lib/curl_sha512_256.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - context
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: Curl_sha512_256_update
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_sha512_256_update(void *context,\n                                       const
      unsigned char *data,\n                                       size_t length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/curl/lib/curl_sha512_256.c:171,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_sha512_256.c:174,1
    - Dst: curlx_memzero
      Src: /src/curl/lib/curl_sha512_256.c:175,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/curl/lib/curl_sha512_256.c:177,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/curl/lib/curl_sha512_256.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 185
    functionName: Curl_sha512_256_finish
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - curlx_memzero
    - EVP_DigestFinal_ex
    - memcpy
    - EVP_MD_CTX_destroy
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sha512_256_finish(unsigned char *digest, void *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wc_InitSha512_256
      Src: /src/curl/lib/curl_sha512_256.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: Curl_sha512_256_init
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - wc_InitSha512_256
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sha512_256_init(void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURLMIN
      Src: /src/curl/lib/curl_sha512_256.c:207,1
    - Dst: wc_Sha512_256Update
      Src: /src/curl/lib/curl_sha512_256.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 214
    functionName: Curl_sha512_256_update
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - wc_Sha512_256Update
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_sha512_256_update(void *ctx,\n                                       const
      unsigned char *data,\n                                       size_t length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wc_Sha512_256Final
      Src: /src/curl/lib/curl_sha512_256.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: Curl_sha512_256_finish
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - wc_Sha512_256Final
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sha512_256_finish(unsigned char *digest, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_sha512_256.c:244,1
    - Dst: sha512_256_init
      Src: /src/curl/lib/curl_sha512_256.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: Curl_sha512_256_init
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - sha512_256_init
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sha512_256_init(void *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_sha512_256.c:265,1
    - Dst: sha512_256_update
      Src: /src/curl/lib/curl_sha512_256.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - context
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: Curl_sha512_256_update
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - sha512_256_update
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_sha512_256_update(void *context,\n                                       const
      unsigned char *data,\n                                       size_t length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_256_digest
      Src: /src/curl/lib/curl_sha512_256.c:285,1
    - Dst: sha512_256_digest
      Src: /src/curl/lib/curl_sha512_256.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 292
    functionName: Curl_sha512_256_finish
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - sha512_256_digest
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sha512_256_finish(unsigned char *digest, void *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: CURL_GET_64BIT_BE
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_GET_64BIT_BE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: CURL_PUT_64BIT_BE
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_PUT_64BIT_BE(ptr, val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - value
    - bits
    argTypes:
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 355
    functionName: Curl_rotr64
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURL_FORCEINLINE
    signature: CURL_FORCEINLINE Curl_rotr64(uint64_t value, unsigned int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_sha512_256.c:447,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_sha512_256.c:449,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:454,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:455,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:456,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:457,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:458,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:459,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:460,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:461,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:464,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 468
    functionName: Curl_sha512_256_init
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - UINT64_C
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sha512_256_init(void *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:511,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:511,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:512,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:512,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:513,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:513,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:514,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:514,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:515,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:515,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:516,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:516,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:517,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:517,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:518,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:518,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:519,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:519,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:520,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:520,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:521,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:521,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:522,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:522,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:523,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:523,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:524,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:524,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:525,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:525,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:526,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:526,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:527,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:527,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:528,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:528,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:529,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:529,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:530,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:530,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:531,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:531,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:532,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:532,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:533,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:533,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:534,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:534,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:535,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:535,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:536,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:536,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:537,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:537,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:538,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:538,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:539,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:539,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:540,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:540,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:541,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:541,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:542,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:542,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:543,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:543,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:544,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:544,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:545,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:545,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:546,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:546,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:547,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:547,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:548,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:548,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:549,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:549,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:550,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:550,1
    - Dst: SHA2STEP64RV
      Src: /src/curl/lib/curl_sha512_256.c:597,1
    - Dst: SHA512_GET_W_FROM_DATA
      Src: /src/curl/lib/curl_sha512_256.c:598,1
    - Dst: SHA2STEP64RV
      Src: /src/curl/lib/curl_sha512_256.c:614,1
    - Dst: Wgen
      Src: /src/curl/lib/curl_sha512_256.c:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - H
    - data
    argTypes:
    - uint64_t[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 629
    functionName: Curl_sha512_256_transform
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - Wgen
    - SHA512_GET_W_FROM_DATA
    - SHA2STEP64RV
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void Curl_sha512_256_transform(uint64_t H[SHA512_256_HASH_SIZE_WORDS],\n
      \                                     const void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: Sha512_Ch
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sha512_Ch(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: Sha512_Maj
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sha512_Maj(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: SIG0
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIG0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: SIG1
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIG1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: sig0
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sig0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: sig1
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sig1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - vA
    - ','
    - vB
    - ','
    - vC
    - ','
    - vD
    - ','
    - vE
    - ','
    - vF
    - ','
    - vG
    - ','
    - vH
    - ','
    - kt
    - ','
    - wt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: SHA2STEP64
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA2STEP64(vA, vB, vC, vD, vE, vF, vG, vH, kt, wt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - vA
    - ','
    - vB
    - ','
    - vC
    - ','
    - vD
    - ','
    - vE
    - ','
    - vF
    - ','
    - vG
    - ','
    - vH
    - ','
    - kt
    - ','
    - wt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 585
    functionName: SHA2STEP64RV
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA2STEP64RV(vA, vB, vC, vD, vE, vF, vG, vH, kt, wt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 592
    functionName: SHA512_GET_W_FROM_DATA
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA512_GET_W_FROM_DATA(buf, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - w
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: Wgen
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Wgen(w, t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curl_sha512_256.c:648,1
    - Dst: UINT64_C
      Src: /src/curl/lib/curl_sha512_256.c:660,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_sha512_256.c:667,1
    - Dst: Curl_sha512_256_transform
      Src: /src/curl/lib/curl_sha512_256.c:670,1
    - Dst: Curl_sha512_256_transform
      Src: /src/curl/lib/curl_sha512_256.c:678,1
    - Dst: memcpy
      Src: /src/curl/lib/curl_sha512_256.c:686,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - context
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 690
    functionName: Curl_sha512_256_update
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - Curl_sha512_256_transform
    - memcpy
    - DEBUGASSERT
    - UINT64_C
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_sha512_256_update(void *context,\n                                       const
      unsigned char *data,\n                                       size_t length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/curl_sha512_256.c:744,1
    - Dst: Curl_sha512_256_transform
      Src: /src/curl/lib/curl_sha512_256.c:747,1
    - Dst: memset
      Src: /src/curl/lib/curl_sha512_256.c:753,1
    - Dst: CURL_PUT_64BIT_BE
      Src: /src/curl/lib/curl_sha512_256.c:759,1
    - Dst: CURL_PUT_64BIT_BE
      Src: /src/curl/lib/curl_sha512_256.c:762,1
    - Dst: Curl_sha512_256_transform
      Src: /src/curl/lib/curl_sha512_256.c:767,1
    - Dst: CURL_PUT_64BIT_BE
      Src: /src/curl/lib/curl_sha512_256.c:772,1
    - Dst: CURL_PUT_64BIT_BE
      Src: /src/curl/lib/curl_sha512_256.c:773,1
    - Dst: CURL_PUT_64BIT_BE
      Src: /src/curl/lib/curl_sha512_256.c:774,1
    - Dst: CURL_PUT_64BIT_BE
      Src: /src/curl/lib/curl_sha512_256.c:775,1
    - Dst: memset
      Src: /src/curl/lib/curl_sha512_256.c:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 781
    functionName: Curl_sha512_256_finish
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - CURL_PUT_64BIT_BE
    - Curl_sha512_256_transform
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_sha512_256_finish(unsigned char *digest, void *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sha512_256_init
      Src: /src/curl/lib/curl_sha512_256.c:798,1
    - Dst: Curl_sha512_256_update
      Src: /src/curl/lib/curl_sha512_256.c:802,1
    - Dst: Curl_sha512_256_finish
      Src: /src/curl/lib/curl_sha512_256.c:805,1
    - Dst: Curl_sha512_256_finish
      Src: /src/curl/lib/curl_sha512_256.c:809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - output
    - input
    - input_size
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 810
    functionName: Curl_sha512_256it
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 1
    functionsReached:
    - Curl_sha512_256_init
    - Curl_sha512_256_finish
    - Curl_sha512_256_update
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_sha512_256it(unsigned char *output, const unsigned char
      *input,\n                           size_t input_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sha512_256_update
      Src: /src/curl/lib/curl_sha512_256.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 819
    functionName: Curl_sha512_256_update_i
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - Curl_sha512_256_update
    linkageType: ''
    returnType: void
    signature: "void Curl_sha512_256_update_i(void *context,\n                                     const
      unsigned char *data,\n                                     unsigned int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sha512_256_finish
      Src: /src/curl/lib/curl_sha512_256.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - context
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 826
    functionName: Curl_sha512_256_finish_v
    functionSourceFile: /src/curl/lib/curl_sha512_256.c
    functionUses: 0
    functionsReached:
    - Curl_sha512_256_finish
    linkageType: ''
    returnType: void
    signature: void Curl_sha512_256_finish_v(unsigned char *result, void *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_fileinfo_cleanup
      Src: /src/curl/lib/ftplistparser.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - user
    - element
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: fileinfo_dtor
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - Curl_fileinfo_cleanup
    linkageType: ''
    returnType: void
    signature: void fileinfo_dtor(void *user, void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_init
      Src: /src/curl/lib/ftplistparser.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wc
    argTypes:
    - struct WildcardData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Curl_wildcard_init
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 1
    functionsReached:
    - Curl_llist_init
    linkageType: ''
    returnType: void
    signature: void Curl_wildcard_init(struct WildcardData *wc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct WildcardData*::dtor
      Src: /src/curl/lib/ftplistparser.c:195,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/ftplistparser.c:199,1
    - Dst: Curl_llist_destroy
      Src: /src/curl/lib/ftplistparser.c:201,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftplistparser.c:202,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/ftplistparser.c:203,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftplistparser.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - wcp
    argTypes:
    - struct WildcardData**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 207
    functionName: Curl_wildcard_dtor
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - curlx_free
    - struct WildcardData*::dtor
    - Curl_llist_destroy
    linkageType: ''
    returnType: void
    signature: void Curl_wildcard_dtor(struct WildcardData **wcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/ftplistparser.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: Curl_ftp_parselist_data_alloc
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 1
    functionsReached:
    - curlx_calloc
    linkageType: ''
    returnType: struct ftp_parselist_data
    signature: struct ftp_parselist_data *Curl_ftp_parselist_data_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_fileinfo_cleanup
      Src: /src/curl/lib/ftplistparser.c:218,1
    - Dst: curlx_free
      Src: /src/curl/lib/ftplistparser.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - parserp
    argTypes:
    - struct ftp_parselist_data**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: Curl_ftp_parselist_data_free
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 2
    functionsReached:
    - curlx_free
    - Curl_fileinfo_cleanup
    linkageType: ''
    returnType: void
    signature: void Curl_ftp_parselist_data_free(struct ftp_parselist_data **parserp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pl_data
    argTypes:
    - struct ftp_parselist_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: Curl_ftp_parselist_geterror
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_ftp_parselist_geterror(struct ftp_parselist_data *pl_data)
  - BBCount: 25
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 293
    functionName: ftp_pl_get_permission
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ftp_pl_get_permission(const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:307,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftplistparser.c:326,1
    - Dst: compare
      Src: /src/curl/lib/ftplistparser.c:327,1
    - Dst: strstr
      Src: /src/curl/lib/ftplistparser.c:330,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/ftplistparser.c:337,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/ftplistparser.c:340,1
    - Dst: Curl_fileinfo_cleanup
      Src: /src/curl/lib/ftplistparser.c:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - data
    - infop
    argTypes:
    - struct Curl_easy*
    - struct fileinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 348
    functionName: ftp_pl_insert_finfo
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - strstr
    - Curl_fileinfo_cleanup
    - Curl_llist_append
    - compare
    - curlx_dyn_ptr
    - Curl_set_in_callback
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ftp_pl_insert_finfo(struct Curl_easy *data,\n                                    struct
      fileinfo *infop)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - c
    - t
    argTypes:
    - char
    - curlfiletype*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 383
    functionName: unix_filetype
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode unix_filetype(const char c, curlfiletype *t)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftplistparser.c:389,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:390,1
    - Dst: curlx_dyn_setlen
      Src: /src/curl/lib/ftplistparser.c:407,1
    - Dst: strncmp
      Src: /src/curl/lib/ftplistparser.c:411,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/ftplistparser.c:415,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftplistparser.c:416,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/ftplistparser.c:422,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - parser
    - infop
    - c
    argTypes:
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 430
    functionName: parse_unix_totalsize
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_len
    - curlx_str_passblanks
    - curlx_dyn_ptr
    - curlx_dyn_setlen
    - curlx_dyn_reset
    - ISDIGIT
    - strncmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix_totalsize(struct ftp_parselist_data *parser,\n
      \                                    struct fileinfo *infop,\n                                     const
      char c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:436,1
    - Dst: strchr
      Src: /src/curl/lib/ftplistparser.c:438,1
    - Dst: ftp_pl_get_permission
      Src: /src/curl/lib/ftplistparser.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - parser
    - infop
    - c
    argTypes:
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 460
    functionName: parse_unix_permission
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - strchr
    - ftp_pl_get_permission
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix_permission(struct ftp_parselist_data *parser,\n
      \                                     struct fileinfo *infop,\n                                      const
      char c)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftplistparser.c:466,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:467,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftplistparser.c:472,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/ftplistparser.c:488,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftplistparser.c:497,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - parser
    - infop
    - c
    argTypes:
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 503
    functionName: parse_unix_hlinks
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - curlx_dyn_len
    - curlx_str_number
    - ISDIGIT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix_hlinks(struct ftp_parselist_data *parser,\n                                  struct
      fileinfo *infop,\n                                  const char c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftplistparser.c:509,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - parser
    - infop
    - c
    argTypes:
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 532
    functionName: parse_unix_user
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - curlx_dyn_len
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix_user(struct ftp_parselist_data *parser,\n                                struct
      fileinfo *infop,\n                                const char c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftplistparser.c:538,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - parser
    - infop
    - c
    argTypes:
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 561
    functionName: parse_unix_group
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - curlx_dyn_len
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix_group(struct ftp_parselist_data *parser,\n                                 struct
      fileinfo *infop,\n                                 const char c)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftplistparser.c:567,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:568,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftplistparser.c:572,1
    - Dst: curlx_str_numblanks
      Src: /src/curl/lib/ftplistparser.c:587,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftplistparser.c:598,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - parser
    - infop
    - c
    argTypes:
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 604
    functionName: parse_unix_size
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - curlx_str_numblanks
    - curlx_dyn_len
    - ISDIGIT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix_size(struct ftp_parselist_data *parser,\n                                struct
      fileinfo *infop,\n                                const char c)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftplistparser.c:610,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:611,1
    - Dst: ISALNUM
      Src: /src/curl/lib/ftplistparser.c:617,1
    - Dst: ISALNUM
      Src: /src/curl/lib/ftplistparser.c:631,1
    - Dst: ISALNUM
      Src: /src/curl/lib/ftplistparser.c:638,1
    - Dst: ISALNUM
      Src: /src/curl/lib/ftplistparser.c:648,1
    - Dst: ISALNUM
      Src: /src/curl/lib/ftplistparser.c:654,1
    - Dst: ISALNUM
      Src: /src/curl/lib/ftplistparser.c:674,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 3
    argNames:
    - parser
    - infop
    - c
    argTypes:
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 679
    functionName: parse_unix_time
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - ISALNUM
    - curlx_dyn_len
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix_time(struct ftp_parselist_data *parser,\n                                struct
      fileinfo *infop,\n                                const char c)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftplistparser.c:686,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:687,1
    - Dst: ftp_pl_insert_finfo
      Src: /src/curl/lib/ftplistparser.c:707,1
    - Dst: ftp_pl_insert_finfo
      Src: /src/curl/lib/ftplistparser.c:715,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - data
    - parser
    - infop
    - c
    argTypes:
    - struct Curl_easy*
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 722
    functionName: parse_unix_filename
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - curlx_dyn_len
    - ftp_pl_insert_finfo
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix_filename(struct Curl_easy *data,\n                                    struct
      ftp_parselist_data *parser,\n                                    struct fileinfo
      *infop,\n                                    const char c)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftplistparser.c:729,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:730,1
    - Dst: ftp_pl_insert_finfo
      Src: /src/curl/lib/ftplistparser.c:803,1
    - Dst: ftp_pl_insert_finfo
      Src: /src/curl/lib/ftplistparser.c:814,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 79
    argCount: 4
    argNames:
    - data
    - parser
    - infop
    - c
    argTypes:
    - struct Curl_easy*
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 826
    functionName: parse_unix_symlink
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - curlx_dyn_len
    - ftp_pl_insert_finfo
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix_symlink(struct Curl_easy *data,\n                                   struct
      ftp_parselist_data *parser,\n                                   struct fileinfo
      *infop,\n                                   const char c)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: parse_unix_totalsize
      Src: /src/curl/lib/ftplistparser.c:838,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/ftplistparser.c:843,1
    - Dst: unix_filetype
      Src: /src/curl/lib/ftplistparser.c:845,1
    - Dst: parse_unix_permission
      Src: /src/curl/lib/ftplistparser.c:853,1
    - Dst: parse_unix_hlinks
      Src: /src/curl/lib/ftplistparser.c:856,1
    - Dst: parse_unix_user
      Src: /src/curl/lib/ftplistparser.c:859,1
    - Dst: parse_unix_group
      Src: /src/curl/lib/ftplistparser.c:862,1
    - Dst: parse_unix_size
      Src: /src/curl/lib/ftplistparser.c:865,1
    - Dst: parse_unix_time
      Src: /src/curl/lib/ftplistparser.c:868,1
    - Dst: parse_unix_filename
      Src: /src/curl/lib/ftplistparser.c:871,1
    - Dst: parse_unix_symlink
      Src: /src/curl/lib/ftplistparser.c:874,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - data
    - parser
    - infop
    - c
    argTypes:
    - struct Curl_easy*
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 878
    functionName: parse_unix
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - parse_unix_hlinks
    - parse_unix_group
    - parse_unix_filename
    - parse_unix_time
    - parse_unix_user
    - parse_unix_symlink
    - unix_filetype
    - FALLTHROUGH
    - parse_unix_size
    - parse_unix_permission
    - parse_unix_totalsize
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_unix(struct Curl_easy *data,\n                           struct
      ftp_parselist_data *parser,\n                           struct fileinfo *infop,\n
      \                          const char c)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/ftplistparser.c:886,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/ftplistparser.c:887,1
    - Dst: strchr
      Src: /src/curl/lib/ftplistparser.c:894,1
    - Dst: ISBLANK
      Src: /src/curl/lib/ftplistparser.c:913,1
    - Dst: strchr
      Src: /src/curl/lib/ftplistparser.c:924,1
    - Dst: strcmp
      Src: /src/curl/lib/ftplistparser.c:942,1
    - Dst: curlx_str_numblanks
      Src: /src/curl/lib/ftplistparser.c:948,1
    - Dst: ftp_pl_insert_finfo
      Src: /src/curl/lib/ftplistparser.c:983,1
    - Dst: ftp_pl_insert_finfo
      Src: /src/curl/lib/ftplistparser.c:994,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 110
    argCount: 4
    argNames:
    - data
    - parser
    - infop
    - c
    argTypes:
    - struct Curl_easy*
    - struct ftp_parselist_data*
    - struct fileinfo*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 880
    functionDepth: 4
    functionLinenumber: 880
    functionLinenumberEnd: 1010
    functionName: parse_winnt
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_len
    - curlx_dyn_ptr
    - strcmp
    - curlx_str_numblanks
    - strchr
    - ftp_pl_insert_finfo
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode parse_winnt(struct Curl_easy *data,\n                            struct
      ftp_parselist_data *parser,\n                            struct fileinfo *infop,\n
      \                           const char c)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/curl/lib/ftplistparser.c:1035,1
    - Dst: Curl_fileinfo_alloc
      Src: /src/curl/lib/ftplistparser.c:1042,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/ftplistparser.c:1049,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/ftplistparser.c:1054,1
    - Dst: parse_unix
      Src: /src/curl/lib/ftplistparser.c:1061,1
    - Dst: parse_winnt
      Src: /src/curl/lib/ftplistparser.c:1064,1
    - Dst: Curl_fileinfo_cleanup
      Src: /src/curl/lib/ftplistparser.c:1083,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 4
    argNames:
    - buffer
    - size
    - nmemb
    - connptr
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1012
    functionDepth: 6
    functionLinenumber: 1012
    functionLinenumberEnd: 1088
    functionName: Curl_ftp_parselist
    functionSourceFile: /src/curl/lib/ftplistparser.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - parse_unix
    - Curl_fileinfo_cleanup
    - parse_winnt
    - ISDIGIT
    - Curl_fileinfo_alloc
    linkageType: ''
    returnType: size_t
    signature: "size_t Curl_ftp_parselist(char *buffer, size_t size, size_t nmemb,\n
      \                         void *connptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: Curl_ipv6_scope
    functionSourceFile: /src/curl/lib/if2ip.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ipv6_scope(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: Curl_data_priority_add_child
    functionSourceFile: /src/curl/lib/url.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_data_priority_add_child(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Curl_read16_le
    functionSourceFile: /src/curl/lib/curl_endian.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short Curl_read16_le(const unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: Curl_read32_le
    functionSourceFile: /src/curl/lib/curl_endian.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Curl_read32_le(const unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: Curl_read16_be
    functionSourceFile: /src/curl/lib/curl_endian.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short Curl_read16_be(const unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct h1_tunnel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: tunnel_is_established
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tunnel_is_established(struct h1_tunnel_state *ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct h1_tunnel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: tunnel_is_failed
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tunnel_is_failed(struct h1_tunnel_state *ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: h1_proxy_is_udp
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool h1_proxy_is_udp(struct Curl_cfilter *cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h1-proxy.c:105,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/cf-h1-proxy.c:106,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/cf-h1-proxy.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h1_tunnel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: tunnel_reinit
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_reset
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tunnel_reinit(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              struct h1_tunnel_state *ts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:126,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-h1-proxy.c:130,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:134,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/cf-h1-proxy.c:136,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/cf-h1-proxy.c:137,1
    - Dst: Curl_httpchunk_init
      Src: /src/curl/lib/cf-h1-proxy.c:138,1
    - Dst: tunnel_reinit
      Src: /src/curl/lib/cf-h1-proxy.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - cf
    - data
    - pts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h1_tunnel_state**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: tunnel_init
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - failf
    - infof
    - tunnel_reinit
    - curlx_calloc
    - Curl_httpchunk_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode tunnel_init(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            struct h1_tunnel_state **pts)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:154,1
    - Dst: tunnel_reinit
      Src: /src/curl/lib/cf-h1-proxy.c:155,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:159,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/cf-h1-proxy.c:162,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:166,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:171,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:176,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:177,1
    - Dst: h1_proxy_is_udp
      Src: /src/curl/lib/cf-h1-proxy.c:178,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-h1-proxy.c:182,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:185,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/cf-h1-proxy.c:187,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/cf-h1-proxy.c:188,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-h1-proxy.c:195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - cf
    - ts
    - new_state
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct h1_tunnel_state*
    - h1_tunnel_state
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 198
    functionName: h1_tunnel_go_state
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - h1_proxy_is_udp
    - infof
    - tunnel_reinit
    - curlx_dyn_reset
    - FALLTHROUGH
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void h1_tunnel_go_state(struct Curl_cfilter *cf,\n                               struct
      h1_tunnel_state *ts,\n                               h1_tunnel_state new_state,\n
      \                              struct Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/cf-h1-proxy.c:204,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/cf-h1-proxy.c:205,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/cf-h1-proxy.c:206,1
    - Dst: Curl_httpchunk_free
      Src: /src/curl/lib/cf-h1-proxy.c:207,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-h1-proxy.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ts
    - data
    argTypes:
    - struct h1_tunnel_state*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: tunnel_free
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_peer_unlink
    - curlx_dyn_free
    - Curl_httpchunk_free
    linkageType: ''
    returnType: void
    signature: "void tunnel_free(struct h1_tunnel_state *ts,\n                        struct
      Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h1_tunnel_go_state
      Src: /src/curl/lib/cf-h1-proxy.c:219,1
    - Dst: tunnel_free
      Src: /src/curl/lib/cf-h1-proxy.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: cf_tunnel_free
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - h1_tunnel_go_state
    - tunnel_free
    linkageType: ''
    returnType: void
    signature: "void cf_tunnel_free(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct h1_tunnel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: tunnel_want_send
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tunnel_want_send(struct h1_tunnel_state *ts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h1-proxy.c:239,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-h1-proxy.c:242,1
    - Dst: Curl_http_proxy_create_tunnel_request
      Src: /src/curl/lib/cf-h1-proxy.c:244,1
    - Dst: h1_proxy_is_udp
      Src: /src/curl/lib/cf-h1-proxy.c:246,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/cf-h1-proxy.c:250,1
    - Dst: Curl_h1_req_write_head
      Src: /src/curl/lib/cf-h1-proxy.c:255,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/cf-h1-proxy.c:257,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:261,1
    - Dst: Curl_http_req_free
      Src: /src/curl/lib/cf-h1-proxy.c:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h1_tunnel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 231
    functionDepth: 9
    functionLinenumber: 231
    functionLinenumberEnd: 265
    functionName: start_CONNECT
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - failf
    - Curl_http_req_free
    - h1_proxy_is_udp
    - Curl_http_proxy_create_tunnel_request
    - curlx_dyn_reset
    - Curl_creader_set_null
    - Curl_h1_req_write_head
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode start_CONNECT(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              struct h1_tunnel_state *ts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_uptr
      Src: /src/curl/lib/cf-h1-proxy.c:272,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cf-h1-proxy.c:273,1
    - Dst: struct Curl_cfilter*::next::cft::do_send
      Src: /src/curl/lib/cf-h1-proxy.c:284,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h1-proxy.c:291,1
    - Dst: Curl_debug
      Src: /src/curl/lib/cf-h1-proxy.c:293,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - cf
    - data
    - ts
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h1_tunnel_state*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 267
    functionDepth: 9
    functionLinenumber: 267
    functionLinenumberEnd: 300
    functionName: send_CONNECT
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - failf
    - curlx_dyn_len
    - curlx_dyn_uptr
    - Curl_debug
    - struct Curl_cfilter*::next::cft::do_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode send_CONNECT(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             struct h1_tunnel_state *ts,\n
      \                            bool *done)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: checkprefix
      Src: /src/curl/lib/cf-h1-proxy.c:310,1
    - Dst: checkprefix
      Src: /src/curl/lib/cf-h1-proxy.c:311,1
    - Dst: Curl_copy_header_value
      Src: /src/curl/lib/cf-h1-proxy.c:314,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:318,1
    - Dst: Curl_http_input_auth
      Src: /src/curl/lib/cf-h1-proxy.c:319,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-h1-proxy.c:321,1
    - Dst: checkprefix
      Src: /src/curl/lib/cf-h1-proxy.c:326,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:328,1
    - Dst: strlen
      Src: /src/curl/lib/cf-h1-proxy.c:332,1
    - Dst: curlx_str_numblanks
      Src: /src/curl/lib/cf-h1-proxy.c:333,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:334,1
    - Dst: checkprefix
      Src: /src/curl/lib/cf-h1-proxy.c:339,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:341,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/cf-h1-proxy.c:344,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:345,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:346,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:347,1
    - Dst: Curl_httpchunk_reset
      Src: /src/curl/lib/cf-h1-proxy.c:351,1
    - Dst: checkprefix
      Src: /src/curl/lib/cf-h1-proxy.c:354,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/cf-h1-proxy.c:355,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:356,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:357,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:358,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/cf-h1-proxy.c:361,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:362,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:362,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:364,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/cf-h1-proxy.c:366,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:367,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:368,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:370,1
    - Dst: strncmp
      Src: /src/curl/lib/cf-h1-proxy.c:373,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/cf-h1-proxy.c:376,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/cf-h1-proxy.c:376,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/cf-h1-proxy.c:376,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/cf-h1-proxy.c:377,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:383,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 48
    argCount: 4
    argNames:
    - cf
    - data
    - ts
    - header
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h1_tunnel_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 386
    functionName: on_resp_header_udp
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_compareheader
    - Curl_http_input_auth
    - checkprefix
    - failf
    - STRCONST
    - Curl_copy_header_value
    - infof
    - curlx_str_numblanks
    - curlx_free
    - Curl_httpchunk_reset
    - ISDIGIT
    - strlen
    - strncmp
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode on_resp_header_udp(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   struct h1_tunnel_state
      *ts,\n                                   const char *header)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: checkprefix
      Src: /src/curl/lib/cf-h1-proxy.c:397,1
    - Dst: checkprefix
      Src: /src/curl/lib/cf-h1-proxy.c:398,1
    - Dst: Curl_copy_header_value
      Src: /src/curl/lib/cf-h1-proxy.c:401,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:405,1
    - Dst: Curl_http_input_auth
      Src: /src/curl/lib/cf-h1-proxy.c:406,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-h1-proxy.c:408,1
    - Dst: checkprefix
      Src: /src/curl/lib/cf-h1-proxy.c:413,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:418,1
    - Dst: strlen
      Src: /src/curl/lib/cf-h1-proxy.c:422,1
    - Dst: curlx_str_numblanks
      Src: /src/curl/lib/cf-h1-proxy.c:423,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:424,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/cf-h1-proxy.c:429,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:430,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:430,1
    - Dst: checkprefix
      Src: /src/curl/lib/cf-h1-proxy.c:432,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:437,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/cf-h1-proxy.c:440,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:441,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:442,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:443,1
    - Dst: Curl_httpchunk_reset
      Src: /src/curl/lib/cf-h1-proxy.c:446,1
    - Dst: Curl_compareheader
      Src: /src/curl/lib/cf-h1-proxy.c:449,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:450,1
    - Dst: STRCONST
      Src: /src/curl/lib/cf-h1-proxy.c:451,1
    - Dst: strncmp
      Src: /src/curl/lib/cf-h1-proxy.c:453,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/cf-h1-proxy.c:456,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/cf-h1-proxy.c:456,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/cf-h1-proxy.c:456,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/cf-h1-proxy.c:457,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 39
    argCount: 4
    argNames:
    - cf
    - data
    - ts
    - header
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h1_tunnel_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 463
    functionName: on_resp_header
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_compareheader
    - Curl_http_input_auth
    - checkprefix
    - failf
    - STRCONST
    - Curl_copy_header_value
    - infof
    - curlx_str_numblanks
    - curlx_free
    - Curl_httpchunk_reset
    - ISDIGIT
    - strlen
    - strncmp
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode on_resp_header(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               struct h1_tunnel_state *ts,\n
      \                              const char *header)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/cf-h1-proxy.c:470,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cf-h1-proxy.c:471,1
    - Dst: Curl_debug
      Src: /src/curl/lib/cf-h1-proxy.c:477,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/cf-h1-proxy.c:482,1
    - Dst: Curl_bump_headersize
      Src: /src/curl/lib/cf-h1-proxy.c:486,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/cf-h1-proxy.c:494,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:504,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:507,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:513,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h1-proxy.c:521,1
    - Dst: h1_proxy_is_udp
      Src: /src/curl/lib/cf-h1-proxy.c:526,1
    - Dst: on_resp_header_udp
      Src: /src/curl/lib/cf-h1-proxy.c:527,1
    - Dst: on_resp_header
      Src: /src/curl/lib/cf-h1-proxy.c:530,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/cf-h1-proxy.c:536,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h1_tunnel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 465
    functionDepth: 9
    functionLinenumber: 465
    functionLinenumberEnd: 538
    functionName: single_header
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - ISNEWLINE
    - Curl_client_write
    - h1_proxy_is_udp
    - on_resp_header_udp
    - curlx_dyn_len
    - Curl_bump_headersize
    - curlx_dyn_ptr
    - infof
    - curlx_dyn_reset
    - on_resp_header
    - Curl_debug
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode single_header(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              struct h1_tunnel_state *ts)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_recv
      Src: /src/curl/lib/cf-h1-proxy.c:560,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/cf-h1-proxy.c:566,1
    - Dst: single_header
      Src: /src/curl/lib/cf-h1-proxy.c:576,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:586,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:590,1
    - Dst: Curl_httpchunk_read
      Src: /src/curl/lib/cf-h1-proxy.c:605,1
    - Dst: Curl_httpchunk_is_done
      Src: /src/curl/lib/cf-h1-proxy.c:608,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:610,1
    - Dst: ISBLANK
      Src: /src/curl/lib/cf-h1-proxy.c:627,1
    - Dst: Curl_http_to_fold
      Src: /src/curl/lib/cf-h1-proxy.c:628,1
    - Dst: single_header
      Src: /src/curl/lib/cf-h1-proxy.c:632,1
    - Dst: ISBLANK
      Src: /src/curl/lib/cf-h1-proxy.c:641,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/cf-h1-proxy.c:645,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:646,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/cf-h1-proxy.c:651,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:652,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/cf-h1-proxy.c:660,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/cf-h1-proxy.c:661,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/cf-h1-proxy.c:662,1
    - Dst: single_header
      Src: /src/curl/lib/cf-h1-proxy.c:664,1
    - Dst: h1_proxy_is_udp
      Src: /src/curl/lib/cf-h1-proxy.c:681,1
    - Dst: Curl_http_auth_act
      Src: /src/curl/lib/cf-h1-proxy.c:684,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 92
    argCount: 4
    argNames:
    - cf
    - data
    - ts
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h1_tunnel_state*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 540
    functionDepth: 10
    functionLinenumber: 540
    functionLinenumberEnd: 687
    functionName: recv_CONNECT_resp
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_httpchunk_is_done
    - failf
    - curlx_dyn_addn
    - Curl_http_to_fold
    - Curl_httpchunk_read
    - ISNEWLINE
    - h1_proxy_is_udp
    - Curl_http_auth_act
    - curlx_dyn_len
    - infof
    - curlx_dyn_ptr
    - single_header
    - ISBLANK
    - Curl_pgrsUpdate
    - Curl_conn_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode recv_CONNECT_resp(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  struct h1_tunnel_state *ts,\n
      \                                 bool *done)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: tunnel_is_established
      Src: /src/curl/lib/cf-h1-proxy.c:697,1
    - Dst: tunnel_is_failed
      Src: /src/curl/lib/cf-h1-proxy.c:699,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/cf-h1-proxy.c:704,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:705,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:713,1
    - Dst: start_CONNECT
      Src: /src/curl/lib/cf-h1-proxy.c:714,1
    - Dst: h1_tunnel_go_state
      Src: /src/curl/lib/cf-h1-proxy.c:717,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-h1-proxy.c:718,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:722,1
    - Dst: send_CONNECT
      Src: /src/curl/lib/cf-h1-proxy.c:723,1
    - Dst: h1_tunnel_go_state
      Src: /src/curl/lib/cf-h1-proxy.c:726,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-h1-proxy.c:727,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:731,1
    - Dst: recv_CONNECT_resp
      Src: /src/curl/lib/cf-h1-proxy.c:732,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:734,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/cf-h1-proxy.c:736,1
    - Dst: h1_tunnel_go_state
      Src: /src/curl/lib/cf-h1-proxy.c:741,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-h1-proxy.c:742,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:745,1
    - Dst: Curl_req_soft_reset
      Src: /src/curl/lib/cf-h1-proxy.c:751,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:758,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:759,1
    - Dst: h1_tunnel_go_state
      Src: /src/curl/lib/cf-h1-proxy.c:764,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h1-proxy.c:775,1
    - Dst: h1_proxy_is_udp
      Src: /src/curl/lib/cf-h1-proxy.c:776,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-h1-proxy.c:781,1
    - Dst: h1_tunnel_go_state
      Src: /src/curl/lib/cf-h1-proxy.c:782,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:783,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-h1-proxy.c:791,1
    - Dst: h1_tunnel_go_state
      Src: /src/curl/lib/cf-h1-proxy.c:792,1
    - Dst: failf
      Src: /src/curl/lib/cf-h1-proxy.c:793,1
    - Dst: h1_tunnel_go_state
      Src: /src/curl/lib/cf-h1-proxy.c:799,1
    - Dst: h1_proxy_is_udp
      Src: /src/curl/lib/cf-h1-proxy.c:800,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:801,1
    - Dst: infof
      Src: /src/curl/lib/cf-h1-proxy.c:804,1
    - Dst: h1_tunnel_go_state
      Src: /src/curl/lib/cf-h1-proxy.c:810,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h1_tunnel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 689
    functionDepth: 11
    functionLinenumber: 689
    functionLinenumberEnd: 812
    functionName: H1_CONNECT
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - recv_CONNECT_resp
    - curlx_safefree
    - h1_tunnel_go_state
    - send_CONNECT
    - start_CONNECT
    - failf
    - DEBUGASSERT
    - tunnel_is_failed
    - Curl_req_soft_reset
    - h1_proxy_is_udp
    - infof
    - tunnel_is_established
    - Curl_timeleft_ms
    - FALLTHROUGH
    - Curl_pgrsUpdate
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode H1_CONNECT(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data,\n                           struct h1_tunnel_state *ts)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:827,1
    - Dst: struct Curl_cfilter*::next::cft::do_connect
      Src: /src/curl/lib/cf-h1-proxy.c:828,1
    - Dst: tunnel_init
      Src: /src/curl/lib/cf-h1-proxy.c:834,1
    - Dst: H1_CONNECT
      Src: /src/curl/lib/cf-h1-proxy.c:842,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-h1-proxy.c:845,1
    - Dst: tunnel_is_established
      Src: /src/curl/lib/cf-h1-proxy.c:848,1
    - Dst: Curl_req_soft_reset
      Src: /src/curl/lib/cf-h1-proxy.c:852,1
    - Dst: Curl_client_reset
      Src: /src/curl/lib/cf-h1-proxy.c:853,1
    - Dst: Curl_pgrsReset
      Src: /src/curl/lib/cf-h1-proxy.c:854,1
    - Dst: cf_tunnel_free
      Src: /src/curl/lib/cf-h1-proxy.c:855,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 814
    functionDepth: 12
    functionLinenumber: 814
    functionLinenumberEnd: 858
    functionName: cf_h1_proxy_connect
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - tunnel_init
    - Curl_pgrsReset
    - struct Curl_cfilter*::next::cft::do_connect
    - Curl_req_soft_reset
    - tunnel_is_established
    - H1_CONNECT
    - Curl_client_reset
    - cf_tunnel_free
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h1_proxy_connect(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    bool *done)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/cf-h1-proxy.c:871,1
    - Dst: tunnel_want_send
      Src: /src/curl/lib/cf-h1-proxy.c:877,1
    - Dst: Curl_pollset_set_out_only
      Src: /src/curl/lib/cf-h1-proxy.c:878,1
    - Dst: Curl_pollset_set_in_only
      Src: /src/curl/lib/cf-h1-proxy.c:880,1
    - Dst: Curl_pollset_set_out_only
      Src: /src/curl/lib/cf-h1-proxy.c:883,1
    - Dst: struct Curl_cfilter*::next::cft::adjust_pollset
      Src: /src/curl/lib/cf-h1-proxy.c:887,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 890
    functionName: cf_h1_proxy_adjust_pollset
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_set_in_only
    - Curl_pollset_set_out_only
    - struct Curl_cfilter*::next::cft::adjust_pollset
    - Curl_conn_cf_get_socket
    - tunnel_want_send
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h1_proxy_adjust_pollset(struct Curl_cfilter *cf,\n                                           struct
      Curl_easy *data,\n                                           struct easy_pollset
      *ps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/cf-h1-proxy.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 896
    functionName: cf_h1_proxy_data_pending
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::has_data_pending
    linkageType: ''
    returnType: bool
    signature: "bool cf_h1_proxy_data_pending(struct Curl_cfilter *cf,\n                                     const
      struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-h1-proxy.c:901,1
    - Dst: cf_tunnel_free
      Src: /src/curl/lib/cf-h1-proxy.c:902,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-h1-proxy.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 898
    functionDepth: 4
    functionLinenumber: 898
    functionLinenumberEnd: 904
    functionName: cf_h1_proxy_destroy
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - cf_tunnel_free
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_h1_proxy_destroy(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-h1-proxy.c:921,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/cf-h1-proxy.c:929,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 931
    functionName: cf_h1_proxy_query
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::query
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h1_proxy_query(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  int query, int *pres1, void
      *pres2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-h1-proxy.c:967,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/cf-h1-proxy.c:972,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/cf-h1-proxy.c:974,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/cf-h1-proxy.c:975,1
    - Dst: Curl_httpchunk_init
      Src: /src/curl/lib/cf-h1-proxy.c:976,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-h1-proxy.c:978,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-h1-proxy.c:985,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-h1-proxy.c:987,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/cf-h1-proxy.c:991,1
    - Dst: tunnel_free
      Src: /src/curl/lib/cf-h1-proxy.c:994,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 5
    argNames:
    - cf_at
    - data
    - dest
    - httpversion
    - udp_tunnel
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 996
    functionName: Curl_cf_h1_proxy_insert_after
    functionSourceFile: /src/curl/lib/cf-h1-proxy.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - tunnel_free
    - Curl_cf_create
    - Curl_peer_link
    - Curl_conn_cf_insert_after
    - curlx_free
    - curlx_calloc
    - Curl_httpchunk_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_h1_proxy_insert_after(struct Curl_cfilter *cf_at,\n
      \                                      struct Curl_easy *data,\n                                       struct
      Curl_peer *dest,\n                                       int httpversion,\n
      \                                      bool udp_tunnel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: checkprefix
    functionSourceFile: /src/curl/lib/strcase.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: checkprefix(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BrotliDecoderVersion
      Src: /src/curl/lib/version.c:80,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 7
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: brotli_version
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - BrotliDecoderVersion
    linkageType: ''
    returnType: void
    signature: void brotli_version(char *buf, size_t bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_versionNumber
      Src: /src/curl/lib/version.c:91,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: zstd_version
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 0
    functionsReached:
    - ZSTD_versionNumber
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: void zstd_version(char *buf, size_t bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: psl_check_version_number
      Src: /src/curl/lib/version.c:104,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:105,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:108,1
    - Dst: psl_get_version
      Src: /src/curl/lib/version.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 7
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: psl_version
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - psl_get_version
    - psl_check_version_number
    linkageType: ''
    returnType: void
    signature: void psl_version(char *buf, size_t bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:121,1
    - Dst: idn2_check_version
      Src: /src/curl/lib/version.c:121,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:123,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 7
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: idn_version
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 0
    functionsReached:
    - idn2_check_version
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: void idn_version(char *buf, size_t bufsz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/version.c:190,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:192,1
    - Dst: Curl_ssl_version
      Src: /src/curl/lib/version.c:199,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:203,1
    - Dst: zlibVersion
      Src: /src/curl/lib/version.c:203,1
    - Dst: brotli_version
      Src: /src/curl/lib/version.c:207,1
    - Dst: zstd_version
      Src: /src/curl/lib/version.c:211,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:215,1
    - Dst: ares_version
      Src: /src/curl/lib/version.c:216,1
    - Dst: idn_version
      Src: /src/curl/lib/version.c:220,1
    - Dst: psl_version
      Src: /src/curl/lib/version.c:224,1
    - Dst: Curl_ssh_version
      Src: /src/curl/lib/version.c:228,1
    - Dst: Curl_http2_ver
      Src: /src/curl/lib/version.c:232,1
    - Dst: Curl_quic_ver
      Src: /src/curl/lib/version.c:236,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:240,1
    - Dst: gsasl_check_version
      Src: /src/curl/lib/version.c:241,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:246,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:248,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/version.c:250,1
    - Dst: Curl_ldap_version
      Src: /src/curl/lib/version.c:255,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/version.c:259,1
    - Dst: strlen
      Src: /src/curl/lib/version.c:264,1
    - Dst: memcpy
      Src: /src/curl/lib/version.c:273,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 140
    functionDepth: 8
    functionLinenumber: 140
    functionLinenumberEnd: 280
    functionName: curl_version
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 7
    functionsReached:
    - curl_msnprintf
    - memcpy
    - ares_version
    - DEBUGASSERT
    - getenv
    - Curl_http2_ver
    - gsasl_check_version
    - zstd_version
    - Curl_quic_ver
    - idn_version
    - psl_version
    - Curl_ssh_version
    - strlen
    - Curl_ssl_version
    - Curl_ldap_version
    - brotli_version
    - zlibVersion
    linkageType: ''
    returnType: char
    signature: char *curl_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - curl_version_info_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 393
    functionName: idn_present
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int idn_present(curl_version_info_data *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/version.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - curl_version_info_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: https_proxy_present
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_supports
    linkageType: ''
    returnType: int
    signature: int https_proxy_present(curl_version_info_data *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_supports
      Src: /src/curl/lib/version.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - curl_version_info_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: ech_present
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_supports
    linkageType: ''
    returnType: int
    signature: int ech_present(curl_version_info_data *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - present
    - ','
    - bitmask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 421
    functionName: FEATURE
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FEATURE(name, present, bitmask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_version
      Src: /src/curl/lib/version.c:603,1
    - Dst: zlibVersion
      Src: /src/curl/lib/version.c:608,1
    - Dst: ares_version
      Src: /src/curl/lib/version.c:614,1
    - Dst: idn2_check_version
      Src: /src/curl/lib/version.c:621,1
    - Dst: Curl_ssh_version
      Src: /src/curl/lib/version.c:625,1
    - Dst: BrotliDecoderVersion
      Src: /src/curl/lib/version.c:630,1
    - Dst: brotli_version
      Src: /src/curl/lib/version.c:631,1
    - Dst: ZSTD_versionNumber
      Src: /src/curl/lib/version.c:636,1
    - Dst: zstd_version
      Src: /src/curl/lib/version.c:637,1
    - Dst: nghttp2_version
      Src: /src/curl/lib/version.c:643,1
    - Dst: Curl_quic_ver
      Src: /src/curl/lib/version.c:652,1
    - Dst: gsasl_check_version
      Src: /src/curl/lib/version.c:659,1
    - Dst: struct feat*::present
      Src: /src/curl/lib/version.c:666,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - stamp
    argTypes:
    - CURLversion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 577
    functionDepth: 8
    functionLinenumber: 577
    functionLinenumberEnd: 679
    functionName: curl_version_info
    functionSourceFile: /src/curl/lib/version.c
    functionUses: 8
    functionsReached:
    - idn2_check_version
    - ZSTD_versionNumber
    - ares_version
    - brotli_version
    - gsasl_check_version
    - zstd_version
    - Curl_quic_ver
    - BrotliDecoderVersion
    - struct feat*::present
    - Curl_ssl_version
    - nghttp2_version
    - Curl_ssh_version
    - zlibVersion
    linkageType: ''
    returnType: curl_version_info_data
    signature: curl_version_info_data *curl_version_info(CURLversion stamp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/select.c:70,1
    - Dst: curlx_mstotv
      Src: /src/curl/lib/select.c:74,1
    - Dst: select
      Src: /src/curl/lib/select.c:89,1
    - Dst: select
      Src: /src/curl/lib/select.c:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 5
    argNames:
    - maxfd
    - fds_read
    - fds_write
    - fds_err
    - timeout_ms
    argTypes:
    - curl_socket_t
    - fd_set*
    - fd_set*
    - fd_set*
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 96
    functionName: our_select
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 0
    functionsReached:
    - curlx_mstotv
    - select
    - curlx_wait_ms
    linkageType: ''
    returnType: int
    signature: "int our_select(curl_socket_t maxfd,   /* highest socket number */\n
      \                     fd_set *fds_read,      /* sockets ready for reading */\n
      \                     fd_set *fds_write,     /* sockets ready for writing */\n
      \                     fd_set *fds_err,       /* sockets with errors */\n                      timediff_t
      timeout_ms)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/select.c:132,1
    - Dst: Curl_poll
      Src: /src/curl/lib/select.c:160,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 4
    argNames:
    - readfd0
    - readfd1
    - writefd
    - timeout_ms
    argTypes:
    - curl_socket_t
    - curl_socket_t
    - curl_socket_t
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 188
    functionName: Curl_socket_check
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 2
    functionsReached:
    - Curl_poll
    - curlx_wait_ms
    linkageType: ''
    returnType: int
    signature: "int Curl_socket_check(curl_socket_t readfd0, /* two sockets to read
      from */\n                      curl_socket_t readfd1,\n                      curl_socket_t
      writefd, /* socket to write to */\n                      timediff_t timeout_ms)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/select.c:227,1
    - Dst: poll
      Src: /src/curl/lib/select.c:248,1
    - Dst: FD_ZERO
      Src: /src/curl/lib/select.c:267,1
    - Dst: FD_ZERO
      Src: /src/curl/lib/select.c:268,1
    - Dst: FD_ZERO
      Src: /src/curl/lib/select.c:269,1
    - Dst: VERIFY_SOCK
      Src: /src/curl/lib/select.c:276,1
    - Dst: FD_SET
      Src: /src/curl/lib/select.c:282,1
    - Dst: FD_SET
      Src: /src/curl/lib/select.c:284,1
    - Dst: FD_SET
      Src: /src/curl/lib/select.c:286,1
    - Dst: our_select
      Src: /src/curl/lib/select.c:296,1
    - Dst: FD_ISSET
      Src: /src/curl/lib/select.c:309,1
    - Dst: FD_ISSET
      Src: /src/curl/lib/select.c:315,1
    - Dst: FD_ISSET
      Src: /src/curl/lib/select.c:321,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 86
    argCount: 3
    argNames:
    - ufds
    - nfds
    - timeout_ms
    argTypes:
    - struct pollfd[]
    - unsigned int
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 334
    functionName: Curl_poll
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 10
    functionsReached:
    - our_select
    - FD_ZERO
    - curlx_wait_ms
    - poll
    - FD_SET
    - FD_ISSET
    - VERIFY_SOCK
    linkageType: ''
    returnType: int
    signature: int Curl_poll(struct pollfd ufds[], unsigned int nfds, timediff_t timeout_ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:340,1
    - Dst: memset
      Src: /src/curl/lib/select.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - cpfds
    - static_pfds
    - static_count
    argTypes:
    - struct curl_pollfds*
    - struct pollfd*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: Curl_pollfds_init
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 3
    functionsReached:
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: "void Curl_pollfds_init(struct curl_pollfds *cpfds,\n                       struct
      pollfd *static_pfds,\n                       unsigned int static_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpfds
    argTypes:
    - struct curl_pollfds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: Curl_pollfds_reset
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_pollfds_reset(struct curl_pollfds *cpfds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:355,1
    - Dst: curlx_free
      Src: /src/curl/lib/select.c:357,1
    - Dst: memset
      Src: /src/curl/lib/select.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cpfds
    argTypes:
    - struct curl_pollfds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: Curl_pollfds_cleanup
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 4
    functionsReached:
    - curlx_free
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_pollfds_cleanup(struct curl_pollfds *cpfds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/select.c:367,1
    - Dst: memcpy
      Src: /src/curl/lib/select.c:371,1
    - Dst: curlx_free
      Src: /src/curl/lib/select.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cpfds
    - inc
    argTypes:
    - struct curl_pollfds*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 378
    functionName: cpfds_increase
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_calloc
    - memcpy
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cpfds_increase(struct curl_pollfds *cpfds, unsigned int inc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpfds_increase
      Src: /src/curl/lib/select.c:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - cpfds
    - sock
    - events
    - fold
    argTypes:
    - struct curl_pollfds*
    - curl_socket_t
    - short
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 402
    functionName: cpfds_add_sock
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 0
    functionsReached:
    - cpfds_increase
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cpfds_add_sock(struct curl_pollfds *cpfds,\n                               curl_socket_t
      sock, short events, bool fold)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpfds_add_sock
      Src: /src/curl/lib/select.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cpfds
    - sock
    - events
    argTypes:
    - struct curl_pollfds*
    - curl_socket_t
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: Curl_pollfds_add_sock
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 1
    functionsReached:
    - cpfds_add_sock
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pollfds_add_sock(struct curl_pollfds *cpfds,\n                               curl_socket_t
      sock, short events)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:415,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:416,1
    - Dst: cpfds_add_sock
      Src: /src/curl/lib/select.c:424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - cpfds
    - ps
    argTypes:
    - struct curl_pollfds*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 429
    functionName: Curl_pollfds_add_ps
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 3
    functionsReached:
    - cpfds_add_sock
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pollfds_add_ps(struct curl_pollfds *cpfds,\n                             struct
      easy_pollset *ps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:435,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:436,1
    - Dst: memset
      Src: /src/curl/lib/select.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cwfds
    - static_wfds
    - static_count
    argTypes:
    - struct Curl_waitfds*
    - struct curl_waitfd*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 440
    functionName: Curl_waitfds_init
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: "void Curl_waitfds_init(struct Curl_waitfds *cwfds,\n                       struct
      curl_waitfd *static_wfds,\n                       unsigned int static_count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:447,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - cwfds
    - sock
    - events
    argTypes:
    - struct Curl_waitfds*
    - curl_socket_t
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 465
    functionName: cwfds_add_sock
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int cwfds_add_sock(struct Curl_waitfds *cwfds,\n                                   curl_socket_t
      sock, short events)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:473,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:474,1
    - Dst: cwfds_add_sock
      Src: /src/curl/lib/select.c:482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - cwfds
    - ps
    argTypes:
    - struct Curl_waitfds*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 485
    functionName: Curl_waitfds_add_ps
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 2
    functionsReached:
    - cwfds_add_sock
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int Curl_waitfds_add_ps(struct Curl_waitfds *cwfds,\n                                 struct
      easy_pollset *ps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:492,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:494,1
    - Dst: memset
      Src: /src/curl/lib/select.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ps
    argTypes:
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 498
    functionName: Curl_pollset_reset
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 5
    functionsReached:
    - DEBUGASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_pollset_reset(struct easy_pollset *ps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/select.c:507,1
    - Dst: Curl_pollset_reset
      Src: /src/curl/lib/select.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ps
    argTypes:
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 510
    functionName: Curl_pollset_init
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 9
    functionsReached:
    - Curl_pollset_reset
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: void
    signature: void Curl_pollset_init(struct easy_pollset *ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/select.c:514,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/select.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: Curl_pollset_create
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 2
    functionsReached:
    - curlx_calloc
    - Curl_pollset_init
    linkageType: ''
    returnType: struct easy_pollset
    signature: struct easy_pollset *Curl_pollset_create(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:523,1
    - Dst: curlx_free
      Src: /src/curl/lib/select.c:526,1
    - Dst: curlx_free
      Src: /src/curl/lib/select.c:530,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/select.c:533,1
    - Dst: Curl_pollset_reset
      Src: /src/curl/lib/select.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ps
    argTypes:
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 535
    functionName: Curl_pollset_cleanup
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 10
    functionsReached:
    - curlx_free
    - Curl_pollset_reset
    - DEBUGASSERT
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: void
    signature: void Curl_pollset_cleanup(struct easy_pollset *ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_cleanup
      Src: /src/curl/lib/select.c:539,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:541,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/select.c:546,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:549,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:550,1
    - Dst: memcpy
      Src: /src/curl/lib/select.c:551,1
    - Dst: memcpy
      Src: /src/curl/lib/select.c:552,1
    - Dst: Curl_pollset_init
      Src: /src/curl/lib/select.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - struct easy_pollset*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 537
    functionDepth: 3
    functionLinenumber: 537
    functionLinenumberEnd: 556
    functionName: Curl_pollset_move
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 1
    functionsReached:
    - Curl_pollset_init
    - memcpy
    - Curl_pollset_cleanup
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_pollset_move(struct easy_pollset *to, struct easy_pollset
      *from)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:568,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:571,1
    - Dst: VALID_SOCK
      Src: /src/curl/lib/select.c:571,1
    - Dst: VALID_SOCK
      Src: /src/curl/lib/select.c:572,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:575,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:576,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:577,1
    - Dst: memmove
      Src: /src/curl/lib/select.c:585,1
    - Dst: memmove
      Src: /src/curl/lib/select.c:587,1
    - Dst: CURLMAX
      Src: /src/curl/lib/select.c:598,1
    - Dst: CURL_TRC_M
      Src: /src/curl/lib/select.c:602,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/select.c:606,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/select.c:609,1
    - Dst: curlx_free
      Src: /src/curl/lib/select.c:611,1
    - Dst: memcpy
      Src: /src/curl/lib/select.c:614,1
    - Dst: memcpy
      Src: /src/curl/lib/select.c:615,1
    - Dst: curlx_free
      Src: /src/curl/lib/select.c:617,1
    - Dst: curlx_free
      Src: /src/curl/lib/select.c:620,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:624,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 5
    argNames:
    - data
    - ps
    - sock
    - add_flags
    - remove_flags
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    - curl_socket_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 632
    functionName: Curl_pollset_change
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 4
    functionsReached:
    - CURLMAX
    - memcpy
    - DEBUGASSERT
    - memmove
    - curlx_free
    - curlx_calloc
    - VALID_SOCK
    - CURL_TRC_M
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pollset_change(struct Curl_easy *data,\n                             struct
      easy_pollset *ps, curl_socket_t sock,\n                             int add_flags,
      int remove_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_change
      Src: /src/curl/lib/select.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - data
    - ps
    - sock
    - do_in
    - do_out
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    - curl_socket_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 643
    functionName: Curl_pollset_set
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 3
    functionsReached:
    - Curl_pollset_change
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pollset_set(struct Curl_easy *data,\n                          struct
      easy_pollset *ps, curl_socket_t sock,\n                          bool do_in,
      bool do_out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:660,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:661,1
    - Dst: curlx_wait_ms
      Src: /src/curl/lib/select.c:664,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/select.c:666,1
    - Dst: Curl_poll
      Src: /src/curl/lib/select.c:686,1
    - Dst: curlx_free
      Src: /src/curl/lib/select.c:687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - data
    - ps
    - timeout_ms
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 651
    functionDepth: 3
    functionLinenumber: 651
    functionLinenumberEnd: 689
    functionName: Curl_pollset_poll
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - curlx_wait_ms
    - curlx_free
    - curlx_calloc
    - Curl_poll
    linkageType: ''
    returnType: int
    signature: "int Curl_pollset_poll(struct Curl_easy *data,\n                      struct
      easy_pollset *ps,\n                      timediff_t timeout_ms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/select.c:698,1
    - Dst: VALID_SOCK
      Src: /src/curl/lib/select.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - data
    - ps
    - sock
    - pwant_read
    - pwant_write
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    - curl_socket_t
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 707
    functionName: Curl_pollset_check
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 2
    functionsReached:
    - VALID_SOCK
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_pollset_check(struct Curl_easy *data,\n                        struct
      easy_pollset *ps, curl_socket_t sock,\n                        bool *pwant_read,
      bool *pwant_write)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - data
    - ps
    - sock
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 720
    functionName: Curl_pollset_want_recv
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_pollset_want_recv(struct Curl_easy *data,\n                            struct
      easy_pollset *ps,\n                            curl_socket_t sock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - data
    - ps
    - sock
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    - curl_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 733
    functionName: Curl_pollset_want_send
    functionSourceFile: /src/curl/lib/select.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_pollset_want_send(struct Curl_easy *data,\n                            struct
      easy_pollset *ps,\n                            curl_socket_t sock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/cf-ip-happy.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - transport
    - tunnel_proxy
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: get_cf_create
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: cf_ip_connect_create
    signature: "cf_ip_connect_create *get_cf_create(uint8_t transport,\n                                           bool
      tunnel_proxy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/cf-ip-happy.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - transport
    - cf_create
    argTypes:
    - uint8_t
    - cf_ip_connect_create*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: debug_set_transport_provider
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 1
    functionsReached:
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST debug_set_transport_provider(\n  uint8_t transport, cf_ip_connect_create
      *cf_create)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - iter
    - cf
    - ai_family
    argTypes:
    - struct cf_ai_iter*
    - struct Curl_cfilter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: cf_ai_iter_init
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cf_ai_iter_init(struct cf_ai_iter *iter,\n                            struct
      Curl_cfilter *cf,\n                            int ai_family)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_dns_get_ai
      Src: /src/curl/lib/cf-ip-happy.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - iter
    - data
    argTypes:
    - struct cf_ai_iter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: cf_ai_iter_next
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - Curl_conn_dns_get_ai
    linkageType: ''
    returnType: struct Curl_addrinfo
    signature: "struct Curl_addrinfo *cf_ai_iter_next(struct cf_ai_iter *iter,\n                                                   struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_dns_get_ai
      Src: /src/curl/lib/cf-ip-happy.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - iter
    - data
    argTypes:
    - struct cf_ai_iter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: cf_ai_iter_has_more
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - Curl_conn_dns_get_ai
    linkageType: ''
    returnType: bool
    signature: "bool cf_ai_iter_has_more(struct cf_ai_iter *iter,\n                                struct
      Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/cf-ip-happy.c:178,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-ip-happy.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - data
    argTypes:
    - struct cf_ip_attempt*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: cf_ip_attempt_free
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_conn_cf_discard_chain
    linkageType: ''
    returnType: void
    signature: "void cf_ip_attempt_free(struct cf_ip_attempt *a,\n                               struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-ip-happy.c:197,1
    - Dst: struct cf_ip_attempt*::cf_create
      Src: /src/curl/lib/cf-ip-happy.c:209,1
    - Dst: cf_ip_attempt_free
      Src: /src/curl/lib/cf-ip-happy.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 8
    argNames:
    - pa
    - cf
    - data
    - addr
    - ai_family
    - transport_in
    - transport_out
    - cf_create
    argTypes:
    - struct cf_ip_attempt**
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_sockaddr_ex*
    - int
    - uint8_t
    - uint8_t
    - cf_ip_connect_create*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 226
    functionName: cf_ip_attempt_new
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - struct cf_ip_attempt*::cf_create
    - curlx_calloc
    - cf_ip_attempt_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_attempt_new(struct cf_ip_attempt **pa,\n                                  struct
      Curl_cfilter *cf,\n                                  struct Curl_easy *data,\n
      \                                 struct Curl_sockaddr_ex *addr,\n                                  int
      ai_family,\n                                  uint8_t transport_in,\n                                  uint8_t
      transport_out,\n                                  cf_ip_connect_create *cf_create)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/cf-ip-happy.c:235,1
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/cf-ip-happy.c:246,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - a
    - data
    - connected
    argTypes:
    - struct cf_ip_attempt*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 250
    functionName: cf_ip_attempt_connect
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_discard_chain
    - Curl_conn_cf_connect
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_attempt_connect(struct cf_ip_attempt *a,\n                                      struct
      Curl_easy *data,\n                                      bool *connected)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/cf-ip-happy.c:277,1
    - Dst: struct cf_ip_attempt*::cf_create
      Src: /src/curl/lib/cf-ip-happy.c:284,1
    - Dst: cf_ip_attempt_connect
      Src: /src/curl/lib/cf-ip-happy.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - a
    - cf
    - data
    argTypes:
    - struct cf_ip_attempt*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 296
    functionName: cf_ip_attempt_restart
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - struct cf_ip_attempt*::cf_create
    - Curl_conn_cf_discard_chain
    - cf_ip_attempt_connect
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_attempt_restart(struct cf_ip_attempt *a,\n                                      struct
      Curl_cfilter *cf,\n                                      struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ip_attempt_free
      Src: /src/curl/lib/cf-ip-happy.c:306,1
    - Dst: cf_ip_attempt_free
      Src: /src/curl/lib/cf-ip-happy.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - cf
    - data
    - bs
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_ip_ballers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 310
    functionName: cf_ip_ballers_clear
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - cf_ip_attempt_free
    linkageType: ''
    returnType: void
    signature: "void cf_ip_ballers_clear(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                struct cf_ip_ballers *bs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/cf-ip-happy.c:320,1
    - Dst: cf_ai_iter_init
      Src: /src/curl/lib/cf-ip-happy.c:330,1
    - Dst: cf_ai_iter_init
      Src: /src/curl/lib/cf-ip-happy.c:337,1
    - Dst: cf_ai_iter_init
      Src: /src/curl/lib/cf-ip-happy.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 7
    argNames:
    - bs
    - cf
    - cf_create
    - transport_in
    - transport_out
    - attempt_delay_ms
    - max_concurrent
    argTypes:
    - struct cf_ip_ballers*
    - struct Curl_cfilter*
    - cf_ip_connect_create*
    - uint8_t
    - uint8_t
    - timediff_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 342
    functionName: cf_ip_ballers_init
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - cf_ai_iter_init
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_ballers_init(struct cf_ip_ballers *bs,\n                                   struct
      Curl_cfilter *cf,\n                                   cf_ip_connect_create *cf_create,\n
      \                                  uint8_t transport_in,\n                                   uint8_t
      transport_out,\n                                   timediff_t attempt_delay_ms,\n
      \                                  uint32_t max_concurrent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_ip_attempt_free
      Src: /src/curl/lib/cf-ip-happy.c:363,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - bs
    - cf
    - data
    - max_concurrent
    argTypes:
    - struct cf_ip_ballers*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 371
    functionName: cf_ip_ballers_prune
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - cf_ip_attempt_free
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_ip_ballers_prune(struct cf_ip_ballers *bs,\n                                struct
      Curl_cfilter *cf,\n                                struct Curl_easy *data,\n
      \                               uint32_t max_concurrent)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-ip-happy.c:393,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-ip-happy.c:395,1
    - Dst: cf_ip_attempt_connect
      Src: /src/curl/lib/cf-ip-happy.c:397,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:402,1
    - Dst: cf_ip_attempt_free
      Src: /src/curl/lib/cf-ip-happy.c:409,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:420,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-ip-happy.c:426,1
    - Dst: cf_ai_iter_has_more
      Src: /src/curl/lib/cf-ip-happy.c:430,1
    - Dst: cf_ai_iter_has_more
      Src: /src/curl/lib/cf-ip-happy.c:433,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-ip-happy.c:436,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-ip-happy.c:436,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:439,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:448,1
    - Dst: cf_ai_iter_has_more
      Src: /src/curl/lib/cf-ip-happy.c:451,1
    - Dst: cf_ai_iter_next
      Src: /src/curl/lib/cf-ip-happy.c:452,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:454,1
    - Dst: cf_ai_iter_next
      Src: /src/curl/lib/cf-ip-happy.c:459,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:461,1
    - Dst: Curl_reset_fail
      Src: /src/curl/lib/cf-ip-happy.c:467,1
    - Dst: cf_ip_ballers_prune
      Src: /src/curl/lib/cf-ip-happy.c:474,1
    - Dst: Curl_socket_addr_from_ai
      Src: /src/curl/lib/cf-ip-happy.c:476,1
    - Dst: cf_ip_attempt_new
      Src: /src/curl/lib/cf-ip-happy.c:480,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:483,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:488,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-ip-happy.c:495,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-ip-happy.c:504,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-ip-happy.c:504,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:507,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-ip-happy.c:508,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-ip-happy.c:510,1
    - Dst: cf_ip_attempt_restart
      Src: /src/curl/lib/cf-ip-happy.c:513,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:514,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-ip-happy.c:517,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:520,1
    - Dst: infof
      Src: /src/curl/lib/cf-ip-happy.c:524,1
    - Dst: Curl_expire
      Src: /src/curl/lib/cf-ip-happy.c:526,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:533,1
    - Dst: VERBOSE
      Src: /src/curl/lib/cf-ip-happy.c:535,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:537,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/cf-ip-happy.c:549,1
    - Dst: failf
      Src: /src/curl/lib/cf-ip-happy.c:551,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-ip-happy.c:552,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-ip-happy.c:552,1
    - Dst: cf_ai_iter_has_more
      Src: /src/curl/lib/cf-ip-happy.c:557,1
    - Dst: cf_ai_iter_has_more
      Src: /src/curl/lib/cf-ip-happy.c:560,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-ip-happy.c:565,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-ip-happy.c:565,1
    - Dst: CURLMAX
      Src: /src/curl/lib/cf-ip-happy.c:566,1
    - Dst: CURLMIN
      Src: /src/curl/lib/cf-ip-happy.c:567,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:569,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:572,1
    - Dst: Curl_expire
      Src: /src/curl/lib/cf-ip-happy.c:574,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 139
    argCount: 5
    argNames:
    - bs
    - cf
    - data
    - dns_resolved
    - connected
    argTypes:
    - struct cf_ip_ballers*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 373
    functionDepth: 7
    functionLinenumber: 373
    functionLinenumberEnd: 578
    functionName: cf_ip_ballers_run
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - cf_ip_attempt_new
    - DEBUGASSERT
    - CURL_TRC_CF
    - cf_ai_iter_next
    - cf_ip_attempt_restart
    - CURLMAX
    - Curl_expire
    - curlx_ptimediff_ms
    - cf_ip_attempt_free
    - cf_ip_ballers_prune
    - failf
    - Curl_socket_addr_from_ai
    - VERBOSE
    - cf_ip_attempt_connect
    - cf_ai_iter_has_more
    - Curl_reset_fail
    - CURLMIN
    - infof
    - Curl_timeleft_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_ballers_run(struct cf_ip_ballers *bs,\n                                  struct
      Curl_cfilter *cf,\n                                  struct Curl_easy *data,\n
      \                                 bool dns_resolved,\n                                  bool
      *connected)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct cf_ip_attempt*::cf::cft::do_shutdown
      Src: /src/curl/lib/cf-ip-happy.c:593,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - bs
    - data
    - done
    argTypes:
    - struct cf_ip_ballers*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 600
    functionName: cf_ip_ballers_shutdown
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - struct cf_ip_attempt*::cf::cft::do_shutdown
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_ballers_shutdown(struct cf_ip_ballers *bs,\n                                       struct
      Curl_easy *data,\n                                       bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_adjust_pollset
      Src: /src/curl/lib/cf-ip-happy.c:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - bs
    - data
    - ps
    argTypes:
    - struct cf_ip_ballers*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 614
    functionName: cf_ip_ballers_pollset
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_adjust_pollset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_ballers_pollset(struct cf_ip_ballers *bs,\n                                      struct
      Curl_easy *data,\n                                      struct easy_pollset
      *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct cf_ip_attempt*::cf::cft::has_data_pending
      Src: /src/curl/lib/cf-ip-happy.c:624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - bs
    - data
    argTypes:
    - struct cf_ip_ballers*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: cf_ip_ballers_pending
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - struct cf_ip_attempt*::cf::cft::has_data_pending
    linkageType: ''
    returnType: bool
    signature: "bool cf_ip_ballers_pending(struct cf_ip_ballers *bs,\n                                  const
      struct Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/cf-ip-happy.c:637,1
    - Dst: memset
      Src: /src/curl/lib/cf-ip-happy.c:639,1
    - Dst: struct cf_ip_attempt*::cf::cft::query
      Src: /src/curl/lib/cf-ip-happy.c:640,1
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/cf-ip-happy.c:641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - bs
    - data
    - query
    argTypes:
    - struct cf_ip_ballers*
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 646
    functionName: cf_ip_ballers_max_time
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - curlx_ptimediff_us
    - struct cf_ip_attempt*::cf::cft::query
    - memset
    linkageType: ''
    returnType: struct curltime
    signature: "struct curltime cf_ip_ballers_max_time(struct cf_ip_ballers *bs,\n
      \                                             struct Curl_easy *data,\n                                              int
      query)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct cf_ip_attempt*::cf::cft::query
      Src: /src/curl/lib/cf-ip-happy.c:655,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - bs
    - data
    argTypes:
    - struct cf_ip_ballers*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 662
    functionName: cf_ip_ballers_min_reply_ms
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - struct cf_ip_attempt*::cf::cft::query
    linkageType: ''
    returnType: int
    signature: "int cf_ip_ballers_min_reply_ms(struct cf_ip_ballers *bs,\n                                      struct
      Curl_easy *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cf_ip_ballers_run
      Src: /src/curl/lib/cf-ip-happy.c:689,1
    - Dst: Curl_conn_get_first_peer
      Src: /src/curl/lib/cf-ip-happy.c:698,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/cf-ip-happy.c:713,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/cf-ip-happy.c:717,1
    - Dst: failf
      Src: /src/curl/lib/cf-ip-happy.c:721,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/cf-ip-happy.c:727,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-ip-happy.c:727,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/cf-ip-happy.c:729,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - cf
    - data
    - connected
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 681
    functionDepth: 8
    functionLinenumber: 681
    functionLinenumberEnd: 738
    functionName: is_connected
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 11
    functionsReached:
    - Curl_pgrs_now
    - curl_msnprintf
    - failf
    - curl_easy_strerror
    - Curl_conn_get_first_peer
    - cf_ip_ballers_run
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode is_connected(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             bool *connected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/cf-ip-happy.c:747,1
    - Dst: failf
      Src: /src/curl/lib/cf-ip-happy.c:749,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:753,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/cf-ip-happy.c:755,1
    - Dst: cf_ip_ballers_init
      Src: /src/curl/lib/cf-ip-happy.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 760
    functionName: cf_ip_happy_init
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - cf_ip_ballers_init
    - failf
    - Curl_timeleft_ms
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_happy_init(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:767,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:768,1
    - Dst: cf_ip_ballers_clear
      Src: /src/curl/lib/cf-ip-happy.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 762
    functionDepth: 4
    functionLinenumber: 762
    functionLinenumberEnd: 770
    functionName: cf_ip_happy_ctx_clear
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - cf_ip_ballers_clear
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void cf_ip_happy_ctx_clear(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/cf-ip-happy.c:775,1
    - Dst: curlx_free
      Src: /src/curl/lib/cf-ip-happy.c:776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_ip_happy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 778
    functionName: cf_ip_happy_ctx_destroy
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_peer_unlink
    linkageType: ''
    returnType: void
    signature: void cf_ip_happy_ctx_destroy(struct cf_ip_happy_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:787,1
    - Dst: cf_ip_ballers_shutdown
      Src: /src/curl/lib/cf-ip-happy.c:793,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 796
    functionName: cf_ip_happy_shutdown
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - cf_ip_ballers_shutdown
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_happy_shutdown(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data,\n                                     bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_ip_ballers_pollset
      Src: /src/curl/lib/cf-ip-happy.c:806,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 810
    functionName: cf_ip_happy_adjust_pollset
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - cf_ip_ballers_pollset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_happy_adjust_pollset(struct Curl_cfilter *cf,\n                                           struct
      Curl_easy *data,\n                                           struct easy_pollset
      *ps)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:828,1
    - Dst: Curl_conn_dns_result
      Src: /src/curl/lib/cf-ip-happy.c:832,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:844,1
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/cf-ip-happy.c:844,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:845,1
    - Dst: cf_ip_happy_init
      Src: /src/curl/lib/cf-ip-happy.c:846,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/cf-ip-happy.c:850,1
    - Dst: is_connected
      Src: /src/curl/lib/cf-ip-happy.c:852,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:854,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:855,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:856,1
    - Dst: cf_ip_happy_ctx_clear
      Src: /src/curl/lib/cf-ip-happy.c:863,1
    - Dst: Curl_expire_done
      Src: /src/curl/lib/cf-ip-happy.c:864,1
    - Dst: Curl_reset_fail
      Src: /src/curl/lib/cf-ip-happy.c:866,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/cf-ip-happy.c:869,1
    - Dst: Curl_trc_cf_is_verbose
      Src: /src/curl/lib/cf-ip-happy.c:871,1
    - Dst: Curl_conn_cf_get_ip_info
      Src: /src/curl/lib/cf-ip-happy.c:874,1
    - Dst: Curl_conn_get_current_host
      Src: /src/curl/lib/cf-ip-happy.c:876,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:877,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 812
    functionDepth: 9
    functionLinenumber: 812
    functionLinenumberEnd: 891
    functionName: cf_ip_happy_connect
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - Curl_reset_fail
    - Curl_conn_cf_get_ip_info
    - DEBUGASSERT
    - cf_ip_happy_ctx_clear
    - is_connected
    - Curl_trc_cf_is_verbose
    - CURL_TRC_CF
    - cf_ip_happy_init
    - Curl_conn_cf_get_socket
    - Curl_pgrsTime
    - Curl_expire_done
    - Curl_conn_get_current_host
    - FALLTHROUGH
    - Curl_conn_dns_result
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_happy_connect(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_ip_ballers_pending
      Src: /src/curl/lib/cf-ip-happy.c:899,1
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/cf-ip-happy.c:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: cf_ip_happy_data_pending
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::has_data_pending
    - cf_ip_ballers_pending
    linkageType: ''
    returnType: bool
    signature: "bool cf_ip_happy_data_pending(struct Curl_cfilter *cf,\n                                     const
      struct Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_ip_ballers_min_reply_ms
      Src: /src/curl/lib/cf-ip-happy.c:913,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:914,1
    - Dst: cf_ip_ballers_max_time
      Src: /src/curl/lib/cf-ip-happy.c:919,1
    - Dst: cf_ip_ballers_max_time
      Src: /src/curl/lib/cf-ip-happy.c:925,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/cf-ip-happy.c:935,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 937
    functionName: cf_ip_happy_query
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - cf_ip_ballers_max_time
    - CURL_TRC_CF
    - cf_ip_ballers_min_reply_ms
    - struct Curl_cfilter*::next::cft::query
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_happy_query(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  int query, int *pres1, void
      *pres2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:944,1
    - Dst: cf_ip_happy_ctx_clear
      Src: /src/curl/lib/cf-ip-happy.c:946,1
    - Dst: cf_ip_happy_ctx_destroy
      Src: /src/curl/lib/cf-ip-happy.c:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 939
    functionDepth: 5
    functionLinenumber: 939
    functionLinenumberEnd: 949
    functionName: cf_ip_happy_destroy
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - cf_ip_happy_ctx_destroy
    - cf_ip_happy_ctx_clear
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_ip_happy_destroy(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/cf-ip-happy.c:992,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/cf-ip-happy.c:1000,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/cf-ip-happy.c:1002,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/cf-ip-happy.c:1006,1
    - Dst: cf_ip_happy_ctx_destroy
      Src: /src/curl/lib/cf-ip-happy.c:1007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 7
    argNames:
    - pcf
    - data
    - peer
    - conn
    - cf_create
    - transport_in
    - transport_out
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct Curl_peer*
    - struct connectdata*
    - cf_ip_connect_create*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 978
    functionDepth: 3
    functionLinenumber: 978
    functionLinenumberEnd: 1010
    functionName: cf_ip_happy_create
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_cf_create
    - Curl_peer_link
    - curlx_calloc
    - cf_ip_happy_ctx_destroy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_happy_create(struct Curl_cfilter **pcf,\n                                   struct
      Curl_easy *data,\n                                   struct Curl_peer *peer,\n
      \                                  struct connectdata *conn,\n                                   cf_ip_connect_create
      *cf_create,\n                                   uint8_t transport_in,\n                                   uint8_t
      transport_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/cf-ip-happy.c:1024,1
    - Dst: get_cf_create
      Src: /src/curl/lib/cf-ip-happy.c:1025,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/cf-ip-happy.c:1027,1
    - Dst: cf_ip_happy_create
      Src: /src/curl/lib/cf-ip-happy.c:1031,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/cf-ip-happy.c:1036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - cf_at
    - data
    - peer
    - transport_in
    - transport_out
    - tunnel_proxy
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - uint8_t
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1012
    functionDepth: 4
    functionLinenumber: 1012
    functionLinenumberEnd: 1038
    functionName: cf_ip_happy_insert_after
    functionSourceFile: /src/curl/lib/cf-ip-happy.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - Curl_conn_cf_insert_after
    - get_cf_create
    - cf_ip_happy_create
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ip_happy_insert_after(struct Curl_cfilter *cf_at,\n                                  struct
      Curl_easy *data,\n                                  struct Curl_peer *peer,\n
      \                                 uint8_t transport_in,\n                                  uint8_t
      transport_out,\n                                  bool tunnel_proxy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/dnscache.c:65,1
    - Dst: Curl_httpsrr_cleanup
      Src: /src/curl/lib/dnscache.c:68,1
    - Dst: curlx_free
      Src: /src/curl/lib/dnscache.c:69,1
    - Dst: curlx_free
      Src: /src/curl/lib/dnscache.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dns
    argTypes:
    - struct Curl_dns_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: dnscache_entry_free
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_httpsrr_cleanup
    - Curl_freeaddrinfo
    linkageType: ''
    returnType: void
    signature: void dnscache_entry_free(struct Curl_dns_entry *dns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/dnscache.c:83,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dnscache.c:84,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/dnscache.c:88,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/dnscache.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - name
    - nlen
    - port
    - ptr
    - buflen
    argTypes:
    - char*
    - size_t
    - uint16_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 7
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: create_dnscache_id
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_strntolower
    - DEBUGASSERT
    - curl_msnprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t create_dnscache_id(const char *name,\n                                 size_t
      nlen, /* 0 or actual name length */\n                                 uint16_t
      port, char *ptr, size_t buflen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/dnscache.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - datap
    - hc
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 121
    functionName: dnscache_entry_is_stale
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached:
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: int
    signature: int dnscache_entry_is_stale(void *datap, void *hc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_clean_with_criterium
      Src: /src/curl/lib/dnscache.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - hostcache
    - cache_timeout_ms
    - now
    argTypes:
    - struct Curl_hash*
    - timediff_t
    - struct curltime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: dnscache_prune
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 1
    functionsReached:
    - Curl_hash_clean_with_criterium
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t dnscache_prune(struct Curl_hash *hostcache,\n                                 timediff_t
      cache_timeout_ms,\n                                 struct curltime now)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: dnscache_get
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct Curl_dnscache
    signature: struct Curl_dnscache *dnscache_get(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_share_lock
      Src: /src/curl/lib/dnscache.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - data
    - dnscache
    argTypes:
    - struct Curl_easy*
    - struct Curl_dnscache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: dnscache_lock
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached:
    - Curl_share_lock
    linkageType: ''
    returnType: void
    signature: "void dnscache_lock(struct Curl_easy *data,\n                          struct
      Curl_dnscache *dnscache)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/dnscache.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - data
    - dnscache
    argTypes:
    - struct Curl_easy*
    - struct Curl_dnscache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: dnscache_unlock
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached:
    - Curl_share_unlock
    linkageType: ''
    returnType: void
    signature: "void dnscache_unlock(struct Curl_easy *data,\n                            struct
      Curl_dnscache *dnscache)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_get
      Src: /src/curl/lib/dnscache.c:173,1
    - Dst: dnscache_lock
      Src: /src/curl/lib/dnscache.c:181,1
    - Dst: dnscache_prune
      Src: /src/curl/lib/dnscache.c:186,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/dnscache.c:186,1
    - Dst: Curl_hash_count
      Src: /src/curl/lib/dnscache.c:188,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 199
    functionName: Curl_dnscache_prune
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - dnscache_lock
    - dnscache_unlock
    - Curl_hash_count
    - dnscache_get
    - dnscache_prune
    linkageType: ''
    returnType: void
    signature: void Curl_dnscache_prune(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_get
      Src: /src/curl/lib/dnscache.c:203,1
    - Dst: dnscache_lock
      Src: /src/curl/lib/dnscache.c:205,1
    - Dst: Curl_hash_clean
      Src: /src/curl/lib/dnscache.c:206,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: Curl_dnscache_clear
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 1
    functionsReached:
    - dnscache_unlock
    - dnscache_lock
    - Curl_hash_clean
    - dnscache_get
    linkageType: ''
    returnType: void
    signature: void Curl_dnscache_clear(struct Curl_easy *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: create_dnscache_id
      Src: /src/curl/lib/dnscache.c:229,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/dnscache.c:233,1
    - Dst: create_dnscache_id
      Src: /src/curl/lib/dnscache.c:237,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/dnscache.c:240,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/dnscache.c:247,1
    - Dst: dnscache_entry_is_stale
      Src: /src/curl/lib/dnscache.c:251,1
    - Dst: infof
      Src: /src/curl/lib/dnscache.c:252,1
    - Dst: Curl_hash_delete
      Src: /src/curl/lib/dnscache.c:254,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/dnscache.c:265,1
    - Dst: Curl_resolv_query_str
      Src: /src/curl/lib/dnscache.c:266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 6
    argNames:
    - data
    - dnscache
    - dns_queries
    - hostname
    - port
    - pdns
    argTypes:
    - struct Curl_easy*
    - struct Curl_dnscache*
    - uint8_t
    - char*
    - uint16_t
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 212
    functionDepth: 8
    functionLinenumber: 212
    functionLinenumberEnd: 278
    functionName: fetch_addr
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - create_dnscache_id
    - Curl_hash_pick
    - Curl_hash_delete
    - infof
    - CURL_TRC_DNS
    - Curl_resolv_query_str
    - dnscache_entry_is_stale
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode fetch_addr(struct Curl_easy *data,\n                           struct
      Curl_dnscache *dnscache,\n                           uint8_t dns_queries,\n
      \                          const char *hostname,\n                           uint16_t
      port,\n                           struct Curl_dns_entry **pdns)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_get
      Src: /src/curl/lib/dnscache.c:300,1
    - Dst: dnscache_lock
      Src: /src/curl/lib/dnscache.c:304,1
    - Dst: fetch_addr
      Src: /src/curl/lib/dnscache.c:305,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dnscache.c:309,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - data
    - dns_queries
    - hostname
    - port
    - pentry
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - char*
    - uint16_t
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 294
    functionDepth: 9
    functionLinenumber: 294
    functionLinenumberEnd: 316
    functionName: Curl_dnscache_get
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 2
    functionsReached:
    - dnscache_lock
    - dnscache_unlock
    - DEBUGASSERT
    - dnscache_get
    - fetch_addr
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_dnscache_get(struct Curl_easy *data,\n                           uint8_t
      dns_queries,\n                           const char *hostname,\n                           uint16_t
      port,\n                           struct Curl_dns_entry **pentry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct Curl_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 330
    functionName: num_addresses
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_addresses(const struct Curl_addrinfo *addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: num_addresses
      Src: /src/curl/lib/dnscache.c:350,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/dnscache.c:354,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/dnscache.c:356,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/dnscache.c:368,1
    - Dst: Curl_rand
      Src: /src/curl/lib/dnscache.c:371,1
    - Dst: curlx_free
      Src: /src/curl/lib/dnscache.c:387,1
    - Dst: curlx_free
      Src: /src/curl/lib/dnscache.c:391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - data
    - addr
    argTypes:
    - struct Curl_easy*
    - struct Curl_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 397
    functionName: dns_shuffle_addr
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 1
    functionsReached:
    - Curl_rand
    - num_addresses
    - curlx_malloc
    - curlx_free
    - CURL_TRC_DNS
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST dns_shuffle_addr(struct Curl_easy *data,\n                                   struct
      Curl_addrinfo **addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ai
    - ai_family
    argTypes:
    - struct Curl_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: dnscache_ai_has_family
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool dnscache_ai_has_family(struct Curl_addrinfo *ai,\n                                   int
      ai_family)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/dnscache.c:423,1
    - Dst: memcpy
      Src: /src/curl/lib/dnscache.c:431,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/dnscache.c:438,1
    - Dst: dnscache_ai_has_family
      Src: /src/curl/lib/dnscache.c:455,1
    - Dst: dnscache_ai_has_family
      Src: /src/curl/lib/dnscache.c:460,1
    - Dst: dns_shuffle_addr
      Src: /src/curl/lib/dnscache.c:467,1
    - Dst: dnscache_entry_free
      Src: /src/curl/lib/dnscache.c:470,1
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/dnscache.c:481,1
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/dnscache.c:485,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 8
    argNames:
    - data
    - dns_queries
    - paddr1
    - paddr2
    - hostname
    - hostlen
    - port
    - permanent
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - struct Curl_addrinfo**
    - struct Curl_addrinfo**
    - char*
    - size_t
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 489
    functionName: dnscache_entry_create
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - memcpy
    - Curl_freeaddrinfo
    - dns_shuffle_addr
    - curlx_calloc
    - dnscache_entry_free
    - dnscache_ai_has_family
    linkageType: ''
    returnType: struct Curl_dns_entry
    signature: "struct Curl_dns_entry *dnscache_entry_create(\n  struct Curl_easy
      *data,\n  uint8_t dns_queries,\n  struct Curl_addrinfo **paddr1,\n  struct Curl_addrinfo
      **paddr2,\n  const char *hostname,\n  size_t hostlen,\n  uint16_t port,\n  bool
      permanent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_entry_create
      Src: /src/curl/lib/dnscache.c:497,1
    - Dst: strlen
      Src: /src/curl/lib/dnscache.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - data
    - dns_queries
    - paddr
    - hostname
    - port
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - struct Curl_addrinfo**
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 4
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: Curl_dnscache_mk_entry
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 3
    functionsReached:
    - strlen
    - dnscache_entry_create
    linkageType: ''
    returnType: struct Curl_dns_entry
    signature: "struct Curl_dns_entry *Curl_dnscache_mk_entry(struct Curl_easy *data,\n
      \                                             uint8_t dns_queries,\n                                              struct
      Curl_addrinfo **paddr,\n                                              const
      char *hostname,\n                                              uint16_t port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_entry_create
      Src: /src/curl/lib/dnscache.c:509,1
    - Dst: strlen
      Src: /src/curl/lib/dnscache.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - data
    - dns_queries
    - paddr1
    - paddr2
    - hostname
    - port
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - struct Curl_addrinfo**
    - struct Curl_addrinfo**
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 512
    functionName: Curl_dnscache_mk_entry2
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 2
    functionsReached:
    - strlen
    - dnscache_entry_create
    linkageType: ''
    returnType: struct Curl_dns_entry
    signature: "struct Curl_dns_entry *Curl_dnscache_mk_entry2(struct Curl_easy *data,\n
      \                                              uint8_t dns_queries,\n                                               struct
      Curl_addrinfo **paddr1,\n                                               struct
      Curl_addrinfo **paddr2,\n                                               const
      char *hostname,\n                                               uint16_t port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dnscache.c:519,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dnscache.c:521,1
    - Dst: Curl_httpsrr_cleanup
      Src: /src/curl/lib/dnscache.c:523,1
    - Dst: curlx_free
      Src: /src/curl/lib/dnscache.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dns
    - hinfo
    argTypes:
    - struct Curl_dns_entry*
    - struct Curl_https_rrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 528
    functionName: Curl_dns_entry_set_https_rr
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 3
    functionsReached:
    - curlx_free
    - Curl_httpsrr_cleanup
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void Curl_dns_entry_set_https_rr(struct Curl_dns_entry *dns,\n                                 struct
      Curl_https_rrinfo *hinfo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_entry_create
      Src: /src/curl/lib/dnscache.c:545,1
    - Dst: create_dnscache_id
      Src: /src/curl/lib/dnscache.c:551,1
    - Dst: Curl_hash_add
      Src: /src/curl/lib/dnscache.c:555,1
    - Dst: dnscache_entry_free
      Src: /src/curl/lib/dnscache.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 8
    argNames:
    - data
    - dnscache
    - dns_queries
    - paddr
    - hostname
    - hlen
    - port
    - permanent
    argTypes:
    - struct Curl_easy*
    - struct Curl_dnscache*
    - uint8_t
    - struct Curl_addrinfo**
    - char*
    - size_t
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 531
    functionDepth: 8
    functionLinenumber: 531
    functionLinenumberEnd: 565
    functionName: dnscache_add_addr
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached:
    - Curl_hash_add
    - create_dnscache_id
    - dnscache_entry_free
    - dnscache_entry_create
    linkageType: ''
    returnType: struct Curl_dns_entry
    signature: "struct Curl_dns_entry *dnscache_add_addr(struct Curl_easy *data,\n
      \                                               struct Curl_dnscache *dnscache,\n
      \                                               uint8_t dns_queries,\n                                                struct
      Curl_addrinfo **paddr,\n                                                const
      char *hostname,\n                                                size_t hlen,\n
      \                                               uint16_t port,\n                                                bool
      permanent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_get
      Src: /src/curl/lib/dnscache.c:570,1
    - Dst: create_dnscache_id
      Src: /src/curl/lib/dnscache.c:577,1
    - Dst: dnscache_lock
      Src: /src/curl/lib/dnscache.c:580,1
    - Dst: Curl_hash_add
      Src: /src/curl/lib/dnscache.c:581,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:582,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - entry
    argTypes:
    - struct Curl_easy*
    - struct Curl_dns_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 567
    functionDepth: 8
    functionLinenumber: 567
    functionLinenumberEnd: 588
    functionName: Curl_dnscache_add
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 3
    functionsReached:
    - Curl_hash_add
    - dnscache_lock
    - create_dnscache_id
    - dnscache_unlock
    - dnscache_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_dnscache_add(struct Curl_easy *data,\n                           struct
      Curl_dns_entry *entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_get
      Src: /src/curl/lib/dnscache.c:595,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dnscache.c:597,1
    - Dst: dnscache_lock
      Src: /src/curl/lib/dnscache.c:601,1
    - Dst: dnscache_add_addr
      Src: /src/curl/lib/dnscache.c:604,1
    - Dst: strlen
      Src: /src/curl/lib/dnscache.c:605,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:610,1
    - Dst: CURL_TRC_DNS
      Src: /src/curl/lib/dnscache.c:611,1
    - Dst: Curl_resolv_query_str
      Src: /src/curl/lib/dnscache.c:612,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - data
    - dns_queries
    - host
    - port
    argTypes:
    - struct Curl_easy*
    - uint8_t
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 590
    functionDepth: 9
    functionLinenumber: 590
    functionLinenumberEnd: 617
    functionName: Curl_dnscache_add_negative
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 2
    functionsReached:
    - dnscache_add_addr
    - dnscache_lock
    - dnscache_unlock
    - DEBUGASSERT
    - dnscache_get
    - CURL_TRC_DNS
    - Curl_resolv_query_str
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_dnscache_add_negative(struct Curl_easy *data,\n                                    uint8_t
      dns_queries,\n                                    const char *host,\n                                    uint16_t
      port)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_get
      Src: /src/curl/lib/dnscache.c:630,1
    - Dst: dnscache_lock
      Src: /src/curl/lib/dnscache.c:633,1
    - Dst: dnscache_entry_free
      Src: /src/curl/lib/dnscache.c:636,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - pdns
    argTypes:
    - struct Curl_easy*
    - struct Curl_dns_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 639
    functionName: Curl_dns_entry_unlink
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 9
    functionsReached:
    - dnscache_unlock
    - dnscache_lock
    - dnscache_get
    - dnscache_entry_free
    linkageType: ''
    returnType: void
    signature: "void Curl_dns_entry_unlink(struct Curl_easy *data,\n                           struct
      Curl_dns_entry **pdns)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/dnscache.c:644,1
    - Dst: dnscache_entry_free
      Src: /src/curl/lib/dnscache.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 648
    functionName: dnscache_entry_dtor
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 0
    functionsReached:
    - dnscache_entry_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void dnscache_entry_dtor(void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_init
      Src: /src/curl/lib/dnscache.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dns
    - size
    argTypes:
    - struct Curl_dnscache*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Curl_dnscache_init
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 3
    functionsReached:
    - Curl_hash_init
    linkageType: ''
    returnType: void
    signature: void Curl_dnscache_init(struct Curl_dnscache *dns, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_destroy
      Src: /src/curl/lib/dnscache.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dns
    argTypes:
    - struct Curl_dnscache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: Curl_dnscache_destroy
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 4
    functionsReached:
    - Curl_hash_destroy
    linkageType: ''
    returnType: void
    signature: void Curl_dnscache_destroy(struct Curl_dnscache *dns)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: dnscache_get
      Src: /src/curl/lib/dnscache.c:666,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:685,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/dnscache.c:686,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:687,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:688,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/dnscache.c:692,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:693,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/dnscache.c:698,1
    - Dst: create_dnscache_id
      Src: /src/curl/lib/dnscache.c:700,1
    - Dst: curlx_str
      Src: /src/curl/lib/dnscache.c:700,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:701,1
    - Dst: dnscache_lock
      Src: /src/curl/lib/dnscache.c:703,1
    - Dst: Curl_hash_delete
      Src: /src/curl/lib/dnscache.c:705,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:706,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:724,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/dnscache.c:725,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:726,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/dnscache.c:730,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:733,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/dnscache.c:734,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:735,1
    - Dst: VERBOSE
      Src: /src/curl/lib/dnscache.c:739,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:747,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/dnscache.c:748,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:749,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/dnscache.c:753,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:754,1
    - Dst: memchr
      Src: /src/curl/lib/dnscache.c:761,1
    - Dst: curlx_str
      Src: /src/curl/lib/dnscache.c:761,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:761,1
    - Dst: infof
      Src: /src/curl/lib/dnscache.c:762,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:763,1
    - Dst: curlx_str
      Src: /src/curl/lib/dnscache.c:763,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:764,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:770,1
    - Dst: memcpy
      Src: /src/curl/lib/dnscache.c:773,1
    - Dst: curlx_str
      Src: /src/curl/lib/dnscache.c:773,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:773,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:774,1
    - Dst: Curl_str2addr
      Src: /src/curl/lib/dnscache.c:776,1
    - Dst: infof
      Src: /src/curl/lib/dnscache.c:778,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/dnscache.c:789,1
    - Dst: failf
      Src: /src/curl/lib/dnscache.c:799,1
    - Dst: Curl_freeaddrinfo
      Src: /src/curl/lib/dnscache.c:800,1
    - Dst: create_dnscache_id
      Src: /src/curl/lib/dnscache.c:805,1
    - Dst: curlx_str
      Src: /src/curl/lib/dnscache.c:805,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:805,1
    - Dst: dnscache_lock
      Src: /src/curl/lib/dnscache.c:808,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/dnscache.c:811,1
    - Dst: infof
      Src: /src/curl/lib/dnscache.c:814,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:815,1
    - Dst: curlx_str
      Src: /src/curl/lib/dnscache.c:816,1
    - Dst: Curl_hash_delete
      Src: /src/curl/lib/dnscache.c:828,1
    - Dst: dnscache_add_addr
      Src: /src/curl/lib/dnscache.c:832,1
    - Dst: curlx_str
      Src: /src/curl/lib/dnscache.c:833,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:834,1
    - Dst: dnscache_unlock
      Src: /src/curl/lib/dnscache.c:840,1
    - Dst: infof
      Src: /src/curl/lib/dnscache.c:845,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/dnscache.c:846,1
    - Dst: curlx_str
      Src: /src/curl/lib/dnscache.c:846,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/dnscache.c:850,1
    - Dst: infof
      Src: /src/curl/lib/dnscache.c:851,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 114
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 664
    functionDepth: 9
    functionLinenumber: 664
    functionLinenumberEnd: 859
    functionName: Curl_loadhostpairs
    functionSourceFile: /src/curl/lib/dnscache.c
    functionUses: 3
    functionsReached:
    - dnscache_add_addr
    - curlx_str_single
    - curlx_str_until
    - memcpy
    - curlx_str
    - curlx_str_number
    - create_dnscache_id
    - failf
    - Curl_freeaddrinfo
    - memchr
    - VERBOSE
    - curlx_strlen
    - Curl_str2addr
    - dnscache_lock
    - dnscache_unlock
    - Curl_hash_pick
    - curlx_str_casecompare
    - Curl_hash_delete
    - infof
    - dnscache_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_loadhostpairs(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_create
      Src: /src/curl/lib/sha256.c:64,1
    - Dst: EVP_DigestInit_ex
      Src: /src/curl/lib/sha256.c:68,1
    - Dst: EVP_sha256
      Src: /src/curl/lib/sha256.c:68,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/curl/lib/sha256.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: my_sha256_init
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    - EVP_DigestInit_ex
    - EVP_MD_CTX_create
    - EVP_MD_CTX_destroy
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_sha256_init(void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/curl/lib/sha256.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: my_sha256_update
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: void
    signature: "void my_sha256_update(void *in,\n                             const
      unsigned char *data,\n                             unsigned int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/curl/lib/sha256.c:86,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/curl/lib/sha256.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - digest
    - in
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: my_sha256_final
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_destroy
    linkageType: ''
    returnType: void
    signature: void my_sha256_final(unsigned char *digest, void *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wc_InitSha256
      Src: /src/curl/lib/sha256.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: my_sha256_init
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - wc_InitSha256
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_sha256_init(void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wc_Sha256Update
      Src: /src/curl/lib/sha256.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: my_sha256_update
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - wc_Sha256Update
    linkageType: ''
    returnType: void
    signature: "void my_sha256_update(void *in,\n                             const
      unsigned char *data,\n                             unsigned int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wc_Sha256Final
      Src: /src/curl/lib/sha256.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - in
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: my_sha256_final
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - wc_Sha256Final
    linkageType: ''
    returnType: void
    signature: void my_sha256_final(unsigned char *digest, void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_init
      Src: /src/curl/lib/sha256.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: my_sha256_init
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - sha256_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_sha256_init(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_update
      Src: /src/curl/lib/sha256.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: my_sha256_update
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - sha256_update
    linkageType: ''
    returnType: void
    signature: "void my_sha256_update(void *ctx,\n                             const
      unsigned char *data,\n                             unsigned int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_digest
      Src: /src/curl/lib/sha256.c:137,1
    - Dst: sha256_digest
      Src: /src/curl/lib/sha256.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: my_sha256_final
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - sha256_digest
    linkageType: ''
    returnType: void
    signature: void my_sha256_final(unsigned char *digest, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/sha256.c:151,1
    - Dst: psa_hash_setup
      Src: /src/curl/lib/sha256.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: my_sha256_init
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - psa_hash_setup
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_sha256_init(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: psa_hash_update
      Src: /src/curl/lib/sha256.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: my_sha256_update
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - psa_hash_update
    linkageType: ''
    returnType: void
    signature: "void my_sha256_update(void *ctx,\n                             const
      unsigned char *data,\n                             unsigned int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: psa_hash_finish
      Src: /src/curl/lib/sha256.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: my_sha256_final
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - psa_hash_finish
    linkageType: ''
    returnType: void
    signature: void my_sha256_final(unsigned char *digest, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CC_SHA256_Init
      Src: /src/curl/lib/sha256.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: my_sha256_init
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - CC_SHA256_Init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_sha256_init(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CC_SHA256_Update
      Src: /src/curl/lib/sha256.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: my_sha256_update
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - CC_SHA256_Update
    linkageType: ''
    returnType: void
    signature: "void my_sha256_update(void *ctx,\n                             const
      unsigned char *data,\n                             unsigned int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CC_SHA256_Final
      Src: /src/curl/lib/sha256.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: my_sha256_final
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - CC_SHA256_Final
    linkageType: ''
    returnType: void
    signature: void my_sha256_final(unsigned char *digest, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/curl/lib/sha256.c:209,1
    - Dst: CryptCreateHash
      Src: /src/curl/lib/sha256.c:213,1
    - Dst: CryptReleaseContext
      Src: /src/curl/lib/sha256.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 220
    functionName: my_sha256_init
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - CryptAcquireContext
    - CryptCreateHash
    - CryptReleaseContext
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_sha256_init(void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashData
      Src: /src/curl/lib/sha256.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: my_sha256_update
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - CryptHashData
    linkageType: ''
    returnType: void
    signature: "void my_sha256_update(void *in,\n                             const
      unsigned char *data,\n                             unsigned int length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashParam
      Src: /src/curl/lib/sha256.c:235,1
    - Dst: CryptGetHashParam
      Src: /src/curl/lib/sha256.c:237,1
    - Dst: CryptDestroyHash
      Src: /src/curl/lib/sha256.c:240,1
    - Dst: CryptReleaseContext
      Src: /src/curl/lib/sha256.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - digest
    - in
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 244
    functionName: my_sha256_final
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - CryptGetHashParam
    - CryptReleaseContext
    - CryptDestroyHash
    linkageType: ''
    returnType: void
    signature: void my_sha256_final(unsigned char *digest, void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: WPA_GET_BE32
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPA_GET_BE32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: WPA_PUT_BE32
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPA_PUT_BE32(a, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: WPA_PUT_BE64
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPA_PUT_BE64(a, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: RORc
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RORc(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: Sha256_Ch
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sha256_Ch(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: Sha256_Maj
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sha256_Maj(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: Sha256_S
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sha256_S(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: Sha256_R
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sha256_R(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: Sigma0
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: Sigma1
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: Gamma0
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: Gamma1
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WPA_GET_BE32
      Src: /src/curl/lib/sha256.c:329,1
    - Dst: Gamma1
      Src: /src/curl/lib/sha256.c:332,1
    - Dst: Gamma0
      Src: /src/curl/lib/sha256.c:332,1
    - Dst: RND
      Src: /src/curl/lib/sha256.c:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - md
    - buf
    argTypes:
    - struct sha256_state*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 364
    functionName: sha256_compress
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - Gamma1
    - Gamma0
    - RND
    - WPA_GET_BE32
    linkageType: ''
    returnType: int
    signature: int sha256_compress(struct sha256_state *md, const unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: RND
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(a, b, c, d, e, f, g, h, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: my_sha256_init
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode my_sha256_init(void *in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sha256_compress
      Src: /src/curl/lib/sha256.c:402,1
    - Dst: CURLMIN
      Src: /src/curl/lib/sha256.c:409,1
    - Dst: memcpy
      Src: /src/curl/lib/sha256.c:410,1
    - Dst: sha256_compress
      Src: /src/curl/lib/sha256.c:415,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - in
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 422
    functionName: my_sha256_update
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - memcpy
    - sha256_compress
    linkageType: ''
    returnType: void
    signature: "void my_sha256_update(void *ctx,\n                             const
      unsigned char *in,\n                             unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sha256_compress
      Src: /src/curl/lib/sha256.c:452,1
    - Dst: WPA_PUT_BE64
      Src: /src/curl/lib/sha256.c:462,1
    - Dst: sha256_compress
      Src: /src/curl/lib/sha256.c:463,1
    - Dst: WPA_PUT_BE32
      Src: /src/curl/lib/sha256.c:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - out
    - ctx
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 468
    functionName: my_sha256_final
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 0
    functionsReached:
    - WPA_PUT_BE32
    - WPA_PUT_BE64
    - sha256_compress
    linkageType: ''
    returnType: void
    signature: void my_sha256_final(unsigned char *out, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: my_sha256_init
      Src: /src/curl/lib/sha256.c:491,1
    - Dst: CURLMIN
      Src: /src/curl/lib/sha256.c:494,1
    - Dst: my_sha256_update
      Src: /src/curl/lib/sha256.c:495,1
    - Dst: my_sha256_final
      Src: /src/curl/lib/sha256.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - output
    - input
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 502
    functionName: Curl_sha256it
    functionSourceFile: /src/curl/lib/sha256.c
    functionUses: 3
    functionsReached:
    - my_sha256_final
    - my_sha256_update
    - CURLMIN
    - my_sha256_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_sha256it(unsigned char *output, const unsigned char
      *input,\n                       size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/content_encoding.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - voidpf
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: zalloc_cb
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - curlx_calloc
    linkageType: ''
    returnType: voidpf
    signature: voidpf zalloc_cb(voidpf opaque, unsigned int items, unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/content_encoding.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: zfree_cb
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void zfree_cb(voidpf opaque, voidpf ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:104,1
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - z
    argTypes:
    - struct Curl_easy*
    - z_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: process_zlib_error
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode process_zlib_error(struct Curl_easy *data, z_stream *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/curl/lib/content_encoding.c:116,1
    - Dst: process_zlib_error
      Src: /src/curl/lib/content_encoding.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - data
    - z
    - zlib_init
    - result
    argTypes:
    - struct Curl_easy*
    - z_stream*
    - zlibInitState*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: exit_zlib
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - inflateEnd
    - process_zlib_error
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode exit_zlib(struct Curl_easy *data, z_stream *z,\n                          zlibInitState
      *zlib_init, CURLcode result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: exit_zlib
      Src: /src/curl/lib/content_encoding.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - zp
    argTypes:
    - struct Curl_easy*
    - struct zlib_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 145
    functionName: process_trailer
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - exit_zlib
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode process_trailer(struct Curl_easy *data, struct zlib_writer
      *zp)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: exit_zlib
      Src: /src/curl/lib/content_encoding.c:163,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/content_encoding.c:174,1
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:175,1
    - Dst: exit_zlib
      Src: /src/curl/lib/content_encoding.c:176,1
    - Dst: inflate
      Src: /src/curl/lib/content_encoding.c:184,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/content_encoding.c:190,1
    - Dst: exit_zlib
      Src: /src/curl/lib/content_encoding.c:193,1
    - Dst: process_trailer
      Src: /src/curl/lib/content_encoding.c:209,1
    - Dst: inflateReset2
      Src: /src/curl/lib/content_encoding.c:215,1
    - Dst: exit_zlib
      Src: /src/curl/lib/content_encoding.c:225,1
    - Dst: process_zlib_error
      Src: /src/curl/lib/content_encoding.c:225,1
    - Dst: exit_zlib
      Src: /src/curl/lib/content_encoding.c:228,1
    - Dst: process_zlib_error
      Src: /src/curl/lib/content_encoding.c:228,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 4
    argNames:
    - data
    - writer
    - type
    - started
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - zlibInitState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 240
    functionName: inflate_stream
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - process_trailer
    - failf
    - inflate
    - exit_zlib
    - inflateReset2
    - process_zlib_error
    - Curl_timeleft_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode inflate_stream(struct Curl_easy *data,\n                               struct
      Curl_cwriter *writer, int type,\n                               zlibInitState
      started)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit
      Src: /src/curl/lib/content_encoding.c:253,1
    - Dst: process_zlib_error
      Src: /src/curl/lib/content_encoding.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 257
    functionName: deflate_do_init
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - process_zlib_error
    - inflateInit
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode deflate_do_init(struct Curl_easy *data,\n                                struct
      Curl_cwriter *writer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/content_encoding.c:267,1
    - Dst: process_trailer
      Src: /src/curl/lib/content_encoding.c:274,1
    - Dst: inflate_stream
      Src: /src/curl/lib/content_encoding.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 278
    functionName: deflate_do_write
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - process_trailer
    - inflate_stream
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode deflate_do_write(struct Curl_easy *data,\n                                 struct
      Curl_cwriter *writer, int type,\n                                 const char
      *buf, size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit_zlib
      Src: /src/curl/lib/content_encoding.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: deflate_do_close
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - exit_zlib
    linkageType: ''
    returnType: void
    signature: "void deflate_do_close(struct Curl_easy *data,\n                             struct
      Curl_cwriter *writer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit2
      Src: /src/curl/lib/content_encoding.c:312,1
    - Dst: process_zlib_error
      Src: /src/curl/lib/content_encoding.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 317
    functionName: gzip_do_init
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - inflateInit2
    - process_zlib_error
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gzip_do_init(struct Curl_easy *data,\n                             struct
      Curl_cwriter *writer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/content_encoding.c:327,1
    - Dst: inflate_stream
      Src: /src/curl/lib/content_encoding.c:334,1
    - Dst: exit_zlib
      Src: /src/curl/lib/content_encoding.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 339
    functionName: gzip_do_write
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - exit_zlib
    - inflate_stream
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gzip_do_write(struct Curl_easy *data,\n                              struct
      Curl_cwriter *writer, int type,\n                              const char *buf,
      size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit_zlib
      Src: /src/curl/lib/content_encoding.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: gzip_do_close
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - exit_zlib
    linkageType: ''
    returnType: void
    signature: "void gzip_do_close(struct Curl_easy *data,\n                          struct
      Curl_cwriter *writer)"
  - BBCount: 25
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - be
    argTypes:
    - BrotliDecoderErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 403
    functionName: brotli_map_error
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode brotli_map_error(BrotliDecoderErrorCode be)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BrotliDecoderCreateInstance
      Src: /src/curl/lib/content_encoding.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 413
    functionName: brotli_do_init
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - BrotliDecoderCreateInstance
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode brotli_do_init(struct Curl_easy *data,\n                               struct
      Curl_cwriter *writer)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/content_encoding.c:428,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/content_encoding.c:439,1
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:440,1
    - Dst: BrotliDecoderDecompressStream
      Src: /src/curl/lib/content_encoding.c:447,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/content_encoding.c:449,1
    - Dst: BrotliDecoderDestroyInstance
      Src: /src/curl/lib/content_encoding.c:458,1
    - Dst: brotli_map_error
      Src: /src/curl/lib/content_encoding.c:464,1
    - Dst: BrotliDecoderGetErrorCode
      Src: /src/curl/lib/content_encoding.c:464,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 469
    functionName: brotli_do_write
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - failf
    - brotli_map_error
    - BrotliDecoderDestroyInstance
    - BrotliDecoderDecompressStream
    - BrotliDecoderGetErrorCode
    - Curl_timeleft_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode brotli_do_write(struct Curl_easy *data,\n                                struct
      Curl_cwriter *writer, int type,\n                                const char
      *buf, size_t nbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BrotliDecoderDestroyInstance
      Src: /src/curl/lib/content_encoding.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 481
    functionName: brotli_do_close
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - BrotliDecoderDestroyInstance
    linkageType: ''
    returnType: void
    signature: "void brotli_do_close(struct Curl_easy *data,\n                            struct
      Curl_cwriter *writer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cmalloc
      Src: /src/curl/lib/content_encoding.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opaque
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: Curl_zstd_alloc
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - Curl_cmalloc
    linkageType: ''
    returnType: void
    signature: void *Curl_zstd_alloc(void *opaque, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cfree
      Src: /src/curl/lib/content_encoding.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opaque
    - address
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: Curl_zstd_free
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - Curl_cfree
    linkageType: ''
    returnType: void
    signature: void Curl_zstd_free(void *opaque, void *address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createDStream_advanced
      Src: /src/curl/lib/content_encoding.c:523,1
    - Dst: ZSTD_createDStream
      Src: /src/curl/lib/content_encoding.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 533
    functionName: zstd_do_init
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - ZSTD_createDStream
    - ZSTD_createDStream_advanced
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode zstd_do_init(struct Curl_easy *data,\n                             struct
      Curl_cwriter *writer)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/content_encoding.c:547,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/content_encoding.c:557,1
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:558,1
    - Dst: ZSTD_decompressStream
      Src: /src/curl/lib/content_encoding.c:567,1
    - Dst: ZSTD_isError
      Src: /src/curl/lib/content_encoding.c:568,1
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/content_encoding.c:572,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 582
    functionName: zstd_do_write
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - failf
    - ZSTD_decompressStream
    - ZSTD_isError
    - Curl_timeleft_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode zstd_do_write(struct Curl_easy *data,\n                              struct
      Curl_cwriter *writer, int type,\n                              const char *buf,
      size_t nbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_freeDStream
      Src: /src/curl/lib/content_encoding.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 594
    functionName: zstd_do_close
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeDStream
    linkageType: ''
    returnType: void
    signature: "void zstd_do_close(struct Curl_easy *data,\n                          struct
      Curl_cwriter *writer)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/content_encoding.c:645,1
    - Dst: curl_strequal
      Src: /src/curl/lib/content_encoding.c:649,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/content_encoding.c:650,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/content_encoding.c:651,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/content_encoding.c:653,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/content_encoding.c:656,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/content_encoding.c:657,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/content_encoding.c:660,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 662
    functionName: Curl_get_content_encodings
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - curlx_dyn_add
    - curlx_dyn_len
    - curlx_dyn_ptr
    - curl_strequal
    linkageType: ''
    returnType: char
    signature: char *Curl_get_content_encodings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 671
    functionName: error_do_init
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode error_do_init(struct Curl_easy *data,\n                              struct
      Curl_cwriter *writer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cwriter_write
      Src: /src/curl/lib/content_encoding.c:682,1
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - data
    - writer
    - type
    - buf
    - nbytes
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 685
    functionName: error_do_write
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - Curl_cwriter_write
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode error_do_write(struct Curl_easy *data,\n                               struct
      Curl_cwriter *writer, int type,\n                               const char *buf,
      size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - writer
    argTypes:
    - struct Curl_easy*
    - struct Curl_cwriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: error_do_close
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void error_do_close(struct Curl_easy *data,\n                           struct
      Curl_cwriter *writer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/content_encoding.c:713,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/content_encoding.c:714,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/content_encoding.c:722,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/content_encoding.c:723,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 12
    argCount: 3
    argNames:
    - name
    - len
    - phase
    argTypes:
    - char*
    - size_t
    - Curl_cwriter_phase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 727
    functionName: find_unencode_writer
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: struct Curl_cwtype
    signature: "struct Curl_cwtype *find_unencode_writer(const char *name,\n                                                      size_t
      len,\n                                                      Curl_cwriter_phase
      phase)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/lib/content_encoding.c:745,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/content_encoding.c:758,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/content_encoding.c:761,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/content_encoding.c:766,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/content_encoding.c:768,1
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:772,1
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:777,1
    - Dst: Curl_cwriter_count
      Src: /src/curl/lib/content_encoding.c:784,1
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:785,1
    - Dst: find_unencode_writer
      Src: /src/curl/lib/content_encoding.c:791,1
    - Dst: Curl_cwriter_get_by_type
      Src: /src/curl/lib/content_encoding.c:792,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/content_encoding.c:799,1
    - Dst: Curl_cwriter_get_by_name
      Src: /src/curl/lib/content_encoding.c:804,1
    - Dst: failf
      Src: /src/curl/lib/content_encoding.c:813,1
    - Dst: Curl_cwriter_create
      Src: /src/curl/lib/content_encoding.c:821,1
    - Dst: CURL_TRC_WRITE
      Src: /src/curl/lib/content_encoding.c:822,1
    - Dst: Curl_cwriter_add
      Src: /src/curl/lib/content_encoding.c:827,1
    - Dst: Curl_cwriter_free
      Src: /src/curl/lib/content_encoding.c:829,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 52
    argCount: 3
    argNames:
    - data
    - enclist
    - is_transfer
    argTypes:
    - struct Curl_easy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 731
    functionDepth: 4
    functionLinenumber: 731
    functionLinenumberEnd: 838
    functionName: Curl_build_unencoding_stack
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 2
    functionsReached:
    - failf
    - Curl_cwriter_get_by_type
    - Curl_cwriter_count
    - Curl_cwriter_add
    - curl_strnequal
    - Curl_cwriter_get_by_name
    - Curl_cwriter_create
    - Curl_cwriter_free
    - find_unencode_writer
    - CURL_TRC_WRITE
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_build_unencoding_stack(struct Curl_easy *data,\n                                     const
      char *enclist, int is_transfer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - enclist
    - is_transfer
    argTypes:
    - struct Curl_easy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 849
    functionName: Curl_build_unencoding_stack
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_build_unencoding_stack(struct Curl_easy *data,\n                                     const
      char *enclist, int is_transfer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strdup
      Src: /src/curl/lib/content_encoding.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 854
    functionName: Curl_get_content_encodings
    functionSourceFile: /src/curl/lib/content_encoding.c
    functionUses: 1
    functionsReached:
    - curlx_strdup
    linkageType: ''
    returnType: char
    signature: char *Curl_get_content_encodings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: splay_compare
    functionSourceFile: /src/curl/lib/splay.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: splay_compare(i, j)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: splay_compare
      Src: /src/curl/lib/splay.c:52,1
    - Dst: splay_compare
      Src: /src/curl/lib/splay.c:56,1
    - Dst: splay_compare
      Src: /src/curl/lib/splay.c:71,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - pkey
    - t
    argTypes:
    - struct curltime*
    - struct Curl_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 93
    functionName: Curl_splay
    functionSourceFile: /src/curl/lib/splay.c
    functionUses: 1
    functionsReached:
    - splay_compare
    linkageType: ''
    returnType: struct Curl_tree
    signature: "struct Curl_tree *Curl_splay(const struct curltime *pkey,\n                             struct
      Curl_tree *t)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:108,1
    - Dst: Curl_splay
      Src: /src/curl/lib/splay.c:111,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:112,1
    - Dst: splay_compare
      Src: /src/curl/lib/splay.c:113,1
    - Dst: splay_compare
      Src: /src/curl/lib/splay.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 3
    argNames:
    - pkey
    - t
    - node
    argTypes:
    - struct curltime*
    - struct Curl_tree*
    - struct Curl_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 147
    functionName: Curl_splayinsert
    functionSourceFile: /src/curl/lib/splay.c
    functionUses: 3
    functionsReached:
    - splay_compare
    - Curl_splay
    - DEBUGASSERT
    linkageType: ''
    returnType: struct Curl_tree
    signature: "struct Curl_tree *Curl_splayinsert(const struct curltime *pkey,\n
      \                                  struct Curl_tree *t,\n                                   struct
      Curl_tree *node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_splay
      Src: /src/curl/lib/splay.c:165,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:166,1
    - Dst: splay_compare
      Src: /src/curl/lib/splay.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - pkey
    - t
    - removed
    argTypes:
    - struct curltime*
    - struct Curl_tree*
    - struct Curl_tree**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 195
    functionName: Curl_splaygetbest
    functionSourceFile: /src/curl/lib/splay.c
    functionUses: 3
    functionsReached:
    - splay_compare
    - Curl_splay
    - DEBUGASSERT
    linkageType: ''
    returnType: struct Curl_tree
    signature: "struct Curl_tree *Curl_splaygetbest(const struct curltime *pkey,\n
      \                                   struct Curl_tree *t,\n                                    struct
      Curl_tree **removed)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:217,1
    - Dst: splay_compare
      Src: /src/curl/lib/splay.c:219,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:222,1
    - Dst: Curl_splay
      Src: /src/curl/lib/splay.c:237,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:238,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:247,1
    - Dst: Curl_splay
      Src: /src/curl/lib/splay.c:269,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - t
    - removenode
    - newroot
    argTypes:
    - struct Curl_tree*
    - struct Curl_tree*
    - struct Curl_tree**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 278
    functionName: Curl_splayremove
    functionSourceFile: /src/curl/lib/splay.c
    functionUses: 3
    functionsReached:
    - splay_compare
    - Curl_splay
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int Curl_splayremove(struct Curl_tree *t,\n                     struct
      Curl_tree *removenode,\n                     struct Curl_tree **newroot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - node
    - payload
    argTypes:
    - struct Curl_tree*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: Curl_splayset
    functionSourceFile: /src/curl/lib/splay.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_splayset(struct Curl_tree *node, void *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/splay.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct Curl_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: Curl_splayget
    functionSourceFile: /src/curl/lib/splay.c
    functionUses: 4
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void *Curl_splayget(struct Curl_tree *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: curl_simple_lock_lock
    functionSourceFile: /src/curl/lib/easy_lock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_simple_lock_lock(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: curl_simple_lock_unlock
    functionSourceFile: /src/curl/lib/easy_lock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_simple_lock_unlock(m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_exchange_explicit
      Src: /src/curl/lib/easy_lock.h:66,1
    - Dst: atomic_load_explicit
      Src: /src/curl/lib/easy_lock.h:69,1
    - Dst: __builtin_ia32_pause
      Src: /src/curl/lib/easy_lock.h:72,1
    - Dst: sched_yield
      Src: /src/curl/lib/easy_lock.h:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - lock
    argTypes:
    - curl_simple_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: curl_simple_lock_lock
    functionSourceFile: /src/curl/lib/easy_lock.h
    functionUses: 1
    functionsReached:
    - sched_yield
    - atomic_load_explicit
    - atomic_exchange_explicit
    - __builtin_ia32_pause
    linkageType: ''
    returnType: CURL_INLINE
    signature: CURL_INLINE curl_simple_lock_lock(curl_simple_lock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_store_explicit
      Src: /src/curl/lib/easy_lock.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - curl_simple_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: curl_simple_lock_unlock
    functionSourceFile: /src/curl/lib/easy_lock.h
    functionUses: 1
    functionsReached:
    - atomic_store_explicit
    linkageType: ''
    returnType: CURL_INLINE
    signature: CURL_INLINE curl_simple_lock_unlock(curl_simple_lock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: curl_simple_lock_lock
    functionSourceFile: /src/curl/lib/easy_lock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_simple_lock_lock(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: curl_simple_lock_unlock
    functionSourceFile: /src/curl/lib/easy_lock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curl_simple_lock_unlock(m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eventfd
      Src: /src/curl/lib/socketpair.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - socks
    - nonblocking
    argTypes:
    - curl_socket_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: wakeup_eventfd
    functionSourceFile: /src/curl/lib/socketpair.c
    functionUses: 0
    functionsReached:
    - eventfd
    linkageType: ''
    returnType: int
    signature: int wakeup_eventfd(curl_socket_t socks[2], bool nonblocking)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/curl/lib/socketpair.c:59,1
    - Dst: pipe
      Src: /src/curl/lib/socketpair.c:62,1
    - Dst: fcntl
      Src: /src/curl/lib/socketpair.c:65,1
    - Dst: fcntl
      Src: /src/curl/lib/socketpair.c:66,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:67,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:68,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socketpair.c:74,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socketpair.c:75,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:76,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - socks
    - nonblocking
    argTypes:
    - curl_socket_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: wakeup_pipe
    functionSourceFile: /src/curl/lib/socketpair.c
    functionUses: 0
    functionsReached:
    - curlx_nonblock
    - fcntl
    - pipe
    - pipe2
    - sclose
    linkageType: ''
    returnType: int
    signature: int wakeup_pipe(curl_socket_t socks[2], bool nonblocking)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CURL_SOCKETPAIR
      Src: /src/curl/lib/socketpair.c:104,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socketpair.c:108,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socketpair.c:109,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:110,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:111,1
    - Dst: Curl_sock_nosigpipe
      Src: /src/curl/lib/socketpair.c:118,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:119,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - socks
    - nonblocking
    argTypes:
    - curl_socket_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 127
    functionName: wakeup_socketpair
    functionSourceFile: /src/curl/lib/socketpair.c
    functionUses: 0
    functionsReached:
    - curlx_nonblock
    - Curl_sock_nosigpipe
    - sclose
    - CURL_SOCKETPAIR
    linkageType: ''
    returnType: int
    signature: int wakeup_socketpair(curl_socket_t socks[2], bool nonblocking)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CURL_SOCKET
      Src: /src/curl/lib/socketpair.c:158,1
    - Dst: memset
      Src: /src/curl/lib/socketpair.c:162,1
    - Dst: htonl
      Src: /src/curl/lib/socketpair.c:164,1
    - Dst: setsockopt
      Src: /src/curl/lib/socketpair.c:175,1
    - Dst: setsockopt
      Src: /src/curl/lib/socketpair.c:181,1
    - Dst: bind
      Src: /src/curl/lib/socketpair.c:185,1
    - Dst: getsockname
      Src: /src/curl/lib/socketpair.c:187,1
    - Dst: listen
      Src: /src/curl/lib/socketpair.c:190,1
    - Dst: CURL_SOCKET
      Src: /src/curl/lib/socketpair.c:192,1
    - Dst: connect
      Src: /src/curl/lib/socketpair.c:195,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socketpair.c:199,1
    - Dst: Curl_poll
      Src: /src/curl/lib/socketpair.c:204,1
    - Dst: CURL_ACCEPT
      Src: /src/curl/lib/socketpair.c:205,1
    - Dst: curlx_now
      Src: /src/curl/lib/socketpair.c:209,1
    - Dst: Curl_rand
      Src: /src/curl/lib/socketpair.c:215,1
    - Dst: swrite
      Src: /src/curl/lib/socketpair.c:219,1
    - Dst: Curl_poll
      Src: /src/curl/lib/socketpair.c:227,1
    - Dst: sread
      Src: /src/curl/lib/socketpair.c:229,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/lib/socketpair.c:233,1
    - Dst: curlx_now
      Src: /src/curl/lib/socketpair.c:233,1
    - Dst: USE_WINSOCK
      Src: /src/curl/lib/socketpair.c:236,1
    - Dst: memcmp
      Src: /src/curl/lib/socketpair.c:256,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socketpair.c:263,1
    - Dst: curlx_nonblock
      Src: /src/curl/lib/socketpair.c:264,1
    - Dst: Curl_sock_nosigpipe
      Src: /src/curl/lib/socketpair.c:267,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:270,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:274,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:275,1
    - Dst: sclose
      Src: /src/curl/lib/socketpair.c:276,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 91
    argCount: 2
    argNames:
    - socks
    - nonblocking
    argTypes:
    - curl_socket_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 279
    functionName: wakeup_inet
    functionSourceFile: /src/curl/lib/socketpair.c
    functionUses: 0
    functionsReached:
    - curlx_nonblock
    - getsockname
    - htonl
    - memcmp
    - sread
    - Curl_poll
    - Curl_sock_nosigpipe
    - curlx_now
    - CURL_SOCKET
    - setsockopt
    - Curl_rand
    - bind
    - memset
    - connect
    - CURL_ACCEPT
    - curlx_timediff_ms
    - listen
    - USE_WINSOCK
    - swrite
    - sclose
    linkageType: ''
    returnType: int
    signature: int wakeup_inet(curl_socket_t socks[2], bool nonblocking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wakeup_eventfd
      Src: /src/curl/lib/socketpair.c:286,1
    - Dst: wakeup_pipe
      Src: /src/curl/lib/socketpair.c:288,1
    - Dst: wakeup_socketpair
      Src: /src/curl/lib/socketpair.c:290,1
    - Dst: wakeup_inet
      Src: /src/curl/lib/socketpair.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - socks
    - nonblocking
    argTypes:
    - curl_socket_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: Curl_wakeup_init
    functionSourceFile: /src/curl/lib/socketpair.c
    functionUses: 1
    functionsReached:
    - wakeup_eventfd
    - wakeup_inet
    - wakeup_socketpair
    - wakeup_pipe
    linkageType: ''
    returnType: int
    signature: int Curl_wakeup_init(curl_socket_t socks[2], bool nonblocking)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wakeup_write
      Src: /src/curl/lib/socketpair.c:321,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - socks
    argTypes:
    - curl_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 336
    functionName: Curl_wakeup_signal
    functionSourceFile: /src/curl/lib/socketpair.c
    functionUses: 1
    functionsReached:
    - wakeup_write
    linkageType: ''
    returnType: int
    signature: int Curl_wakeup_signal(curl_socket_t socks[2])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wakeup_read
      Src: /src/curl/lib/socketpair.c:345,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 2
    argNames:
    - socks
    - all
    argTypes:
    - curl_socket_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 363
    functionName: Curl_wakeup_consume
    functionSourceFile: /src/curl/lib/socketpair.c
    functionUses: 2
    functionsReached:
    - wakeup_read
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_wakeup_consume(curl_socket_t socks[2], bool all)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wakeup_close
      Src: /src/curl/lib/socketpair.c:369,1
    - Dst: wakeup_close
      Src: /src/curl/lib/socketpair.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - socks
    argTypes:
    - curl_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 374
    functionName: Curl_wakeup_destroy
    functionSourceFile: /src/curl/lib/socketpair.c
    functionUses: 2
    functionsReached:
    - wakeup_close
    linkageType: ''
    returnType: void
    signature: void Curl_wakeup_destroy(curl_socket_t socks[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Curl_setopt_SSLVERSION
    functionSourceFile: /src/curl/lib/setopt.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_setopt_SSLVERSION(a, b, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_acquire
      Src: /src/curl/lib/memdebug.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: curl_dbg_lock
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - Curl_mutex_acquire
    linkageType: ''
    returnType: bool
    signature: bool curl_dbg_lock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_mutex_release
      Src: /src/curl/lib/memdebug.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - was_locked
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: curl_dbg_unlock
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - Curl_mutex_release
    linkageType: ''
    returnType: void
    signature: void curl_dbg_unlock(bool was_locked)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_dbg_lock
      Src: /src/curl/lib/memdebug.c:102,1
    - Dst: fwrite
      Src: /src/curl/lib/memdebug.c:107,1
    - Dst: fclose
      Src: /src/curl/lib/memdebug.c:109,1
    - Dst: curl_dbg_unlock
      Src: /src/curl/lib/memdebug.c:112,1
    - Dst: Curl_mutex_destroy
      Src: /src/curl/lib/memdebug.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: curl_dbg_cleanup
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - fclose
    - fwrite
    - Curl_mutex_destroy
    - curl_dbg_unlock
    - curl_dbg_lock
    linkageType: ''
    returnType: void
    signature: void curl_dbg_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:127,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - message
    - error_number
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: error_bt_callback
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - curl_dbg_log
    linkageType: ''
    returnType: void
    signature: "void error_bt_callback(void *data, const char *message,\n                              int
      error_number)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - data
    - pc
    - pathname
    - line_number
    - function
    argTypes:
    - void*
    - uintptr_t
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: full_callback
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - curl_dbg_log
    linkageType: ''
    returnType: int
    signature: "int full_callback(void *data, uintptr_t pc, const char *pathname,\n
      \                        int line_number, const char *function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: backtrace_full
      Src: /src/curl/lib/memdebug.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: dump_bt
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - backtrace_full
    linkageType: ''
    returnType: void
    signature: void dump_bt(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CURLX_FOPEN_LOW
      Src: /src/curl/lib/memdebug.c:155,1
    - Dst: setbuf
      Src: /src/curl/lib/memdebug.c:159,1
    - Dst: Curl_mutex_init
      Src: /src/curl/lib/memdebug.c:165,1
    - Dst: backtrace_create_state
      Src: /src/curl/lib/memdebug.c:169,1
    - Dst: atexit
      Src: /src/curl/lib/memdebug.c:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - logname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 173
    functionName: curl_dbg_memdebug
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 2
    functionsReached:
    - backtrace_create_state
    - setbuf
    - Curl_mutex_init
    - CURLX_FOPEN_LOW
    - atexit
    linkageType: ''
    returnType: void
    signature: void curl_dbg_memdebug(const char *logname)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - limit
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: curl_dbg_memlimit
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void curl_dbg_memlimit(long limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:193,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/memdebug.c:195,1
    - Dst: dump_bt
      Src: /src/curl/lib/memdebug.c:197,1
    - Dst: fflush
      Src: /src/curl/lib/memdebug.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - func
    - line
    - source
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 6
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: countcheck
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - fflush
    - curl_mfprintf
    - curl_dbg_log
    - dump_bt
    linkageType: ''
    returnType: bool
    signature: bool countcheck(const char *func, int line, const char *source)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/memdebug.c:216,1
    - Dst: countcheck
      Src: /src/curl/lib/memdebug.c:218,1
    - Dst: Curl_cmalloc
      Src: /src/curl/lib/memdebug.c:224,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - wantedsize
    - line
    - source
    argTypes:
    - size_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 210
    functionDepth: 7
    functionLinenumber: 210
    functionLinenumberEnd: 235
    functionName: curl_dbg_malloc
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - countcheck
    - curl_dbg_log
    - Curl_cmalloc
    - DEBUGASSERT
    linkageType: ''
    returnType: ALLOC_FUNC
    signature: ALLOC_FUNC *curl_dbg_malloc(size_t wantedsize, int line, const char
      *source)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/memdebug.c:244,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/memdebug.c:245,1
    - Dst: countcheck
      Src: /src/curl/lib/memdebug.c:247,1
    - Dst: Curl_ccalloc
      Src: /src/curl/lib/memdebug.c:254,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - wanted_elements
    - wanted_size
    - line
    - source
    argTypes:
    - size_t
    - size_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 237
    functionDepth: 7
    functionLinenumber: 237
    functionLinenumberEnd: 264
    functionName: curl_dbg_calloc
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - countcheck
    - curl_dbg_log
    - Curl_ccalloc
    - DEBUGASSERT
    linkageType: ''
    returnType: ALLOC_FUNC
    signature: "ALLOC_FUNC *curl_dbg_calloc(size_t wanted_elements, size_t wanted_size,\n
      \                     int line, const char *source)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/memdebug.c:272,1
    - Dst: countcheck
      Src: /src/curl/lib/memdebug.c:274,1
    - Dst: strlen
      Src: /src/curl/lib/memdebug.c:277,1
    - Dst: curl_dbg_malloc
      Src: /src/curl/lib/memdebug.c:279,1
    - Dst: memcpy
      Src: /src/curl/lib/memdebug.c:281,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - str
    - line
    - source
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 266
    functionDepth: 8
    functionLinenumber: 266
    functionLinenumberEnd: 288
    functionName: curl_dbg_strdup
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - curl_dbg_malloc
    - curl_dbg_log
    - strlen
    - countcheck
    linkageType: ''
    returnType: ALLOC_FUNC
    signature: ALLOC_FUNC *curl_dbg_strdup(const char *str, int line, const char *source)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/memdebug.c:297,1
    - Dst: countcheck
      Src: /src/curl/lib/memdebug.c:299,1
    - Dst: wcslen
      Src: /src/curl/lib/memdebug.c:302,1
    - Dst: curl_dbg_malloc
      Src: /src/curl/lib/memdebug.c:305,1
    - Dst: memcpy
      Src: /src/curl/lib/memdebug.c:307,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - str
    - line
    - source
    argTypes:
    - wchar_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 291
    functionDepth: 8
    functionLinenumber: 291
    functionLinenumberEnd: 314
    functionName: curl_dbg_wcsdup
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - wcslen
    - curl_dbg_malloc
    - curl_dbg_log
    - countcheck
    linkageType: ''
    returnType: ALLOC_FUNC
    signature: ALLOC_FUNC *curl_dbg_wcsdup(const wchar_t *str, int line, const char
      *source)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/memdebug.c:327,1
    - Dst: countcheck
      Src: /src/curl/lib/memdebug.c:329,1
    - Dst: curl_dbg_lock
      Src: /src/curl/lib/memdebug.c:335,1
    - Dst: Curl_crealloc
      Src: /src/curl/lib/memdebug.c:349,1
    - Dst: curl_dbg_log_locked
      Src: /src/curl/lib/memdebug.c:351,1
    - Dst: curl_dbg_unlock
      Src: /src/curl/lib/memdebug.c:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ptr
    - wantedsize
    - line
    - source
    argTypes:
    - void*
    - size_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 319
    functionDepth: 7
    functionLinenumber: 319
    functionLinenumberEnd: 362
    functionName: curl_dbg_realloc
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - curl_dbg_unlock
    - countcheck
    - curl_dbg_log_locked
    - curl_dbg_lock
    - Curl_crealloc
    linkageType: ''
    returnType: void
    signature: "void *curl_dbg_realloc(void *ptr, size_t wantedsize,\n                       int
      line, const char *source)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:370,1
    - Dst: Curl_cfree
      Src: /src/curl/lib/memdebug.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - line
    - source
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 387
    functionName: curl_dbg_free
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - Curl_cfree
    - curl_dbg_log
    linkageType: ''
    returnType: void
    signature: void curl_dbg_free(void *ptr, int line, const char *source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: countcheck
      Src: /src/curl/lib/memdebug.c:394,1
    - Dst: socket
      Src: /src/curl/lib/memdebug.c:398,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - domain
    - type
    - protocol
    - line
    - source
    argTypes:
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 389
    functionDepth: 7
    functionLinenumber: 389
    functionLinenumberEnd: 405
    functionName: curl_dbg_socket
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - countcheck
    - curl_dbg_log
    - socket
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t curl_dbg_socket(int domain, int type, int protocol,\n
      \                             int line, const char *source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/curl/lib/memdebug.c:413,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - domain
    - type
    - protocol
    - socket_vector
    - line
    - source
    argTypes:
    - int
    - int
    - int
    - curl_socket_t[]
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 421
    functionName: curl_dbg_socketpair
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - curl_dbg_log
    - socketpair
    linkageType: ''
    returnType: int
    signature: "int curl_dbg_socketpair(int domain, int type, int protocol,\n                        curl_socket_t
      socket_vector[2],\n                        int line, const char *source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/curl/lib/memdebug.c:431,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - s
    - saddr
    - saddrlen
    - line
    - source
    argTypes:
    - curl_socket_t
    - void*
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: curl_dbg_accept
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - accept
    - curl_dbg_log
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t curl_dbg_accept(curl_socket_t s, void *saddr, void *saddrlen,\n
      \                             int line, const char *source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: accept4
      Src: /src/curl/lib/memdebug.c:449,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - s
    - saddr
    - saddrlen
    - flags
    - line
    - source
    argTypes:
    - curl_socket_t
    - void*
    - void*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 456
    functionName: curl_dbg_accept4
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - accept4
    - curl_dbg_log
    linkageType: ''
    returnType: curl_socket_t
    signature: "curl_socket_t curl_dbg_accept4(curl_socket_t s, void *saddr, void
      *saddrlen,\n                               int flags,\n                               int
      line, const char *source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sockfd
    - line
    - source
    argTypes:
    - curl_socket_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: curl_dbg_mark_sclose
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - curl_dbg_log
    linkageType: ''
    returnType: void
    signature: void curl_dbg_mark_sclose(curl_socket_t sockfd, int line, const char
      *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_dbg_mark_sclose
      Src: /src/curl/lib/memdebug.c:470,1
    - Dst: CURL_SCLOSE
      Src: /src/curl/lib/memdebug.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sockfd
    - line
    - source
    argTypes:
    - curl_socket_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: curl_dbg_sclose
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - CURL_SCLOSE
    - curl_dbg_mark_sclose
    linkageType: ''
    returnType: int
    signature: int curl_dbg_sclose(curl_socket_t sockfd, int line, const char *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURLX_FOPEN_LOW
      Src: /src/curl/lib/memdebug.c:478,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - file
    - mode
    - line
    - source
    argTypes:
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 484
    functionName: curl_dbg_fopen
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - curl_dbg_log
    - CURLX_FOPEN_LOW
    linkageType: ''
    returnType: ALLOC_FUNC
    signature: "ALLOC_FUNC *curl_dbg_fopen(const char *file, const char *mode,\n                     int
      line, const char *source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURLX_FREOPEN_LOW
      Src: /src/curl/lib/memdebug.c:490,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - file
    - mode
    - fh
    - line
    - source
    argTypes:
    - char*
    - char*
    - FILE*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 496
    functionName: curl_dbg_freopen
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - curl_dbg_log
    - CURLX_FREOPEN_LOW
    linkageType: ''
    returnType: ALLOC_FUNC
    signature: "ALLOC_FUNC *curl_dbg_freopen(const char *file, const char *mode, FILE
      *fh,\n                       int line, const char *source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURLX_FDOPEN_LOW
      Src: /src/curl/lib/memdebug.c:502,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - filedes
    - mode
    - line
    - source
    argTypes:
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 507
    functionName: curl_dbg_fdopen
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - curl_dbg_log
    - CURLX_FDOPEN_LOW
    linkageType: ''
    returnType: ALLOC_FUNC
    signature: "ALLOC_FUNC *curl_dbg_fdopen(int filedes, const char *mode,\n                      int
      line, const char *source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/memdebug.c:513,1
    - Dst: curl_dbg_log
      Src: /src/curl/lib/memdebug.c:516,1
    - Dst: fclose
      Src: /src/curl/lib/memdebug.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - file
    - line
    - source
    argTypes:
    - FILE*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 522
    functionName: curl_dbg_fclose
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - fclose
    - curl_dbg_log
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int curl_dbg_fclose(FILE *file, int line, const char *source)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_mvsnprintf
      Src: /src/curl/lib/memdebug.c:530,1
    - Dst: fwrite
      Src: /src/curl/lib/memdebug.c:538,1
    - Dst: fflush
      Src: /src/curl/lib/memdebug.c:539,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/memdebug.c:544,1
    - Dst: memcpy
      Src: /src/curl/lib/memdebug.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 527
    functionDepth: 6
    functionLinenumber: 527
    functionLinenumberEnd: 549
    functionName: curl_dbg_vlog
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - fwrite
    - curl_mvsnprintf
    - fflush
    linkageType: ''
    returnType: void
    signature: void curl_dbg_vlog(const char * const fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/memdebug.c:558,1
    - Dst: curl_dbg_vlog
      Src: /src/curl/lib/memdebug.c:559,1
    - Dst: va_end
      Src: /src/curl/lib/memdebug.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 551
    functionDepth: 7
    functionLinenumber: 551
    functionLinenumberEnd: 561
    functionName: curl_dbg_log_locked
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 1
    functionsReached:
    - curl_dbg_vlog
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void curl_dbg_log_locked(const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_dbg_lock
      Src: /src/curl/lib/memdebug.c:572,1
    - Dst: va_start
      Src: /src/curl/lib/memdebug.c:573,1
    - Dst: curl_dbg_vlog
      Src: /src/curl/lib/memdebug.c:574,1
    - Dst: va_end
      Src: /src/curl/lib/memdebug.c:575,1
    - Dst: curl_dbg_unlock
      Src: /src/curl/lib/memdebug.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 564
    functionDepth: 7
    functionLinenumber: 564
    functionLinenumberEnd: 577
    functionName: curl_dbg_log
    functionSourceFile: /src/curl/lib/memdebug.c
    functionUses: 19
    functionsReached:
    - curl_dbg_vlog
    - va_start
    - va_end
    - curl_dbg_unlock
    - curl_dbg_lock
    linkageType: ''
    returnType: void
    signature: void curl_dbg_log(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: Curl_idn_decode
    functionSourceFile: /src/curl/lib/idn.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_idn_decode(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/request.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct SingleRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: Curl_req_init
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_req_init(struct SingleRequest *req)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/request.c:68,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/request.c:70,1
    - Dst: Curl_client_start
      Src: /src/curl/lib/request.c:73,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/request.c:78,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/request.c:83,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/request.c:85,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/request.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct SingleRequest*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 92
    functionName: Curl_req_soft_reset
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 4
    functionsReached:
    - curlx_safefree
    - Curl_bufq_reset
    - Curl_client_start
    - Curl_bufq_free
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_req_soft_reset(struct SingleRequest *req,\n                             struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/request.c:97,1
    - Dst: Curl_req_soft_reset
      Src: /src/curl/lib/request.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct SingleRequest*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: Curl_req_start
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - Curl_req_soft_reset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_req_start(struct SingleRequest *req,\n                        struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: req_flush
      Src: /src/curl/lib/request.c:108,1
    - Dst: Curl_client_reset
      Src: /src/curl/lib/request.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - req
    - data
    - aborted
    argTypes:
    - struct SingleRequest*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: Curl_req_done
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 1
    functionsReached:
    - Curl_client_reset
    - req_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_req_done(struct SingleRequest *req,\n                       struct
      Curl_easy *data, bool aborted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/request.c:117,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/request.c:118,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/request.c:120,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/request.c:123,1
    - Dst: Curl_client_reset
      Src: /src/curl/lib/request.c:125,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/request.c:127,1
    - Dst: Curl_resolv_destroy_all
      Src: /src/curl/lib/request.c:130,1
    - Dst: Curl_rlimit_block
      Src: /src/curl/lib/request.c:171,1
    - Dst: Curl_rlimit_block
      Src: /src/curl/lib/request.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct SingleRequest*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 173
    functionName: Curl_req_hard_reset
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - Curl_bufq_reset
    - Curl_client_reset
    - Curl_resolv_destroy_all
    - Curl_rlimit_block
    linkageType: ''
    returnType: void
    signature: void Curl_req_hard_reset(struct SingleRequest *req, struct Curl_easy
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/request.c:177,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/request.c:178,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/request.c:180,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/request.c:183,1
    - Dst: Curl_client_cleanup
      Src: /src/curl/lib/request.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct SingleRequest*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: Curl_req_free
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - Curl_client_cleanup
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void Curl_req_free(struct SingleRequest *req, struct Curl_easy *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/request.c:195,1
    - Dst: getenv
      Src: /src/curl/lib/request.c:202,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/request.c:205,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/request.c:220,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/request.c:221,1
    - Dst: DEBUGF
      Src: /src/curl/lib/request.c:222,1
    - Dst: infof
      Src: /src/curl/lib/request.c:222,1
    - Dst: Curl_xfer_send
      Src: /src/curl/lib/request.c:225,1
    - Dst: Curl_debug
      Src: /src/curl/lib/request.c:231,1
    - Dst: CURLMIN
      Src: /src/curl/lib/request.c:232,1
    - Dst: Curl_debug
      Src: /src/curl/lib/request.c:235,1
    - Dst: Curl_pgrs_upload_inc
      Src: /src/curl/lib/request.c:237,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 5
    argNames:
    - data
    - buf
    - blen
    - hds_len
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 187
    functionDepth: 9
    functionLinenumber: 187
    functionLinenumberEnd: 242
    functionName: xfer_send
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 9
    functionsReached:
    - Curl_bufq_len
    - DEBUGASSERT
    - getenv
    - CURLMIN
    - curlx_str_number
    - infof
    - Curl_xfer_send
    - Curl_pgrs_upload_inc
    - Curl_bufq_is_empty
    - Curl_debug
    - DEBUGF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode xfer_send(struct Curl_easy *data,\n                          const
      char *buf, size_t blen,\n                          size_t hds_len, size_t *pnwritten)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/request.c:250,1
    - Dst: CURLMIN
      Src: /src/curl/lib/request.c:251,1
    - Dst: xfer_send
      Src: /src/curl/lib/request.c:252,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/request.c:256,1
    - Dst: CURLMIN
      Src: /src/curl/lib/request.c:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 244
    functionDepth: 10
    functionLinenumber: 244
    functionLinenumberEnd: 266
    functionName: req_send_buffer_flush
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - xfer_send
    - Curl_bufq_skip
    - Curl_bufq_peek
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode req_send_buffer_flush(struct Curl_easy *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/request.c:270,1
    - Dst: CURL_REQ_CLEAR_SEND
      Src: /src/curl/lib/request.c:272,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/request.c:275,1
    - Dst: Curl_creader_done
      Src: /src/curl/lib/request.c:276,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/request.c:279,1
    - Dst: infof
      Src: /src/curl/lib/request.c:281,1
    - Dst: infof
      Src: /src/curl/lib/request.c:284,1
    - Dst: infof
      Src: /src/curl/lib/request.c:287,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/request.c:290,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/request.c:290,1
    - Dst: infof
      Src: /src/curl/lib/request.c:291,1
    - Dst: Curl_creader_total_length
      Src: /src/curl/lib/request.c:291,1
    - Dst: Curl_xfer_send_close
      Src: /src/curl/lib/request.c:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 297
    functionName: req_set_upload_done
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 0
    functionsReached:
    - Curl_creader_total_length
    - Curl_bufq_reset
    - DEBUGASSERT
    - Curl_creader_done
    - Curl_xfer_send_close
    - CURL_REQ_CLEAR_SEND
    - infof
    - Curl_bufq_is_empty
    - Curl_pgrsTime
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode req_set_upload_done(struct Curl_easy *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/request.c:306,1
    - Dst: req_send_buffer_flush
      Src: /src/curl/lib/request.c:307,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/request.c:310,1
    - Dst: DEBUGF
      Src: /src/curl/lib/request.c:311,1
    - Dst: infof
      Src: /src/curl/lib/request.c:311,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/request.c:312,1
    - Dst: Curl_xfer_needs_flush
      Src: /src/curl/lib/request.c:316,1
    - Dst: DEBUGF
      Src: /src/curl/lib/request.c:317,1
    - Dst: infof
      Src: /src/curl/lib/request.c:317,1
    - Dst: Curl_xfer_flush
      Src: /src/curl/lib/request.c:318,1
    - Dst: xfer_send
      Src: /src/curl/lib/request.c:324,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/request.c:327,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/request.c:331,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/request.c:331,1
    - Dst: Curl_xfer_send_shutdown
      Src: /src/curl/lib/request.c:334,1
    - Dst: infof
      Src: /src/curl/lib/request.c:336,1
    - Dst: req_set_upload_done
      Src: /src/curl/lib/request.c:347,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 299
    functionDepth: 11
    functionLinenumber: 299
    functionLinenumberEnd: 350
    functionName: req_flush
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 1
    functionsReached:
    - Curl_bufq_len
    - Curl_xfer_flush
    - DEBUGASSERT
    - Curl_xfer_send_shutdown
    - Curl_xfer_needs_flush
    - infof
    - req_set_upload_done
    - xfer_send
    - Curl_bufq_is_empty
    - DEBUGF
    - req_send_buffer_flush
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode req_flush(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_client_read
      Src: /src/curl/lib/request.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - reader_ctx
    - buf
    - buflen
    - pnread
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 352
    functionDepth: 6
    functionLinenumber: 352
    functionLinenumberEnd: 364
    functionName: add_from_client
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 0
    functionsReached:
    - Curl_client_read
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode add_from_client(void *reader_ctx,\n                                unsigned
      char *buf, size_t buflen,\n                                size_t *pnread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_cwrite
      Src: /src/curl/lib/request.c:372,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/request.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - data
    - buf
    - blen
    - hds_len
    argTypes:
    - struct Curl_easy*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 379
    functionName: req_send_buffer_add
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_cwrite
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode req_send_buffer_add(struct Curl_easy *data,\n                                    const
      char *buf, size_t blen,\n                                    size_t hds_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/request.c:392,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/request.c:393,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/request.c:399,1
    - Dst: Curl_creader_total_length
      Src: /src/curl/lib/request.c:400,1
    - Dst: xfer_send
      Src: /src/curl/lib/request.c:403,1
    - Dst: req_set_upload_done
      Src: /src/curl/lib/request.c:409,1
    - Dst: req_send_buffer_add
      Src: /src/curl/lib/request.c:419,1
    - Dst: Curl_req_send_more
      Src: /src/curl/lib/request.c:423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - data
    - req
    - httpversion
    argTypes:
    - struct Curl_easy*
    - struct dynbuf*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 381
    functionDepth: 10
    functionLinenumber: 381
    functionLinenumberEnd: 426
    functionName: Curl_req_send
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 2
    functionsReached:
    - Curl_creader_total_length
    - Curl_req_send_more
    - curlx_dyn_len
    - req_send_buffer_add
    - curlx_dyn_ptr
    - req_set_upload_done
    - xfer_send
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_req_send(struct Curl_easy *data, struct dynbuf *req,\n
      \                      unsigned char httpversion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/request.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: Curl_req_sendbuf_empty
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 1
    functionsReached:
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: bool
    signature: bool Curl_req_sendbuf_empty(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_is_blocked
      Src: /src/curl/lib/request.c:440,1
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/request.c:441,1
    - Dst: Curl_req_sendbuf_empty
      Src: /src/curl/lib/request.c:442,1
    - Dst: Curl_xfer_needs_flush
      Src: /src/curl/lib/request.c:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 444
    functionName: Curl_req_want_send
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 4
    functionsReached:
    - Curl_req_sendbuf_empty
    - Curl_rlimit_is_blocked
    - CURL_REQ_WANT_SEND
    - Curl_xfer_needs_flush
    linkageType: ''
    returnType: bool
    signature: bool Curl_req_want_send(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_is_blocked
      Src: /src/curl/lib/request.c:450,1
    - Dst: CURL_REQ_WANT_RECV
      Src: /src/curl/lib/request.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: Curl_req_want_recv
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 1
    functionsReached:
    - CURL_REQ_WANT_RECV
    - Curl_rlimit_is_blocked
    linkageType: ''
    returnType: bool
    signature: bool Curl_req_want_recv(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_req_want_send
      Src: /src/curl/lib/request.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: Curl_req_done_sending
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 2
    functionsReached:
    - Curl_req_want_send
    linkageType: ''
    returnType: bool
    signature: bool Curl_req_done_sending(struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_send_is_paused
      Src: /src/curl/lib/request.c:466,1
    - Dst: Curl_bufq_is_full
      Src: /src/curl/lib/request.c:467,1
    - Dst: Curl_bufq_sipn
      Src: /src/curl/lib/request.c:469,1
    - Dst: req_flush
      Src: /src/curl/lib/request.c:475,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 459
    functionDepth: 12
    functionLinenumber: 459
    functionLinenumberEnd: 480
    functionName: Curl_req_send_more
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 2
    functionsReached:
    - Curl_bufq_sipn
    - Curl_bufq_is_full
    - req_flush
    - Curl_xfer_send_is_paused
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_req_send_more(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/request.c:485,1
    - Dst: CURL_REQ_CLEAR_SEND
      Src: /src/curl/lib/request.c:487,1
    - Dst: req_set_upload_done
      Src: /src/curl/lib/request.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 5
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: Curl_req_abort_sending
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 2
    functionsReached:
    - req_set_upload_done
    - Curl_bufq_reset
    - CURL_REQ_CLEAR_SEND
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_req_abort_sending(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_REQ_WANT_SEND
      Src: /src/curl/lib/request.c:499,1
    - Dst: Curl_req_abort_sending
      Src: /src/curl/lib/request.c:500,1
    - Dst: CURL_REQ_CLEAR_IO
      Src: /src/curl/lib/request.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 493
    functionDepth: 6
    functionLinenumber: 493
    functionLinenumberEnd: 503
    functionName: Curl_req_stop_send_recv
    functionSourceFile: /src/curl/lib/request.c
    functionUses: 1
    functionsReached:
    - Curl_req_abort_sending
    - CURL_REQ_WANT_SEND
    - CURL_REQ_CLEAR_IO
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_req_stop_send_recv(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Curl_mutex_init
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mutex_init(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Curl_mutex_acquire
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mutex_acquire(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: Curl_mutex_release
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mutex_release(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: Curl_mutex_destroy
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mutex_destroy(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: Curl_cond_init
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_cond_init(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Curl_cond_destroy
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_cond_destroy(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: Curl_mutex_init
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mutex_init(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Curl_mutex_acquire
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mutex_acquire(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: Curl_mutex_release
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mutex_release(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: Curl_mutex_destroy
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_mutex_destroy(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: Curl_cond_init
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_cond_init(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: Curl_cond_destroy
    functionSourceFile: /src/curl/lib/curl_threads.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_cond_destroy(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/vtls/hostcheck.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - hostname
    - hostlen
    - pattern
    - patternlen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: pmatch
    functionSourceFile: /src/curl/lib/vtls/hostcheck.c
    functionUses: 0
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: "bool pmatch(const char *hostname, size_t hostlen,\n                   const
      char *pattern, size_t patternlen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/hostcheck.c:81,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/hostcheck.c:82,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/hostcheck.c:83,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/hostcheck.c:84,1
    - Dst: strncmp
      Src: /src/curl/lib/vtls/hostcheck.c:92,1
    - Dst: pmatch
      Src: /src/curl/lib/vtls/hostcheck.c:93,1
    - Dst: Curl_host_is_ipnum
      Src: /src/curl/lib/vtls/hostcheck.c:96,1
    - Dst: memchr
      Src: /src/curl/lib/vtls/hostcheck.c:101,1
    - Dst: memrchr
      Src: /src/curl/lib/vtls/hostcheck.c:103,1
    - Dst: pmatch
      Src: /src/curl/lib/vtls/hostcheck.c:104,1
    - Dst: memchr
      Src: /src/curl/lib/vtls/hostcheck.c:106,1
    - Dst: pmatch
      Src: /src/curl/lib/vtls/hostcheck.c:110,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - hostname
    - hostlen
    - pattern
    - patternlen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 115
    functionName: hostmatch
    functionSourceFile: /src/curl/lib/vtls/hostcheck.c
    functionUses: 0
    functionsReached:
    - memrchr
    - DEBUGASSERT
    - memchr
    - Curl_host_is_ipnum
    - strncmp
    - pmatch
    linkageType: ''
    returnType: bool
    signature: "bool hostmatch(const char *hostname,\n                      size_t
      hostlen,\n                      const char *pattern,\n                      size_t
      patternlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hostmatch
      Src: /src/curl/lib/vtls/hostcheck.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 4
    argNames:
    - match
    - matchlen
    - hostname
    - hostlen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: Curl_cert_hostcheck
    functionSourceFile: /src/curl/lib/vtls/hostcheck.c
    functionUses: 1
    functionsReached:
    - hostmatch
    linkageType: ''
    returnType: bool
    signature: "bool Curl_cert_hostcheck(const char *match, size_t matchlen,\n                         const
      char *hostname, size_t hostlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_spack.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - b
    argTypes:
    - struct dynbuf*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: spack_enc8
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode spack_enc8(struct dynbuf *buf, uint8_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - val
    - src
    - end
    argTypes:
    - uint8_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: spack_dec8
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode spack_dec8(uint8_t *val, const uint8_t **src,\n                           const
      uint8_t *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_spack.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - struct dynbuf*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: spack_enc16
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode spack_enc16(struct dynbuf *buf, uint16_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - val
    - src
    - end
    argTypes:
    - uint16_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: spack_dec16
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode spack_dec16(uint16_t *val, const uint8_t **src,\n                            const
      uint8_t *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_spack.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - struct dynbuf*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: spack_enc32
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode spack_enc32(struct dynbuf *buf, uint32_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - val
    - src
    - end
    argTypes:
    - uint32_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: spack_dec32
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode spack_dec32(uint32_t *val, const uint8_t **src,\n                            const
      uint8_t *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_spack.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - struct dynbuf*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: spack_enc64
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode spack_enc64(struct dynbuf *buf, uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - val
    - src
    - end
    argTypes:
    - uint64_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: spack_dec64
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode spack_dec64(uint64_t *val, const uint8_t **src,\n                            const
      uint8_t *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls_spack.c:125,1
    - Dst: spack_enc16
      Src: /src/curl/lib/vtls/vtls_spack.c:129,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_spack.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - s
    argTypes:
    - struct dynbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: spack_encstr16
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - strlen
    - spack_enc16
    - curlx_dyn_addn
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode spack_encstr16(struct dynbuf *buf, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spack_dec16
      Src: /src/curl/lib/vtls/vtls_spack.c:143,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vtls/vtls_spack.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - val
    - src
    - end
    argTypes:
    - char**
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: spack_decstr16
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - curlx_memdup0
    - spack_dec16
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode spack_decstr16(char **val, const uint8_t **src,\n                               const
      uint8_t *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spack_enc16
      Src: /src/curl/lib/vtls/vtls_spack.c:159,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_spack.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - data
    - data_len
    argTypes:
    - struct dynbuf*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: spack_encdata16
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - spack_enc16
    - curlx_dyn_addn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode spack_encdata16(struct dynbuf *buf, const uint8_t *data,\n
      \                               size_t data_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spack_dec16
      Src: /src/curl/lib/vtls/vtls_spack.c:173,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vtls/vtls_spack.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - val
    - val_len
    - src
    - end
    argTypes:
    - uint8_t**
    - size_t*
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: spack_decdata16
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - curlx_memdup0
    - spack_dec16
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode spack_decdata16(uint8_t **val, size_t *val_len,\n                                const
      uint8_t **src, const uint8_t *end)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_spack.c:189,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_spack.c:190,1
    - Dst: spack_enc8
      Src: /src/curl/lib/vtls/vtls_spack.c:195,1
    - Dst: spack_enc8
      Src: /src/curl/lib/vtls/vtls_spack.c:197,1
    - Dst: spack_encdata16
      Src: /src/curl/lib/vtls/vtls_spack.c:199,1
    - Dst: spack_enc8
      Src: /src/curl/lib/vtls/vtls_spack.c:201,1
    - Dst: spack_enc16
      Src: /src/curl/lib/vtls/vtls_spack.c:203,1
    - Dst: spack_enc8
      Src: /src/curl/lib/vtls/vtls_spack.c:205,1
    - Dst: spack_enc64
      Src: /src/curl/lib/vtls/vtls_spack.c:207,1
    - Dst: spack_enc8
      Src: /src/curl/lib/vtls/vtls_spack.c:209,1
    - Dst: spack_encstr16
      Src: /src/curl/lib/vtls/vtls_spack.c:211,1
    - Dst: spack_enc8
      Src: /src/curl/lib/vtls/vtls_spack.c:217,1
    - Dst: spack_enc32
      Src: /src/curl/lib/vtls/vtls_spack.c:219,1
    - Dst: spack_enc8
      Src: /src/curl/lib/vtls/vtls_spack.c:222,1
    - Dst: spack_encdata16
      Src: /src/curl/lib/vtls/vtls_spack.c:224,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_spack.c:228,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 3
    argNames:
    - data
    - s
    - buf
    argTypes:
    - struct Curl_easy*
    - struct Curl_ssl_session*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 230
    functionName: Curl_ssl_session_pack
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - spack_enc8
    - spack_enc32
    - spack_encdata16
    - DEBUGASSERT
    - spack_enc64
    - spack_encstr16
    - CURL_TRC_SSLS
    - spack_enc16
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_session_pack(struct Curl_easy *data,\n                               struct
      Curl_ssl_session *s,\n                               struct dynbuf *buf)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_spack.c:245,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_spack.c:246,1
    - Dst: spack_dec8
      Src: /src/curl/lib/vtls/vtls_spack.c:249,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/vtls_spack.c:257,1
    - Dst: spack_dec8
      Src: /src/curl/lib/vtls/vtls_spack.c:264,1
    - Dst: spack_decstr16
      Src: /src/curl/lib/vtls/vtls_spack.c:270,1
    - Dst: spack_dec32
      Src: /src/curl/lib/vtls/vtls_spack.c:275,1
    - Dst: spack_dec16
      Src: /src/curl/lib/vtls/vtls_spack.c:281,1
    - Dst: spack_decdata16
      Src: /src/curl/lib/vtls/vtls_spack.c:287,1
    - Dst: spack_decdata16
      Src: /src/curl/lib/vtls/vtls_spack.c:294,1
    - Dst: spack_dec64
      Src: /src/curl/lib/vtls/vtls_spack.c:301,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_spack.c:314,1
    - Dst: Curl_ssl_session_destroy
      Src: /src/curl/lib/vtls/vtls_spack.c:315,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 82
    argCount: 4
    argNames:
    - data
    - bufv
    - buflen
    - ps
    argTypes:
    - struct Curl_easy*
    - void*
    - size_t
    - struct Curl_ssl_session**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 320
    functionName: Curl_ssl_session_unpack
    functionSourceFile: /src/curl/lib/vtls/vtls_spack.c
    functionUses: 0
    functionsReached:
    - spack_decdata16
    - DEBUGASSERT
    - spack_dec32
    - curlx_calloc
    - spack_dec64
    - spack_decstr16
    - CURL_TRC_SSLS
    - Curl_ssl_session_destroy
    - spack_dec8
    - spack_dec16
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_session_unpack(struct Curl_easy *data,\n                                 const
      void *bufv, size_t buflen,\n                                 struct Curl_ssl_session
      **ps)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_tls_keylog_enabled
      Src: /src/curl/lib/vtls/wolfssl.c:130,1
    - Dst: wolfSSL_get_client_random
      Src: /src/curl/lib/vtls/wolfssl.c:160,1
    - Dst: Curl_tls_keylog_write
      Src: /src/curl/lib/vtls/wolfssl.c:165,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - ssl
    - id
    - secret
    - secretSz
    - ctx
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: wssl_tls13_secret_callback
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - Curl_tls_keylog_enabled
    - wolfSSL_get_client_random
    - Curl_tls_keylog_write
    linkageType: ''
    returnType: int
    signature: "int wssl_tls13_secret_callback(SSL *ssl, int id,\n                                      const
      unsigned char *secret,\n                                      int secretSz,
      void *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_GetVersion
      Src: /src/curl/lib/vtls/wolfssl.c:179,1
    - Dst: wolfSSL_get_keys
      Src: /src/curl/lib/vtls/wolfssl.c:191,1
    - Dst: Curl_tls_keylog_write
      Src: /src/curl/lib/vtls/wolfssl.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - WOLFSSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 207
    functionName: wssl_log_tls12_secret
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_keys
    - Curl_tls_keylog_write
    - wolfSSL_GetVersion
    linkageType: ''
    returnType: void
    signature: void wssl_log_tls12_secret(WOLFSSL *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/wolfssl.c:214,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/wolfssl.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: wssl_do_file_type
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    linkageType: ''
    returnType: int
    signature: int wssl_do_file_type(const char *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_BIO_set_shutdown
      Src: /src/curl/lib/vtls/wolfssl.c:246,1
    - Dst: wolfSSL_BIO_set_data
      Src: /src/curl/lib/vtls/wolfssl.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - WOLFSSL_BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: wssl_bio_cf_create
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_BIO_set_data
    - wolfSSL_BIO_set_shutdown
    linkageType: ''
    returnType: int
    signature: int wssl_bio_cf_create(WOLFSSL_BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - WOLFSSL_BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: wssl_bio_cf_destroy
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wssl_bio_cf_destroy(WOLFSSL_BIO *bio)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_BIO_get_data
      Src: /src/curl/lib/vtls/wolfssl.c:261,1
    - Dst: wolfSSL_BIO_get_shutdown
      Src: /src/curl/lib/vtls/wolfssl.c:270,1
    - Dst: wolfSSL_BIO_set_shutdown
      Src: /src/curl/lib/vtls/wolfssl.c:277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - WOLFSSL_BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 300
    functionName: wssl_bio_cf_ctrl
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_BIO_get_shutdown
    - wolfSSL_BIO_set_shutdown
    - wolfSSL_BIO_get_data
    linkageType: ''
    returnType: long
    signature: long wssl_bio_cf_ctrl(WOLFSSL_BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_BIO_get_data
      Src: /src/curl/lib/vtls/wolfssl.c:304,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/wolfssl.c:307,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:311,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:317,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vtls/wolfssl.c:322,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:325,1
    - Dst: wolfSSL_BIO_clear_retry_flags
      Src: /src/curl/lib/vtls/wolfssl.c:328,1
    - Dst: wolfSSL_BIO_set_retry_write
      Src: /src/curl/lib/vtls/wolfssl.c:331,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - bio
    - buf
    - blen
    argTypes:
    - WOLFSSL_BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 338
    functionName: wssl_bio_cf_out_write
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - wolfSSL_BIO_set_retry_write
    - wolfSSL_BIO_get_data
    - Curl_conn_cf_send
    - wolfSSL_BIO_clear_retry_flags
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: int wssl_bio_cf_out_write(WOLFSSL_BIO *bio, const char *buf, int blen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_BIO_get_data
      Src: /src/curl/lib/vtls/wolfssl.c:342,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/wolfssl.c:345,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:349,1
    - Dst: Curl_wssl_setup_x509_store
      Src: /src/curl/lib/vtls/wolfssl.c:361,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:363,1
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/vtls/wolfssl.c:369,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:371,1
    - Dst: wolfSSL_BIO_clear_retry_flags
      Src: /src/curl/lib/vtls/wolfssl.c:373,1
    - Dst: wolfSSL_BIO_set_retry_read
      Src: /src/curl/lib/vtls/wolfssl.c:376,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - bio
    - buf
    - blen
    argTypes:
    - WOLFSSL_BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 380
    functionName: wssl_bio_cf_in_read
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - Curl_wssl_setup_x509_store
    - DEBUGASSERT
    - wolfSSL_BIO_get_data
    - wolfSSL_BIO_clear_retry_flags
    - Curl_conn_cf_recv
    - wolfSSL_BIO_set_retry_read
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: int wssl_bio_cf_in_read(WOLFSSL_BIO *bio, char *buf, int blen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_BIO_meth_new
      Src: /src/curl/lib/vtls/wolfssl.c:386,1
    - Dst: wolfSSL_BIO_meth_set_write
      Src: /src/curl/lib/vtls/wolfssl.c:390,1
    - Dst: wolfSSL_BIO_meth_set_read
      Src: /src/curl/lib/vtls/wolfssl.c:391,1
    - Dst: wolfSSL_BIO_meth_set_ctrl
      Src: /src/curl/lib/vtls/wolfssl.c:392,1
    - Dst: wolfSSL_BIO_meth_set_create
      Src: /src/curl/lib/vtls/wolfssl.c:393,1
    - Dst: wolfSSL_BIO_meth_set_destroy
      Src: /src/curl/lib/vtls/wolfssl.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 396
    functionName: wssl_bio_cf_init_methods
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_BIO_meth_set_ctrl
    - wolfSSL_BIO_meth_set_read
    - wolfSSL_BIO_meth_set_destroy
    - wolfSSL_BIO_meth_set_write
    - wolfSSL_BIO_meth_set_create
    - wolfSSL_BIO_meth_new
    linkageType: ''
    returnType: int
    signature: int wssl_bio_cf_init_methods(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_BIO_meth_free
      Src: /src/curl/lib/vtls/wolfssl.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: wssl_bio_cf_free_methods
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void wssl_bio_cf_free_methods(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: wssl_bio_cf_init_methods
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wssl_bio_cf_init_methods()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 408
    functionName: wssl_bio_cf_free_methods
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wssl_bio_cf_free_methods()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_i2d_SSL_SESSION
      Src: /src/curl/lib/vtls/wolfssl.c:430,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:432,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/wolfssl.c:436,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:438,1
    - Dst: wolfSSL_i2d_SSL_SESSION
      Src: /src/curl/lib/vtls/wolfssl.c:444,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:446,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vtls/wolfssl.c:451,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/wolfssl.c:453,1
    - Dst: wolfSSL_SESSION_get_max_early_data
      Src: /src/curl/lib/vtls/wolfssl.c:458,1
    - Dst: Curl_ssl_session_create2
      Src: /src/curl/lib/vtls/wolfssl.c:461,1
    - Dst: time
      Src: /src/curl/lib/vtls/wolfssl.c:463,1
    - Dst: wolfSSL_SESSION_get_timeout
      Src: /src/curl/lib/vtls/wolfssl.c:464,1
    - Dst: Curl_ssl_scache_put
      Src: /src/curl/lib/vtls/wolfssl.c:469,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/wolfssl.c:474,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 8
    argNames:
    - cf
    - data
    - ssl_peer_key
    - session
    - ietf_tls_id
    - alpn
    - quic_tp
    - quic_tp_len
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - WOLFSSL_SESSION*
    - int
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 476
    functionName: Curl_wssl_cache_session
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_i2d_SSL_SESSION
    - failf
    - Curl_ssl_session_create2
    - time
    - curlx_free
    - Curl_ssl_scache_put
    - curlx_calloc
    - wolfSSL_SESSION_get_timeout
    - curlx_memdup0
    - wolfSSL_SESSION_get_max_early_data
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_wssl_cache_session(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 const char *ssl_peer_key,\n
      \                                WOLFSSL_SESSION *session,\n                                 int
      ietf_tls_id,\n                                 const char *alpn,\n                                 unsigned
      char *quic_tp,\n                                 size_t quic_tp_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_get_app_data
      Src: /src/curl/lib/vtls/wolfssl.c:482,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:483,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/wolfssl.c:486,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:487,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:488,1
    - Dst: Curl_wssl_cache_session
      Src: /src/curl/lib/vtls/wolfssl.c:490,1
    - Dst: wolfSSL_version
      Src: /src/curl/lib/vtls/wolfssl.c:491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ssl
    - session
    argTypes:
    - WOLFSSL*
    - WOLFSSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 496
    functionName: wssl_vtls_new_session_cb
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_app_data
    - DEBUGASSERT
    - wolfSSL_version
    - Curl_wssl_cache_session
    - CF_DATA_CURRENT
    linkageType: ''
    returnType: int
    signature: int wssl_vtls_new_session_cb(WOLFSSL *ssl, WOLFSSL_SESSION *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_SESSION_get_max_early_data
      Src: /src/curl/lib/vtls/wolfssl.c:509,1
    - Dst: wolfSSL_get_session
      Src: /src/curl/lib/vtls/wolfssl.c:510,1
    - Dst: Curl_on_session_reuse
      Src: /src/curl/lib/vtls/wolfssl.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - cf
    - data
    - alpns
    - scs
    - do_early_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct alpn_spec*
    - struct Curl_ssl_session*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 518
    functionName: wssl_on_session_reuse
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_session
    - Curl_on_session_reuse
    - wolfSSL_SESSION_get_max_early_data
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_on_session_reuse(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      struct alpn_spec *alpns,\n
      \                                     struct Curl_ssl_session *scs,\n                                      bool
      *do_early_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/wolfssl.c:528,1
    - Dst: Curl_ssl_scache_take
      Src: /src/curl/lib/vtls/wolfssl.c:532,1
    - Dst: Curl_alpn_contains_proto
      Src: /src/curl/lib/vtls/wolfssl.c:534,1
    - Dst: wolfSSL_d2i_SSL_SESSION
      Src: /src/curl/lib/vtls/wolfssl.c:538,1
    - Dst: wolfSSL_set_session
      Src: /src/curl/lib/vtls/wolfssl.c:540,1
    - Dst: Curl_ssl_session_destroy
      Src: /src/curl/lib/vtls/wolfssl.c:542,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:544,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:548,1
    - Dst: strcmp
      Src: /src/curl/lib/vtls/wolfssl.c:552,1
    - Dst: wolfSSL_get_version
      Src: /src/curl/lib/vtls/wolfssl.c:552,1
    - Dst: sess_reuse_cb
      Src: /src/curl/lib/vtls/wolfssl.c:555,1
    - Dst: wolfSSL_SESSION_free
      Src: /src/curl/lib/vtls/wolfssl.c:557,1
    - Dst: Curl_alpn_restrict_to
      Src: /src/curl/lib/vtls/wolfssl.c:567,1
    - Dst: wolfSSL_set_max_early_data
      Src: /src/curl/lib/vtls/wolfssl.c:568,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:572,1
    - Dst: wolfSSL_SESSION_free
      Src: /src/curl/lib/vtls/wolfssl.c:576,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:579,1
    - Dst: Curl_ssl_scache_return
      Src: /src/curl/lib/vtls/wolfssl.c:583,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 6
    argNames:
    - cf
    - data
    - wss
    - alpns
    - ssl_peer_key
    - sess_reuse_cb
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct wssl_ctx*
    - struct alpn_spec*
    - char*
    - Curl_wssl_init_session_reuse_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 585
    functionName: wssl_setup_session
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_version
    - DEBUGASSERT
    - failf
    - Curl_ssl_scache_take
    - Curl_ssl_scache_return
    - wolfSSL_set_session
    - wolfSSL_d2i_SSL_SESSION
    - Curl_ssl_cf_get_config
    - infof
    - strcmp
    - Curl_alpn_contains_proto
    - wolfSSL_SESSION_free
    - Curl_alpn_restrict_to
    - sess_reuse_cb
    - Curl_ssl_session_destroy
    - wolfSSL_set_max_early_data
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_setup_session(\n  struct Curl_cfilter *cf,\n  struct
      Curl_easy *data,\n  struct wssl_ctx *wss,\n  struct alpn_spec *alpns,\n  const
      char *ssl_peer_key,\n  Curl_wssl_init_session_reuse_cb *sess_reuse_cb)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/wolfssl.c:592,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/wolfssl.c:598,1
    - Dst: wolfSSL_CTX_load_system_CA_certs
      Src: /src/curl/lib/vtls/wolfssl.c:609,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:610,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:614,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:617,1
    - Dst: wolfSSL_CTX_load_verify_buffer
      Src: /src/curl/lib/vtls/wolfssl.c:625,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:629,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:634,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:641,1
    - Dst: wolfSSL_CTX_load_verify_locations_ex
      Src: /src/curl/lib/vtls/wolfssl.c:648,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:656,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:665,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:671,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:673,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:674,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - cf
    - data
    - store
    - wssl
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - WOLFSSL_X509_STORE*
    - struct wssl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 679
    functionName: wssl_populate_x509_store
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_CTX_load_verify_buffer
    - failf
    - infof
    - Curl_ssl_cf_get_config
    - Curl_ssl_cf_get_primary_config
    - wolfSSL_CTX_load_system_CA_certs
    - wolfSSL_CTX_load_verify_locations_ex
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_populate_x509_store(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data,\n                                         WOLFSSL_X509_STORE
      *store,\n                                         struct wssl_ctx *wssl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:693,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:694,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/wolfssl.c:694,1
    - Dst: wolfSSL_X509_STORE_free
      Src: /src/curl/lib/vtls/wolfssl.c:698,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/wolfssl.c:700,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/wolfssl.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - key
    - key_len
    - p
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 702
    functionName: wssl_x509_share_free
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - wolfSSL_X509_STORE_free
    - memcmp
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void wssl_x509_share_free(void *key, size_t key_len, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vtls/wolfssl.c:708,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/wolfssl.c:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - mb
    argTypes:
    - struct Curl_easy*
    - struct wssl_x509_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 715
    functionName: wssl_cached_x509_store_expired
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: bool
    signature: "bool wssl_cached_x509_store_expired(struct Curl_easy *data,\n                                           const
      struct wssl_x509_share *mb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/wolfssl.c:720,1
    - Dst: strcmp
      Src: /src/curl/lib/vtls/wolfssl.c:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - mb
    argTypes:
    - struct Curl_cfilter*
    - struct wssl_x509_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: wssl_cached_x509_store_different
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_cf_get_primary_config
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool wssl_cached_x509_store_different(struct Curl_cfilter *cf,\n                                             const
      struct wssl_x509_share *mb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:734,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/vtls/wolfssl.c:735,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/wolfssl.c:736,1
    - Dst: wssl_cached_x509_store_expired
      Src: /src/curl/lib/vtls/wolfssl.c:739,1
    - Dst: wssl_cached_x509_store_different
      Src: /src/curl/lib/vtls/wolfssl.c:740,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 727
    functionDepth: 3
    functionLinenumber: 727
    functionLinenumberEnd: 745
    functionName: wssl_get_cached_x509_store
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_hash_pick
    - wssl_cached_x509_store_expired
    - CURL_UNCONST
    - wssl_cached_x509_store_different
    linkageType: ''
    returnType: WOLFSSL_X509_STORE
    signature: "WOLFSSL_X509_STORE *wssl_get_cached_x509_store(struct Curl_cfilter
      *cf,\n                                                      struct Curl_easy
      *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/wolfssl.c:751,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:755,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/vtls/wolfssl.c:758,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/wolfssl.c:759,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/wolfssl.c:763,1
    - Dst: Curl_hash_add2
      Src: /src/curl/lib/vtls/wolfssl.c:766,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/wolfssl.c:767,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/wolfssl.c:770,1
    - Dst: wolfSSL_X509_STORE_up_ref
      Src: /src/curl/lib/vtls/wolfssl.c:775,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/wolfssl.c:779,1
    - Dst: wolfSSL_X509_STORE_free
      Src: /src/curl/lib/vtls/wolfssl.c:781,1
    - Dst: wolfSSL_X509_STORE_free
      Src: /src/curl/lib/vtls/wolfssl.c:787,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/wolfssl.c:788,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/wolfssl.c:791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - cf
    - data
    - store
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - WOLFSSL_X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 747
    functionDepth: 3
    functionLinenumber: 747
    functionLinenumberEnd: 795
    functionName: wssl_set_cached_x509_store
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_hash_pick
    - curlx_strdup
    - CURL_UNCONST
    - curlx_free
    - curlx_calloc
    - wolfSSL_X509_STORE_up_ref
    - Curl_ssl_cf_get_primary_config
    - wolfSSL_X509_STORE_free
    - Curl_hash_add2
    linkageType: ''
    returnType: void
    signature: "void wssl_set_cached_x509_store(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       WOLFSSL_X509_STORE
      *store)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/wolfssl.c:801,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/wolfssl.c:802,1
    - Dst: wssl_get_cached_x509_store
      Src: /src/curl/lib/vtls/wolfssl.c:817,1
    - Dst: wolfSSL_CTX_get_cert_store
      Src: /src/curl/lib/vtls/wolfssl.c:820,1
    - Dst: wolfSSL_X509_STORE_up_ref
      Src: /src/curl/lib/vtls/wolfssl.c:823,1
    - Dst: wolfSSL_CTX_set_cert_store
      Src: /src/curl/lib/vtls/wolfssl.c:824,1
    - Dst: wolfSSL_X509_STORE_new
      Src: /src/curl/lib/vtls/wolfssl.c:829,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:831,1
    - Dst: wolfSSL_CTX_set_cert_store
      Src: /src/curl/lib/vtls/wolfssl.c:834,1
    - Dst: wssl_populate_x509_store
      Src: /src/curl/lib/vtls/wolfssl.c:836,1
    - Dst: wssl_set_cached_x509_store
      Src: /src/curl/lib/vtls/wolfssl.c:838,1
    - Dst: wolfSSL_CTX_get_cert_store
      Src: /src/curl/lib/vtls/wolfssl.c:843,1
    - Dst: wssl_populate_x509_store
      Src: /src/curl/lib/vtls/wolfssl.c:844,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - cf
    - data
    - wssl
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct wssl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 848
    functionName: Curl_wssl_setup_x509_store
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 1
    functionsReached:
    - wssl_populate_x509_store
    - wolfSSL_X509_STORE_new
    - wssl_set_cached_x509_store
    - failf
    - Curl_ssl_cf_get_config
    - wolfSSL_X509_STORE_up_ref
    - wssl_get_cached_x509_store
    - Curl_ssl_cf_get_primary_config
    - wolfSSL_CTX_set_cert_store
    - wolfSSL_CTX_get_cert_store
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_wssl_setup_x509_store(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    struct wssl_ctx *wssl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_get_cipher_list
      Src: /src/curl/lib/vtls/wolfssl.c:856,1
    - Dst: strncmp
      Src: /src/curl/lib/vtls/wolfssl.c:858,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/wolfssl.c:862,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/wolfssl.c:863,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/wolfssl.c:868,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/wolfssl.c:869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - tls13
    - buf
    argTypes:
    - bool
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 874
    functionName: wssl_add_default_ciphers
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - curlx_dyn_len
    - wolfSSL_get_cipher_list
    - strlen
    - strncmp
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode wssl_add_default_ciphers(bool tls13, struct dynbuf *buf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_CTX_SetMinVersion
      Src: /src/curl/lib/vtls/wolfssl.c:884,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/wolfssl.c:887,1
    - Dst: wolfSSL_CTX_SetMinVersion
      Src: /src/curl/lib/vtls/wolfssl.c:889,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/wolfssl.c:892,1
    - Dst: wolfSSL_CTX_SetMinVersion
      Src: /src/curl/lib/vtls/wolfssl.c:894,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/wolfssl.c:898,1
    - Dst: wolfSSL_CTX_SetMinVersion
      Src: /src/curl/lib/vtls/wolfssl.c:900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - version
    argTypes:
    - WOLFSSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 904
    functionName: wssl_legacy_CTX_set_min_proto_version
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_CTX_SetMinVersion
    - FALLTHROUGH
    linkageType: ''
    returnType: int
    signature: int wssl_legacy_CTX_set_min_proto_version(WOLFSSL_CTX *ctx, int version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - version
    argTypes:
    - WOLFSSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 910
    functionName: wssl_legacy_CTX_set_max_proto_version
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wssl_legacy_CTX_set_max_proto_version(WOLFSSL_CTX *ctx, int version)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: wssl_do_file_type
      Src: /src/curl/lib/vtls/wolfssl.c:926,1
    - Dst: wolfSSL_CTX_use_certificate_chain_buffer
      Src: /src/curl/lib/vtls/wolfssl.c:932,1
    - Dst: wolfSSL_CTX_use_certificate_chain_file
      Src: /src/curl/lib/vtls/wolfssl.c:935,1
    - Dst: wolfSSL_CTX_use_certificate_buffer
      Src: /src/curl/lib/vtls/wolfssl.c:939,1
    - Dst: wolfSSL_CTX_use_certificate_file
      Src: /src/curl/lib/vtls/wolfssl.c:941,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:944,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:948,1
    - Dst: wssl_do_file_type
      Src: /src/curl/lib/vtls/wolfssl.c:957,1
    - Dst: wolfSSL_CTX_use_PrivateKey_buffer
      Src: /src/curl/lib/vtls/wolfssl.c:960,1
    - Dst: wolfSSL_CTX_use_PrivateKey_file
      Src: /src/curl/lib/vtls/wolfssl.c:962,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:964,1
    - Dst: wssl_do_file_type
      Src: /src/curl/lib/vtls/wolfssl.c:972,1
    - Dst: wolfSSL_CTX_use_certificate_chain_buffer
      Src: /src/curl/lib/vtls/wolfssl.c:977,1
    - Dst: wolfSSL_CTX_use_certificate_buffer
      Src: /src/curl/lib/vtls/wolfssl.c:982,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:986,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:990,1
    - Dst: wssl_do_file_type
      Src: /src/curl/lib/vtls/wolfssl.c:997,1
    - Dst: wolfSSL_CTX_use_PrivateKey_buffer
      Src: /src/curl/lib/vtls/wolfssl.c:999,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1002,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 3
    argNames:
    - data
    - ssl_config
    - wctx
    argTypes:
    - struct Curl_easy*
    - struct ssl_config_data*
    - struct wssl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 915
    functionDepth: 4
    functionLinenumber: 915
    functionLinenumberEnd: 1008
    functionName: wssl_client_cert
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wssl_do_file_type
    - wolfSSL_CTX_use_certificate_buffer
    - wolfSSL_CTX_use_certificate_chain_buffer
    - failf
    - wolfSSL_CTX_use_PrivateKey_buffer
    - wolfSSL_CTX_use_PrivateKey_file
    - wolfSSL_CTX_use_certificate_chain_file
    - wolfSSL_CTX_use_certificate_file
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_client_cert(struct Curl_easy *data,\n                                 struct
      ssl_config_data *ssl_config,\n                                 struct wssl_ctx
      *wctx)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1017,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1036,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1059,1
    - Dst: wolfSSL_CTX_set_min_proto_version
      Src: /src/curl/lib/vtls/wolfssl.c:1063,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1065,1
    - Dst: wolfSSL_CTX_set_max_proto_version
      Src: /src/curl/lib/vtls/wolfssl.c:1070,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1072,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 5
    argNames:
    - data
    - conn_config
    - wctx
    - min_version
    - max_version
    argTypes:
    - struct Curl_easy*
    - struct ssl_primary_config*
    - struct wssl_ctx*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1077
    functionName: ssl_version
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 2
    functionsReached:
    - failf
    - wolfSSL_CTX_set_min_proto_version
    - wolfSSL_CTX_set_max_proto_version
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_version(struct Curl_easy *data,\n                            struct
      ssl_primary_config *conn_config,\n                            struct wssl_ctx
      *wctx,\n                            int *min_version, int *max_version)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/curl/lib/vtls/wolfssl.c:1094,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1095,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1098,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/wolfssl.c:1107,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/wolfssl.c:1111,1
    - Dst: wssl_add_default_ciphers
      Src: /src/curl/lib/vtls/wolfssl.c:1113,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/wolfssl.c:1118,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/wolfssl.c:1119,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/wolfssl.c:1121,1
    - Dst: wssl_add_default_ciphers
      Src: /src/curl/lib/vtls/wolfssl.c:1124,1
    - Dst: wolfSSL_CTX_set_cipher_list
      Src: /src/curl/lib/vtls/wolfssl.c:1127,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/wolfssl.c:1127,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1128,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/wolfssl.c:1128,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1132,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/wolfssl.c:1132,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/wolfssl.c:1134,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 5
    argNames:
    - data
    - wctx
    - conn_config
    - tls_min
    - tls_max
    argTypes:
    - struct Curl_easy*
    - struct wssl_ctx*
    - struct ssl_primary_config*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1138
    functionName: wssl_init_ciphers
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wssl_add_default_ciphers
    - curlx_dyn_init
    - failf
    - curlx_dyn_add
    - curlx_dyn_addn
    - curlx_dyn_free
    - curlx_dyn_len
    - infof
    - curlx_dyn_ptr
    - wolfSSL_CTX_set_cipher_list
    - SSL_CTX_set_cipher_list
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_init_ciphers(struct Curl_easy *data,\n                                  struct
      wssl_ctx *wctx,\n                                  struct ssl_primary_config
      *conn_config,\n                                  int tls_min, int tls_max)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/wolfssl.c:1151,1
    - Dst: strncmp
      Src: /src/curl/lib/vtls/wolfssl.c:1157,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/wolfssl.c:1157,1
    - Dst: wolfSSL_CTX_set1_curves_list
      Src: /src/curl/lib/vtls/wolfssl.c:1166,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1167,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 5
    argNames:
    - data
    - wctx
    - conn_config
    - transport
    - out_pqkem
    argTypes:
    - struct Curl_easy*
    - struct wssl_ctx*
    - struct ssl_primary_config*
    - unsigned char
    - word16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1173
    functionName: wssl_init_curves
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - failf
    - strlen
    - wolfSSL_CTX_set1_curves_list
    - CURL_UNCONST
    - strncmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_init_curves(struct Curl_easy *data,\n                                 struct
      wssl_ctx *wctx,\n                                 struct ssl_primary_config
      *conn_config,\n                                 unsigned char transport\n#ifdef
      WOLFSSL_HAVE_KYBER\n                                 , word16 *out_pqkem\n#endif\n
      \                                )"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_new
      Src: /src/curl/lib/vtls/wolfssl.c:1189,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1191,1
    - Dst: wolfSSL_set_app_data
      Src: /src/curl/lib/vtls/wolfssl.c:1196,1
    - Dst: wolfSSL_set_quic_use_legacy_codepoint
      Src: /src/curl/lib/vtls/wolfssl.c:1202,1
    - Dst: wolfSSL_UseKeyShare
      Src: /src/curl/lib/vtls/wolfssl.c:1209,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1210,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vtls/wolfssl.c:1216,1
    - Dst: wssl_setup_session
      Src: /src/curl/lib/vtls/wolfssl.c:1218,1
    - Dst: memset
      Src: /src/curl/lib/vtls/wolfssl.c:1225,1
    - Dst: Curl_alpn_to_proto_str
      Src: /src/curl/lib/vtls/wolfssl.c:1226,1
    - Dst: wolfSSL_UseALPN
      Src: /src/curl/lib/vtls/wolfssl.c:1228,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1232,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1235,1
    - Dst: Curl_tls_keylog_enabled
      Src: /src/curl/lib/vtls/wolfssl.c:1240,1
    - Dst: wolfSSL_KeepArrays
      Src: /src/curl/lib/vtls/wolfssl.c:1242,1
    - Dst: wolfSSL_set_tls13_secret_cb
      Src: /src/curl/lib/vtls/wolfssl.c:1244,1
    - Dst: wolfSSL_UseSecureRenegotiation
      Src: /src/curl/lib/vtls/wolfssl.c:1250,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1251,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 9
    argNames:
    - wctx
    - cf
    - data
    - peer
    - alpns
    - ssl_user_data
    - transport
    - word16
    - sess_reuse_cb
    argTypes:
    - struct wssl_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    - struct alpn_spec*
    - void*
    - unsigned char
    - WOLFSSL_HAVE_KYBER
    - Curl_wssl_init_session_reuse_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1257
    functionName: wssl_init_ssl_handle
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_scache_use
    - wolfSSL_set_quic_use_legacy_codepoint
    - wolfSSL_new
    - failf
    - wolfSSL_KeepArrays
    - wolfSSL_UseKeyShare
    - wolfSSL_set_tls13_secret_cb
    - Curl_alpn_to_proto_str
    - wolfSSL_UseALPN
    - Curl_tls_keylog_enabled
    - memset
    - wolfSSL_UseSecureRenegotiation
    - wolfSSL_set_app_data
    - wssl_setup_session
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_init_ssl_handle(\n  struct wssl_ctx *wctx,\n  struct
      Curl_cfilter *cf,\n  struct Curl_easy *data,\n  struct ssl_peer *peer,\n  struct
      alpn_spec *alpns,\n  void *ssl_user_data,\n  unsigned char transport,\n#ifdef
      WOLFSSL_HAVE_KYBER\n  word16 pqkem,\n#endif\n  Curl_wssl_init_session_reuse_cb
      *sess_reuse_cb)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1267,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1272,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/wolfssl.c:1279,1
    - Dst: wolfSSL_SetEchConfigsBase64
      Src: /src/curl/lib/vtls/wolfssl.c:1280,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1287,1
    - Dst: Curl_conn_dns_get_https
      Src: /src/curl/lib/vtls/wolfssl.c:1292,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1298,1
    - Dst: wolfSSL_SetEchConfigs
      Src: /src/curl/lib/vtls/wolfssl.c:1299,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1301,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1308,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1312,1
    - Dst: wolfSSL_set_min_proto_version
      Src: /src/curl/lib/vtls/wolfssl.c:1320,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1321,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - wctx
    - cf
    - data
    argTypes:
    - struct wssl_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1325
    functionName: wssl_init_ech
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_SetEchConfigs
    - wolfSSL_SetEchConfigsBase64
    - Curl_conn_dns_get_https
    - infof
    - strlen
    - wolfSSL_set_min_proto_version
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_init_ech(struct wssl_ctx *wctx,\n                              struct
      Curl_cfilter *cf,\n                              struct Curl_easy *data)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/wolfssl.c:1338,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1349,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1350,1
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/wolfssl.c:1351,1
    - Dst: Curl_alpn_copy
      Src: /src/curl/lib/vtls/wolfssl.c:1356,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1357,1
    - Dst: Curl_conn_cf_get_transport
      Src: /src/curl/lib/vtls/wolfssl.c:1358,1
    - Dst: wolfTLS_client_method
      Src: /src/curl/lib/vtls/wolfssl.c:1360,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1362,1
    - Dst: wolfSSL_CTX_free
      Src: /src/curl/lib/vtls/wolfssl.c:1368,1
    - Dst: wolfSSL_CTX_new
      Src: /src/curl/lib/vtls/wolfssl.c:1370,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1372,1
    - Dst: ssl_version
      Src: /src/curl/lib/vtls/wolfssl.c:1377,1
    - Dst: wssl_init_ciphers
      Src: /src/curl/lib/vtls/wolfssl.c:1381,1
    - Dst: wssl_init_curves
      Src: /src/curl/lib/vtls/wolfssl.c:1385,1
    - Dst: wssl_client_cert
      Src: /src/curl/lib/vtls/wolfssl.c:1393,1
    - Dst: wolfSSL_CTX_set_verify
      Src: /src/curl/lib/vtls/wolfssl.c:1401,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/wolfssl.c:1406,1
    - Dst: wolfSSL_CTX_UseSNI
      Src: /src/curl/lib/vtls/wolfssl.c:1408,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1410,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1414,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vtls/wolfssl.c:1420,1
    - Dst: wolfSSL_CTX_sess_set_new_cb
      Src: /src/curl/lib/vtls/wolfssl.c:1422,1
    - Dst: cb_setup
      Src: /src/curl/lib/vtls/wolfssl.c:1427,1
    - Dst: Curl_wssl_setup_x509_store
      Src: /src/curl/lib/vtls/wolfssl.c:1435,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1442,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1448,1
    - Dst: wssl_init_ssl_handle
      Src: /src/curl/lib/vtls/wolfssl.c:1457,1
    - Dst: CURLECH_ENABLED
      Src: /src/curl/lib/vtls/wolfssl.c:1467,1
    - Dst: wssl_init_ech
      Src: /src/curl/lib/vtls/wolfssl.c:1468,1
    - Dst: wolfSSL_free
      Src: /src/curl/lib/vtls/wolfssl.c:1478,1
    - Dst: wolfSSL_CTX_free
      Src: /src/curl/lib/vtls/wolfssl.c:1482,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 106
    argCount: 9
    argNames:
    - wctx
    - cf
    - data
    - peer
    - alpns_requested
    - cb_setup
    - cb_user_data
    - ssl_user_data
    - sess_reuse_cb
    argTypes:
    - struct wssl_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    - struct alpn_spec*
    - Curl_wssl_ctx_setup_cb*
    - void*
    - void*
    - Curl_wssl_init_session_reuse_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1328
    functionDepth: 5
    functionLinenumber: 1328
    functionLinenumberEnd: 1486
    functionName: Curl_wssl_ctx_init
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wssl_client_cert
    - DEBUGASSERT
    - wolfSSL_CTX_sess_set_new_cb
    - wssl_init_ssl_handle
    - wolfSSL_CTX_UseSNI
    - Curl_conn_cf_get_transport
    - CURL_TRC_CF
    - Curl_ssl_scache_use
    - wssl_init_curves
    - wssl_init_ech
    - wssl_init_ciphers
    - Curl_ssl_cf_get_primary_config
    - cb_setup
    - wolfTLS_client_method
    - failf
    - Curl_ssl_cf_get_config
    - Curl_alpn_copy
    - Curl_wssl_setup_x509_store
    - wolfSSL_CTX_free
    - wolfSSL_CTX_new
    - wolfSSL_free
    - wolfSSL_CTX_set_verify
    - ssl_version
    - strlen
    - CURLECH_ENABLED
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_wssl_ctx_init(struct wssl_ctx *wctx,\n                            struct
      Curl_cfilter *cf,\n                            struct Curl_easy *data,\n                            struct
      ssl_peer *peer,\n                            const struct alpn_spec *alpns_requested,\n
      \                           Curl_wssl_ctx_setup_cb *cb_setup,\n                            void
      *cb_user_data,\n                            void *ssl_user_data,\n                            Curl_wssl_init_session_reuse_cb
      *sess_reuse_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURLECH_ENABLED
      Src: /src/curl/lib/vtls/wolfssl.c:1491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1501
    functionName: Curl_wssl_need_httpsrr
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - CURLECH_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool Curl_wssl_need_httpsrr(struct Curl_easy *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/wolfssl.c:1512,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1515,1
    - Dst: Curl_wssl_ctx_init
      Src: /src/curl/lib/vtls/wolfssl.c:1520,1
    - Dst: memset
      Src: /src/curl/lib/vtls/wolfssl.c:1528,1
    - Dst: Curl_alpn_to_proto_str
      Src: /src/curl/lib/vtls/wolfssl.c:1529,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1530,1
    - Dst: wolfSSL_check_domain_name
      Src: /src/curl/lib/vtls/wolfssl.c:1537,1
    - Dst: wolfSSL_BIO_new
      Src: /src/curl/lib/vtls/wolfssl.c:1549,1
    - Dst: wolfSSL_BIO_set_data
      Src: /src/curl/lib/vtls/wolfssl.c:1553,1
    - Dst: wolfSSL_set_bio
      Src: /src/curl/lib/vtls/wolfssl.c:1554,1
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/vtls/wolfssl.c:1557,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1559,1
    - Dst: wolfSSL_set_fd
      Src: /src/curl/lib/vtls/wolfssl.c:1563,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1564,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1507
    functionDepth: 6
    functionLinenumber: 1507
    functionLinenumberEnd: 1570
    functionName: wssl_connect_step1
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_set_bio
    - wolfSSL_set_fd
    - wolfSSL_check_domain_name
    - DEBUGASSERT
    - failf
    - infof
    - Curl_alpn_to_proto_str
    - Curl_conn_cf_get_socket
    - wolfSSL_BIO_set_data
    - memset
    - Curl_ssl_cf_get_primary_config
    - wolfSSL_BIO_new
    - Curl_wssl_ctx_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_connect_step1(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1574,1
    - Dst: wolfSSL_ERR_error_string_n
      Src: /src/curl/lib/vtls/wolfssl.c:1577,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/vtls/wolfssl.c:1581,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/wolfssl.c:1581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - error
    - buf
    - size
    argTypes:
    - unsigned long
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1585
    functionName: wssl_strerror
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - curlx_strcopy
    - strlen
    - wolfSSL_ERR_error_string_n
    - DEBUGASSERT
    linkageType: ''
    returnType: char
    signature: char *wssl_strerror(unsigned long error, char *buf, unsigned long size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/wolfssl.c:1594,1
    - Dst: wolfSSL_get_peer_certificate
      Src: /src/curl/lib/vtls/wolfssl.c:1611,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1613,1
    - Dst: wolfSSL_X509_get_der
      Src: /src/curl/lib/vtls/wolfssl.c:1617,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1619,1
    - Dst: memset
      Src: /src/curl/lib/vtls/wolfssl.c:1623,1
    - Dst: Curl_parseX509
      Src: /src/curl/lib/vtls/wolfssl.c:1624,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1629,1
    - Dst: Curl_pin_peer_pubkey
      Src: /src/curl/lib/vtls/wolfssl.c:1633,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1637,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1639,1
    - Dst: wolfSSL_FreeX509
      Src: /src/curl/lib/vtls/wolfssl.c:1644,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - cf
    - data
    - wssl
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct wssl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1646
    functionName: Curl_wssl_verify_pinned
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - Curl_parseX509
    - failf
    - Curl_pin_peer_pubkey
    - wolfSSL_FreeX509
    - wolfSSL_get_peer_certificate
    - memset
    - wolfSSL_X509_get_der
    - Curl_ssl_cf_is_proxy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_wssl_verify_pinned(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct wssl_ctx *wssl)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1657,1
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/vtls/wolfssl.c:1659,1
    - Dst: wolfSSL_ERR_clear_error
      Src: /src/curl/lib/vtls/wolfssl.c:1662,1
    - Dst: wolfSSL_write_early_data
      Src: /src/curl/lib/vtls/wolfssl.c:1663,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1664,1
    - Dst: wolfSSL_get_error
      Src: /src/curl/lib/vtls/wolfssl.c:1667,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1675,1
    - Dst: wssl_strerror
      Src: /src/curl/lib/vtls/wolfssl.c:1676,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vtls/wolfssl.c:1681,1
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/wolfssl.c:1685,1
    - Dst: Curl_pgrsEarlyData
      Src: /src/curl/lib/vtls/wolfssl.c:1686,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1649
    functionDepth: 4
    functionLinenumber: 1649
    functionLinenumberEnd: 1689
    functionName: wssl_send_earlydata
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_error
    - wolfSSL_ERR_clear_error
    - DEBUGASSERT
    - wolfSSL_write_early_data
    - Curl_pgrsEarlyData
    - infof
    - wssl_strerror
    - Curl_bufq_peek
    - Curl_bufq_skip
    - Curl_ssl_cf_is_proxy
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_send_earlydata(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/wolfssl.c:1696,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1700,1
    - Dst: wssl_send_earlydata
      Src: /src/curl/lib/vtls/wolfssl.c:1705,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1709,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1712,1
    - Dst: wolfSSL_ERR_clear_error
      Src: /src/curl/lib/vtls/wolfssl.c:1715,1
    - Dst: wolfSSL_connect
      Src: /src/curl/lib/vtls/wolfssl.c:1716,1
    - Dst: Curl_wssl_setup_x509_store
      Src: /src/curl/lib/vtls/wolfssl.c:1721,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1723,1
    - Dst: Curl_tls_keylog_enabled
      Src: /src/curl/lib/vtls/wolfssl.c:1729,1
    - Dst: wolfSSL_want_read
      Src: /src/curl/lib/vtls/wolfssl.c:1742,1
    - Dst: wolfSSL_want_write
      Src: /src/curl/lib/vtls/wolfssl.c:1743,1
    - Dst: wssl_log_tls12_secret
      Src: /src/curl/lib/vtls/wolfssl.c:1744,1
    - Dst: wolfSSL_FreeArrays
      Src: /src/curl/lib/vtls/wolfssl.c:1747,1
    - Dst: wolfSSL_get_error
      Src: /src/curl/lib/vtls/wolfssl.c:1752,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1753,1
    - Dst: wolfSSL_get_peer_certificate
      Src: /src/curl/lib/vtls/wolfssl.c:1761,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1763,1
    - Dst: wolfSSL_X509_check_ip_asc
      Src: /src/curl/lib/vtls/wolfssl.c:1766,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1767,1
    - Dst: wolfSSL_X509_free
      Src: /src/curl/lib/vtls/wolfssl.c:1771,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1790,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1796,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1801,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1806,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1810,1
    - Dst: wolfSSL_GetEchConfigs
      Src: /src/curl/lib/vtls/wolfssl.c:1830,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1832,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/vtls/wolfssl.c:1838,1
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:1841,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/wolfssl.c:1842,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1849,1
    - Dst: wssl_strerror
      Src: /src/curl/lib/vtls/wolfssl.c:1850,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 92
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1692
    functionDepth: 5
    functionLinenumber: 1692
    functionLinenumberEnd: 1854
    functionName: wssl_handshake
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - wolfSSL_want_read
    - wssl_strerror
    - wolfSSL_GetEchConfigs
    - CURL_TRC_CF
    - Curl_ssl_cf_get_primary_config
    - Curl_tls_keylog_enabled
    - wssl_send_earlydata
    - wolfSSL_get_error
    - failf
    - wolfSSL_X509_free
    - wolfSSL_FreeArrays
    - curlx_base64_encode
    - curlx_free
    - wssl_log_tls12_secret
    - wolfSSL_X509_check_ip_asc
    - wolfSSL_get_peer_certificate
    - Curl_wssl_setup_x509_store
    - wolfSSL_ERR_clear_error
    - infof
    - wolfSSL_want_write
    - wolfSSL_connect
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode wssl_handshake(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1867,1
    - Dst: wolfSSL_ERR_clear_error
      Src: /src/curl/lib/vtls/wolfssl.c:1869,1
    - Dst: wolfSSL_write
      Src: /src/curl/lib/vtls/wolfssl.c:1874,1
    - Dst: wolfSSL_get_error
      Src: /src/curl/lib/vtls/wolfssl.c:1879,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:1903,1
    - Dst: wssl_strerror
      Src: /src/curl/lib/vtls/wolfssl.c:1904,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1915,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - blen
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1857
    functionDepth: 2
    functionLinenumber: 1857
    functionLinenumberEnd: 1918
    functionName: wssl_send
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_error
    - failf
    - wolfSSL_ERR_clear_error
    - DEBUGASSERT
    - wolfSSL_write
    - wssl_strerror
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_send(struct Curl_cfilter *cf,\n                          struct
      Curl_easy *data,\n                          const void *buf, size_t blen,\n
      \                         size_t *pnwritten)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:1932,1
    - Dst: wolfSSL_get_shutdown
      Src: /src/curl/lib/vtls/wolfssl.c:1941,1
    - Dst: wolfSSL_ERR_clear_error
      Src: /src/curl/lib/vtls/wolfssl.c:1944,1
    - Dst: wolfSSL_read
      Src: /src/curl/lib/vtls/wolfssl.c:1945,1
    - Dst: wolfSSL_get_error
      Src: /src/curl/lib/vtls/wolfssl.c:1946,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1947,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1952,1
    - Dst: struct Curl_cfilter*::next::cft::is_alive
      Src: /src/curl/lib/vtls/wolfssl.c:1956,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1960,1
    - Dst: wolfSSL_ERR_clear_error
      Src: /src/curl/lib/vtls/wolfssl.c:1971,1
    - Dst: wolfSSL_shutdown
      Src: /src/curl/lib/vtls/wolfssl.c:1972,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1974,1
    - Dst: wolfSSL_get_error
      Src: /src/curl/lib/vtls/wolfssl.c:1978,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1979,1
    - Dst: wolfSSL_ERR_clear_error
      Src: /src/curl/lib/vtls/wolfssl.c:1988,1
    - Dst: wolfSSL_read
      Src: /src/curl/lib/vtls/wolfssl.c:1989,1
    - Dst: wolfSSL_get_error
      Src: /src/curl/lib/vtls/wolfssl.c:1993,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:1996,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:2003,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:2007,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:2011,1
    - Dst: wssl_strerror
      Src: /src/curl/lib/vtls/wolfssl.c:2012,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 4
    argNames:
    - cf
    - data
    - send_shutdown
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1920
    functionDepth: 2
    functionLinenumber: 1920
    functionLinenumberEnd: 2022
    functionName: wssl_shutdown
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_error
    - wolfSSL_ERR_clear_error
    - DEBUGASSERT
    - wolfSSL_read
    - struct Curl_cfilter*::next::cft::is_alive
    - wolfSSL_shutdown
    - wolfSSL_get_shutdown
    - wssl_strerror
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_shutdown(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              bool send_shutdown, bool *done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:2031,1
    - Dst: wolfSSL_free
      Src: /src/curl/lib/vtls/wolfssl.c:2034,1
    - Dst: wolfSSL_CTX_free
      Src: /src/curl/lib/vtls/wolfssl.c:2038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2041
    functionName: wssl_close
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_CTX_free
    - wolfSSL_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void wssl_close(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:2053,1
    - Dst: wolfSSL_ERR_clear_error
      Src: /src/curl/lib/vtls/wolfssl.c:2056,1
    - Dst: wolfSSL_read
      Src: /src/curl/lib/vtls/wolfssl.c:2058,1
    - Dst: wolfSSL_get_error
      Src: /src/curl/lib/vtls/wolfssl.c:2063,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:2067,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:2074,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/wolfssl.c:2078,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:2081,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:2085,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:2086,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:2090,1
    - Dst: wssl_strerror
      Src: /src/curl/lib/vtls/wolfssl.c:2091,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:2099,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - blen
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2043
    functionDepth: 2
    functionLinenumber: 2043
    functionLinenumberEnd: 2101
    functionName: wssl_recv
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_error
    - wolfSSL_ERR_clear_error
    - DEBUGASSERT
    - wolfSSL_read
    - failf
    - wssl_strerror
    - FALLTHROUGH
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_recv(struct Curl_cfilter *cf,\n                          struct
      Curl_easy *data,\n                          char *buf, size_t blen,\n                          size_t
      *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/wolfssl.c:2105,1
    - Dst: wolfSSL_lib_version
      Src: /src/curl/lib/vtls/wolfssl.c:2105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2103
    functionDepth: 7
    functionLinenumber: 2103
    functionLinenumberEnd: 2106
    functionName: Curl_wssl_version
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - wolfSSL_lib_version
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_wssl_version(char *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_tls_keylog_open
      Src: /src/curl/lib/vtls/wolfssl.c:2113,1
    - Dst: wolfSSL_Init
      Src: /src/curl/lib/vtls/wolfssl.c:2115,1
    - Dst: wssl_bio_cf_init_methods
      Src: /src/curl/lib/vtls/wolfssl.c:2117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2119
    functionName: wssl_init
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_Init
    - wssl_bio_cf_init_methods
    - Curl_tls_keylog_open
    linkageType: ''
    returnType: int
    signature: int wssl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wssl_bio_cf_free_methods
      Src: /src/curl/lib/vtls/wolfssl.c:2123,1
    - Dst: wolfSSL_Cleanup
      Src: /src/curl/lib/vtls/wolfssl.c:2124,1
    - Dst: Curl_tls_keylog_close
      Src: /src/curl/lib/vtls/wolfssl.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2121
    functionDepth: 1
    functionLinenumber: 2121
    functionLinenumberEnd: 2128
    functionName: wssl_cleanup
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_Cleanup
    - wssl_bio_cf_free_methods
    - Curl_tls_keylog_close
    linkageType: ''
    returnType: void
    signature: void wssl_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:2137,1
    - Dst: wolfSSL_pending
      Src: /src/curl/lib/vtls/wolfssl.c:2141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2144
    functionName: wssl_data_pending
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_pending
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool wssl_data_pending(struct Curl_cfilter *cf,\n                              const
      struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/vtls/wolfssl.c:2149,1
    - Dst: wolfSSL_get_version
      Src: /src/curl/lib/vtls/wolfssl.c:2150,1
    - Dst: wolfSSL_get_cipher_name
      Src: /src/curl/lib/vtls/wolfssl.c:2151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - wssl
    argTypes:
    - struct Curl_easy*
    - struct wssl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2152
    functionName: Curl_wssl_report_handshake
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_version
    - wolfSSL_get_cipher_name
    - infof
    linkageType: ''
    returnType: void
    signature: void Curl_wssl_report_handshake(struct Curl_easy *data, struct wssl_ctx
      *wssl)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Curl_wssl_need_httpsrr
      Src: /src/curl/lib/vtls/wolfssl.c:2175,1
    - Dst: Curl_conn_dns_resolved_https
      Src: /src/curl/lib/vtls/wolfssl.c:2176,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/wolfssl.c:2177,1
    - Dst: wssl_connect_step1
      Src: /src/curl/lib/vtls/wolfssl.c:2181,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:2190,1
    - Dst: wssl_handshake
      Src: /src/curl/lib/vtls/wolfssl.c:2193,1
    - Dst: Curl_wssl_verify_pinned
      Src: /src/curl/lib/vtls/wolfssl.c:2207,1
    - Dst: wolfSSL_ALPN_GetProtocol
      Src: /src/curl/lib/vtls/wolfssl.c:2219,1
    - Dst: Curl_alpn_set_negotiated
      Src: /src/curl/lib/vtls/wolfssl.c:2222,1
    - Dst: Curl_alpn_set_negotiated
      Src: /src/curl/lib/vtls/wolfssl.c:2227,1
    - Dst: failf
      Src: /src/curl/lib/vtls/wolfssl.c:2229,1
    - Dst: Curl_wssl_report_handshake
      Src: /src/curl/lib/vtls/wolfssl.c:2238,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:2243,1
    - Dst: wolfSSL_get_early_data_status
      Src: /src/curl/lib/vtls/wolfssl.c:2245,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2154
    functionDepth: 7
    functionLinenumber: 2154
    functionLinenumberEnd: 2268
    functionName: wssl_connect
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - Curl_wssl_report_handshake
    - wssl_connect_step1
    - DEBUGASSERT
    - failf
    - Curl_conn_dns_resolved_https
    - Curl_alpn_set_negotiated
    - wolfSSL_get_early_data_status
    - wssl_handshake
    - wolfSSL_ALPN_GetProtocol
    - Curl_wssl_need_httpsrr
    - Curl_wssl_verify_pinned
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_connect(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             bool *done)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wc_InitRng
      Src: /src/curl/lib/vtls/wolfssl.c:2275,1
    - Dst: wc_RNG_GenerateBlock
      Src: /src/curl/lib/vtls/wolfssl.c:2279,1
    - Dst: wc_FreeRng
      Src: /src/curl/lib/vtls/wolfssl.c:2281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - data
    - entropy
    - length
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2270
    functionDepth: 0
    functionLinenumber: 2270
    functionLinenumberEnd: 2284
    functionName: wssl_random
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - wc_FreeRng
    - wc_InitRng
    - wc_RNG_GenerateBlock
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_random(struct Curl_easy *data,\n                            unsigned
      char *entropy, size_t length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wc_InitSha256
      Src: /src/curl/lib/vtls/wolfssl.c:2293,1
    - Dst: CURLMIN
      Src: /src/curl/lib/vtls/wolfssl.c:2296,1
    - Dst: wc_Sha256Update
      Src: /src/curl/lib/vtls/wolfssl.c:2297,1
    - Dst: wc_Sha256Final
      Src: /src/curl/lib/vtls/wolfssl.c:2302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - input
    - len
    - sha256sum
    - unused
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2286
    functionDepth: 1
    functionLinenumber: 2286
    functionLinenumberEnd: 2305
    functionName: wssl_sha256sum
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - CURLMIN
    - wc_Sha256Final
    - wc_InitSha256
    - wc_Sha256Update
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode wssl_sha256sum(const unsigned char *input,\n                               size_t
      len,\n                               unsigned char *sha256sum /* output */,\n
      \                              size_t unused)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/wolfssl.c:2311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - connssl
    - info
    argTypes:
    - struct ssl_connect_data*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2307
    functionDepth: 1
    functionLinenumber: 2307
    functionLinenumberEnd: 2314
    functionName: wssl_get_internals
    functionSourceFile: /src/curl/lib/vtls/wolfssl.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void *wssl_get_internals(struct ssl_connect_data *connssl,\n                                CURLINFO
      info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/curl/lib/vtls/schannel_verify.c:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - haystack
    - haystacklen
    - needle
    - needlelen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: c_memmem
    functionSourceFile: /src/curl/lib/vtls/schannel_verify.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: char
    signature: "char *c_memmem(const void *haystack, size_t haystacklen,\n                            const
      void *needle, size_t needlelen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/schannel_verify.c:122,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/schannel_verify.c:123,1
    - Dst: c_memmem
      Src: /src/curl/lib/vtls/schannel_verify.c:131,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/vtls/schannel_verify.c:136,1
    - Dst: c_memmem
      Src: /src/curl/lib/vtls/schannel_verify.c:140,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:145,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/schannel_verify.c:158,1
    - Dst: CryptQueryObject
      Src: /src/curl/lib/vtls/schannel_verify.c:161,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:173,1
    - Dst: curlx_winapi_strerror
      Src: /src/curl/lib/vtls/schannel_verify.c:177,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/schannel_verify.c:177,1
    - Dst: CertAddCertificateContextToStore
      Src: /src/curl/lib/vtls/schannel_verify.c:185,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:191,1
    - Dst: curlx_winapi_strerror
      Src: /src/curl/lib/vtls/schannel_verify.c:195,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/schannel_verify.c:195,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/schannel_verify.c:204,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel_verify.c:212,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel_verify.c:216,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - trust_store
    - ca_buffer
    - ca_buffer_size
    - ca_file_text
    - data
    argTypes:
    - HCERTSTORE
    - char*
    - size_t
    - char*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 221
    functionName: add_certs_data_to_store
    functionSourceFile: /src/curl/lib/vtls/schannel_verify.c
    functionUses: 0
    functionsReached:
    - CertFreeCertificateContext
    - failf
    - c_memmem
    - ISNEWLINE
    - curlx_winapi_strerror
    - CryptQueryObject
    - CURL_UNCONST
    - infof
    - CertAddCertificateContextToStore
    - GetLastError
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode add_certs_data_to_store(HCERTSTORE trust_store,\n                                        const
      char *ca_buffer,\n                                        size_t ca_buffer_size,\n
      \                                       const char *ca_file_text,\n                                        struct
      Curl_easy *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/lib/vtls/schannel_verify.c:238,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:240,1
    - Dst: curlx_fseek
      Src: /src/curl/lib/vtls/schannel_verify.c:245,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:246,1
    - Dst: ftell
      Src: /src/curl/lib/vtls/schannel_verify.c:251,1
    - Dst: curlx_fseek
      Src: /src/curl/lib/vtls/schannel_verify.c:253,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:254,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:261,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:267,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/schannel_verify.c:273,1
    - Dst: fread
      Src: /src/curl/lib/vtls/schannel_verify.c:280,1
    - Dst: ferror
      Src: /src/curl/lib/vtls/schannel_verify.c:283,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:284,1
    - Dst: add_certs_data_to_store
      Src: /src/curl/lib/vtls/schannel_verify.c:301,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/vtls/schannel_verify.c:308,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/schannel_verify.c:310,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 3
    argNames:
    - trust_store
    - ca_file
    - data
    argTypes:
    - HCERTSTORE
    - char*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 313
    functionName: add_certs_file_to_store
    functionSourceFile: /src/curl/lib/vtls/schannel_verify.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_safefree
    - ferror
    - failf
    - curlx_fopen
    - curlx_malloc
    - add_certs_data_to_store
    - fread
    - ftell
    - curlx_fseek
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode add_certs_file_to_store(HCERTSTORE trust_store,\n                                        const
      char *ca_file,\n                                        struct Curl_easy *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CertGetNameString
      Src: /src/curl/lib/vtls/schannel_verify.c:344,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel_verify.c:376,1
    - Dst: wcslen
      Src: /src/curl/lib/vtls/schannel_verify.c:379,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:386,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 6
    argNames:
    - data
    - cert_context
    - host_names
    - length
    - alt_name_info
    - Win8_compat
    argTypes:
    - struct Curl_easy*
    - CERT_CONTEXT*
    - LPTSTR
    - DWORD
    - PCERT_ALT_NAME_INFO
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 403
    functionName: cert_get_name_string
    functionSourceFile: /src/curl/lib/vtls/schannel_verify.c
    functionUses: 0
    functionsReached:
    - CertGetNameString
    - wcslen
    - failf
    - infof
    linkageType: ''
    returnType: DWORD
    signature: "DWORD cert_get_name_string(struct Curl_easy *data,\n                                  CERT_CONTEXT
      *cert_context,\n                                  LPTSTR host_names,\n                                  DWORD
      length,\n                                  PCERT_ALT_NAME_INFO alt_name_info,\n
      \                                 BOOL Win8_compat)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/vtls/schannel_verify.c:413,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/schannel_verify.c:416,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/vtls/schannel_verify.c:421,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/schannel_verify.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ip_blob
    - hostname
    argTypes:
    - struct num_ip_data*
    - LPCSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 429
    functionName: get_num_host_info
    functionSourceFile: /src/curl/lib/vtls/schannel_verify.c
    functionUses: 0
    functionsReached:
    - memcpy
    - curlx_inet_pton
    linkageType: ''
    returnType: bool
    signature: bool get_num_host_info(struct num_ip_data *ip_blob, LPCSTR hostname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:441,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:447,1
    - Dst: CertFindExtension
      Src: /src/curl/lib/vtls/schannel_verify.c:451,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:455,1
    - Dst: CryptDecodeObjectEx
      Src: /src/curl/lib/vtls/schannel_verify.c:459,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - data
    - ctx
    - alt_name_info
    - alt_name_info_size
    argTypes:
    - struct Curl_easy*
    - PCCERT_CONTEXT
    - PCERT_ALT_NAME_INFO*
    - LPDWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 472
    functionName: get_alt_name_info
    functionSourceFile: /src/curl/lib/vtls/schannel_verify.c
    functionUses: 0
    functionsReached:
    - CertFindExtension
    - CryptDecodeObjectEx
    - failf
    linkageType: ''
    returnType: bool
    signature: "bool get_alt_name_info(struct Curl_easy *data,\n                              PCCERT_CONTEXT
      ctx,\n                              PCERT_ALT_NAME_INFO *alt_name_info,\n                              LPDWORD
      alt_name_info_size)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/schannel_verify.c:484,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/vtls/schannel_verify.c:495,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:501,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel_verify.c:502,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/vtls/schannel_verify.c:506,1
    - Dst: get_num_host_info
      Src: /src/curl/lib/vtls/schannel_verify.c:508,1
    - Dst: get_alt_name_info
      Src: /src/curl/lib/vtls/schannel_verify.c:509,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/schannel_verify.c:520,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel_verify.c:523,1
    - Dst: cert_get_name_string
      Src: /src/curl/lib/vtls/schannel_verify.c:534,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:537,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/schannel_verify.c:546,1
    - Dst: cert_get_name_string
      Src: /src/curl/lib/vtls/schannel_verify.c:551,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:557,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel_verify.c:568,1
    - Dst: curlx_convert_tchar_to_UTF8
      Src: /src/curl/lib/vtls/schannel_verify.c:576,1
    - Dst: Curl_cert_hostcheck
      Src: /src/curl/lib/vtls/schannel_verify.c:582,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/schannel_verify.c:582,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel_verify.c:584,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel_verify.c:592,1
    - Dst: _tcslen
      Src: /src/curl/lib/vtls/schannel_verify.c:598,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel_verify.c:605,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:610,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:616,1
    - Dst: LocalFree
      Src: /src/curl/lib/vtls/schannel_verify.c:620,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/schannel_verify.c:621,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/schannel_verify.c:624,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 475
    functionDepth: 8
    functionLinenumber: 475
    functionLinenumberEnd: 627
    functionName: Curl_verify_host
    functionSourceFile: /src/curl/lib/vtls/schannel_verify.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - memcmp
    - Curl_cert_hostcheck
    - LocalFree
    - Curl_sspi_strerror
    - curlx_convert_tchar_to_UTF8
    - _tcslen
    - get_num_host_info
    - cert_get_name_string
    - get_alt_name_info
    - failf
    - curlx_malloc
    - curlx_free
    - curlx_verify_windows_version
    - CertFreeCertificateContext
    - infof
    - QueryContextAttributes
    - TEXT
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_verify_host(struct Curl_cfilter *cf, struct Curl_easy
      *data)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/schannel_verify.c:634,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/schannel_verify.c:635,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel_verify.c:644,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/vtls/schannel_verify.c:647,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:653,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel_verify.c:654,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/vtls/schannel_verify.c:666,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:668,1
    - Dst: Curl_schannel_get_cached_cert_store
      Src: /src/curl/lib/vtls/schannel_verify.c:674,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel_verify.c:677,1
    - Dst: CertOpenStore
      Src: /src/curl/lib/vtls/schannel_verify.c:681,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:688,1
    - Dst: curlx_winapi_strerror
      Src: /src/curl/lib/vtls/schannel_verify.c:689,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/schannel_verify.c:689,1
    - Dst: add_certs_data_to_store
      Src: /src/curl/lib/vtls/schannel_verify.c:697,1
    - Dst: add_certs_file_to_store
      Src: /src/curl/lib/vtls/schannel_verify.c:704,1
    - Dst: Curl_schannel_set_cached_cert_store
      Src: /src/curl/lib/vtls/schannel_verify.c:709,1
    - Dst: memset
      Src: /src/curl/lib/vtls/schannel_verify.c:721,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/vtls/schannel_verify.c:725,1
    - Dst: CertCreateCertificateChainEngine
      Src: /src/curl/lib/vtls/schannel_verify.c:740,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:744,1
    - Dst: curlx_winapi_strerror
      Src: /src/curl/lib/vtls/schannel_verify.c:746,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/schannel_verify.c:746,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/schannel_verify.c:754,1
    - Dst: memset
      Src: /src/curl/lib/vtls/schannel_verify.c:756,1
    - Dst: CertGetCertificateChain
      Src: /src/curl/lib/vtls/schannel_verify.c:762,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:772,1
    - Dst: curlx_winapi_strerror
      Src: /src/curl/lib/vtls/schannel_verify.c:773,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/schannel_verify.c:773,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:793,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:796,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:798,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:801,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:804,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel_verify.c:806,1
    - Dst: Curl_verify_host
      Src: /src/curl/lib/vtls/schannel_verify.c:814,1
    - Dst: CertFreeCertificateChainEngine
      Src: /src/curl/lib/vtls/schannel_verify.c:819,1
    - Dst: CertCloseStore
      Src: /src/curl/lib/vtls/schannel_verify.c:823,1
    - Dst: CertFreeCertificateChain
      Src: /src/curl/lib/vtls/schannel_verify.c:827,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/schannel_verify.c:830,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 98
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 630
    functionDepth: 9
    functionLinenumber: 630
    functionLinenumberEnd: 833
    functionName: Curl_verify_certificate
    functionSourceFile: /src/curl/lib/vtls/schannel_verify.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - CURL_UNCONST
    - Curl_sspi_strerror
    - CertCloseStore
    - CertCreateCertificateChainEngine
    - curlx_winapi_strerror
    - Curl_ssl_cf_get_primary_config
    - add_certs_file_to_store
    - failf
    - CertGetCertificateChain
    - Curl_ssl_cf_get_config
    - curlx_verify_windows_version
    - GetLastError
    - memset
    - Curl_verify_host
    - CertFreeCertificateContext
    - Curl_schannel_set_cached_cert_store
    - Curl_schannel_get_cached_cert_store
    - CertFreeCertificateChain
    - infof
    - QueryContextAttributes
    - CertOpenStore
    - add_certs_data_to_store
    - CertFreeCertificateChainEngine
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_verify_certificate(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getASN1Element_
      Src: /src/curl/lib/vtls/x509asn1.c:172,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 4
    argNames:
    - elem
    - beg
    - end
    - lvl
    argTypes:
    - struct Curl_asn1Element*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 198
    functionName: getASN1Element_
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 1
    functionsReached:
    - getASN1Element_
    linkageType: ''
    returnType: char
    signature: "char *getASN1Element_(struct Curl_asn1Element *elem,\n                                   const
      char *beg, const char *end,\n                                   size_t lvl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getASN1Element_
      Src: /src/curl/lib/vtls/x509asn1.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - elem
    - beg
    - end
    argTypes:
    - struct Curl_asn1Element*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: getASN1Element
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 1
    functionsReached:
    - getASN1Element_
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST *getASN1Element(struct Curl_asn1Element *elem,\n                                    const
      char *beg, const char *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/vtls/x509asn1.c:221,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/x509asn1.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - oid
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: searchOID
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - strcmp
    linkageType: ''
    returnType: struct Curl_OID
    signature: struct Curl_OID *searchOID(const char *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/x509asn1.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - store
    - beg
    - end
    argTypes:
    - struct dynbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: bool2str
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_add
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode bool2str(struct dynbuf *store,\n                         const
      char *beg, const char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/x509asn1.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - store
    - beg
    - end
    argTypes:
    - struct dynbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 259
    functionName: octet2str
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode octet2str(struct dynbuf *store,\n                          const
      char *beg, const char *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: octet2str
      Src: /src/curl/lib/vtls/x509asn1.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - store
    - beg
    - end
    argTypes:
    - struct dynbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 273
    functionName: bit2str
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - octet2str
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode bit2str(struct dynbuf *store, const char *beg, const char
      *end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: octet2str
      Src: /src/curl/lib/vtls/x509asn1.c:292,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/x509asn1.c:304,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/x509asn1.c:307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - store
    - beg
    - end
    argTypes:
    - struct dynbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 308
    functionName: int2str
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - octet2str
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode int2str(struct dynbuf *store, const char *beg, const char
      *end)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/x509asn1.c:350,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/x509asn1.c:362,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/x509asn1.c:365,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/x509asn1.c:389,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 4
    argNames:
    - to
    - type
    - from
    - end
    argTypes:
    - struct dynbuf*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 393
    functionName: utf8asn1str
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - FALLTHROUGH
    - curlx_dyn_addn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode utf8asn1str(struct dynbuf *to, int type, const char *from,\n
      \                           const char *end)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/x509asn1.c:425,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/x509asn1.c:443,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/x509asn1.c:460,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - store
    - beg
    - end
    argTypes:
    - struct dynbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 463
    functionName: encodeOID
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_addf
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST encodeOID(struct dynbuf *store,\n                            const
      char *beg, const char *end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/x509asn1.c:477,1
    - Dst: encodeOID
      Src: /src/curl/lib/vtls/x509asn1.c:478,1
    - Dst: searchOID
      Src: /src/curl/lib/vtls/x509asn1.c:481,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/x509asn1.c:481,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/x509asn1.c:483,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/x509asn1.c:485,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/x509asn1.c:485,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/x509asn1.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - store
    - beg
    - end
    argTypes:
    - struct dynbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 471
    functionDepth: 4
    functionLinenumber: 471
    functionLinenumberEnd: 490
    functionName: OID2str
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - encodeOID
    - curlx_dyn_add
    - curlx_dyn_free
    - curlx_dyn_ptr
    - searchOID
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode OID2str(struct dynbuf *store,\n                        const
      char *beg, const char *end)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/curl/lib/vtls/x509asn1.c:510,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/x509asn1.c:521,1
    - Dst: ISDIGIT
      Src: /src/curl/lib/vtls/x509asn1.c:536,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/x509asn1.c:541,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/x509asn1.c:567,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - store
    - beg
    - end
    argTypes:
    - struct dynbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 573
    functionName: GTime2str
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_addf
    - DEBUGASSERT
    - FALLTHROUGH
    - ISDIGIT
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST GTime2str(struct dynbuf *store,\n                            const
      char *beg, const char *end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/x509asn1.c:594,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/x509asn1.c:610,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - store
    - beg
    - end
    argTypes:
    - struct dynbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 614
    functionName: UTime2str
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - FALLTHROUGH
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode UTime2str(struct dynbuf *store,\n                          const
      char *beg, const char *end)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: bool2str
      Src: /src/curl/lib/vtls/x509asn1.c:635,1
    - Dst: int2str
      Src: /src/curl/lib/vtls/x509asn1.c:639,1
    - Dst: bit2str
      Src: /src/curl/lib/vtls/x509asn1.c:642,1
    - Dst: octet2str
      Src: /src/curl/lib/vtls/x509asn1.c:645,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/x509asn1.c:648,1
    - Dst: OID2str
      Src: /src/curl/lib/vtls/x509asn1.c:651,1
    - Dst: UTime2str
      Src: /src/curl/lib/vtls/x509asn1.c:654,1
    - Dst: GTime2str
      Src: /src/curl/lib/vtls/x509asn1.c:657,1
    - Dst: utf8asn1str
      Src: /src/curl/lib/vtls/x509asn1.c:667,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - store
    - elem
    argTypes:
    - struct dynbuf*
    - struct Curl_asn1Element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 625
    functionDepth: 5
    functionLinenumber: 625
    functionLinenumberEnd: 672
    functionName: ASN1tostr
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 1
    functionsReached:
    - int2str
    - octet2str
    - curlx_dyn_addn
    - UTime2str
    - GTime2str
    - bit2str
    - bool2str
    - utf8asn1str
    - OID2str
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST ASN1tostr(struct dynbuf *store,\n                            struct
      Curl_asn1Element *elem)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/x509asn1.c:692,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:695,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:701,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:706,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:711,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:715,1
    - Dst: ASN1tostr
      Src: /src/curl/lib/vtls/x509asn1.c:716,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/x509asn1.c:720,1
    - Dst: ISUPPER
      Src: /src/curl/lib/vtls/x509asn1.c:729,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/x509asn1.c:733,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/x509asn1.c:735,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/x509asn1.c:741,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/x509asn1.c:746,1
    - Dst: ASN1tostr
      Src: /src/curl/lib/vtls/x509asn1.c:751,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:754,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/x509asn1.c:759,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 2
    argNames:
    - store
    - dn
    argTypes:
    - struct dynbuf*
    - struct Curl_asn1Element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 679
    functionDepth: 6
    functionLinenumber: 679
    functionLinenumberEnd: 762
    functionName: encodeDN
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - getASN1Element
    - curlx_dyn_addn
    - curlx_dyn_add
    - ASN1tostr
    - curlx_dyn_free
    - ISUPPER
    - curlx_dyn_reset
    - curlx_dyn_ptr
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode encodeDN(struct dynbuf *store, struct Curl_asn1Element *dn)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:785,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:791,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:795,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:799,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:809,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:813,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:815,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:821,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:823,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:827,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:830,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:833,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:836,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:840,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:843,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:848,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:860,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:867,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:875,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:881,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 3
    argNames:
    - cert
    - beg
    - end
    argTypes:
    - struct Curl_X509certificate*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 884
    functionName: Curl_parseX509
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 1
    functionsReached:
    - getASN1Element
    linkageType: ''
    returnType: int
    signature: "int Curl_parseX509(struct Curl_X509certificate *cert,\n                   const
      char *beg, const char *end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:898,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:905,1
    - Dst: OID2str
      Src: /src/curl/lib/vtls/x509asn1.c:909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - store
    - param
    - beg
    - end
    argTypes:
    - struct dynbuf*
    - struct Curl_asn1Element*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 890
    functionDepth: 5
    functionLinenumber: 890
    functionLinenumberEnd: 910
    functionName: dumpAlgo
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - OID2str
    - getASN1Element
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode dumpAlgo(struct dynbuf *store,\n                         struct
      Curl_asn1Element *param,\n                         const char *beg, const char
      *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/x509asn1.c:921,1
    - Dst: Curl_ssl_push_certinfo_len
      Src: /src/curl/lib/vtls/x509asn1.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - certnum
    - label
    - value
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 924
    functionName: ssl_push_certinfo
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_push_certinfo_len
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_push_certinfo(struct Curl_easy *data,\n                                  int
      certnum,\n                                  const char *label,\n                                  const
      char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/x509asn1.c:937,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/x509asn1.c:938,1
    - Dst: Curl_ssl_push_certinfo_len
      Src: /src/curl/lib/vtls/x509asn1.c:940,1
    - Dst: infof
      Src: /src/curl/lib/vtls/x509asn1.c:944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - data
    - certnum
    - label
    - ptr
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 947
    functionName: ssl_push_certinfo_dyn
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_ptr
    - Curl_ssl_push_certinfo_len
    - curlx_dyn_len
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_push_certinfo_dyn(struct Curl_easy *data,\n                                      int
      certnum,\n                                      const char *label,\n                                      struct
      dynbuf *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/x509asn1.c:956,1
    - Dst: ASN1tostr
      Src: /src/curl/lib/vtls/x509asn1.c:960,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:963,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/x509asn1.c:964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - certnum
    - label
    - elem
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - struct Curl_asn1Element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 949
    functionDepth: 6
    functionLinenumber: 949
    functionLinenumberEnd: 967
    functionName: do_pubkey_field
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - ASN1tostr
    - curlx_dyn_free
    - ssl_push_certinfo_dyn
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode do_pubkey_field(struct Curl_easy *data, int certnum,\n                                const
      char *label,\n                                struct Curl_asn1Element *elem)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/x509asn1.c:980,1
    - Dst: infof
      Src: /src/curl/lib/vtls/x509asn1.c:992,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/x509asn1.c:995,1
    - Dst: ssl_push_certinfo
      Src: /src/curl/lib/vtls/x509asn1.c:996,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:999,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:1004,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/x509asn1.c:1007,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:1011,1
    - Dst: infof
      Src: /src/curl/lib/vtls/x509asn1.c:1027,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/x509asn1.c:1030,1
    - Dst: ssl_push_certinfo
      Src: /src/curl/lib/vtls/x509asn1.c:1031,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:1035,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:1037,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:1039,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/x509asn1.c:1042,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:1043,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:1045,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:1047,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:1049,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:1051,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:1052,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:1054,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/x509asn1.c:1060,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:1061,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:1063,1
    - Dst: getASN1Element
      Src: /src/curl/lib/vtls/x509asn1.c:1065,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:1066,1
    - Dst: do_pubkey_field
      Src: /src/curl/lib/vtls/x509asn1.c:1068,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 75
    argCount: 5
    argNames:
    - data
    - certnum
    - algo
    - param
    - pubkey
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - struct Curl_asn1Element*
    - struct Curl_asn1Element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 970
    functionDepth: 7
    functionLinenumber: 970
    functionLinenumberEnd: 1074
    functionName: do_pubkey
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - getASN1Element
    - infof
    - curl_strequal
    - ssl_push_certinfo
    - do_pubkey_field
    linkageType: ''
    returnType: int
    signature: "int do_pubkey(struct Curl_easy *data, int certnum, const char *algo,\n
      \                    struct Curl_asn1Element *param,\n                     struct
      Curl_asn1Element *pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encodeDN
      Src: /src/curl/lib/vtls/x509asn1.c:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - store
    - dn
    argTypes:
    - struct dynbuf*
    - struct Curl_asn1Element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1080
    functionDepth: 7
    functionLinenumber: 1080
    functionLinenumberEnd: 1083
    functionName: DNtostr
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 0
    functionsReached:
    - encodeDN
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode DNtostr(struct dynbuf *store, struct Curl_asn1Element *dn)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/x509asn1.c:1104,1
    - Dst: Curl_parseX509
      Src: /src/curl/lib/vtls/x509asn1.c:1108,1
    - Dst: DNtostr
      Src: /src/curl/lib/vtls/x509asn1.c:1112,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1116,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1120,1
    - Dst: DNtostr
      Src: /src/curl/lib/vtls/x509asn1.c:1123,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1127,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1131,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/x509asn1.c:1138,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1141,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1144,1
    - Dst: ASN1tostr
      Src: /src/curl/lib/vtls/x509asn1.c:1148,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1152,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1156,1
    - Dst: dumpAlgo
      Src: /src/curl/lib/vtls/x509asn1.c:1159,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1164,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1168,1
    - Dst: ASN1tostr
      Src: /src/curl/lib/vtls/x509asn1.c:1171,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1175,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1179,1
    - Dst: ASN1tostr
      Src: /src/curl/lib/vtls/x509asn1.c:1182,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1186,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1190,1
    - Dst: dumpAlgo
      Src: /src/curl/lib/vtls/x509asn1.c:1193,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1198,1
    - Dst: do_pubkey
      Src: /src/curl/lib/vtls/x509asn1.c:1204,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/x509asn1.c:1204,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1210,1
    - Dst: ASN1tostr
      Src: /src/curl/lib/vtls/x509asn1.c:1213,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1217,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1221,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/vtls/x509asn1.c:1224,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/x509asn1.c:1239,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/x509asn1.c:1242,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/x509asn1.c:1248,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/x509asn1.c:1250,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/x509asn1.c:1254,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/x509asn1.c:1256,1
    - Dst: ssl_push_certinfo_dyn
      Src: /src/curl/lib/vtls/x509asn1.c:1259,1
    - Dst: failf
      Src: /src/curl/lib/vtls/x509asn1.c:1263,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/x509asn1.c:1264,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 141
    argCount: 4
    argNames:
    - data
    - certnum
    - beg
    - end
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1085
    functionDepth: 8
    functionLinenumber: 1085
    functionLinenumberEnd: 1266
    functionName: Curl_extract_certinfo
    functionSourceFile: /src/curl/lib/vtls/x509asn1.c
    functionUses: 2
    functionsReached:
    - curlx_dyn_init
    - Curl_parseX509
    - do_pubkey
    - curlx_dyn_addn
    - curlx_dyn_add
    - failf
    - ASN1tostr
    - curlx_dyn_free
    - DNtostr
    - curlx_base64_encode
    - ssl_push_certinfo_dyn
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - curlx_free
    - dumpAlgo
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_extract_certinfo(struct Curl_easy *data,\n                               int
      certnum,\n                               const char *beg,\n                               const
      char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vtls/gtls.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - level
    - str
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: tls_log_func
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void tls_log_func(int level, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/gtls.c:91,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:95,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vtls/gtls.c:96,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:97,1
    - Dst: gnutls_transport_set_errno
      Src: /src/curl/lib/vtls/gtls.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - s
    - buf
    - blen
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: gtls_push
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_transport_set_errno
    - DEBUGASSERT
    - Curl_conn_cf_send
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t gtls_push(void *s, const void *buf, size_t blen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/gtls.c:115,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:119,1
    - Dst: Curl_gtls_client_trust_setup
      Src: /src/curl/lib/vtls/gtls.c:121,1
    - Dst: gnutls_transport_set_errno
      Src: /src/curl/lib/vtls/gtls.c:124,1
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/vtls/gtls.c:130,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:131,1
    - Dst: gnutls_transport_set_errno
      Src: /src/curl/lib/vtls/gtls.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - s
    - buf
    - blen
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 142
    functionName: gtls_pull
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_transport_set_errno
    - Curl_gtls_client_trust_setup
    - DEBUGASSERT
    - Curl_conn_cf_recv
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t gtls_pull(void *s, void *buf, size_t blen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_global_init
      Src: /src/curl/lib/vtls/gtls.c:158,1
    - Dst: gnutls_global_set_log_function
      Src: /src/curl/lib/vtls/gtls.c:160,1
    - Dst: gnutls_global_set_log_level
      Src: /src/curl/lib/vtls/gtls.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: gtls_init
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_global_set_log_function
    - gnutls_global_set_log_level
    - gnutls_global_init
    linkageType: ''
    returnType: int
    signature: int gtls_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_global_deinit
      Src: /src/curl/lib/vtls/gtls.c:168,1
    - Dst: Curl_tls_keylog_close
      Src: /src/curl/lib/vtls/gtls.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: gtls_cleanup
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - Curl_tls_keylog_close
    - gnutls_global_deinit
    linkageType: ''
    returnType: void
    signature: void gtls_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_gmtime
      Src: /src/curl/lib/vtls/gtls.c:178,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/gtls.c:182,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - text
    - stamp
    argTypes:
    - struct Curl_easy*
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 173
    functionDepth: 7
    functionLinenumber: 173
    functionLinenumberEnd: 194
    functionName: showtime
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - curlx_gmtime
    - infof
    linkageType: ''
    returnType: void
    signature: void showtime(struct Curl_easy *data, const char *text, time_t stamp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/lib/vtls/gtls.c:204,1
    - Dst: fseek
      Src: /src/curl/lib/vtls/gtls.c:207,1
    - Dst: ftell
      Src: /src/curl/lib/vtls/gtls.c:209,1
    - Dst: fseek
      Src: /src/curl/lib/vtls/gtls.c:212,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/gtls.c:214,1
    - Dst: fread
      Src: /src/curl/lib/vtls/gtls.c:217,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/gtls.c:218,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/vtls/gtls.c:225,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 227
    functionName: load_file
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 1
    functionsReached:
    - curlx_fclose
    - fseek
    - curlx_fopen
    - curlx_malloc
    - curlx_free
    - fread
    - ftell
    linkageType: ''
    returnType: gnutls_datum_t
    signature: gnutls_datum_t load_file(const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/gtls.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - gnutls_datum_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: unload_file
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void unload_file(gnutls_datum_t data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:244,1
    - Dst: gnutls_handshake
      Src: /src/curl/lib/vtls/gtls.c:249,1
    - Dst: Curl_gtls_client_trust_setup
      Src: /src/curl/lib/vtls/gtls.c:254,1
    - Dst: gnutls_record_get_direction
      Src: /src/curl/lib/vtls/gtls.c:261,1
    - Dst: gnutls_error_is_fatal
      Src: /src/curl/lib/vtls/gtls.c:265,1
    - Dst: gnutls_alert_get
      Src: /src/curl/lib/vtls/gtls.c:270,1
    - Dst: gnutls_alert_get_name
      Src: /src/curl/lib/vtls/gtls.c:271,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:275,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:277,1
    - Dst: gnutls_alert_get
      Src: /src/curl/lib/vtls/gtls.c:288,1
    - Dst: gnutls_alert_get_name
      Src: /src/curl/lib/vtls/gtls.c:289,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:293,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:295,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 300
    functionName: cf_gtls_handshake
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_strerror
    - Curl_gtls_client_trust_setup
    - DEBUGASSERT
    - gnutls_error_is_fatal
    - gnutls_record_get_direction
    - failf
    - gnutls_alert_get_name
    - infof
    - gnutls_handshake
    - gnutls_alert_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_gtls_handshake(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/gtls.c:306,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/gtls.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 311
    functionName: gnutls_do_file_type
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    linkageType: ''
    returnType: gnutls_x509_crt_fmt_t
    signature: gnutls_x509_crt_fmt_t gnutls_do_file_type(const char *type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:336,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:346,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 5
    argNames:
    - data
    - peer
    - conn_config
    - prioritylist
    - tls13support
    argTypes:
    - struct Curl_easy*
    - struct ssl_peer*
    - struct ssl_primary_config*
    - char**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 397
    functionName: gnutls_set_ssl_version_min_max
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gnutls_set_ssl_version_min_max(\n  struct Curl_easy *data,\n
      \ struct ssl_peer *peer,\n  struct ssl_primary_config *conn_config,\n  const
      char **prioritylist,\n  bool tls13support)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/gtls.c:406,1
    - Dst: gnutls_certificate_allocate_credentials
      Src: /src/curl/lib/vtls/gtls.c:410,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:412,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:413,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/gtls.c:414,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/gtls.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - data
    - pcreds
    argTypes:
    - struct Curl_easy*
    - struct gtls_shared_creds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 422
    functionName: Curl_gtls_shared_creds_create
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - gnutls_strerror
    - failf
    - gnutls_certificate_allocate_credentials
    - curlx_free
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_gtls_shared_creds_create(struct Curl_easy *data,\n                                       struct
      gtls_shared_creds **pcreds)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - creds
    argTypes:
    - struct gtls_shared_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 432
    functionName: Curl_gtls_shared_creds_up_ref
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_gtls_shared_creds_up_ref(struct gtls_shared_creds *creds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_certificate_free_credentials
      Src: /src/curl/lib/vtls/gtls.c:441,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/gtls.c:442,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/gtls.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pcreds
    argTypes:
    - struct gtls_shared_creds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 446
    functionName: Curl_gtls_shared_creds_free
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - gnutls_certificate_free_credentials
    linkageType: ''
    returnType: void
    signature: void Curl_gtls_shared_creds_free(struct gtls_shared_creds **pcreds)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/gtls.c:452,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/gtls.c:453,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:458,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:462,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:465,1
    - Dst: gnutls_certificate_set_x509_system_trust
      Src: /src/curl/lib/vtls/gtls.c:468,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:470,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:471,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:473,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:483,1
    - Dst: gnutls_certificate_set_x509_trust_mem
      Src: /src/curl/lib/vtls/gtls.c:489,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:493,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:493,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:501,1
    - Dst: gnutls_certificate_set_verify_flags
      Src: /src/curl/lib/vtls/gtls.c:506,1
    - Dst: gnutls_certificate_set_x509_trust_file
      Src: /src/curl/lib/vtls/gtls.c:509,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:514,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:515,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:523,1
    - Dst: gnutls_certificate_set_x509_trust_dir
      Src: /src/curl/lib/vtls/gtls.c:528,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:532,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:533,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:541,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:545,1
    - Dst: gnutls_certificate_set_x509_crl_file
      Src: /src/curl/lib/vtls/gtls.c:549,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:552,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:553,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:557,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 3
    argNames:
    - cf
    - data
    - creds
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - gnutls_certificate_credentials_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 561
    functionName: gtls_populate_creds
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_strerror
    - gnutls_certificate_set_x509_trust_mem
    - failf
    - gnutls_certificate_set_x509_trust_dir
    - gnutls_certificate_set_x509_crl_file
    - infof
    - Curl_ssl_cf_get_config
    - gnutls_certificate_set_verify_flags
    - gnutls_certificate_set_x509_trust_file
    - Curl_ssl_cf_get_primary_config
    - gnutls_certificate_set_x509_system_trust
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_populate_creds(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    gnutls_certificate_credentials_t
      creds)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vtls/gtls.c:570,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/gtls.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - sc
    argTypes:
    - struct Curl_easy*
    - struct gtls_shared_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 577
    functionName: gtls_shared_creds_expired
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: bool
    signature: "bool gtls_shared_creds_expired(struct Curl_easy *data,\n                                      const
      struct gtls_shared_creds *sc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/gtls.c:582,1
    - Dst: strcmp
      Src: /src/curl/lib/vtls/gtls.c:586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - sc
    argTypes:
    - struct Curl_cfilter*
    - struct gtls_shared_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 587
    functionName: gtls_shared_creds_different
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_cf_get_primary_config
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool gtls_shared_creds_different(struct Curl_cfilter *cf,\n                                        const
      struct gtls_shared_creds *sc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/vtls/gtls.c:595,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/gtls.c:596,1
    - Dst: gtls_shared_creds_expired
      Src: /src/curl/lib/vtls/gtls.c:599,1
    - Dst: gtls_shared_creds_different
      Src: /src/curl/lib/vtls/gtls.c:600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: gtls_get_cached_creds
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gtls_shared_creds_different
    - gtls_shared_creds_expired
    - Curl_hash_pick
    - CURL_UNCONST
    linkageType: ''
    returnType: struct gtls_shared_creds
    signature: "struct gtls_shared_creds *gtls_get_cached_creds(struct Curl_cfilter
      *cf,\n                                                       struct Curl_easy
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:610,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:611,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/gtls.c:611,1
    - Dst: Curl_gtls_shared_creds_free
      Src: /src/curl/lib/vtls/gtls.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - key_len
    - p
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: gtls_shared_creds_hash_free
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - memcmp
    - Curl_gtls_shared_creds_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void gtls_shared_creds_hash_free(void *key, size_t key_len, void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/gtls.c:621,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:623,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:624,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:625,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:626,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/gtls.c:631,1
    - Dst: Curl_gtls_shared_creds_up_ref
      Src: /src/curl/lib/vtls/gtls.c:636,1
    - Dst: Curl_hash_add2
      Src: /src/curl/lib/vtls/gtls.c:639,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/gtls.c:640,1
    - Dst: Curl_gtls_shared_creds_free
      Src: /src/curl/lib/vtls/gtls.c:643,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - cf
    - data
    - sc
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct gtls_shared_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 646
    functionName: gtls_set_cached_creds
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - Curl_gtls_shared_creds_free
    - DEBUGASSERT
    - curlx_strdup
    - CURL_UNCONST
    - Curl_gtls_shared_creds_up_ref
    - Curl_ssl_cf_get_primary_config
    - Curl_hash_add2
    linkageType: ''
    returnType: void
    signature: "void gtls_set_cached_creds(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  struct gtls_shared_creds
      *sc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/gtls.c:652,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/gtls.c:653,1
    - Dst: gtls_get_cached_creds
      Src: /src/curl/lib/vtls/gtls.c:671,1
    - Dst: Curl_gtls_shared_creds_up_ref
      Src: /src/curl/lib/vtls/gtls.c:673,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:674,1
    - Dst: Curl_gtls_shared_creds_free
      Src: /src/curl/lib/vtls/gtls.c:675,1
    - Dst: gnutls_credentials_set
      Src: /src/curl/lib/vtls/gtls.c:677,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:680,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:680,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:685,1
    - Dst: gtls_populate_creds
      Src: /src/curl/lib/vtls/gtls.c:686,1
    - Dst: gtls_set_cached_creds
      Src: /src/curl/lib/vtls/gtls.c:691,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - cf
    - data
    - gtls
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct gtls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 694
    functionName: Curl_gtls_client_trust_setup
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 2
    functionsReached:
    - gnutls_strerror
    - Curl_gtls_shared_creds_free
    - gnutls_credentials_set
    - failf
    - Curl_ssl_cf_get_config
    - gtls_populate_creds
    - Curl_gtls_shared_creds_up_ref
    - gtls_get_cached_creds
    - gtls_set_cached_creds
    - Curl_ssl_cf_get_primary_config
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_gtls_client_trust_setup(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      struct gtls_ctx *gtls)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_protocol_get_version
      Src: /src/curl/lib/vtls/gtls.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - session
    argTypes:
    - gnutls_session_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 713
    functionName: gtls_get_ietf_proto
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_protocol_get_version
    linkageType: ''
    returnType: int
    signature: int gtls_get_ietf_proto(gnutls_session_t session)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vtls/gtls.c:730,1
    - Dst: gnutls_session_get_data
      Src: /src/curl/lib/vtls/gtls.c:739,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/gtls.c:743,1
    - Dst: gnutls_session_get_data
      Src: /src/curl/lib/vtls/gtls.c:748,1
    - Dst: gnutls_record_get_max_early_data_size
      Src: /src/curl/lib/vtls/gtls.c:749,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:751,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vtls/gtls.c:755,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/gtls.c:757,1
    - Dst: Curl_ssl_session_create2
      Src: /src/curl/lib/vtls/gtls.c:762,1
    - Dst: gtls_get_ietf_proto
      Src: /src/curl/lib/vtls/gtls.c:763,1
    - Dst: Curl_ssl_scache_put
      Src: /src/curl/lib/vtls/gtls.c:769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 8
    argNames:
    - cf
    - data
    - ssl_peer_key
    - session
    - valid_until
    - alpn
    - quic_tp
    - quic_tp_len
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - gnutls_session_t
    - curl_off_t
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 773
    functionName: Curl_gtls_cache_session
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_scache_use
    - gnutls_session_get_data
    - gnutls_record_get_max_early_data_size
    - Curl_ssl_session_create2
    - curlx_malloc
    - curlx_free
    - Curl_ssl_scache_put
    - curlx_memdup0
    - gtls_get_ietf_proto
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_gtls_cache_session(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 const char *ssl_peer_key,\n
      \                                gnutls_session_t session,\n                                 curl_off_t
      valid_until,\n                                 const char *alpn,\n                                 unsigned
      char *quic_tp,\n                                 size_t quic_tp_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_gtls_cache_session
      Src: /src/curl/lib/vtls/gtls.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cf
    - data
    - session
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - gnutls_session_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 785
    functionName: cf_gtls_update_session_id
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - Curl_gtls_cache_session
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_gtls_update_session_id(struct Curl_cfilter *cf,\n                                          struct
      Curl_easy *data,\n                                          gnutls_session_t
      session)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_session_get_ptr
      Src: /src/curl/lib/vtls/gtls.c:791,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/gtls.c:796,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:798,1
    - Dst: cf_gtls_update_session_id
      Src: /src/curl/lib/vtls/gtls.c:802,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - session
    - htype
    - when
    - incoming
    - msg
    argTypes:
    - gnutls_session_t
    - unsigned int
    - unsigned
    - unsigned int
    - gnutls_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 811
    functionName: gtls_handshake_cb
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - cf_gtls_update_session_id
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    - gnutls_session_get_ptr
    linkageType: ''
    returnType: int
    signature: "int gtls_handshake_cb(gnutls_session_t session, unsigned int htype,\n
      \                            unsigned when, unsigned int incoming,\n                             const
      gnutls_datum_t *msg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/gtls.c:819,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/gtls.c:825,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/gtls.c:831,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/gtls.c:833,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/gtls.c:836,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/gtls.c:845,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/gtls.c:846,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/gtls.c:850,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/gtls.c:853,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:859,1
    - Dst: gnutls_priority_set_direct
      Src: /src/curl/lib/vtls/gtls.c:860,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:862,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/gtls.c:867,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 4
    argNames:
    - cf
    - data
    - gtls
    - priority
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct gtls_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 869
    functionName: gtls_set_priority
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - failf
    - curlx_dyn_add
    - curlx_dyn_free
    - curlx_dyn_len
    - infof
    - curlx_dyn_ptr
    - gnutls_priority_set_direct
    - curlx_dyn_addf
    - Curl_ssl_cf_get_primary_config
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_set_priority(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  struct gtls_ctx *gtls,\n
      \                                 const char *priority)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/gtls.c:877,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/gtls.c:878,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:887,1
    - Dst: Curl_gtls_shared_creds_create
      Src: /src/curl/lib/vtls/gtls.c:892,1
    - Dst: Curl_auth_allowed_to_host
      Src: /src/curl/lib/vtls/gtls.c:897,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:898,1
    - Dst: gnutls_srp_allocate_client_credentials
      Src: /src/curl/lib/vtls/gtls.c:900,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:902,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:903,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:907,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:908,1
    - Dst: gnutls_srp_set_client_credentials
      Src: /src/curl/lib/vtls/gtls.c:912,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:916,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:917,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:953,1
    - Dst: gnutls_init
      Src: /src/curl/lib/vtls/gtls.c:955,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:957,1
    - Dst: gnutls_server_name_set
      Src: /src/curl/lib/vtls/gtls.c:962,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/gtls.c:963,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:964,1
    - Dst: gnutls_set_default_priority
      Src: /src/curl/lib/vtls/gtls.c:970,1
    - Dst: gnutls_check_version
      Src: /src/curl/lib/vtls/gtls.c:975,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:979,1
    - Dst: gnutls_set_ssl_version_min_max
      Src: /src/curl/lib/vtls/gtls.c:985,1
    - Dst: gtls_set_priority
      Src: /src/curl/lib/vtls/gtls.c:990,1
    - Dst: Curl_gtls_client_trust_setup
      Src: /src/curl/lib/vtls/gtls.c:996,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/gtls.c:1001,1
    - Dst: gnutls_certificate_set_x509_simple_pkcs12_file
      Src: /src/curl/lib/vtls/gtls.c:1002,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1006,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:1009,1
    - Dst: gnutls_certificate_set_x509_key_file2
      Src: /src/curl/lib/vtls/gtls.c:1019,1
    - Dst: gnutls_do_file_type
      Src: /src/curl/lib/vtls/gtls.c:1024,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1028,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:1031,1
    - Dst: gnutls_credentials_set
      Src: /src/curl/lib/vtls/gtls.c:1040,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1043,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:1043,1
    - Dst: gnutls_credentials_set
      Src: /src/curl/lib/vtls/gtls.c:1050,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1053,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:1053,1
    - Dst: gnutls_ocsp_status_request_enable_client
      Src: /src/curl/lib/vtls/gtls.c:1059,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1062,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 104
    argCount: 5
    argNames:
    - cf
    - data
    - peer
    - earlydata_max
    - gtls
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    - size_t
    - struct gtls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 871
    functionDepth: 5
    functionLinenumber: 871
    functionLinenumberEnd: 1068
    functionName: gtls_client_init
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_credentials_set
    - gnutls_set_ssl_version_min_max
    - gtls_set_priority
    - gnutls_set_default_priority
    - CURL_TRC_CF
    - Curl_ssl_cf_get_primary_config
    - gnutls_srp_set_client_credentials
    - gnutls_server_name_set
    - gnutls_strerror
    - gnutls_srp_allocate_client_credentials
    - failf
    - Curl_ssl_cf_get_config
    - curl_strequal
    - gnutls_certificate_set_x509_simple_pkcs12_file
    - gnutls_check_version
    - gnutls_ocsp_status_request_enable_client
    - gnutls_do_file_type
    - Curl_gtls_client_trust_setup
    - gnutls_init
    - Curl_gtls_shared_creds_create
    - infof
    - Curl_auth_allowed_to_host
    - strlen
    - gnutls_certificate_set_x509_key_file2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_client_init(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct ssl_peer *peer,\n
      \                                size_t earlydata_max,\n                                 struct
      gtls_ctx *gtls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_session_get_random
      Src: /src/curl/lib/vtls/gtls.c:1077,1
    - Dst: Curl_tls_keylog_write
      Src: /src/curl/lib/vtls/gtls.c:1082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - session
    - label
    - secret
    argTypes:
    - gnutls_session_t
    - char*
    - gnutls_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1084
    functionName: keylog_callback
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_session_get_random
    - Curl_tls_keylog_write
    linkageType: ''
    returnType: int
    signature: "int keylog_callback(gnutls_session_t session, const char *label,\n
      \                          const gnutls_datum_t *secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_record_get_max_early_data_size
      Src: /src/curl/lib/vtls/gtls.c:1097,1
    - Dst: Curl_on_session_reuse
      Src: /src/curl/lib/vtls/gtls.c:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 5
    argNames:
    - cf
    - data
    - alpns
    - scs
    - do_early_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct alpn_spec*
    - struct Curl_ssl_session*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1103
    functionName: gtls_on_session_reuse
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - Curl_on_session_reuse
    - gnutls_record_get_max_early_data_size
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_on_session_reuse(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      struct alpn_spec *alpns,\n
      \                                     struct Curl_ssl_session *scs,\n                                      bool
      *do_early_data)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/gtls.c:1116,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/gtls.c:1117,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:1126,1
    - Dst: Curl_alpn_copy
      Src: /src/curl/lib/vtls/gtls.c:1127,1
    - Dst: Curl_ssl_scache_take
      Src: /src/curl/lib/vtls/gtls.c:1133,1
    - Dst: Curl_alpn_contains_proto
      Src: /src/curl/lib/vtls/gtls.c:1138,1
    - Dst: gtls_client_init
      Src: /src/curl/lib/vtls/gtls.c:1141,1
    - Dst: gnutls_session_set_data
      Src: /src/curl/lib/vtls/gtls.c:1146,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1148,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1150,1
    - Dst: sess_reuse_cb
      Src: /src/curl/lib/vtls/gtls.c:1156,1
    - Dst: Curl_alpn_restrict_to
      Src: /src/curl/lib/vtls/gtls.c:1163,1
    - Dst: gtls_client_init
      Src: /src/curl/lib/vtls/gtls.c:1171,1
    - Dst: gnutls_session_set_ptr
      Src: /src/curl/lib/vtls/gtls.c:1176,1
    - Dst: cb_setup
      Src: /src/curl/lib/vtls/gtls.c:1179,1
    - Dst: Curl_tls_keylog_open
      Src: /src/curl/lib/vtls/gtls.c:1186,1
    - Dst: Curl_tls_keylog_enabled
      Src: /src/curl/lib/vtls/gtls.c:1187,1
    - Dst: gnutls_session_set_keylog_function
      Src: /src/curl/lib/vtls/gtls.c:1188,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:1197,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/vtls/gtls.c:1197,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/gtls.c:1200,1
    - Dst: gnutls_alpn_set_protocols
      Src: /src/curl/lib/vtls/gtls.c:1206,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1209,1
    - Dst: Curl_ssl_scache_return
      Src: /src/curl/lib/vtls/gtls.c:1214,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 65
    argCount: 9
    argNames:
    - gctx
    - cf
    - data
    - peer
    - alpns_requested
    - cb_setup
    - cb_user_data
    - ssl_user_data
    - sess_reuse_cb
    argTypes:
    - struct gtls_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    - struct alpn_spec*
    - Curl_gtls_ctx_setup_cb*
    - void*
    - void*
    - Curl_gtls_init_session_reuse_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1106
    functionDepth: 6
    functionLinenumber: 1106
    functionLinenumberEnd: 1216
    functionName: Curl_gtls_ctx_init
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_alpn_set_protocols
    - DEBUGASSERT
    - gnutls_session_set_ptr
    - Curl_ssl_scache_take
    - Curl_ssl_scache_return
    - Curl_alpn_contains_proto
    - sess_reuse_cb
    - gnutls_session_set_data
    - Curl_tls_keylog_open
    - Curl_ssl_cf_get_primary_config
    - cb_setup
    - Curl_tls_keylog_enabled
    - failf
    - Curl_ssl_cf_get_config
    - Curl_alpn_restrict_to
    - Curl_alpn_copy
    - gnutls_session_set_keylog_function
    - CURL_ARRAYSIZE
    - infof
    - gtls_client_init
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_gtls_ctx_init(struct gtls_ctx *gctx,\n                            struct
      Curl_cfilter *cf,\n                            struct Curl_easy *data,\n                            struct
      ssl_peer *peer,\n                            const struct alpn_spec *alpns_requested,\n
      \                           Curl_gtls_ctx_setup_cb *cb_setup,\n                            void
      *cb_user_data,\n                            void *ssl_user_data,\n                            Curl_gtls_init_session_reuse_cb
      *sess_reuse_cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:1226,1
    - Dst: Curl_gtls_ctx_init
      Src: /src/curl/lib/vtls/gtls.c:1233,1
    - Dst: memset
      Src: /src/curl/lib/vtls/gtls.c:1247,1
    - Dst: Curl_alpn_to_proto_str
      Src: /src/curl/lib/vtls/gtls.c:1248,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1249,1
    - Dst: gnutls_handshake_set_hook_function
      Src: /src/curl/lib/vtls/gtls.c:1253,1
    - Dst: gnutls_transport_set_ptr
      Src: /src/curl/lib/vtls/gtls.c:1259,1
    - Dst: gnutls_transport_set_push_function
      Src: /src/curl/lib/vtls/gtls.c:1260,1
    - Dst: gnutls_transport_set_pull_function
      Src: /src/curl/lib/vtls/gtls.c:1261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1218
    functionDepth: 7
    functionLinenumber: 1218
    functionLinenumberEnd: 1264
    functionName: gtls_connect_step1
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_handshake_set_hook_function
    - DEBUGASSERT
    - Curl_gtls_ctx_init
    - gnutls_transport_set_ptr
    - infof
    - Curl_alpn_to_proto_str
    - gnutls_transport_set_push_function
    - memset
    - gnutls_transport_set_pull_function
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_connect_step1(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_pubkey_init
      Src: /src/curl/lib/vtls/gtls.c:1290,1
    - Dst: gnutls_pubkey_import_x509
      Src: /src/curl/lib/vtls/gtls.c:1294,1
    - Dst: gnutls_pubkey_export
      Src: /src/curl/lib/vtls/gtls.c:1298,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/gtls.c:1302,1
    - Dst: gnutls_pubkey_export
      Src: /src/curl/lib/vtls/gtls.c:1308,1
    - Dst: Curl_pin_peer_pubkey
      Src: /src/curl/lib/vtls/gtls.c:1315,1
    - Dst: gnutls_pubkey_deinit
      Src: /src/curl/lib/vtls/gtls.c:1319,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/gtls.c:1321,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 3
    argNames:
    - data
    - cert
    - pinnedpubkey
    argTypes:
    - struct Curl_easy*
    - gnutls_x509_crt_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1324
    functionName: pkp_pin_peer_pubkey
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - gnutls_pubkey_export
    - gnutls_pubkey_deinit
    - gnutls_pubkey_import_x509
    - Curl_pin_peer_pubkey
    - gnutls_pubkey_init
    - curlx_malloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pkp_pin_peer_pubkey(struct Curl_easy *data,\n                                    gnutls_x509_crt_t
      cert,\n                                    const char *pinnedpubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vtls/gtls.c:1329,1
    - Dst: gnutls_protocol_get_version
      Src: /src/curl/lib/vtls/gtls.c:1331,1
    - Dst: gnutls_cipher_suite_get_name
      Src: /src/curl/lib/vtls/gtls.c:1334,1
    - Dst: gnutls_kx_get
      Src: /src/curl/lib/vtls/gtls.c:1334,1
    - Dst: gnutls_cipher_get
      Src: /src/curl/lib/vtls/gtls.c:1335,1
    - Dst: gnutls_mac_get
      Src: /src/curl/lib/vtls/gtls.c:1336,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1338,1
    - Dst: gnutls_protocol_get_name
      Src: /src/curl/lib/vtls/gtls.c:1339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - gctx
    argTypes:
    - struct Curl_easy*
    - struct gtls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1345
    functionName: Curl_gtls_report_handshake
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_kx_get
    - gnutls_protocol_get_name
    - gnutls_protocol_get_version
    - gnutls_cipher_get
    - gnutls_cipher_suite_get_name
    - Curl_trc_is_verbose
    - gnutls_mac_get
    - infof
    linkageType: ''
    returnType: void
    signature: void Curl_gtls_report_handshake(struct Curl_easy *data, struct gtls_ctx
      *gctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_x509_crt_get_dn_by_oid
      Src: /src/curl/lib/vtls/gtls.c:1357,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1361,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:1361,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1367,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1372,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - data
    - peer
    - x509_cert
    - was_verified
    - needs_verified
    argTypes:
    - struct Curl_easy*
    - struct ssl_peer*
    - gnutls_x509_crt_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1377
    functionName: gtls_msg_verify_result
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_strerror
    - failf
    - gnutls_x509_crt_get_dn_by_oid
    - infof
    linkageType: ''
    returnType: void
    signature: "void gtls_msg_verify_result(struct Curl_easy *data,\n                                   struct
      ssl_peer *peer,\n                                   gnutls_x509_crt_t x509_cert,\n
      \                                  bool was_verified,\n                                   bool
      needs_verified)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vtls/gtls.c:1383,1
    - Dst: gnutls_x509_crt_get_pk_algorithm
      Src: /src/curl/lib/vtls/gtls.c:1390,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1391,1
    - Dst: gnutls_pk_algorithm_get_name
      Src: /src/curl/lib/vtls/gtls.c:1392,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1395,1
    - Dst: gnutls_x509_crt_get_version
      Src: /src/curl/lib/vtls/gtls.c:1396,1
    - Dst: gnutls_x509_crt_get_dn2
      Src: /src/curl/lib/vtls/gtls.c:1398,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1400,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1402,1
    - Dst: gnutls_x509_crt_get_activation_time
      Src: /src/curl/lib/vtls/gtls.c:1404,1
    - Dst: showtime
      Src: /src/curl/lib/vtls/gtls.c:1405,1
    - Dst: gnutls_x509_crt_get_expiration_time
      Src: /src/curl/lib/vtls/gtls.c:1407,1
    - Dst: showtime
      Src: /src/curl/lib/vtls/gtls.c:1408,1
    - Dst: gnutls_free
      Src: /src/curl/lib/vtls/gtls.c:1410,1
    - Dst: gnutls_x509_crt_get_issuer_dn2
      Src: /src/curl/lib/vtls/gtls.c:1413,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1415,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1417,1
    - Dst: gnutls_free
      Src: /src/curl/lib/vtls/gtls.c:1419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - data
    - x509_cert
    argTypes:
    - struct Curl_easy*
    - gnutls_x509_crt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1379
    functionDepth: 8
    functionLinenumber: 1379
    functionLinenumberEnd: 1426
    functionName: gtls_infof_cert
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_x509_crt_get_pk_algorithm
    - gnutls_x509_crt_get_issuer_dn2
    - gnutls_x509_crt_get_version
    - infof
    - Curl_trc_is_verbose
    - gnutls_x509_crt_get_expiration_time
    - gnutls_free
    - gnutls_pk_algorithm_get_name
    - gnutls_x509_crt_get_activation_time
    - showtime
    - gnutls_x509_crt_get_dn2
    linkageType: ''
    returnType: void
    signature: "void gtls_infof_cert(struct Curl_easy *data,\n                            gnutls_x509_crt_t
      x509_cert)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_ocsp_status_request_get
      Src: /src/curl/lib/vtls/gtls.c:1441,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1444,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1449,1
    - Dst: gnutls_ocsp_resp_init
      Src: /src/curl/lib/vtls/gtls.c:1454,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1456,1
    - Dst: gnutls_ocsp_resp_import
      Src: /src/curl/lib/vtls/gtls.c:1461,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1463,1
    - Dst: gnutls_credentials_get
      Src: /src/curl/lib/vtls/gtls.c:1468,1
    - Dst: gnutls_certificate_get_trust_list
      Src: /src/curl/lib/vtls/gtls.c:1469,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1471,1
    - Dst: gnutls_ocsp_resp_verify
      Src: /src/curl/lib/vtls/gtls.c:1475,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1477,1
    - Dst: gnutls_ocsp_resp_get_single
      Src: /src/curl/lib/vtls/gtls.c:1482,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1535,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1541,1
    - Dst: gnutls_ocsp_resp_deinit
      Src: /src/curl/lib/vtls/gtls.c:1550,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 95
    argCount: 2
    argNames:
    - data
    - session
    argTypes:
    - struct Curl_easy*
    - gnutls_session_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1552
    functionName: gtls_verify_ocsp_status
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_ocsp_resp_import
    - failf
    - gnutls_credentials_get
    - gnutls_certificate_get_trust_list
    - gnutls_ocsp_resp_get_single
    - gnutls_ocsp_status_request_get
    - gnutls_ocsp_resp_verify
    - gnutls_ocsp_resp_deinit
    - gnutls_ocsp_resp_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_verify_ocsp_status(struct Curl_easy *data,\n                                        gnutls_session_t
      session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - cf
    - data
    - user_data
    - i
    - pder
    - pder_len
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1579
    functionName: gtls_chain_get_der
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_chain_get_der(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   void *user_data,\n                                   size_t
      i,\n                                   unsigned char **pder,\n                                   size_t
      *pder_len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_certificate_verify_peers2
      Src: /src/curl/lib/vtls/gtls.c:1598,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1600,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1607,1
    - Dst: Curl_vtls_apple_verify
      Src: /src/curl/lib/vtls/gtls.c:1612,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1618,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1639,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 7
    argNames:
    - data
    - config
    - ssl_config
    - session
    - cf
    - peer
    - chain
    argTypes:
    - struct Curl_easy*
    - struct ssl_primary_config*
    - struct ssl_config_data*
    - gnutls_session_t
    - struct Curl_cfilter*
    - struct ssl_peer*
    - struct gtls_cert_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1648
    functionName: gtls_verify_cert
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_certificate_verify_peers2
    - Curl_vtls_apple_verify
    - failf
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_verify_cert(struct Curl_easy *data,\n                                 struct
      ssl_primary_config *config,\n                                 struct ssl_config_data
      *ssl_config,\n                                 gnutls_session_t session,\n                                 struct
      Curl_cfilter *cf,\n                                 struct ssl_peer *peer,\n
      \                                struct gtls_cert_chain *chain)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_certificate_get_peers
      Src: /src/curl/lib/vtls/gtls.c:1672,1
    - Dst: gnutls_cipher_get
      Src: /src/curl/lib/vtls/gtls.c:1679,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1685,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1693,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1698,1
    - Dst: Curl_ssl_init_certinfo
      Src: /src/curl/lib/vtls/gtls.c:1706,1
    - Dst: Curl_extract_certinfo
      Src: /src/curl/lib/vtls/gtls.c:1714,1
    - Dst: gtls_verify_cert
      Src: /src/curl/lib/vtls/gtls.c:1722,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1728,1
    - Dst: gnutls_x509_crt_init
      Src: /src/curl/lib/vtls/gtls.c:1731,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1732,1
    - Dst: gnutls_x509_crt_import
      Src: /src/curl/lib/vtls/gtls.c:1741,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1743,1
    - Dst: gnutls_x509_crt_get_expiration_time
      Src: /src/curl/lib/vtls/gtls.c:1751,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1755,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1761,1
    - Dst: time
      Src: /src/curl/lib/vtls/gtls.c:1764,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1766,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1772,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1775,1
    - Dst: gnutls_x509_crt_get_activation_time
      Src: /src/curl/lib/vtls/gtls.c:1778,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1782,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1788,1
    - Dst: time
      Src: /src/curl/lib/vtls/gtls.c:1791,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1793,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1799,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1802,1
    - Dst: gtls_verify_ocsp_status
      Src: /src/curl/lib/vtls/gtls.c:1806,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1811,1
    - Dst: gnutls_x509_crt_init
      Src: /src/curl/lib/vtls/gtls.c:1815,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1816,1
    - Dst: load_file
      Src: /src/curl/lib/vtls/gtls.c:1820,1
    - Dst: gnutls_x509_crt_import
      Src: /src/curl/lib/vtls/gtls.c:1821,1
    - Dst: unload_file
      Src: /src/curl/lib/vtls/gtls.c:1822,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1824,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:1825,1
    - Dst: gnutls_x509_crt_check_issuer
      Src: /src/curl/lib/vtls/gtls.c:1829,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1831,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1836,1
    - Dst: gnutls_x509_crt_check_hostname
      Src: /src/curl/lib/vtls/gtls.c:1849,1
    - Dst: gtls_msg_verify_result
      Src: /src/curl/lib/vtls/gtls.c:1854,1
    - Dst: pkp_pin_peer_pubkey
      Src: /src/curl/lib/vtls/gtls.c:1859,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:1861,1
    - Dst: gtls_infof_cert
      Src: /src/curl/lib/vtls/gtls.c:1866,1
    - Dst: gnutls_x509_crt_deinit
      Src: /src/curl/lib/vtls/gtls.c:1870,1
    - Dst: gnutls_x509_crt_deinit
      Src: /src/curl/lib/vtls/gtls.c:1872,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 159
    argCount: 7
    argNames:
    - cf
    - data
    - session
    - config
    - ssl_config
    - peer
    - pinned_key
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - gnutls_session_t
    - struct ssl_primary_config*
    - struct ssl_config_data*
    - struct ssl_peer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1650
    functionDepth: 9
    functionLinenumber: 1650
    functionLinenumberEnd: 1874
    functionName: Curl_gtls_verifyserver
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_x509_crt_check_hostname
    - time
    - gtls_verify_cert
    - load_file
    - gnutls_x509_crt_deinit
    - gtls_msg_verify_result
    - gnutls_x509_crt_check_issuer
    - gnutls_x509_crt_get_activation_time
    - unload_file
    - gnutls_x509_crt_import
    - gnutls_strerror
    - gtls_verify_ocsp_status
    - failf
    - gnutls_cipher_get
    - gnutls_x509_crt_get_expiration_time
    - gnutls_certificate_get_peers
    - gtls_infof_cert
    - Curl_extract_certinfo
    - gnutls_x509_crt_init
    - pkp_pin_peer_pubkey
    - infof
    - Curl_ssl_init_certinfo
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_gtls_verifyserver(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                gnutls_session_t session,\n
      \                               struct ssl_primary_config *config,\n                                struct
      ssl_config_data *ssl_config,\n                                struct ssl_peer
      *peer,\n                                const char *pinned_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/gtls.c:1881,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/gtls.c:1882,1
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/gtls.c:1884,1
    - Dst: Curl_gtls_verifyserver
      Src: /src/curl/lib/vtls/gtls.c:1892,1
    - Dst: gnutls_protocol_get_version
      Src: /src/curl/lib/vtls/gtls.c:1900,1
    - Dst: cf_gtls_update_session_id
      Src: /src/curl/lib/vtls/gtls.c:1901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - cf
    - data
    - session
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - gnutls_session_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1876
    functionDepth: 10
    functionLinenumber: 1876
    functionLinenumberEnd: 1906
    functionName: gtls_verifyserver
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 1
    functionsReached:
    - gnutls_protocol_get_version
    - cf_gtls_update_session_id
    - Curl_ssl_cf_get_config
    - Curl_gtls_verifyserver
    - Curl_ssl_cf_get_primary_config
    - Curl_ssl_cf_is_proxy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_verifyserver(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  gnutls_session_t session)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:1920,1
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/vtls/gtls.c:1922,1
    - Dst: gnutls_record_send_early_data
      Src: /src/curl/lib/vtls/gtls.c:1923,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:1924,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vtls/gtls.c:1939,1
    - Dst: infof
      Src: /src/curl/lib/vtls/gtls.c:1942,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1909
    functionDepth: 4
    functionLinenumber: 1909
    functionLinenumberEnd: 1945
    functionName: gtls_send_earlydata
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - infof
    - Curl_bufq_skip
    - Curl_bufq_peek
    - gnutls_record_send_early_data
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_send_earlydata(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:1966,1
    - Dst: gtls_connect_step1
      Src: /src/curl/lib/vtls/gtls.c:1977,1
    - Dst: gtls_send_earlydata
      Src: /src/curl/lib/vtls/gtls.c:1989,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:1994,1
    - Dst: cf_gtls_handshake
      Src: /src/curl/lib/vtls/gtls.c:1997,1
    - Dst: Curl_gtls_report_handshake
      Src: /src/curl/lib/vtls/gtls.c:2008,1
    - Dst: gtls_verifyserver
      Src: /src/curl/lib/vtls/gtls.c:2010,1
    - Dst: gnutls_alpn_get_selected_protocol
      Src: /src/curl/lib/vtls/gtls.c:2016,1
    - Dst: Curl_alpn_set_negotiated
      Src: /src/curl/lib/vtls/gtls.c:2022,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:2030,1
    - Dst: gnutls_session_get_flags
      Src: /src/curl/lib/vtls/gtls.c:2032,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:2041,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:2050,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 1957
    functionDepth: 11
    functionLinenumber: 1957
    functionLinenumberEnd: 2052
    functionName: gtls_connect_common
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gtls_send_earlydata
    - Curl_gtls_report_handshake
    - DEBUGASSERT
    - gtls_connect_step1
    - gnutls_alpn_get_selected_protocol
    - Curl_alpn_set_negotiated
    - gtls_verifyserver
    - gnutls_session_get_flags
    - cf_gtls_handshake
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_connect_common(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtls_connect_common
      Src: /src/curl/lib/vtls/gtls.c:2067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2054
    functionDepth: 12
    functionLinenumber: 2054
    functionLinenumberEnd: 2068
    functionName: gtls_connect
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gtls_connect_common
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_connect(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:2077,1
    - Dst: gnutls_record_check_pending
      Src: /src/curl/lib/vtls/gtls.c:2080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2070
    functionDepth: 1
    functionLinenumber: 2070
    functionLinenumberEnd: 2083
    functionName: gtls_data_pending
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_record_check_pending
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool gtls_data_pending(struct Curl_cfilter *cf,\n                              const
      struct Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:2098,1
    - Dst: gnutls_record_send
      Src: /src/curl/lib/vtls/gtls.c:2103,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:2107,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/gtls.c:2108,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:2124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - blen
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2127
    functionName: gtls_send
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - gnutls_record_send
    - DEBUGASSERT
    - CURL_UNCONST
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_send(struct Curl_cfilter *cf,\n                          struct
      Curl_easy *data,\n                          const void *buf,\n                          size_t
      blen,\n                          size_t *pnwritten)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:2145,1
    - Dst: gnutls_bye
      Src: /src/curl/lib/vtls/gtls.c:2160,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:2162,1
    - Dst: gnutls_record_get_direction
      Src: /src/curl/lib/vtls/gtls.c:2163,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:2170,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:2171,1
    - Dst: gnutls_record_recv
      Src: /src/curl/lib/vtls/gtls.c:2181,1
    - Dst: gnutls_record_get_direction
      Src: /src/curl/lib/vtls/gtls.c:2193,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:2197,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:2198,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 4
    argNames:
    - cf
    - data
    - send_shutdown
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2133
    functionDepth: 1
    functionLinenumber: 2133
    functionLinenumberEnd: 2205
    functionName: gtls_shutdown
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_strerror
    - gnutls_record_recv
    - DEBUGASSERT
    - gnutls_record_get_direction
    - gnutls_bye
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_shutdown(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              bool send_shutdown, bool *done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:2214,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:2215,1
    - Dst: gnutls_deinit
      Src: /src/curl/lib/vtls/gtls.c:2217,1
    - Dst: Curl_gtls_shared_creds_free
      Src: /src/curl/lib/vtls/gtls.c:2221,1
    - Dst: gnutls_srp_free_client_credentials
      Src: /src/curl/lib/vtls/gtls.c:2225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2207
    functionDepth: 2
    functionLinenumber: 2207
    functionLinenumberEnd: 2229
    functionName: gtls_close
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - Curl_gtls_shared_creds_free
    - DEBUGASSERT
    - gnutls_deinit
    - gnutls_srp_free_client_credentials
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void gtls_close(struct Curl_cfilter *cf,\n                       struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:2242,1
    - Dst: gnutls_record_recv
      Src: /src/curl/lib/vtls/gtls.c:2244,1
    - Dst: cf_gtls_handshake
      Src: /src/curl/lib/vtls/gtls.c:2255,1
    - Dst: failf
      Src: /src/curl/lib/vtls/gtls.c:2261,1
    - Dst: gnutls_strerror
      Src: /src/curl/lib/vtls/gtls.c:2262,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/gtls.c:2270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - blen
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2231
    functionDepth: 2
    functionLinenumber: 2231
    functionLinenumberEnd: 2273
    functionName: gtls_recv
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_strerror
    - gnutls_record_recv
    - failf
    - DEBUGASSERT
    - cf_gtls_handshake
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_recv(struct Curl_cfilter *cf,\n                          struct
      Curl_easy *data,\n                          char *buf, size_t blen,\n                          size_t
      *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/gtls.c:2277,1
    - Dst: gnutls_check_version
      Src: /src/curl/lib/vtls/gtls.c:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2275
    functionDepth: 7
    functionLinenumber: 2275
    functionLinenumberEnd: 2278
    functionName: Curl_gtls_version
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - gnutls_check_version
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_gtls_version(char *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_rnd
      Src: /src/curl/lib/vtls/gtls.c:2286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - entropy
    - length
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2281
    functionDepth: 0
    functionLinenumber: 2281
    functionLinenumberEnd: 2288
    functionName: gtls_random
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - gnutls_rnd
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_random(struct Curl_easy *data,\n                            unsigned
      char *entropy, size_t length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_init
      Src: /src/curl/lib/vtls/gtls.c:2296,1
    - Dst: CURLMIN
      Src: /src/curl/lib/vtls/gtls.c:2298,1
    - Dst: sha256_update
      Src: /src/curl/lib/vtls/gtls.c:2299,1
    - Dst: sha256_digest
      Src: /src/curl/lib/vtls/gtls.c:2305,1
    - Dst: sha256_digest
      Src: /src/curl/lib/vtls/gtls.c:2307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - input
    - len
    - sha256sum
    - sha256len
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2290
    functionDepth: 1
    functionLinenumber: 2290
    functionLinenumberEnd: 2310
    functionName: gtls_sha256sum
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - sha256_update
    - CURLMIN
    - sha256_init
    - sha256_digest
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode gtls_sha256sum(const unsigned char *input,\n                               size_t
      len,\n                               unsigned char *sha256sum, /* output */\n
      \                              size_t sha256len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2312
    functionDepth: 0
    functionLinenumber: 2312
    functionLinenumberEnd: 2315
    functionName: gtls_cert_status_request
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool gtls_cert_status_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/gtls.c:2323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - connssl
    - info
    argTypes:
    - struct ssl_connect_data*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2317
    functionDepth: 1
    functionLinenumber: 2317
    functionLinenumberEnd: 2325
    functionName: gtls_get_internals
    functionSourceFile: /src/curl/lib/vtls/gtls.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void *gtls_get_internals(struct ssl_connect_data *connssl,\n                                CURLINFO
      info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: CURLECH_ENABLED
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLECH_ENABLED(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: Curl_ssl_init
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: Curl_ssl_cleanup
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: Curl_ssl_close_all
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_close_all(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: Curl_ssl_set_engine
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_set_engine(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: Curl_ssl_set_engine_default
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_set_engine_default(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: Curl_ssl_engines_list
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_engines_list(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: Curl_ssl_free_certinfo
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_free_certinfo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: Curl_ssl_random
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_random(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: Curl_ssl_cert_status_request
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_cert_status_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: Curl_ssl_supports
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_supports(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: Curl_ssl_cfilter_add
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_cfilter_add(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: Curl_ssl_cfilter_remove
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_cfilter_remove(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: Curl_ssl_cf_get_config
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_cf_get_config(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: Curl_ssl_cf_get_primary_config
    functionSourceFile: /src/curl/lib/vtls/vtls.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssl_cf_get_primary_config(a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rustls_result_is_cert_error
      Src: /src/curl/lib/vtls/rustls.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - rustls_result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: map_error
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 11
    functionsReached:
    - rustls_result_is_cert_error
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode map_error(const rustls_result r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rustls_error
      Src: /src/curl/lib/vtls/rustls.c:77,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - rr
    - msg
    argTypes:
    - struct Curl_easy*
    - rustls_result
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: rustls_failf
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_error
    - failf
    linkageType: ''
    returnType: void
    signature: "void rustls_failf(struct Curl_easy *data, const rustls_result rr,\n
      \                        const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: cr_data_pending
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool cr_data_pending(struct Curl_cfilter *cf,\n                            const
      struct Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/vtls/rustls.c:107,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - userdata
    - buf
    - len
    - out_n
    argTypes:
    - void*
    - uint8_t*
    - uintptr_t
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 123
    functionName: read_cb
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 2
    functionsReached:
    - Curl_conn_cf_recv
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int read_cb(void *userdata, uint8_t *buf, uintptr_t len,\n                   uintptr_t
      *out_n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vtls/rustls.c:133,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - userdata
    - buf
    - len
    - out_n
    argTypes:
    - void*
    - uint8_t*
    - uintptr_t
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: write_cb
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 2
    functionsReached:
    - Curl_conn_cf_send
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int write_cb(void *userdata, const uint8_t *buf, uintptr_t len,\n
      \                   uintptr_t *out_n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rustls_connection_read_tls
      Src: /src/curl/lib/vtls/rustls.c:161,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:169,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vtls/rustls.c:170,1
    - Dst: rustls_connection_process_new_packets
      Src: /src/curl/lib/vtls/rustls.c:175,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:177,1
    - Dst: map_error
      Src: /src/curl/lib/vtls/rustls.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - cf
    - data
    - err
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 185
    functionName: tls_recv_more
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_failf
    - rustls_connection_read_tls
    - failf
    - curlx_strerror
    - map_error
    - rustls_connection_process_new_packets
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tls_recv_more(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data, CURLcode *err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:203,1
    - Dst: tls_recv_more
      Src: /src/curl/lib/vtls/rustls.c:209,1
    - Dst: rustls_connection_read
      Src: /src/curl/lib/vtls/rustls.c:218,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:226,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:233,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:254,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 5
    argNames:
    - cf
    - data
    - plainbuf
    - plainlen
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 257
    functionName: cr_recv
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_failf
    - failf
    - DEBUGASSERT
    - tls_recv_more
    - rustls_connection_read
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_recv(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                       char *plainbuf, size_t plainlen, size_t *pnread)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rustls_connection_wants_write
      Src: /src/curl/lib/vtls/rustls.c:270,1
    - Dst: rustls_connection_write_tls
      Src: /src/curl/lib/vtls/rustls.c:271,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:274,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:280,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vtls/rustls.c:281,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:285,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - cf
    - data
    - rconn
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct rustls_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 292
    functionName: cr_flush_out
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_connection_wants_write
    - failf
    - curlx_strerror
    - rustls_connection_write_tls
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_flush_out(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                            struct rustls_connection *rconn)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:317,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:320,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:322,1
    - Dst: cr_flush_out
      Src: /src/curl/lib/vtls/rustls.c:329,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:330,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:346,1
    - Dst: rustls_connection_write
      Src: /src/curl/lib/vtls/rustls.c:347,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:349,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:354,1
    - Dst: cr_flush_out
      Src: /src/curl/lib/vtls/rustls.c:360,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:376,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 5
    argNames:
    - cf
    - data
    - plainbuf
    - plainlen
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 379
    functionName: cr_send
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_failf
    - cr_flush_out
    - DEBUGASSERT
    - failf
    - rustls_connection_write
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_send(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                       const void *plainbuf, size_t plainlen,\n                        size_t
      *pnwritten)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - userdata
    - params
    argTypes:
    - void*
    - rustls_verify_server_cert_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 389
    functionName: cr_verify_none
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t cr_verify_none(void *userdata,\n                               const
      rustls_verify_server_cert_params *params)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fopen
      Src: /src/curl/lib/vtls/rustls.c:393,1
    - Dst: fread
      Src: /src/curl/lib/vtls/rustls.c:400,1
    - Dst: feof
      Src: /src/curl/lib/vtls/rustls.c:401,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/rustls.c:402,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/vtls/rustls.c:403,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/vtls/rustls.c:410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - filename
    - out
    argTypes:
    - char*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 411
    functionName: read_file_into
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - curlx_dyn_addn
    - curlx_fopen
    - feof
    - fread
    linkageType: ''
    returnType: int
    signature: int read_file_into(const char *filename, struct dynbuf *out)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rustls_default_crypto_provider_ciphersuites_len
      Src: /src/curl/lib/vtls/rustls.c:421,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:427,1
    - Dst: rustls_default_crypto_provider_ciphersuites_get
      Src: /src/curl/lib/vtls/rustls.c:432,1
    - Dst: rustls_supported_ciphersuite_protocol_version
      Src: /src/curl/lib/vtls/rustls.c:433,1
    - Dst: Curl_cipher_suite_walk_str
      Src: /src/curl/lib/vtls/rustls.c:450,1
    - Dst: rustls_default_crypto_provider_ciphersuites_get
      Src: /src/curl/lib/vtls/rustls.c:455,1
    - Dst: rustls_supported_ciphersuite_get_suite
      Src: /src/curl/lib/vtls/rustls.c:456,1
    - Dst: infof
      Src: /src/curl/lib/vtls/rustls.c:464,1
    - Dst: infof
      Src: /src/curl/lib/vtls/rustls.c:474,1
    - Dst: rustls_default_crypto_provider_ciphersuites_get
      Src: /src/curl/lib/vtls/rustls.c:490,1
    - Dst: rustls_supported_ciphersuite_protocol_version
      Src: /src/curl/lib/vtls/rustls.c:491,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 58
    argCount: 5
    argNames:
    - data
    - ciphers12
    - ciphers13
    - selected
    - selected_size
    argTypes:
    - struct Curl_easy*
    - char*
    - char*
    - struct rustls_supported_ciphersuite**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 506
    functionName: cr_get_selected_ciphers
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_default_crypto_provider_ciphersuites_get
    - DEBUGASSERT
    - rustls_default_crypto_provider_ciphersuites_len
    - rustls_supported_ciphersuite_get_suite
    - infof
    - rustls_supported_ciphersuite_protocol_version
    - Curl_cipher_suite_walk_str
    linkageType: ''
    returnType: void
    signature: "void cr_get_selected_ciphers(struct Curl_easy *data,\n                        const
      char *ciphers12,\n                        const char *ciphers13,\n                        const
      struct rustls_supported_ciphersuite **selected,\n                        size_t
      *selected_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:515,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/rustls.c:517,1
    - Dst: Curl_tls_keylog_write
      Src: /src/curl/lib/vtls/rustls.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - label
    - client_random
    - client_random_len
    - secret
    - secret_len
    argTypes:
    - struct rustls_str
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 508
    functionDepth: 7
    functionLinenumber: 508
    functionLinenumberEnd: 519
    functionName: cr_keylog_log_cb
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - Curl_tls_keylog_write
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void cr_keylog_log_cb(struct rustls_str label,\n                             const
      uint8_t *client_random,\n                             size_t client_random_len,
      const uint8_t *secret,\n                             size_t secret_len)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: rustls_default_crypto_provider_ciphersuites_len
      Src: /src/curl/lib/vtls/rustls.c:535,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:540,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:552,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/rustls.c:567,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:571,1
    - Dst: CURLECH_ENABLED
      Src: /src/curl/lib/vtls/rustls.c:577,1
    - Dst: infof
      Src: /src/curl/lib/vtls/rustls.c:580,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/rustls.c:584,1
    - Dst: cr_get_selected_ciphers
      Src: /src/curl/lib/vtls/rustls.c:590,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:595,1
    - Dst: rustls_crypto_provider_builder_new_from_default
      Src: /src/curl/lib/vtls/rustls.c:600,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:603,1
    - Dst: rustls_crypto_provider_builder_set_cipher_suites
      Src: /src/curl/lib/vtls/rustls.c:610,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:615,1
    - Dst: rustls_crypto_provider_builder_build
      Src: /src/curl/lib/vtls/rustls.c:621,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:624,1
    - Dst: rustls_client_config_builder_new_custom
      Src: /src/curl/lib/vtls/rustls.c:629,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:634,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/rustls.c:641,1
    - Dst: rustls_crypto_provider_builder_free
      Src: /src/curl/lib/vtls/rustls.c:644,1
    - Dst: rustls_crypto_provider_free
      Src: /src/curl/lib/vtls/rustls.c:647,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 3
    argNames:
    - data
    - conn_config
    - config_builder
    argTypes:
    - struct Curl_easy*
    - struct ssl_primary_config*
    - struct rustls_client_config_builder**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 650
    functionName: init_config_builder
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_failf
    - failf
    - DEBUGASSERT
    - rustls_crypto_provider_builder_build
    - rustls_client_config_builder_new_custom
    - rustls_crypto_provider_builder_new_from_default
    - infof
    - curlx_malloc
    - cr_get_selected_ciphers
    - curlx_free
    - rustls_crypto_provider_builder_free
    - rustls_crypto_provider_builder_set_cipher_suites
    - rustls_crypto_provider_free
    - rustls_default_crypto_provider_ciphersuites_len
    - FALLTHROUGH
    - CURLECH_ENABLED
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init_config_builder(struct Curl_easy *data,\n                    const
      struct ssl_primary_config *conn_config,\n                    struct rustls_client_config_builder
      **config_builder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/rustls.c:663,1
    - Dst: rustls_client_config_builder_set_alpn_protocols
      Src: /src/curl/lib/vtls/rustls.c:665,1
    - Dst: Curl_alpn_to_proto_str
      Src: /src/curl/lib/vtls/rustls.c:667,1
    - Dst: infof
      Src: /src/curl/lib/vtls/rustls.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - data
    - connssl
    - config_builder
    argTypes:
    - struct Curl_easy*
    - struct ssl_connect_data*
    - struct rustls_client_config_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 669
    functionName: init_config_builder_alpn
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_client_config_builder_set_alpn_protocols
    - strlen
    - Curl_alpn_to_proto_str
    - infof
    linkageType: ''
    returnType: void
    signature: "void init_config_builder_alpn(struct Curl_easy *data,\n                         const
      struct ssl_connect_data *connssl,\n                         struct rustls_client_config_builder
      *config_builder)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/rustls.c:680,1
    - Dst: read_file_into
      Src: /src/curl/lib/vtls/rustls.c:681,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:682,1
    - Dst: rustls_web_pki_server_cert_verifier_builder_add_crl
      Src: /src/curl/lib/vtls/rustls.c:687,1
    - Dst: curlx_dyn_uptr
      Src: /src/curl/lib/vtls/rustls.c:689,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/rustls.c:690,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:692,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/rustls.c:698,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - data
    - conn_config
    - builder
    argTypes:
    - struct Curl_easy*
    - struct ssl_primary_config*
    - struct rustls_web_pki_server_cert_verifier_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 700
    functionName: init_config_builder_verifier_crl
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - rustls_failf
    - failf
    - read_file_into
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_uptr
    - rustls_web_pki_server_cert_verifier_builder_add_crl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init_config_builder_verifier_crl(\n  struct Curl_easy *data,\n
      \ const struct ssl_primary_config *conn_config,\n  struct rustls_web_pki_server_cert_verifier_builder
      *builder)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rustls_root_cert_store_builder_new
      Src: /src/curl/lib/vtls/rustls.c:716,1
    - Dst: rustls_root_cert_store_builder_add_pem
      Src: /src/curl/lib/vtls/rustls.c:718,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:723,1
    - Dst: rustls_root_cert_store_builder_load_roots_from_file
      Src: /src/curl/lib/vtls/rustls.c:729,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:733,1
    - Dst: rustls_root_cert_store_builder_build
      Src: /src/curl/lib/vtls/rustls.c:739,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:741,1
    - Dst: rustls_web_pki_server_cert_verifier_builder_new
      Src: /src/curl/lib/vtls/rustls.c:746,1
    - Dst: init_config_builder_verifier_crl
      Src: /src/curl/lib/vtls/rustls.c:753,1
    - Dst: rustls_web_pki_server_cert_verifier_builder_build
      Src: /src/curl/lib/vtls/rustls.c:761,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:764,1
    - Dst: rustls_client_config_builder_set_server_verifier
      Src: /src/curl/lib/vtls/rustls.c:769,1
    - Dst: rustls_root_cert_store_builder_free
      Src: /src/curl/lib/vtls/rustls.c:773,1
    - Dst: rustls_root_cert_store_free
      Src: /src/curl/lib/vtls/rustls.c:776,1
    - Dst: rustls_web_pki_server_cert_verifier_builder_free
      Src: /src/curl/lib/vtls/rustls.c:779,1
    - Dst: rustls_server_cert_verifier_free
      Src: /src/curl/lib/vtls/rustls.c:782,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 5
    argNames:
    - data
    - builder
    - conn_config
    - ca_info_blob
    - ssl_cafile
    argTypes:
    - struct Curl_easy*
    - struct rustls_client_config_builder*
    - struct ssl_primary_config*
    - struct curl_blob*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 786
    functionName: init_config_builder_verifier
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_root_cert_store_builder_new
    - rustls_failf
    - rustls_web_pki_server_cert_verifier_builder_build
    - rustls_root_cert_store_free
    - rustls_web_pki_server_cert_verifier_builder_new
    - rustls_root_cert_store_builder_build
    - rustls_client_config_builder_set_server_verifier
    - init_config_builder_verifier_crl
    - rustls_root_cert_store_builder_free
    - rustls_server_cert_verifier_free
    - rustls_root_cert_store_builder_load_roots_from_file
    - rustls_root_cert_store_builder_add_pem
    - rustls_web_pki_server_cert_verifier_builder_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init_config_builder_verifier(struct Curl_easy *data,\n                             struct
      rustls_client_config_builder *builder,\n                             const struct
      ssl_primary_config *conn_config,\n                             const struct
      curl_blob *ca_info_blob,\n                             const char * const ssl_cafile)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rustls_platform_server_cert_verifier
      Src: /src/curl/lib/vtls/rustls.c:796,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:798,1
    - Dst: rustls_client_config_builder_set_server_verifier
      Src: /src/curl/lib/vtls/rustls.c:803,1
    - Dst: rustls_server_cert_verifier_free
      Src: /src/curl/lib/vtls/rustls.c:808,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - data
    - builder
    argTypes:
    - struct Curl_easy*
    - struct rustls_client_config_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 811
    functionName: init_config_builder_platform_verifier
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_platform_server_cert_verifier
    - rustls_failf
    - rustls_client_config_builder_set_server_verifier
    - rustls_server_cert_verifier_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init_config_builder_platform_verifier(\n  struct Curl_easy
      *data,\n  struct rustls_client_config_builder *builder)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_tls_keylog_open
      Src: /src/curl/lib/vtls/rustls.c:819,1
    - Dst: Curl_tls_keylog_enabled
      Src: /src/curl/lib/vtls/rustls.c:820,1
    - Dst: rustls_client_config_builder_set_key_log
      Src: /src/curl/lib/vtls/rustls.c:824,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:828,1
    - Dst: Curl_tls_keylog_close
      Src: /src/curl/lib/vtls/rustls.c:829,1
    - Dst: map_error
      Src: /src/curl/lib/vtls/rustls.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - builder
    argTypes:
    - struct Curl_easy*
    - struct rustls_client_config_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 834
    functionName: init_config_builder_keylog
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - Curl_tls_keylog_close
    - rustls_failf
    - rustls_client_config_builder_set_key_log
    - Curl_tls_keylog_open
    - map_error
    - Curl_tls_keylog_enabled
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init_config_builder_keylog(struct Curl_easy *data,\n                           struct
      rustls_client_config_builder *builder)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:849,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:854,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/rustls.c:859,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/rustls.c:860,1
    - Dst: read_file_into
      Src: /src/curl/lib/vtls/rustls.c:862,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:863,1
    - Dst: read_file_into
      Src: /src/curl/lib/vtls/rustls.c:869,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:870,1
    - Dst: rustls_certified_key_build
      Src: /src/curl/lib/vtls/rustls.c:876,1
    - Dst: curlx_dyn_uptr
      Src: /src/curl/lib/vtls/rustls.c:876,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/rustls.c:877,1
    - Dst: curlx_dyn_uptr
      Src: /src/curl/lib/vtls/rustls.c:878,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/rustls.c:879,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:882,1
    - Dst: rustls_certified_key_keys_match
      Src: /src/curl/lib/vtls/rustls.c:887,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:889,1
    - Dst: rustls_client_config_builder_set_certified_key
      Src: /src/curl/lib/vtls/rustls.c:895,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:899,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/rustls.c:905,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/rustls.c:906,1
    - Dst: rustls_certified_key_free
      Src: /src/curl/lib/vtls/rustls.c:908,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 4
    argNames:
    - data
    - conn_config
    - ssl_config
    - builder
    argTypes:
    - struct Curl_easy*
    - struct ssl_primary_config*
    - struct ssl_config_data*
    - struct rustls_client_config_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 911
    functionName: init_config_builder_client_auth
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_certified_key_keys_match
    - curlx_dyn_init
    - rustls_failf
    - failf
    - rustls_certified_key_build
    - read_file_into
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_uptr
    - rustls_certified_key_free
    - rustls_client_config_builder_set_certified_key
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init_config_builder_client_auth(struct Curl_easy *data,\n
      \                               const struct ssl_primary_config *conn_config,\n
      \                               const struct ssl_config_data *ssl_config,\n
      \                               struct rustls_client_config_builder *builder)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURLECH_ENABLED
      Src: /src/curl/lib/vtls/rustls.c:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 923
    functionName: cr_ech_need_httpsrr
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - CURLECH_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool cr_ech_need_httpsrr(struct Curl_easy *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rustls_supported_hpke
      Src: /src/curl/lib/vtls/rustls.c:930,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:938,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:946,1
    - Dst: rustls_client_config_builder_enable_ech_grease
      Src: /src/curl/lib/vtls/rustls.c:952,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:954,1
    - Dst: infof
      Src: /src/curl/lib/vtls/rustls.c:965,1
    - Dst: curlx_base64_decode
      Src: /src/curl/lib/vtls/rustls.c:970,1
    - Dst: infof
      Src: /src/curl/lib/vtls/rustls.c:972,1
    - Dst: Curl_conn_dns_get_https
      Src: /src/curl/lib/vtls/rustls.c:979,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:982,1
    - Dst: rustls_client_config_builder_enable_ech
      Src: /src/curl/lib/vtls/rustls.c:990,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:995,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/rustls.c:1002,1
    - Dst: Curl_dns_entry_unlink
      Src: /src/curl/lib/vtls/rustls.c:1005,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 3
    argNames:
    - data
    - cf
    - builder
    argTypes:
    - struct Curl_easy*
    - struct Curl_cfilter*
    - struct rustls_client_config_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 925
    functionDepth: 4
    functionLinenumber: 925
    functionLinenumberEnd: 1008
    functionName: init_config_builder_ech
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_failf
    - failf
    - rustls_supported_hpke
    - Curl_dns_entry_unlink
    - infof
    - Curl_conn_dns_get_https
    - rustls_client_config_builder_enable_ech_grease
    - curlx_free
    - rustls_client_config_builder_enable_ech
    - curlx_base64_decode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init_config_builder_ech(struct Curl_easy *data,\n                        struct
      Curl_cfilter *cf,\n                        struct rustls_client_config_builder
      *builder)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/rustls.c:1017,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/rustls.c:1018,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1029,1
    - Dst: init_config_builder
      Src: /src/curl/lib/vtls/rustls.c:1032,1
    - Dst: init_config_builder_alpn
      Src: /src/curl/lib/vtls/rustls.c:1038,1
    - Dst: rustls_client_config_builder_dangerous_set_certificate_verifier
      Src: /src/curl/lib/vtls/rustls.c:1042,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:1047,1
    - Dst: rustls_client_config_builder_free
      Src: /src/curl/lib/vtls/rustls.c:1049,1
    - Dst: init_config_builder_platform_verifier
      Src: /src/curl/lib/vtls/rustls.c:1052,1
    - Dst: rustls_client_config_builder_free
      Src: /src/curl/lib/vtls/rustls.c:1054,1
    - Dst: init_config_builder_verifier
      Src: /src/curl/lib/vtls/rustls.c:1059,1
    - Dst: rustls_client_config_builder_free
      Src: /src/curl/lib/vtls/rustls.c:1065,1
    - Dst: init_config_builder_client_auth
      Src: /src/curl/lib/vtls/rustls.c:1071,1
    - Dst: rustls_client_config_builder_free
      Src: /src/curl/lib/vtls/rustls.c:1076,1
    - Dst: CURLECH_ENABLED
      Src: /src/curl/lib/vtls/rustls.c:1082,1
    - Dst: init_config_builder_ech
      Src: /src/curl/lib/vtls/rustls.c:1083,1
    - Dst: rustls_client_config_builder_free
      Src: /src/curl/lib/vtls/rustls.c:1085,1
    - Dst: init_config_builder_keylog
      Src: /src/curl/lib/vtls/rustls.c:1091,1
    - Dst: rustls_client_config_builder_free
      Src: /src/curl/lib/vtls/rustls.c:1093,1
    - Dst: rustls_client_config_builder_build
      Src: /src/curl/lib/vtls/rustls.c:1097,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:1099,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1103,1
    - Dst: rustls_client_connection_new
      Src: /src/curl/lib/vtls/rustls.c:1104,1
    - Dst: rustls_failf
      Src: /src/curl/lib/vtls/rustls.c:1108,1
    - Dst: rustls_client_config_free
      Src: /src/curl/lib/vtls/rustls.c:1109,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1113,1
    - Dst: rustls_connection_set_userdata
      Src: /src/curl/lib/vtls/rustls.c:1114,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 3
    argNames:
    - cf
    - data
    - backend
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct rustls_ssl_backend_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1011
    functionDepth: 5
    functionLinenumber: 1011
    functionLinenumberEnd: 1118
    functionName: cr_init_backend
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - init_config_builder_platform_verifier
    - DEBUGASSERT
    - init_config_builder_client_auth
    - init_config_builder_ech
    - rustls_client_config_free
    - init_config_builder_verifier
    - rustls_client_config_builder_build
    - Curl_ssl_cf_get_primary_config
    - init_config_builder
    - failf
    - init_config_builder_alpn
    - Curl_ssl_cf_get_config
    - rustls_connection_set_userdata
    - rustls_client_connection_new
    - rustls_failf
    - rustls_client_config_builder_dangerous_set_certificate_verifier
    - init_config_builder_keylog
    - rustls_client_config_builder_free
    - CURLECH_ENABLED
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_init_backend(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                struct rustls_ssl_backend_data
      * const backend)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rustls_connection_get_alpn_protocol
      Src: /src/curl/lib/vtls/rustls.c:1128,1
    - Dst: Curl_alpn_set_negotiated
      Src: /src/curl/lib/vtls/rustls.c:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cf
    - data
    - rconn
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct rustls_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1130
    functionName: cr_set_negotiated_alpn
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - Curl_alpn_set_negotiated
    - rustls_connection_get_alpn_protocol
    linkageType: ''
    returnType: void
    signature: "void cr_set_negotiated_alpn(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   const struct rustls_connection
      *rconn)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1150,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:1152,1
    - Dst: cr_ech_need_httpsrr
      Src: /src/curl/lib/vtls/rustls.c:1158,1
    - Dst: Curl_conn_dns_resolved_https
      Src: /src/curl/lib/vtls/rustls.c:1159,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:1160,1
    - Dst: cr_init_backend
      Src: /src/curl/lib/vtls/rustls.c:1167,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:1169,1
    - Dst: rustls_connection_is_handshaking
      Src: /src/curl/lib/vtls/rustls.c:1183,1
    - Dst: cr_set_negotiated_alpn
      Src: /src/curl/lib/vtls/rustls.c:1189,1
    - Dst: cr_send
      Src: /src/curl/lib/vtls/rustls.c:1190,1
    - Dst: rustls_connection_get_protocol_version
      Src: /src/curl/lib/vtls/rustls.c:1201,1
    - Dst: rustls_connection_get_negotiated_ciphersuite_name
      Src: /src/curl/lib/vtls/rustls.c:1203,1
    - Dst: rustls_connection_get_negotiated_key_exchange_group_name
      Src: /src/curl/lib/vtls/rustls.c:1205,1
    - Dst: infof
      Src: /src/curl/lib/vtls/rustls.c:1212,1
    - Dst: rustls_connection_get_peer_certificate
      Src: /src/curl/lib/vtls/rustls.c:1224,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:1227,1
    - Dst: Curl_ssl_init_certinfo
      Src: /src/curl/lib/vtls/rustls.c:1232,1
    - Dst: rustls_connection_get_peer_certificate
      Src: /src/curl/lib/vtls/rustls.c:1240,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1241,1
    - Dst: rustls_certificate_get_der
      Src: /src/curl/lib/vtls/rustls.c:1242,1
    - Dst: rustls_error
      Src: /src/curl/lib/vtls/rustls.c:1246,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:1247,1
    - Dst: map_error
      Src: /src/curl/lib/vtls/rustls.c:1250,1
    - Dst: Curl_extract_certinfo
      Src: /src/curl/lib/vtls/rustls.c:1257,1
    - Dst: rustls_connection_wants_read
      Src: /src/curl/lib/vtls/rustls.c:1270,1
    - Dst: rustls_connection_wants_write
      Src: /src/curl/lib/vtls/rustls.c:1271,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1273,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:1277,1
    - Dst: cr_send
      Src: /src/curl/lib/vtls/rustls.c:1278,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:1280,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:1290,1
    - Dst: tls_recv_more
      Src: /src/curl/lib/vtls/rustls.c:1291,1
    - Dst: failf
      Src: /src/curl/lib/vtls/rustls.c:1294,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:1299,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1315,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 105
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1137
    functionDepth: 9
    functionLinenumber: 1137
    functionLinenumberEnd: 1316
    functionName: cr_connect
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_connection_wants_write
    - DEBUGASSERT
    - rustls_error
    - CURL_TRC_CF
    - Curl_conn_dns_resolved_https
    - rustls_certificate_get_der
    - rustls_connection_wants_read
    - cr_send
    - failf
    - rustls_connection_get_protocol_version
    - rustls_connection_is_handshaking
    - rustls_connection_get_negotiated_ciphersuite_name
    - rustls_connection_get_peer_certificate
    - rustls_connection_get_negotiated_key_exchange_group_name
    - cr_ech_need_httpsrr
    - cr_set_negotiated_alpn
    - cr_init_backend
    - Curl_extract_certinfo
    - tls_recv_more
    - infof
    - Curl_ssl_init_certinfo
    - map_error
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_connect(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                          bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - connssl
    - info
    argTypes:
    - struct ssl_connect_data*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1325
    functionName: cr_get_internals
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void *cr_get_internals(struct ssl_connect_data *connssl, CURLINFO info)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1336,1
    - Dst: rustls_connection_send_close_notify
      Src: /src/curl/lib/vtls/rustls.c:1349,1
    - Dst: cr_send
      Src: /src/curl/lib/vtls/rustls.c:1353,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1360,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:1361,1
    - Dst: cr_recv
      Src: /src/curl/lib/vtls/rustls.c:1367,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1377,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/rustls.c:1378,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - cf
    - data
    - send_shutdown
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1327
    functionDepth: 3
    functionLinenumber: 1327
    functionLinenumberEnd: 1388
    functionName: cr_shutdown
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - cr_send
    - DEBUGASSERT
    - rustls_connection_send_close_notify
    - cr_recv
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_shutdown(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                           const bool send_shutdown, bool *done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/rustls.c:1397,1
    - Dst: rustls_connection_free
      Src: /src/curl/lib/vtls/rustls.c:1399,1
    - Dst: rustls_client_config_free
      Src: /src/curl/lib/vtls/rustls.c:1403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1406
    functionName: cr_close
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_connection_free
    - DEBUGASSERT
    - rustls_client_config_free
    linkageType: ''
    returnType: void
    signature: void cr_close(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rustls_version
      Src: /src/curl/lib/vtls/rustls.c:1410,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/rustls.c:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1408
    functionDepth: 7
    functionLinenumber: 1408
    functionLinenumberEnd: 1412
    functionName: cr_version
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - rustls_version
    - curl_msnprintf
    linkageType: ''
    returnType: size_t
    signature: size_t cr_version(char *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rustls_default_crypto_provider_random
      Src: /src/curl/lib/vtls/rustls.c:1419,1
    - Dst: map_error
      Src: /src/curl/lib/vtls/rustls.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - entropy
    - length
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1421
    functionName: cr_random
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - map_error
    - rustls_default_crypto_provider_random
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cr_random(struct Curl_easy *data, unsigned char *entropy,\n
      \                         size_t length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_tls_keylog_close
      Src: /src/curl/lib/vtls/rustls.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1426
    functionName: cr_cleanup
    functionSourceFile: /src/curl/lib/vtls/rustls.c
    functionUses: 0
    functionsReached:
    - Curl_tls_keylog_close
    linkageType: ''
    returnType: void
    signature: void cr_cleanup(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/curl/lib/vtls/keylog.c:41,1
    - Dst: curlx_fopen
      Src: /src/curl/lib/vtls/keylog.c:43,1
    - Dst: setvbuf
      Src: /src/curl/lib/vtls/keylog.c:46,1
    - Dst: setvbuf
      Src: /src/curl/lib/vtls/keylog.c:48,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/vtls/keylog.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: Curl_tls_keylog_open
    functionSourceFile: /src/curl/lib/vtls/keylog.c
    functionUses: 3
    functionsReached:
    - curlx_fclose
    - getenv
    - setvbuf
    - curlx_fopen
    linkageType: ''
    returnType: void
    signature: void Curl_tls_keylog_open(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_fclose
      Src: /src/curl/lib/vtls/keylog.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: Curl_tls_keylog_close
    functionSourceFile: /src/curl/lib/vtls/keylog.c
    functionUses: 4
    functionsReached:
    - curlx_fclose
    linkageType: ''
    returnType: void
    signature: void Curl_tls_keylog_close(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Curl_tls_keylog_enabled
    functionSourceFile: /src/curl/lib/vtls/keylog.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_tls_keylog_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: Curl_tls_keylog_file_name
    functionSourceFile: /src/curl/lib/vtls/keylog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Curl_tls_keylog_file_name(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/keylog.c:87,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/keylog.c:93,1
    - Dst: fputs
      Src: /src/curl/lib/vtls/keylog.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: Curl_tls_keylog_write_line
    functionSourceFile: /src/curl/lib/vtls/keylog.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - fputs
    linkageType: ''
    returnType: bool
    signature: bool Curl_tls_keylog_write_line(const char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/keylog.c:119,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/keylog.c:125,1
    - Dst: Curl_hexbyte
      Src: /src/curl/lib/vtls/keylog.c:130,1
    - Dst: Curl_hexbyte
      Src: /src/curl/lib/vtls/keylog.c:137,1
    - Dst: fputs
      Src: /src/curl/lib/vtls/keylog.c:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - label
    - client_random
    - secret
    - secretlen
    argTypes:
    - char*
    - unsigned char[]
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 147
    functionName: Curl_tls_keylog_write
    functionSourceFile: /src/curl/lib/vtls/keylog.c
    functionUses: 4
    functionsReached:
    - strlen
    - memcpy
    - fputs
    - Curl_hexbyte
    linkageType: ''
    returnType: bool
    signature: "bool Curl_tls_keylog_write(\n  const char *label,\n  const unsigned
      char client_random[CLIENT_RANDOM_SIZE],\n  const unsigned char *secret, size_t
      secretlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: Curl_tls_keylog_enabled
    functionSourceFile: /src/curl/lib/vtls/keylog.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_tls_keylog_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: Curl_tls_keylog_file_name
    functionSourceFile: /src/curl/lib/vtls/keylog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Curl_tls_keylog_file_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: SCH_DEV
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCH_DEV(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: SCH_DEV_SHOWBOOL
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCH_DEV_SHOWBOOL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: SCH_DEV
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCH_DEV(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: SCH_DEV_SHOWBOOL
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCH_DEV_SHOWBOOL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buffer
    - BufType
    - BufDataPtr
    - BufByteSize
    argTypes:
    - SecBuffer*
    - unsigned long
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: InitSecBuffer
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void InitSecBuffer(SecBuffer *buffer, unsigned long BufType,\n                          void
      *BufDataPtr, unsigned long BufByteSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - desc
    - BufArr
    - NumArrElem
    argTypes:
    - SecBufferDesc*
    - SecBuffer*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: InitSecBufferDesc
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void InitSecBufferDesc(SecBufferDesc *desc, SecBuffer *BufArr,\n                              unsigned
      long NumArrElem)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/schannel.c:153,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/vtls/schannel.c:166,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/vtls/schannel.c:190,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:196,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - enabled_protocols
    - cf
    - data
    argTypes:
    - DWORD*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 202
    functionName: schannel_set_ssl_version_min_max
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_cf_get_primary_config
    - curlx_verify_windows_version
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_set_ssl_version_min_max(DWORD *enabled_protocols,\n
      \                                                struct Curl_cfilter *cf,\n
      \                                                struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: CIPHEROPTION
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIPHEROPTION(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/lib/vtls/schannel.c:270,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/schannel.c:271,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/schannel.c:275,1
    - Dst: strncmp
      Src: /src/curl/lib/vtls/schannel.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 279
    functionName: get_alg_id_by_name
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    - strchr
    linkageType: ''
    returnType: int
    signature: int get_alg_id_by_name(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/lib/vtls/schannel.c:290,1
    - Dst: get_alg_id_by_name
      Src: /src/curl/lib/vtls/schannel.c:291,1
    - Dst: strncmp
      Src: /src/curl/lib/vtls/schannel.c:295,1
    - Dst: strncmp
      Src: /src/curl/lib/vtls/schannel.c:297,1
    - Dst: strchr
      Src: /src/curl/lib/vtls/schannel.c:302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - schannel_cred
    - ciphers
    - algIds
    argTypes:
    - SCHANNEL_CRED*
    - char*
    - ALG_ID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 309
    functionName: set_ssl_ciphers
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - strncmp
    - get_alg_id_by_name
    - strchr
    - curlx_str_number
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode set_ssl_ciphers(SCHANNEL_CRED *schannel_cred, char *ciphers,\n
      \                               ALG_ID *algIds)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _tcschr
      Src: /src/curl/lib/vtls/schannel.c:319,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:319,1
    - Dst: _tcsncmp
      Src: /src/curl/lib/vtls/schannel.c:325,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:325,1
    - Dst: _tcsncmp
      Src: /src/curl/lib/vtls/schannel.c:327,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:327,1
    - Dst: _tcsncmp
      Src: /src/curl/lib/vtls/schannel.c:329,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:329,1
    - Dst: _tcsncmp
      Src: /src/curl/lib/vtls/schannel.c:331,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:331,1
    - Dst: _tcsncmp
      Src: /src/curl/lib/vtls/schannel.c:333,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:333,1
    - Dst: _tcsncmp
      Src: /src/curl/lib/vtls/schannel.c:335,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:335,1
    - Dst: _tcsncmp
      Src: /src/curl/lib/vtls/schannel.c:337,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:337,1
    - Dst: _tcsncmp
      Src: /src/curl/lib/vtls/schannel.c:339,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:339,1
    - Dst: _tcschr
      Src: /src/curl/lib/vtls/schannel.c:346,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:346,1
    - Dst: _tcslen
      Src: /src/curl/lib/vtls/schannel.c:351,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:354,1
    - Dst: curlx_tcsdup
      Src: /src/curl/lib/vtls/schannel.c:355,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:356,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - path
    - store_name
    - store_path
    - thumbprint
    argTypes:
    - TCHAR*
    - DWORD*
    - TCHAR**
    - TCHAR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 361
    functionName: get_cert_location
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - _tcschr
    - _tcslen
    - _tcsncmp
    - TEXT
    - curlx_tcsdup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode get_cert_location(TCHAR *path, DWORD *store_name,\n                                  TCHAR
      **store_path, TCHAR **thumbprint)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/vtls/schannel.c:390,1
    - Dst: get_cert_location
      Src: /src/curl/lib/vtls/schannel.c:394,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/schannel.c:401,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:406,1
    - Dst: curlx_fopen
      Src: /src/curl/lib/vtls/schannel.c:408,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:411,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/schannel.c:419,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:420,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:423,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/vtls/schannel.c:425,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:439,1
    - Dst: fseek
      Src: /src/curl/lib/vtls/schannel.c:442,1
    - Dst: ftell
      Src: /src/curl/lib/vtls/schannel.c:444,1
    - Dst: fseek
      Src: /src/curl/lib/vtls/schannel.c:450,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/schannel.c:452,1
    - Dst: fread
      Src: /src/curl/lib/vtls/schannel.c:454,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/vtls/schannel.c:456,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:458,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:460,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/schannel.c:470,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/schannel.c:471,1
    - Dst: MultiByteToWideChar
      Src: /src/curl/lib/vtls/schannel.c:475,1
    - Dst: PFXImportCertStore
      Src: /src/curl/lib/vtls/schannel.c:486,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:488,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:491,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/schannel.c:493,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:495,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:499,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/vtls/schannel.c:507,1
    - Dst: CertFindCertificateInStore
      Src: /src/curl/lib/vtls/schannel.c:514,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:519,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/schannel.c:521,1
    - Dst: CertCloseStore
      Src: /src/curl/lib/vtls/schannel.c:522,1
    - Dst: curlx_convert_tchar_to_UTF8
      Src: /src/curl/lib/vtls/schannel.c:540,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:541,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/schannel.c:544,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:545,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:546,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:549,1
    - Dst: CryptStringToBinary
      Src: /src/curl/lib/vtls/schannel.c:554,1
    - Dst: CertCloseStore
      Src: /src/curl/lib/vtls/schannel.c:560,1
    - Dst: CertFindCertificateInStore
      Src: /src/curl/lib/vtls/schannel.c:565,1
    - Dst: CertCloseStore
      Src: /src/curl/lib/vtls/schannel.c:570,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:571,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 107
    argCount: 3
    argNames:
    - data
    - out_cert_store
    - out_cert_context
    argTypes:
    - struct Curl_easy*
    - HCERTSTORE*
    - PCCERT_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 582
    functionName: get_client_cert
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - curlx_fclose
    - MultiByteToWideChar
    - ftell
    - CertCloseStore
    - memcpy
    - curlx_convert_tchar_to_UTF8
    - PFXImportCertStore
    - CryptStringToBinary
    - fread
    - CertFindCertificateInStore
    - failf
    - curlx_malloc
    - curlx_free
    - curl_strequal
    - curlx_convert_UTF8_to_tchar
    - curlx_verify_windows_version
    - get_cert_location
    - GetLastError
    - fseek
    - curlx_fopen
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode get_client_cert(struct Curl_easy *data,\n                                HCERTSTORE
      *out_cert_store,\n                                PCCERT_CONTEXT *out_cert_context)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/schannel.c:591,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/vtls/schannel.c:599,1
    - Dst: memset
      Src: /src/curl/lib/vtls/schannel.c:612,1
    - Dst: AcquireCredentialsHandle
      Src: /src/curl/lib/vtls/schannel.c:632,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/schannel.c:633,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:658,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:662,1
    - Dst: set_ssl_ciphers
      Src: /src/curl/lib/vtls/schannel.c:666,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:668,1
    - Dst: AcquireCredentialsHandle
      Src: /src/curl/lib/vtls/schannel.c:682,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/schannel.c:683,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:691,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:692,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 6
    argNames:
    - cf
    - data
    - backend
    - client_cert
    - flags
    - enabled_protocols
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct schannel_ssl_backend_data*
    - PCCERT_CONTEXT
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 584
    functionDepth: 8
    functionLinenumber: 584
    functionLinenumberEnd: 707
    functionName: acquire_sspi_handle
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - set_ssl_ciphers
    - failf
    - AcquireCredentialsHandle
    - CURL_UNCONST
    - infof
    - curlx_verify_windows_version
    - memset
    - Curl_ssl_cf_get_primary_config
    - Curl_sspi_strerror
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode acquire_sspi_handle(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    struct schannel_ssl_backend_data
      *backend,\n                                    PCCERT_CONTEXT client_cert,\n
      \                                   DWORD flags,\n                                    DWORD
      enabled_protocols)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/schannel.c:713,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/schannel.c:714,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:727,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:739,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:739,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:747,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:747,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:752,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:752,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:759,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:759,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:764,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:764,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:772,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:775,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:777,1
    - Dst: schannel_set_ssl_version_min_max
      Src: /src/curl/lib/vtls/schannel.c:784,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:791,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:794,1
    - Dst: get_client_cert
      Src: /src/curl/lib/vtls/schannel.c:798,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/schannel.c:804,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:806,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/schannel.c:809,1
    - Dst: CertCloseStore
      Src: /src/curl/lib/vtls/schannel.c:811,1
    - Dst: acquire_sspi_handle
      Src: /src/curl/lib/vtls/schannel.c:822,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/schannel.c:826,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 709
    functionDepth: 9
    functionLinenumber: 709
    functionLinenumberEnd: 829
    functionName: schannel_acquire_credential_handle
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - CertCloseStore
    - CertFreeCertificateContext
    - DEBUGASSERT
    - schannel_set_ssl_version_min_max
    - failf
    - infof
    - Curl_ssl_cf_get_config
    - curlx_calloc
    - get_client_cert
    - Curl_ssl_cf_get_primary_config
    - DEBUGF
    - acquire_sspi_handle
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_acquire_credential_handle(struct Curl_cfilter *cf,\n
      \                                                  struct Curl_easy *data)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/schannel.c:838,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/schannel.c:839,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:850,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:851,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:851,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/vtls/schannel.c:861,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:866,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vtls/schannel.c:877,1
    - Dst: Curl_ssl_scache_lock
      Src: /src/curl/lib/vtls/schannel.c:879,1
    - Dst: Curl_ssl_scache_get_obj
      Src: /src/curl/lib/vtls/schannel.c:880,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:883,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:883,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:887,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:887,1
    - Dst: Curl_ssl_scache_unlock
      Src: /src/curl/lib/vtls/schannel.c:891,1
    - Dst: schannel_acquire_credential_handle
      Src: /src/curl/lib/vtls/schannel.c:896,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/vtls/schannel.c:906,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:913,1
    - Dst: Curl_alpn_to_proto_buf
      Src: /src/curl/lib/vtls/schannel.c:942,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:944,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/schannel.c:947,1
    - Dst: curlx_uitous
      Src: /src/curl/lib/vtls/schannel.c:950,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:954,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:955,1
    - Dst: Curl_alpn_to_proto_str
      Src: /src/curl/lib/vtls/schannel.c:957,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:958,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:961,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:962,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:965,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:966,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:970,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:971,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/schannel.c:982,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:984,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/vtls/schannel.c:995,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/schannel.c:1004,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1007,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:1008,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1011,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:1012,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1026,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:1027,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1032,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1032,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vtls/schannel.c:1036,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vtls/schannel.c:1040,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1042,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1047,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1047,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 113
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 831
    functionDepth: 10
    functionLinenumber: 831
    functionLinenumberEnd: 1061
    functionName: schannel_connect_step1
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - curlx_uitous
    - Curl_sspi_strerror
    - InitSecBuffer
    - Curl_ssl_scache_use
    - InitializeSecurityContext
    - Curl_alpn_to_proto_buf
    - memcpy
    - Curl_ssl_scache_get_obj
    - Curl_alpn_to_proto_str
    - Curl_ssl_cf_get_primary_config
    - FreeContextBuffer
    - Curl_ssl_scache_unlock
    - failf
    - Curl_ssl_cf_get_config
    - Curl_conn_cf_send
    - curlx_verify_windows_version
    - curlx_convert_UTF8_to_tchar
    - curlx_calloc
    - InitSecBufferDesc
    - infof
    - schannel_acquire_credential_handle
    - DEBUGF
    - Curl_ssl_scache_lock
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_connect_step1(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1069,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:1070,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1073,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:1074,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1077,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:1078,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1092,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:1093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - data
    - sspi_status
    argTypes:
    - struct Curl_easy*
    - SECURITY_STATUS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1063
    functionDepth: 8
    functionLinenumber: 1063
    functionLinenumberEnd: 1096
    functionName: schannel_error
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - Curl_sspi_strerror
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_error(struct Curl_easy *data,\n                               SECURITY_STATUS
      sspi_status)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1110,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/vtls/schannel.c:1124,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1130,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:1131,1
    - Dst: memset
      Src: /src/curl/lib/vtls/schannel.c:1141,1
    - Dst: Curl_parseX509
      Src: /src/curl/lib/vtls/schannel.c:1142,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1147,1
    - Dst: Curl_pin_peer_pubkey
      Src: /src/curl/lib/vtls/schannel.c:1151,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1156,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/schannel.c:1161,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - cf
    - data
    - pinnedpubkey
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1098
    functionDepth: 8
    functionLinenumber: 1098
    functionLinenumberEnd: 1164
    functionName: schannel_pkp_pin_peer_pubkey
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - Curl_parseX509
    - CertFreeCertificateContext
    - failf
    - DEBUGASSERT
    - Curl_pin_peer_pubkey
    - QueryContextAttributes
    - memset
    - Curl_sspi_strerror
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_pkp_pin_peer_pubkey(struct Curl_cfilter *cf,\n                                             struct
      Curl_easy *data,\n                                             const char *pinnedpubkey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1171,1
    - Dst: curlx_realloc
      Src: /src/curl/lib/vtls/schannel.c:1180,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1182,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1188,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - data
    - encdata
    - min_length
    argTypes:
    - struct Curl_easy*
    - struct sbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1192
    functionName: ensure_encoding_size
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - failf
    - SCH_DEV
    - DEBUGASSERT
    - infof
    - curlx_realloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ensure_encoding_size(struct Curl_easy *data,\n                                     struct
      sbuffer *encdata,\n                                     size_t min_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1201,1
    - Dst: curlx_realloc
      Src: /src/curl/lib/vtls/schannel.c:1213,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - data
    - decdata
    - nowsize
    - len
    argTypes:
    - struct Curl_easy*
    - struct sbuffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1222
    functionName: ensure_decoding_size
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - curlx_realloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ensure_decoding_size(struct Curl_easy *data,\n                                     struct
      sbuffer *decdata,\n                                     size_t nowsize,\n                                     size_t
      len)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/schannel.c:1230,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1242,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1247,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1247,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/schannel.c:1257,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1259,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/schannel.c:1269,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1271,1
    - Dst: ensure_encoding_size
      Src: /src/curl/lib/vtls/schannel.c:1276,1
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/vtls/schannel.c:1283,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1292,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1292,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1297,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1297,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1302,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1310,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1310,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1314,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1314,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:1319,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/schannel.c:1320,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vtls/schannel.c:1321,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:1322,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:1323,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:1326,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:1327,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:1328,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:1329,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1332,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/schannel.c:1337,1
    - Dst: SOCKET_WRITABLE
      Src: /src/curl/lib/vtls/schannel.c:1344,1
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/vtls/schannel.c:1344,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1345,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1345,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:1347,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/vtls/schannel.c:1351,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/schannel.c:1358,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1365,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1365,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1377,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1377,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vtls/schannel.c:1381,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1386,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vtls/schannel.c:1395,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1409,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1409,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/schannel.c:1413,1
    - Dst: schannel_error
      Src: /src/curl/lib/vtls/schannel.c:1416,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1421,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1421,1
    - Dst: memmove
      Src: /src/curl/lib/vtls/schannel.c:1436,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1461,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1461,1
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/schannel.c:1465,1
    - Dst: schannel_pkp_pin_peer_pubkey
      Src: /src/curl/lib/vtls/schannel.c:1472,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1474,1
    - Dst: Curl_verify_certificate
      Src: /src/curl/lib/vtls/schannel.c:1481,1
    - Dst: Curl_verify_host
      Src: /src/curl/lib/vtls/schannel.c:1487,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 146
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1224
    functionDepth: 10
    functionLinenumber: 1224
    functionLinenumberEnd: 1490
    functionName: schannel_connect_step2
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - schannel_error
    - memmove
    - Curl_ssl_cf_is_proxy
    - FALLTHROUGH
    - InitializeSecurityContext
    - InitSecBuffer
    - memcpy
    - Curl_ssl_cf_get_primary_config
    - Curl_conn_cf_recv
    - FreeContextBuffer
    - failf
    - curlx_uztoul
    - Curl_verify_certificate
    - curlx_malloc
    - ensure_encoding_size
    - curlx_free
    - Curl_conn_cf_send
    - schannel_pkp_pin_peer_pubkey
    - InitSecBufferDesc
    - Curl_verify_host
    - SCH_DEV
    - infof
    - Curl_conn_cf_get_socket
    - DEBUGF
    - SOCKET_WRITABLE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_connect_step2(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - cert_context
    argTypes:
    - CERT_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1498
    functionName: valid_cert_encoding
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_cert_encoding(const CERT_CONTEXT *cert_context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CertEnumCertificatesInStore
      Src: /src/curl/lib/vtls/schannel.c:1511,1
    - Dst: func
      Src: /src/curl/lib/vtls/schannel.c:1521,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/schannel.c:1526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - context
    - func
    - arg
    argTypes:
    - CERT_CONTEXT*
    - Read_crt_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1527
    functionName: traverse_cert_store
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - CertFreeCertificateContext
    - CertEnumCertificatesInStore
    - func
    linkageType: ''
    returnType: void
    signature: "void traverse_cert_store(const CERT_CONTEXT *context,\n                                Read_crt_func
      func, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_cert_encoding
      Src: /src/curl/lib/vtls/schannel.c:1533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ccert_context
    - reverse_order
    - certs_count
    argTypes:
    - CERT_CONTEXT*
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1538
    functionName: cert_counter_callback
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - valid_cert_encoding
    linkageType: ''
    returnType: bool
    signature: "bool cert_counter_callback(const CERT_CONTEXT *ccert_context,\n                                  bool
      reverse_order, void *certs_count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valid_cert_encoding
      Src: /src/curl/lib/vtls/schannel.c:1552,1
    - Dst: Curl_extract_certinfo
      Src: /src/curl/lib/vtls/schannel.c:1557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ccert_context
    - reverse_order
    - raw_arg
    argTypes:
    - CERT_CONTEXT*
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1547
    functionDepth: 9
    functionLinenumber: 1547
    functionLinenumberEnd: 1562
    functionName: add_cert_to_certinfo
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - Curl_extract_certinfo
    - valid_cert_encoding
    linkageType: ''
    returnType: bool
    signature: "bool add_cert_to_certinfo(const CERT_CONTEXT *ccert_context,\n                                 bool
      reverse_order, void *raw_arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vtls/schannel.c:1572,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:1573,1
    - Dst: CertCloseStore
      Src: /src/curl/lib/vtls/schannel.c:1575,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/schannel.c:1578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - sessionid
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1581
    functionName: schannel_session_free
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - CertCloseStore
    - curlx_free
    - curlx_safefree
    - FreeCredentialsHandle
    linkageType: ''
    returnType: void
    signature: void schannel_session_free(void *sessionid)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1596,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1597,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:1599,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1599,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1608,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1610,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1612,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1614,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1616,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/vtls/schannel.c:1623,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1628,1
    - Dst: strncmp
      Src: /src/curl/lib/vtls/schannel.c:1636,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1641,1
    - Dst: Curl_alpn_set_negotiated
      Src: /src/curl/lib/vtls/schannel.c:1644,1
    - Dst: Curl_alpn_set_negotiated
      Src: /src/curl/lib/vtls/schannel.c:1649,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vtls/schannel.c:1655,1
    - Dst: Curl_ssl_scache_lock
      Src: /src/curl/lib/vtls/schannel.c:1656,1
    - Dst: Curl_ssl_scache_add_obj
      Src: /src/curl/lib/vtls/schannel.c:1659,1
    - Dst: Curl_ssl_scache_unlock
      Src: /src/curl/lib/vtls/schannel.c:1661,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/vtls/schannel.c:1669,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1674,1
    - Dst: traverse_cert_store
      Src: /src/curl/lib/vtls/schannel.c:1678,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1680,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/schannel.c:1682,1
    - Dst: Curl_ssl_init_certinfo
      Src: /src/curl/lib/vtls/schannel.c:1686,1
    - Dst: traverse_cert_store
      Src: /src/curl/lib/vtls/schannel.c:1693,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/schannel.c:1696,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1583
    functionDepth: 1
    functionLinenumber: 1583
    functionLinenumberEnd: 1704
    functionName: schannel_connect_step3
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_scache_use
    - Curl_ssl_scache_add_obj
    - Curl_ssl_scache_unlock
    - CertFreeCertificateContext
    - failf
    - DEBUGASSERT
    - Curl_ssl_scache_lock
    - Curl_alpn_set_negotiated
    - infof
    - traverse_cert_store
    - QueryContextAttributes
    - Curl_ssl_init_certinfo
    - DEBUGF
    - strncmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_connect_step3(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: schannel_connect_step1
      Src: /src/curl/lib/vtls/schannel.c:1722,1
    - Dst: schannel_connect_step2
      Src: /src/curl/lib/vtls/schannel.c:1728,1
    - Dst: schannel_connect_step3
      Src: /src/curl/lib/vtls/schannel.c:1734,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1751,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1706
    functionDepth: 11
    functionLinenumber: 1706
    functionLinenumberEnd: 1760
    functionName: schannel_connect
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - schannel_connect_step2
    - schannel_connect_step3
    - schannel_connect_step1
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_connect(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 bool *done)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1792,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1795,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1797,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1797,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1799,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1799,1
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/vtls/schannel.c:1801,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1804,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1809,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1810,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1811,1
    - Dst: memset
      Src: /src/curl/lib/vtls/schannel.c:1814,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/schannel.c:1816,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vtls/schannel.c:1825,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/schannel.c:1825,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1827,1
    - Dst: schannel_connect
      Src: /src/curl/lib/vtls/schannel.c:1838,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1855,1
    - Dst: SCH_DEV_SHOWBOOL
      Src: /src/curl/lib/vtls/schannel.c:1879,1
    - Dst: SCH_DEV_SHOWBOOL
      Src: /src/curl/lib/vtls/schannel.c:1880,1
    - Dst: SCH_DEV_SHOWBOOL
      Src: /src/curl/lib/vtls/schannel.c:1881,1
    - Dst: Curl_pgrsUpdate
      Src: /src/curl/lib/vtls/schannel.c:1887,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vtls/schannel.c:1891,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/schannel.c:1891,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1893,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/vtls/schannel.c:1900,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1918,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1918,1
    - Dst: Curl_socket_check
      Src: /src/curl/lib/vtls/schannel.c:1924,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1927,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1927,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:1934,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1934,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1941,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1949,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:1956,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:1958,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 101
    argCount: 3
    argNames:
    - cf
    - data
    - caller
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - enum schannel_renegotiate_caller_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1780
    functionDepth: 12
    functionLinenumber: 1780
    functionLinenumberEnd: 1961
    functionName: schannel_recv_renegotiate
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - failf
    - SCH_DEV
    - DEBUGASSERT
    - Curl_pgrsUpdate
    - infof
    - SCH_DEV_SHOWBOOL
    - Curl_socket_check
    - memset
    - Curl_conn_cf_get_socket
    - schannel_connect
    - Curl_timeleft_ms
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_recv_renegotiate(\n  struct Curl_cfilter *cf, struct
      Curl_easy *data,\n  enum schannel_renegotiate_caller_t caller)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:1976,1
    - Dst: schannel_recv_renegotiate
      Src: /src/curl/lib/vtls/schannel.c:1980,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/vtls/schannel.c:1987,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/schannel.c:2004,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2010,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2012,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vtls/schannel.c:2013,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2014,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2017,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:2018,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/schannel.c:2021,1
    - Dst: EncryptMessage
      Src: /src/curl/lib/vtls/schannel.c:2024,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/vtls/schannel.c:2053,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:2056,1
    - Dst: SOCKET_WRITABLE
      Src: /src/curl/lib/vtls/schannel.c:2063,1
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/vtls/schannel.c:2063,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:2066,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:2071,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vtls/schannel.c:2078,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/schannel.c:2098,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 1963
    functionDepth: 13
    functionLinenumber: 1963
    functionLinenumberEnd: 2106
    functionName: schannel_send
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - InitSecBufferDesc
    - memcpy
    - DEBUGASSERT
    - schannel_recv_renegotiate
    - curlx_uztoul
    - failf
    - curlx_malloc
    - Curl_conn_cf_get_socket
    - Curl_conn_cf_send
    - QueryContextAttributes
    - EncryptMessage
    - Curl_timeleft_ms
    - SOCKET_WRITABLE
    - InitSecBuffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_send(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                             const void *buf, size_t len, size_t *pnwritten)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2121,1
    - Dst: schannel_recv_renegotiate
      Src: /src/curl/lib/vtls/schannel.c:2125,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2146,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2146,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2149,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2149,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2155,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2160,1
    - Dst: ensure_encoding_size
      Src: /src/curl/lib/vtls/schannel.c:2174,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2178,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2178,1
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/vtls/schannel.c:2183,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2191,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2191,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2193,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:2199,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2199,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2204,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2204,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2208,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2208,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2216,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vtls/schannel.c:2217,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2220,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2221,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2222,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:2223,1
    - Dst: DecryptMessage
      Src: /src/curl/lib/vtls/schannel.c:2227,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2237,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2237,1
    - Dst: ensure_decoding_size
      Src: /src/curl/lib/vtls/schannel.c:2241,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/schannel.c:2249,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2254,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2254,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2255,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2255,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2262,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2262,1
    - Dst: memmove
      Src: /src/curl/lib/vtls/schannel.c:2271,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2277,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2277,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2288,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2290,1
    - Dst: schannel_recv_renegotiate
      Src: /src/curl/lib/vtls/schannel.c:2295,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2315,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2324,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2324,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:2329,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:2330,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2336,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2336,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2339,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2339,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2344,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2344,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:2355,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/schannel.c:2364,1
    - Dst: memmove
      Src: /src/curl/lib/vtls/schannel.c:2365,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2368,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2368,1
    - Dst: SCH_DEV
      Src: /src/curl/lib/vtls/schannel.c:2369,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2369,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 147
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2108
    functionDepth: 13
    functionLinenumber: 2108
    functionLinenumberEnd: 2387
    functionName: schannel_recv
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - InitSecBufferDesc
    - memcpy
    - ensure_decoding_size
    - DEBUGASSERT
    - SCH_DEV
    - schannel_recv_renegotiate
    - curlx_uztoul
    - memmove
    - failf
    - infof
    - ensure_encoding_size
    - Curl_sspi_strerror
    - Curl_conn_cf_recv
    - DEBUGF
    - DecryptMessage
    - InitSecBuffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_recv(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                             char *buf, size_t len, size_t *pnread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2389
    functionDepth: 1
    functionLinenumber: 2389
    functionLinenumberEnd: 2407
    functionName: schannel_data_pending
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool schannel_data_pending(struct Curl_cfilter *cf,\n                                  const
      struct Curl_easy *data)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2429,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2430,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2437,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2454,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:2455,1
    - Dst: ApplyControlToken
      Src: /src/curl/lib/vtls/schannel.c:2457,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:2462,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vtls/schannel.c:2463,1
    - Dst: InitSecBuffer
      Src: /src/curl/lib/vtls/schannel.c:2469,1
    - Dst: InitSecBufferDesc
      Src: /src/curl/lib/vtls/schannel.c:2470,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/vtls/schannel.c:2472,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vtls/schannel.c:2489,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vtls/schannel.c:2493,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:2497,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/vtls/schannel.c:2498,1
    - Dst: failf
      Src: /src/curl/lib/vtls/schannel.c:2512,1
    - Dst: schannel_recv
      Src: /src/curl/lib/vtls/schannel.c:2530,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/schannel.c:2535,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 4
    argNames:
    - cf
    - data
    - send_shutdown
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2412
    functionDepth: 14
    functionLinenumber: 2412
    functionLinenumberEnd: 2551
    functionName: schannel_shutdown
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - InitializeSecurityContext
    - InitSecBufferDesc
    - FreeContextBuffer
    - DEBUGASSERT
    - ApplyControlToken
    - failf
    - schannel_recv
    - curl_easy_strerror
    - infof
    - Curl_conn_cf_send
    - Curl_sspi_strerror
    - CURL_TRC_CF
    - InitSecBuffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_shutdown(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  bool send_shutdown, bool
      *done)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2559,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2560,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/schannel.c:2564,1
    - Dst: infof
      Src: /src/curl/lib/vtls/schannel.c:2564,1
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/vtls/schannel.c:2565,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/schannel.c:2566,1
    - Dst: Curl_ssl_scache_lock
      Src: /src/curl/lib/vtls/schannel.c:2571,1
    - Dst: schannel_session_free
      Src: /src/curl/lib/vtls/schannel.c:2572,1
    - Dst: Curl_ssl_scache_unlock
      Src: /src/curl/lib/vtls/schannel.c:2573,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/schannel.c:2579,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/schannel.c:2587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2591
      start: 2553
    functionDepth: 2
    functionLinenumber: 2553
    functionLinenumberEnd: 2591
    functionName: schannel_close
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_ssl_scache_unlock
    - DEBUGASSERT
    - schannel_session_free
    - infof
    - DeleteSecurityContext
    - DEBUGF
    - Curl_ssl_scache_lock
    linkageType: ''
    returnType: void
    signature: void schannel_close(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURLX_FUNCTION_CAST
      Src: /src/curl/lib/vtls/schannel.c:2602,1
    - Dst: GetProcAddress
      Src: /src/curl/lib/vtls/schannel.c:2603,1
    - Dst: GetModuleHandle
      Src: /src/curl/lib/vtls/schannel.c:2603,1
    - Dst: TEXT
      Src: /src/curl/lib/vtls/schannel.c:2603,1
    - Dst: p_wine_get_version
      Src: /src/curl/lib/vtls/schannel.c:2609,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/vtls/schannel.c:2612,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/vtls/schannel.c:2617,1
    - Dst: Curl_sspi_global_init
      Src: /src/curl/lib/vtls/schannel.c:2622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2593
    functionDepth: 1
    functionLinenumber: 2593
    functionLinenumberEnd: 2623
    functionName: schannel_init
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - GetModuleHandle
    - GetProcAddress
    - curlx_str_number
    - curlx_verify_windows_version
    - p_wine_get_version
    - TEXT
    - Curl_sspi_global_init
    - CURLX_FUNCTION_CAST
    linkageType: ''
    returnType: int
    signature: int schannel_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_sspi_global_cleanup
      Src: /src/curl/lib/vtls/schannel.c:2627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2625
    functionDepth: 1
    functionLinenumber: 2625
    functionLinenumberEnd: 2628
    functionName: schannel_cleanup
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - Curl_sspi_global_cleanup
    linkageType: ''
    returnType: void
    signature: void schannel_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/schannel.c:2632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2630
    functionDepth: 7
    functionLinenumber: 2630
    functionLinenumberEnd: 2633
    functionName: schannel_version
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: size_t
    signature: size_t schannel_version(char *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_win32_random
      Src: /src/curl/lib/vtls/schannel.c:2640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - entropy
    - length
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2641
      start: 2635
    functionDepth: 1
    functionLinenumber: 2635
    functionLinenumberEnd: 2641
    functionName: schannel_random
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - Curl_win32_random
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_random(struct Curl_easy *data,\n                                unsigned
      char *entropy, size_t length)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/vtls/schannel.c:2664,1
    - Dst: CryptAcquireContext
      Src: /src/curl/lib/vtls/schannel.c:2666,1
    - Dst: CryptCreateHash
      Src: /src/curl/lib/vtls/schannel.c:2670,1
    - Dst: CURLMIN
      Src: /src/curl/lib/vtls/schannel.c:2677,1
    - Dst: CryptHashData
      Src: /src/curl/lib/vtls/schannel.c:2678,1
    - Dst: CryptGetHashParam
      Src: /src/curl/lib/vtls/schannel.c:2686,1
    - Dst: CryptGetHashParam
      Src: /src/curl/lib/vtls/schannel.c:2695,1
    - Dst: CryptDestroyHash
      Src: /src/curl/lib/vtls/schannel.c:2701,1
    - Dst: CryptReleaseContext
      Src: /src/curl/lib/vtls/schannel.c:2704,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 6
    argNames:
    - input
    - inputlen
    - checksum
    - checksumlen
    - provType
    - algId
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - DWORD
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2643
    functionDepth: 1
    functionLinenumber: 2643
    functionLinenumberEnd: 2707
    functionName: schannel_checksum
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - CryptAcquireContext
    - CryptHashData
    - CURLMIN
    - CryptCreateHash
    - CryptReleaseContext
    - CryptGetHashParam
    - memset
    - CryptDestroyHash
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_checksum(const unsigned char *input,\n                                  size_t
      inputlen,\n                                  unsigned char *checksum,\n                                  size_t
      checksumlen,\n                                  DWORD provType,\n                                  const
      unsigned int algId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: schannel_checksum
      Src: /src/curl/lib/vtls/schannel.c:2714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - inputlen
    - sha256sum
    - sha256len
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2709
    functionDepth: 2
    functionLinenumber: 2709
    functionLinenumberEnd: 2716
    functionName: schannel_sha256sum
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - schannel_checksum
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode schannel_sha256sum(const unsigned char *input,\n                                   size_t
      inputlen,\n                                   unsigned char *sha256sum,\n                                   size_t
      sha256len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - connssl
    - info
    argTypes:
    - struct ssl_connect_data*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2718
    functionDepth: 1
    functionLinenumber: 2718
    functionLinenumberEnd: 2726
    functionName: schannel_get_internals
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void *schannel_get_internals(struct ssl_connect_data *connssl,\n                                    CURLINFO
      info)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/schannel.c:2731,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2739,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/vtls/schannel.c:2745,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/schannel.c:2746,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vtls/schannel.c:2763,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/schannel.c:2763,1
    - Dst: schannel_sha256sum
      Src: /src/curl/lib/vtls/schannel.c:2773,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/schannel.c:2778,1
    - Dst: strcmp
      Src: /src/curl/lib/vtls/schannel.c:2785,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2728
    functionDepth: 3
    functionLinenumber: 2728
    functionLinenumberEnd: 2791
    functionName: Curl_schannel_get_cached_cert_store
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 1
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_hash_pick
    - schannel_sha256sum
    - memcmp
    - CURL_UNCONST
    - strcmp
    - Curl_ssl_cf_get_primary_config
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: HCERTSTORE
    signature: "HCERTSTORE Curl_schannel_get_cached_cert_store(struct Curl_cfilter
      *cf,\n                                               struct Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2796,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2797,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/schannel.c:2797,1
    - Dst: CertCloseStore
      Src: /src/curl/lib/vtls/schannel.c:2801,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:2803,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:2804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - key
    - key_len
    - p
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2793
    functionDepth: 1
    functionLinenumber: 2793
    functionLinenumberEnd: 2805
    functionName: schannel_cert_share_free
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 0
    functionsReached:
    - CertCloseStore
    - curlx_free
    - memcmp
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void schannel_cert_share_free(void *key, size_t key_len, void *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/schannel.c:2811,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/schannel.c:2818,1
    - Dst: schannel_sha256sum
      Src: /src/curl/lib/vtls/schannel.c:2825,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/schannel.c:2831,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/vtls/schannel.c:2837,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/schannel.c:2838,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/schannel.c:2841,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:2843,1
    - Dst: Curl_hash_add2
      Src: /src/curl/lib/vtls/schannel.c:2846,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/schannel.c:2847,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:2850,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:2851,1
    - Dst: CertCloseStore
      Src: /src/curl/lib/vtls/schannel.c:2858,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/schannel.c:2860,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/schannel.c:2863,1
    - Dst: curlx_now
      Src: /src/curl/lib/vtls/schannel.c:2869,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - cf
    - data
    - cert_store
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - HCERTSTORE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2807
    functionDepth: 3
    functionLinenumber: 2807
    functionLinenumberEnd: 2873
    functionName: Curl_schannel_set_cached_cert_store
    functionSourceFile: /src/curl/lib/vtls/schannel.c
    functionUses: 1
    functionsReached:
    - CertCloseStore
    - memcpy
    - Curl_hash_pick
    - DEBUGASSERT
    - schannel_sha256sum
    - curlx_now
    - curlx_strdup
    - CURL_UNCONST
    - curlx_free
    - curlx_calloc
    - Curl_ssl_cf_get_primary_config
    - Curl_hash_add2
    linkageType: ''
    returnType: bool
    signature: "bool Curl_schannel_set_cached_cert_store(struct Curl_cfilter *cf,\n
      \                                        struct Curl_easy *data,\n                                         HCERTSTORE
      cert_store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: GOOD_SCACHE
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOOD_SCACHE(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _fullpath
      Src: /src/curl/lib/vtls/vtls_scache.c:82,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:83,1
    - Dst: realpath
      Src: /src/curl/lib/vtls/vtls_scache.c:87,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:89,1
    - Dst: free
      Src: /src/curl/lib/vtls/vtls_scache.c:91,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - buf
    - name
    - path
    - is_local
    argTypes:
    - struct dynbuf*
    - char*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 100
    functionName: cf_ssl_peer_key_add_path
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addf
    - realpath
    - free
    - _fullpath
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ssl_peer_key_add_path(struct dynbuf *buf,\n                                         const
      char *name,\n                                         const char *path,\n                                         bool
      *is_local)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:111,1
    - Dst: Curl_sha256it
      Src: /src/curl/lib/vtls/vtls_scache.c:114,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - buf
    - name
    - blob
    argTypes:
    - struct dynbuf*
    - char*
    - struct curl_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 125
    functionName: cf_ssl_peer_key_add_hash
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_sha256it
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ssl_peer_key_add_hash(struct dynbuf *buf,\n                                         const
      char *name,\n                                         struct curl_blob *blob)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_peer_key_add_path
      Src: /src/curl/lib/vtls/vtls_scache.c:133,1
    - Dst: cf_ssl_peer_key_add_path
      Src: /src/curl/lib/vtls/vtls_scache.c:138,1
    - Dst: cf_ssl_peer_key_add_hash
      Src: /src/curl/lib/vtls/vtls_scache.c:143,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls_scache.c:149,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/vtls/vtls_scache.c:151,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_scache.c:152,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls_scache.c:159,1
    - Dst: Curl_raw_toupper
      Src: /src/curl/lib/vtls/vtls_scache.c:161,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_scache.c:162,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 3
    argNames:
    - buf
    - ssl
    - is_local
    argTypes:
    - struct dynbuf*
    - struct ssl_primary_config*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 167
    functionName: cf_ssl_peer_key_add_mtls
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - curlx_dyn_add
    - Curl_raw_toupper
    - cf_ssl_peer_key_add_path
    - cf_ssl_peer_key_add_hash
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ssl_peer_key_add_mtls(struct dynbuf *buf,\n                                         struct
      ssl_primary_config *ssl,\n                                         bool *is_local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls_scache.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - peer_key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: cf_ssl_peer_key_is_global
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool cf_ssl_peer_key_is_global(const char *peer_key)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/vtls_scache.c:192,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:194,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls_scache.c:203,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls_scache.c:206,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls_scache.c:209,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:212,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls_scache.c:219,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls_scache.c:224,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls_scache.c:229,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:235,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:244,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:250,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:255,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:260,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:265,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:270,1
    - Dst: cf_ssl_peer_key_add_path
      Src: /src/curl/lib/vtls/vtls_scache.c:276,1
    - Dst: cf_ssl_peer_key_add_path
      Src: /src/curl/lib/vtls/vtls_scache.c:279,1
    - Dst: cf_ssl_peer_key_add_path
      Src: /src/curl/lib/vtls/vtls_scache.c:282,1
    - Dst: cf_ssl_peer_key_add_path
      Src: /src/curl/lib/vtls/vtls_scache.c:285,1
    - Dst: cf_ssl_peer_key_add_hash
      Src: /src/curl/lib/vtls/vtls_scache.c:290,1
    - Dst: cf_ssl_peer_key_add_hash
      Src: /src/curl/lib/vtls/vtls_scache.c:295,1
    - Dst: cf_ssl_peer_key_add_hash
      Src: /src/curl/lib/vtls/vtls_scache.c:302,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:307,1
    - Dst: cf_ssl_peer_key_add_mtls
      Src: /src/curl/lib/vtls/vtls_scache.c:312,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls_scache.c:317,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:327,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vtls/vtls_scache.c:331,1
    - Dst: curlx_dyn_take
      Src: /src/curl/lib/vtls/vtls_scache.c:336,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/vtls_scache.c:341,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 158
    argCount: 5
    argNames:
    - ssl
    - peer
    - via_peer
    - tls_id
    - ppeer_key
    argTypes:
    - struct ssl_primary_config*
    - struct ssl_peer*
    - struct Curl_peer*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 343
    functionName: Curl_ssl_peer_key_build
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_take
    - curlx_dyn_init
    - cf_ssl_peer_key_add_mtls
    - curlx_dyn_add
    - curlx_dyn_free
    - cf_ssl_peer_key_add_path
    - curlx_dyn_addf
    - cf_ssl_peer_key_add_hash
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_peer_key_build(struct ssl_primary_config *ssl,\n
      \                                const struct ssl_peer *peer,\n                                 const
      struct Curl_peer *via_peer,\n                                 const char *tls_id,\n
      \                                char **ppeer_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/vtls_scache.c:350,1
    - Dst: Curl_ssl_peer_key_build
      Src: /src/curl/lib/vtls/vtls_scache.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cf
    - peer
    - tls_id
    - ppeer_key
    argTypes:
    - struct Curl_cfilter*
    - struct ssl_peer*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 345
    functionDepth: 5
    functionLinenumber: 345
    functionLinenumberEnd: 353
    functionName: Curl_ssl_peer_key_make
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_cf_get_primary_config
    - Curl_ssl_peer_key_build
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_peer_key_make(struct Curl_cfilter *cf,\n                                const
      struct ssl_peer *peer,\n                                const char *tls_id,\n
      \                               char **ppeer_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_SCACHE
      Src: /src/curl/lib/vtls/vtls_scache.c:372,1
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls_scache.c:373,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 379
    functionName: cf_ssl_scache_get
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - failf
    - GOOD_SCACHE
    linkageType: ''
    returnType: struct Curl_ssl_scache
    signature: struct Curl_ssl_scache *cf_ssl_scache_get(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:385,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/vtls_scache.c:385,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:386,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/vtls_scache.c:386,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:387,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - udata
    - obj
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: cf_ssl_scache_session_ldestroy
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - CURL_UNCONST
    linkageType: ''
    returnType: void
    signature: void cf_ssl_scache_session_ldestroy(void *udata, void *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_session_create2
      Src: /src/curl/lib/vtls/vtls_scache.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - sdata
    - sdata_len
    - ietf_tls_id
    - alpn
    - valid_until
    - earlydata_max
    - psession
    argTypes:
    - void*
    - size_t
    - int
    - char*
    - curl_off_t
    - size_t
    - struct Curl_ssl_session**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 399
    functionName: Curl_ssl_session_create
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_session_create2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_session_create(void *sdata, size_t sdata_len,\n
      \                                int ietf_tls_id, const char *alpn,\n                                 curl_off_t
      valid_until, size_t earlydata_max,\n                                 struct
      Curl_ssl_session **psession)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:410,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/vtls_scache.c:415,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:417,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:418,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/vtls_scache.c:430,1
    - Dst: cf_ssl_scache_session_ldestroy
      Src: /src/curl/lib/vtls/vtls_scache.c:432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 9
    argNames:
    - sdata
    - sdata_len
    - ietf_tls_id
    - alpn
    - valid_until
    - earlydata_max
    - quic_tp
    - quic_tp_len
    - psession
    argTypes:
    - void*
    - size_t
    - int
    - char*
    - curl_off_t
    - size_t
    - unsigned char*
    - size_t
    - struct Curl_ssl_session**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 438
    functionName: Curl_ssl_session_create2
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 3
    functionsReached:
    - curlx_free
    - curlx_calloc
    - curlx_strdup
    - cf_ssl_scache_session_ldestroy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_session_create2(void *sdata, size_t sdata_len,\n
      \                                 int ietf_tls_id, const char *alpn,\n                                  curl_off_t
      valid_until, size_t earlydata_max,\n                                  unsigned
      char *quic_tp, size_t quic_tp_len,\n                                  struct
      Curl_ssl_session **psession)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_node_llist
      Src: /src/curl/lib/vtls/vtls_scache.c:444,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/vtls/vtls_scache.c:445,1
    - Dst: cf_ssl_scache_session_ldestroy
      Src: /src/curl/lib/vtls/vtls_scache.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct Curl_ssl_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 450
    functionName: Curl_ssl_session_destroy
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 2
    functionsReached:
    - Curl_node_remove
    - Curl_node_llist
    - cf_ssl_scache_session_ldestroy
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_session_destroy(struct Curl_ssl_session *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_destroy
      Src: /src/curl/lib/vtls/vtls_scache.c:454,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:456,1
    - Dst: struct Curl_ssl_scache_peer*::sobj_free
      Src: /src/curl/lib/vtls/vtls_scache.c:458,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_scache.c:462,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_scache.c:463,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_scache.c:465,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_scache.c:466,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_scache.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct Curl_ssl_scache_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 471
    functionName: cf_ssl_scache_clear_peer
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - struct Curl_ssl_scache_peer*::sobj_free
    - DEBUGASSERT
    - Curl_llist_destroy
    linkageType: ''
    returnType: void
    signature: void cf_ssl_scache_clear_peer(struct Curl_ssl_scache_peer *peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:477,1
    - Dst: struct Curl_ssl_scache_peer*::sobj_free
      Src: /src/curl/lib/vtls/vtls_scache.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - peer
    - sobj
    - sobj_free
    argTypes:
    - struct Curl_ssl_scache_peer*
    - void*
    - Curl_ssl_scache_obj_dtor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 483
    functionName: cf_ssl_scache_peer_set_obj
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - struct Curl_ssl_scache_peer*::sobj_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void cf_ssl_scache_peer_set_obj(struct Curl_ssl_scache_peer *peer,\n
      \                                      void *sobj,\n                                       Curl_ssl_scache_obj_dtor
      *sobj_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_peer_key_is_global
      Src: /src/curl/lib/vtls/vtls_scache.c:495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct Curl_ssl_scache_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 496
    functionName: cf_ssl_cache_peer_update
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - cf_ssl_peer_key_is_global
    linkageType: ''
    returnType: void
    signature: void cf_ssl_cache_peer_update(struct Curl_ssl_scache_peer *peer)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:509,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/vtls_scache.c:511,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/vtls_scache.c:517,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/vtls_scache.c:518,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/vtls_scache.c:526,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/vtls_scache.c:531,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/vtls_scache.c:536,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/vtls_scache.c:541,1
    - Dst: cf_ssl_cache_peer_update
      Src: /src/curl/lib/vtls/vtls_scache.c:546,1
    - Dst: cf_ssl_scache_clear_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:550,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 8
    argNames:
    - peer
    - ssl_peer_key
    - clientcert
    - key_passwd
    - srp_username
    - srp_password
    - salt
    - hmac
    argTypes:
    - struct Curl_ssl_scache_peer*
    - char*
    - char*
    - char*
    - char*
    - char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 552
    functionName: cf_ssl_scache_peer_init
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - curlx_strdup
    - cf_ssl_cache_peer_update
    - cf_ssl_scache_clear_peer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ssl_scache_peer_init(struct Curl_ssl_scache_peer *peer,\n
      \                                       const char *ssl_peer_key,\n                                        const
      char *clientcert,\n                                        const char *key_passwd,\n
      \                                       const char *srp_username,\n                                        const
      char *srp_password,\n                                        const unsigned
      char *salt,\n                                        const unsigned char *hmac)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:558,1
    - Dst: Curl_node_llist
      Src: /src/curl/lib/vtls/vtls_scache.c:558,1
    - Dst: Curl_ssl_session_destroy
      Src: /src/curl/lib/vtls/vtls_scache.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - peer
    - s
    argTypes:
    - struct Curl_ssl_scache_peer*
    - struct Curl_ssl_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 5
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: cf_scache_session_remove
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_session_destroy
    - Curl_node_llist
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void cf_scache_session_remove(struct Curl_ssl_scache_peer *peer,\n
      \                                    struct Curl_ssl_session *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - now
    argTypes:
    - struct Curl_ssl_session*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 566
    functionName: cf_scache_session_expired
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool cf_scache_session_expired(struct Curl_ssl_session *s,\n                                      curl_off_t
      now)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/vtls/vtls_scache.c:571,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/vtls/vtls_scache.c:573,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/vtls/vtls_scache.c:574,1
    - Dst: cf_scache_session_expired
      Src: /src/curl/lib/vtls/vtls_scache.c:575,1
    - Dst: cf_scache_session_remove
      Src: /src/curl/lib/vtls/vtls_scache.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - peer
    - now
    argTypes:
    - struct Curl_ssl_scache_peer*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 568
    functionDepth: 6
    functionLinenumber: 568
    functionLinenumberEnd: 578
    functionName: cf_scache_peer_remove_expired
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_node_elem
    - Curl_node_next
    - Curl_llist_head
    - cf_scache_session_remove
    - cf_scache_session_expired
    linkageType: ''
    returnType: void
    signature: "void cf_scache_peer_remove_expired(struct Curl_ssl_scache_peer *peer,\n
      \                                         curl_off_t now)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_head
      Src: /src/curl/lib/vtls/vtls_scache.c:582,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/vtls/vtls_scache.c:584,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/vtls/vtls_scache.c:585,1
    - Dst: cf_scache_session_remove
      Src: /src/curl/lib/vtls/vtls_scache.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct Curl_ssl_scache_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 580
    functionDepth: 6
    functionLinenumber: 580
    functionLinenumberEnd: 589
    functionName: cf_scache_peer_remove_non13
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - cf_scache_session_remove
    - Curl_llist_head
    - Curl_node_elem
    - Curl_node_next
    linkageType: ''
    returnType: void
    signature: void cf_scache_peer_remove_non13(struct Curl_ssl_scache_peer *peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/vtls_scache.c:600,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/vtls_scache.c:604,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:606,1
    - Dst: Curl_llist_init
      Src: /src/curl/lib/vtls/vtls_scache.c:617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - max_peers
    - max_sessions_per_peer
    - pscache
    argTypes:
    - size_t
    - size_t
    - struct Curl_ssl_scache**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 623
    functionName: Curl_ssl_scache_create
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 2
    functionsReached:
    - Curl_llist_init
    - curlx_free
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_scache_create(size_t max_peers,\n                                size_t
      max_sessions_per_peer,\n                                struct Curl_ssl_scache
      **pscache)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_SCACHE
      Src: /src/curl/lib/vtls/vtls_scache.c:627,1
    - Dst: cf_ssl_scache_clear_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:631,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:633,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls_scache.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - scache
    argTypes:
    - struct Curl_ssl_scache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 625
    functionDepth: 5
    functionLinenumber: 625
    functionLinenumberEnd: 636
    functionName: Curl_ssl_scache_destroy
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 4
    functionsReached:
    - curlx_free
    - cf_ssl_scache_clear_peer
    - GOOD_SCACHE
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_scache_destroy(struct Curl_ssl_scache *scache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:640,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/vtls_scache.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 645
    functionName: Curl_ssl_scache_use
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 5
    functionsReached:
    - cf_ssl_scache_get
    - Curl_ssl_cf_get_config
    linkageType: ''
    returnType: bool
    signature: bool Curl_ssl_scache_use(struct Curl_cfilter *cf, struct Curl_easy
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:650,1
    - Dst: CURL_SHARE_ssl_scache
      Src: /src/curl/lib/vtls/vtls_scache.c:652,1
    - Dst: Curl_share_lock
      Src: /src/curl/lib/vtls/vtls_scache.c:653,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 658
    functionName: Curl_ssl_scache_lock
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 3
    functionsReached:
    - Curl_share_lock
    - cf_ssl_scache_get
    - DEBUGASSERT
    - CURL_SHARE_ssl_scache
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_scache_lock(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:663,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:665,1
    - Dst: CURL_SHARE_ssl_scache
      Src: /src/curl/lib/vtls/vtls_scache.c:667,1
    - Dst: Curl_share_unlock
      Src: /src/curl/lib/vtls/vtls_scache.c:668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 670
    functionName: Curl_ssl_scache_unlock
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 3
    functionsReached:
    - Curl_share_unlock
    - cf_ssl_scache_get
    - DEBUGASSERT
    - CURL_SHARE_ssl_scache
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_scache_unlock(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_safecmp
      Src: /src/curl/lib/vtls/vtls_scache.c:684,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/vtls/vtls_scache.c:686,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/vtls/vtls_scache.c:689,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/vtls/vtls_scache.c:690,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - peer
    - conn_config
    argTypes:
    - struct Curl_ssl_scache_peer*
    - struct ssl_primary_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 694
    functionName: cf_ssl_scache_match_auth
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_timestrcmp
    - Curl_safecmp
    linkageType: ''
    returnType: bool
    signature: "bool cf_ssl_scache_match_auth(struct Curl_ssl_scache_peer *peer,\n
      \                                    struct ssl_primary_config *conn_config)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_SCACHE
      Src: /src/curl/lib/vtls/vtls_scache.c:706,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:710,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls_scache.c:716,1
    - Dst: cf_ssl_scache_match_auth
      Src: /src/curl/lib/vtls/vtls_scache.c:717,1
    - Dst: cf_ssl_scache_match_auth
      Src: /src/curl/lib/vtls/vtls_scache.c:727,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls_scache.c:731,1
    - Dst: Curl_hmacit
      Src: /src/curl/lib/vtls/vtls_scache.c:732,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls_scache.c:740,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:742,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/vtls_scache.c:744,1
    - Dst: cf_ssl_cache_peer_update
      Src: /src/curl/lib/vtls/vtls_scache.c:749,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:755,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 5
    argNames:
    - data
    - scache
    - ssl_peer_key
    - conn_config
    - ppeer
    argTypes:
    - struct Curl_easy*
    - struct Curl_ssl_scache*
    - char*
    - struct ssl_primary_config*
    - struct Curl_ssl_scache_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 758
    functionName: cf_ssl_find_peer_by_key
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - cf_ssl_cache_peer_update
    - cf_ssl_scache_match_auth
    - Curl_hmacit
    - memcmp
    - curlx_strdup
    - curl_strequal
    - CURL_TRC_SSLS
    - GOOD_SCACHE
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ssl_find_peer_by_key(struct Curl_easy *data,\n                                        struct
      Curl_ssl_scache *scache,\n                                        const char
      *ssl_peer_key,\n                                        struct ssl_primary_config
      *conn_config,\n                                        struct Curl_ssl_scache_peer
      **ppeer)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_count
      Src: /src/curl/lib/vtls/vtls_scache.c:775,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:784,1
    - Dst: cf_ssl_scache_clear_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:786,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - scache
    argTypes:
    - struct Curl_ssl_scache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 760
    functionDepth: 5
    functionLinenumber: 760
    functionLinenumberEnd: 788
    functionName: cf_ssl_get_free_peer
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - cf_ssl_scache_clear_peer
    - DEBUGASSERT
    linkageType: ''
    returnType: struct Curl_ssl_scache_peer
    signature: "struct Curl_ssl_scache_peer *cf_ssl_get_free_peer(\n  struct Curl_ssl_scache
      *scache)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_find_peer_by_key
      Src: /src/curl/lib/vtls/vtls_scache.c:801,1
    - Dst: cf_ssl_get_free_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:812,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/vtls_scache.c:824,1
    - Dst: cf_ssl_scache_peer_init
      Src: /src/curl/lib/vtls/vtls_scache.c:828,1
    - Dst: cf_ssl_scache_clear_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:839,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - data
    - scache
    - ssl_peer_key
    - conn_config
    - ppeer
    argTypes:
    - struct Curl_easy*
    - struct Curl_ssl_scache*
    - char*
    - struct ssl_primary_config*
    - struct Curl_ssl_scache_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 790
    functionDepth: 7
    functionLinenumber: 790
    functionLinenumberEnd: 842
    functionName: cf_ssl_add_peer
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - cf_ssl_get_free_peer
    - cf_ssl_scache_peer_init
    - cf_ssl_find_peer_by_key
    - cf_ssl_scache_clear_peer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ssl_add_peer(struct Curl_easy *data,\n                                struct
      Curl_ssl_scache *scache,\n                                const char *ssl_peer_key,\n
      \                               struct ssl_primary_config *conn_config,\n                                struct
      Curl_ssl_scache_peer **ppeer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_llist_destroy
      Src: /src/curl/lib/vtls/vtls_scache.c:850,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/vtls/vtls_scache.c:851,1
    - Dst: cf_scache_peer_remove_expired
      Src: /src/curl/lib/vtls/vtls_scache.c:855,1
    - Dst: cf_scache_peer_remove_non13
      Src: /src/curl/lib/vtls/vtls_scache.c:856,1
    - Dst: Curl_llist_append
      Src: /src/curl/lib/vtls/vtls_scache.c:857,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/vtls/vtls_scache.c:858,1
    - Dst: Curl_node_remove
      Src: /src/curl/lib/vtls/vtls_scache.c:859,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/vtls/vtls_scache.c:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - peer
    - s
    - now
    argTypes:
    - struct Curl_ssl_scache_peer*
    - struct Curl_ssl_session*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 844
    functionDepth: 7
    functionLinenumber: 844
    functionLinenumberEnd: 862
    functionName: cf_scache_peer_add_session
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - cf_scache_peer_remove_expired
    - Curl_llist_append
    - Curl_llist_head
    - Curl_node_remove
    - Curl_llist_destroy
    - cf_scache_peer_remove_non13
    linkageType: ''
    returnType: void
    signature: "void cf_scache_peer_add_session(struct Curl_ssl_scache_peer *peer,\n
      \                                      struct Curl_ssl_session *s,\n                                       curl_off_t
      now)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/vtls_scache.c:871,1
    - Dst: time
      Src: /src/curl/lib/vtls/vtls_scache.c:873,1
    - Dst: Curl_ssl_session_destroy
      Src: /src/curl/lib/vtls/vtls_scache.c:877,1
    - Dst: cf_scache_session_expired
      Src: /src/curl/lib/vtls/vtls_scache.c:890,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:891,1
    - Dst: Curl_ssl_session_destroy
      Src: /src/curl/lib/vtls/vtls_scache.c:892,1
    - Dst: cf_ssl_add_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:896,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:898,1
    - Dst: Curl_ssl_session_destroy
      Src: /src/curl/lib/vtls/vtls_scache.c:899,1
    - Dst: cf_scache_peer_add_session
      Src: /src/curl/lib/vtls/vtls_scache.c:903,1
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls_scache.c:907,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:911,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/vtls/vtls_scache.c:916,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - cf
    - data
    - scache
    - ssl_peer_key
    - s
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_ssl_scache*
    - char*
    - struct Curl_ssl_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 864
    functionDepth: 8
    functionLinenumber: 864
    functionLinenumberEnd: 918
    functionName: cf_scache_add_session
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_llist_count
    - failf
    - cf_scache_peer_add_session
    - time
    - cf_scache_session_expired
    - CURL_TRC_SSLS
    - Curl_ssl_cf_get_primary_config
    - Curl_ssl_session_destroy
    - cf_ssl_add_peer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_scache_add_session(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      struct Curl_ssl_scache
      *scache,\n                                      const char *ssl_peer_key,\n
      \                                     struct Curl_ssl_session *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:925,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/vtls_scache.c:926,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:928,1
    - Dst: Curl_ssl_session_destroy
      Src: /src/curl/lib/vtls/vtls_scache.c:931,1
    - Dst: Curl_ssl_scache_lock
      Src: /src/curl/lib/vtls/vtls_scache.c:935,1
    - Dst: cf_scache_add_session
      Src: /src/curl/lib/vtls/vtls_scache.c:936,1
    - Dst: Curl_ssl_scache_unlock
      Src: /src/curl/lib/vtls/vtls_scache.c:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - cf
    - data
    - ssl_peer_key
    - s
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - struct Curl_ssl_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 920
    functionDepth: 9
    functionLinenumber: 920
    functionLinenumberEnd: 939
    functionName: Curl_ssl_scache_put
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 2
    functionsReached:
    - cf_scache_add_session
    - Curl_ssl_scache_unlock
    - DEBUGASSERT
    - Curl_ssl_cf_get_config
    - Curl_ssl_session_destroy
    - Curl_ssl_scache_lock
    - cf_ssl_scache_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_scache_put(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             const char *ssl_peer_key,\n                             struct
      Curl_ssl_session *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_scache_put
      Src: /src/curl/lib/vtls/vtls_scache.c:949,1
    - Dst: Curl_ssl_session_destroy
      Src: /src/curl/lib/vtls/vtls_scache.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cf
    - data
    - ssl_peer_key
    - s
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - struct Curl_ssl_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 941
    functionDepth: 10
    functionLinenumber: 941
    functionLinenumberEnd: 952
    functionName: Curl_ssl_scache_return
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 2
    functionsReached:
    - Curl_ssl_scache_put
    - Curl_ssl_session_destroy
    linkageType: ''
    returnType: void
    signature: "void Curl_ssl_scache_return(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            const char *ssl_peer_key,\n                            struct
      Curl_ssl_session *s)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:959,1
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/vtls_scache.c:960,1
    - Dst: Curl_ssl_scache_lock
      Src: /src/curl/lib/vtls/vtls_scache.c:970,1
    - Dst: cf_ssl_find_peer_by_key
      Src: /src/curl/lib/vtls/vtls_scache.c:971,1
    - Dst: cf_scache_peer_remove_expired
      Src: /src/curl/lib/vtls/vtls_scache.c:974,1
    - Dst: time
      Src: /src/curl/lib/vtls/vtls_scache.c:974,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/vtls/vtls_scache.c:975,1
    - Dst: Curl_node_take_elem
      Src: /src/curl/lib/vtls/vtls_scache.c:977,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:984,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/vtls/vtls_scache.c:988,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:991,1
    - Dst: Curl_ssl_scache_unlock
      Src: /src/curl/lib/vtls/vtls_scache.c:993,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - cf
    - data
    - ssl_peer_key
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - struct Curl_ssl_session**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 954
    functionDepth: 7
    functionLinenumber: 954
    functionLinenumberEnd: 995
    functionName: Curl_ssl_scache_take
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 2
    functionsReached:
    - Curl_llist_count
    - Curl_ssl_scache_unlock
    - Curl_node_take_elem
    - cf_scache_peer_remove_expired
    - time
    - Curl_llist_head
    - cf_ssl_find_peer_by_key
    - CURL_TRC_SSLS
    - Curl_ssl_cf_get_primary_config
    - Curl_ssl_scache_lock
    - cf_ssl_scache_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_scache_take(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              const char *ssl_peer_key,\n
      \                             struct Curl_ssl_session **ps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:1003,1
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/vtls_scache.c:1004,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:1008,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:1009,1
    - Dst: cf_ssl_add_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:1016,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:1018,1
    - Dst: cf_ssl_scache_peer_set_obj
      Src: /src/curl/lib/vtls/vtls_scache.c:1022,1
    - Dst: sobj_dtor_cb
      Src: /src/curl/lib/vtls/vtls_scache.c:1027,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - cf
    - data
    - ssl_peer_key
    - sobj
    - sobj_dtor_cb
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - void*
    - Curl_ssl_scache_obj_dtor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 997
    functionDepth: 8
    functionLinenumber: 997
    functionLinenumberEnd: 1029
    functionName: Curl_ssl_scache_add_obj
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - cf_ssl_add_peer
    - sobj_dtor_cb
    - CURL_TRC_SSLS
    - cf_ssl_scache_peer_set_obj
    - Curl_ssl_cf_get_primary_config
    - cf_ssl_scache_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_scache_add_obj(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 const char *ssl_peer_key,\n
      \                                void *sobj,\n                                 Curl_ssl_scache_obj_dtor
      *sobj_dtor_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:1035,1
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/vtls_scache.c:1036,1
    - Dst: cf_ssl_find_peer_by_key
      Src: /src/curl/lib/vtls/vtls_scache.c:1044,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - cf
    - data
    - ssl_peer_key
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1054
    functionName: Curl_ssl_scache_get_obj
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 1
    functionsReached:
    - Curl_ssl_cf_get_primary_config
    - CURL_TRC_SSLS
    - cf_ssl_find_peer_by_key
    - cf_ssl_scache_get
    linkageType: ''
    returnType: void
    signature: "void *Curl_ssl_scache_get_obj(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              const char *ssl_peer_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:1060,1
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/vtls_scache.c:1061,1
    - Dst: Curl_ssl_scache_lock
      Src: /src/curl/lib/vtls/vtls_scache.c:1069,1
    - Dst: cf_ssl_find_peer_by_key
      Src: /src/curl/lib/vtls/vtls_scache.c:1070,1
    - Dst: cf_ssl_scache_clear_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:1073,1
    - Dst: Curl_ssl_scache_unlock
      Src: /src/curl/lib/vtls/vtls_scache.c:1074,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cf
    - data
    - ssl_peer_key
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1056
    functionDepth: 5
    functionLinenumber: 1056
    functionLinenumberEnd: 1075
    functionName: Curl_ssl_scache_remove_all
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_scache_unlock
    - Curl_ssl_scache_lock
    - cf_ssl_find_peer_by_key
    - Curl_ssl_cf_get_primary_config
    - cf_ssl_scache_clear_peer
    - cf_ssl_scache_get
    linkageType: ''
    returnType: void
    signature: "void Curl_ssl_scache_remove_all(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                const char *ssl_peer_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1085
    functionName: Curl_ssl_scache_is_locked
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 2
    functionsReached:
    - cf_ssl_scache_get
    linkageType: ''
    returnType: bool
    signature: bool Curl_ssl_scache_is_locked(struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_scache.c:1091,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vtls/vtls_scache.c:1095,1
    - Dst: Curl_hmacit
      Src: /src/curl/lib/vtls/vtls_scache.c:1099,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls_scache.c:1102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct Curl_ssl_scache_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1087
    functionDepth: 3
    functionLinenumber: 1087
    functionLinenumberEnd: 1107
    functionName: cf_ssl_scache_peer_set_hmac
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - Curl_rand
    - strlen
    - DEBUGASSERT
    - Curl_hmacit
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode cf_ssl_scache_peer_set_hmac(struct Curl_ssl_scache_peer *peer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GOOD_SCACHE
      Src: /src/curl/lib/vtls/vtls_scache.c:1118,1
    - Dst: cf_ssl_scache_match_auth
      Src: /src/curl/lib/vtls/vtls_scache.c:1125,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls_scache.c:1128,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls_scache.c:1129,1
    - Dst: Curl_hmacit
      Src: /src/curl/lib/vtls/vtls_scache.c:1137,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls_scache.c:1140,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls_scache.c:1144,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/vtls_scache.c:1147,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/vtls_scache.c:1148,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 4
    argNames:
    - scache
    - salt
    - hmac
    - ppeer
    argTypes:
    - struct Curl_ssl_scache*
    - unsigned char*
    - unsigned char*
    - struct Curl_ssl_scache_peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1109
    functionDepth: 3
    functionLinenumber: 1109
    functionLinenumberEnd: 1158
    functionName: cf_ssl_find_peer_by_hmac
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cf_ssl_scache_match_auth
    - memcmp
    - Curl_hmacit
    - strlen
    - GOOD_SCACHE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ssl_find_peer_by_hmac(struct Curl_ssl_scache *scache,\n
      \                                        const unsigned char *salt,\n                                         const
      unsigned char *hmac,\n                                         struct Curl_ssl_scache_peer
      **ppeer)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:1165,1
    - Dst: Curl_ssl_session_unpack
      Src: /src/curl/lib/vtls/vtls_scache.c:1179,1
    - Dst: Curl_ssl_scache_lock
      Src: /src/curl/lib/vtls/vtls_scache.c:1183,1
    - Dst: cf_ssl_add_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:1186,1
    - Dst: cf_ssl_find_peer_by_hmac
      Src: /src/curl/lib/vtls/vtls_scache.c:1200,1
    - Dst: cf_ssl_get_free_peer
      Src: /src/curl/lib/vtls/vtls_scache.c:1204,1
    - Dst: cf_ssl_scache_peer_init
      Src: /src/curl/lib/vtls/vtls_scache.c:1206,1
    - Dst: cf_scache_peer_add_session
      Src: /src/curl/lib/vtls/vtls_scache.c:1215,1
    - Dst: time
      Src: /src/curl/lib/vtls/vtls_scache.c:1215,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:1217,1
    - Dst: Curl_llist_count
      Src: /src/curl/lib/vtls/vtls_scache.c:1220,1
    - Dst: Curl_ssl_scache_unlock
      Src: /src/curl/lib/vtls/vtls_scache.c:1225,1
    - Dst: Curl_ssl_session_destroy
      Src: /src/curl/lib/vtls/vtls_scache.c:1226,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 6
    argNames:
    - data
    - ssl_peer_key
    - shmac
    - shmac_len
    - sdata
    - sdata_len
    argTypes:
    - struct Curl_easy*
    - char*
    - unsigned char*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1160
    functionDepth: 8
    functionLinenumber: 1160
    functionLinenumberEnd: 1228
    functionName: Curl_ssl_session_import
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 1
    functionsReached:
    - Curl_llist_count
    - Curl_ssl_scache_unlock
    - cf_ssl_add_peer
    - cf_scache_peer_add_session
    - cf_ssl_find_peer_by_hmac
    - cf_ssl_get_free_peer
    - time
    - cf_ssl_scache_peer_init
    - CURL_TRC_SSLS
    - Curl_ssl_session_unpack
    - Curl_ssl_session_destroy
    - Curl_ssl_scache_lock
    - cf_ssl_scache_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_session_import(struct Curl_easy *data,\n                                 const
      char *ssl_peer_key,\n                                 const unsigned char *shmac,
      size_t shmac_len,\n                                 const void *sdata, size_t
      sdata_len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_scache_get
      Src: /src/curl/lib/vtls/vtls_scache.c:1234,1
    - Dst: time
      Src: /src/curl/lib/vtls/vtls_scache.c:1239,1
    - Dst: Curl_ssl_scache_lock
      Src: /src/curl/lib/vtls/vtls_scache.c:1248,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/vtls_scache.c:1250,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/vtls_scache.c:1251,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/vtls_scache.c:1260,1
    - Dst: cf_scache_peer_remove_expired
      Src: /src/curl/lib/vtls/vtls_scache.c:1261,1
    - Dst: Curl_llist_head
      Src: /src/curl/lib/vtls/vtls_scache.c:1262,1
    - Dst: VERBOSE
      Src: /src/curl/lib/vtls/vtls_scache.c:1264,1
    - Dst: Curl_node_elem
      Src: /src/curl/lib/vtls/vtls_scache.c:1266,1
    - Dst: cf_ssl_scache_peer_set_hmac
      Src: /src/curl/lib/vtls/vtls_scache.c:1268,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/vtls_scache.c:1272,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_scache.c:1273,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls_scache.c:1276,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/vtls_scache.c:1280,1
    - Dst: Curl_ssl_session_pack
      Src: /src/curl/lib/vtls/vtls_scache.c:1281,1
    - Dst: export_fn
      Src: /src/curl/lib/vtls/vtls_scache.c:1285,1
    - Dst: curlx_dyn_uptr
      Src: /src/curl/lib/vtls/vtls_scache.c:1286,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/vtls_scache.c:1286,1
    - Dst: curlx_dyn_uptr
      Src: /src/curl/lib/vtls/vtls_scache.c:1287,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/vtls_scache.c:1287,1
    - Dst: VERBOSE
      Src: /src/curl/lib/vtls/vtls_scache.c:1292,1
    - Dst: Curl_node_next
      Src: /src/curl/lib/vtls/vtls_scache.c:1293,1
    - Dst: CURL_TRC_SSLS
      Src: /src/curl/lib/vtls/vtls_scache.c:1297,1
    - Dst: Curl_ssl_scache_unlock
      Src: /src/curl/lib/vtls/vtls_scache.c:1301,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/vtls_scache.c:1302,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/vtls_scache.c:1303,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 3
    argNames:
    - data
    - export_fn
    - userptr
    argTypes:
    - struct Curl_easy*
    - curl_ssls_export_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1230
    functionDepth: 7
    functionLinenumber: 1230
    functionLinenumberEnd: 1305
    functionName: Curl_ssl_session_export
    functionSourceFile: /src/curl/lib/vtls/vtls_scache.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - time
    - Curl_llist_head
    - cf_ssl_scache_get
    - curlx_dyn_addn
    - curlx_dyn_free
    - Curl_node_elem
    - export_fn
    - Curl_ssl_scache_unlock
    - cf_scache_peer_remove_expired
    - curlx_dyn_len
    - Curl_node_next
    - VERBOSE
    - Curl_ssl_session_pack
    - curlx_dyn_uptr
    - curlx_dyn_reset
    - CURL_TRC_SSLS
    - Curl_ssl_scache_lock
    - cf_ssl_scache_peer_set_hmac
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_session_export(struct Curl_easy *data,\n                                 curl_ssls_export_cb
      *export_fn,\n                                 void *userptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: CF_CTX_CALL_DATA
    functionSourceFile: /src/curl/lib/vtls/vtls_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_CTX_CALL_DATA(cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: CS_ZIP_IDX
    functionSourceFile: /src/curl/lib/vtls/cipher_suite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CS_ZIP_IDX(a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - id
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: CS_ENTRY
    functionSourceFile: /src/curl/lib/vtls/cipher_suite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CS_ENTRY(id, a, b, c, d, e, f, g, h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/vtls/cipher_suite.c:553,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/cipher_suite.c:568,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/vtls/cipher_suite.c:569,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - cs_str
    - cs_len
    - zip
    argTypes:
    - char*
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 588
    functionName: cs_str_to_zip
    functionSourceFile: /src/curl/lib/vtls/cipher_suite.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_strnequal
    linkageType: ''
    returnType: int
    signature: int cs_str_to_zip(const char *cs_str, size_t cs_len, uint8_t zip[6])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/cipher_suite.c:617,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/cipher_suite.c:623,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/cipher_suite.c:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - zip
    - buf
    - buf_size
    argTypes:
    - uint8_t[]
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 590
    functionDepth: 7
    functionLinenumber: 590
    functionLinenumberEnd: 633
    functionName: cs_zip_to_str
    functionSourceFile: /src/curl/lib/vtls/cipher_suite.c
    functionUses: 0
    functionsReached:
    - strlen
    - curl_msnprintf
    linkageType: ''
    returnType: int
    signature: int cs_zip_to_str(const uint8_t zip[6], char *buf, size_t buf_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cs_str_to_zip
      Src: /src/curl/lib/vtls/cipher_suite.c:640,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/cipher_suite.c:642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - cs_str
    - cs_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 648
    functionName: Curl_cipher_suite_lookup_id
    functionSourceFile: /src/curl/lib/vtls/cipher_suite.c
    functionUses: 1
    functionsReached:
    - memcmp
    - cs_str_to_zip
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Curl_cipher_suite_lookup_id(const char *cs_str, size_t cs_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 661
    functionName: cs_is_separator
    functionSourceFile: /src/curl/lib/vtls/cipher_suite.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cs_is_separator(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cs_is_separator
      Src: /src/curl/lib/vtls/cipher_suite.c:666,1
    - Dst: cs_is_separator
      Src: /src/curl/lib/vtls/cipher_suite.c:670,1
    - Dst: Curl_cipher_suite_lookup_id
      Src: /src/curl/lib/vtls/cipher_suite.c:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - str
    - end
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 663
    functionDepth: 5
    functionLinenumber: 663
    functionLinenumberEnd: 674
    functionName: Curl_cipher_suite_walk_str
    functionSourceFile: /src/curl/lib/vtls/cipher_suite.c
    functionUses: 2
    functionsReached:
    - Curl_cipher_suite_lookup_id
    - cs_is_separator
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Curl_cipher_suite_walk_str(const char **str, const char **end)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cs_zip_to_str
      Src: /src/curl/lib/vtls/cipher_suite.c:694,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/cipher_suite.c:697,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - id
    - buf
    - buf_size
    - prefer_rfc
    argTypes:
    - uint16_t
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 676
    functionDepth: 8
    functionLinenumber: 676
    functionLinenumberEnd: 700
    functionName: Curl_cipher_suite_get_str
    functionSourceFile: /src/curl/lib/vtls/cipher_suite.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - cs_zip_to_str
    linkageType: ''
    returnType: int
    signature: "int Curl_cipher_suite_get_str(uint16_t id, char *buf, size_t buf_size,\n
      \                             bool prefer_rfc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: DECLARE_PKEY_PARAM_BIGNUM
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PKEY_PARAM_BIGNUM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: FREE_PKEY_PARAM_BIGNUM
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_PKEY_PARAM_BIGNUM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: DECLARE_PKEY_PARAM_BIGNUM
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PKEY_PARAM_BIGNUM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/curl/lib/vtls/openssl.c:183,1
    - Dst: Curl_ssl_push_certinfo_len
      Src: /src/curl/lib/vtls/openssl.c:184,1
    - Dst: BIO_reset
      Src: /src/curl/lib/vtls/openssl.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - mem
    - label
    - num
    argTypes:
    - struct Curl_easy*
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: push_certinfo
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 1
    functionsReached:
    - BIO_get_mem_data
    - Curl_ssl_push_certinfo_len
    - BIO_reset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode push_certinfo(struct Curl_easy *data,\n                              BIO
      *mem, const char *label, int num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:205,1
    - Dst: BN_print
      Src: /src/curl/lib/vtls/openssl.c:208,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - data
    - mem
    - num
    - type
    - name
    - bn
    argTypes:
    - struct Curl_easy*
    - BIO*
    - int
    - char*
    - char*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 7
    functionLinenumber: 196
    functionLinenumberEnd: 210
    functionName: pubkey_show
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - push_certinfo
    - curl_msnprintf
    - BN_print
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pubkey_show(struct Curl_easy *data,\n                            BIO
      *mem,\n                            int num,\n                            const
      char *type,\n                            const char *name,\n                            const
      BIGNUM *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _type
    - ','
    - _name
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: print_pubkey_BN
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: print_pubkey_BN(_type, _name, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2t_ASN1_OBJECT
      Src: /src/curl/lib/vtls/openssl.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - buf
    - len
    argTypes:
    - ASN1_OBJECT*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: asn1_object_dump
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - i2t_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: int asn1_object_dump(const ASN1_OBJECT *a, char *buf, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/curl/lib/vtls/openssl.c:228,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:228,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/curl/lib/vtls/openssl.c:233,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/curl/lib/vtls/openssl.c:237,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/curl/lib/vtls/openssl.c:239,1
    - Dst: BIO_new
      Src: /src/curl/lib/vtls/openssl.c:242,1
    - Dst: BIO_s_mem
      Src: /src/curl/lib/vtls/openssl.c:242,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/curl/lib/vtls/openssl.c:247,1
    - Dst: asn1_object_dump
      Src: /src/curl/lib/vtls/openssl.c:249,1
    - Dst: X509V3_EXT_print
      Src: /src/curl/lib/vtls/openssl.c:253,1
    - Dst: ASN1_STRING_print
      Src: /src/curl/lib/vtls/openssl.c:254,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/curl/lib/vtls/openssl.c:255,1
    - Dst: BIO_get_mem_ptr
      Src: /src/curl/lib/vtls/openssl.c:257,1
    - Dst: Curl_ssl_push_certinfo_len
      Src: /src/curl/lib/vtls/openssl.c:258,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - data
    - certnum
    - extsarg
    argTypes:
    - struct Curl_easy*
    - int
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 265
    functionName: X509V3_ext
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - asn1_object_dump
    - BIO_free
    - BIO_s_mem
    - sk_X509_EXTENSION_num
    - ASN1_STRING_print
    - sk_X509_EXTENSION_value
    - CURL_UNCONST
    - X509_EXTENSION_get_object
    - Curl_ssl_push_certinfo_len
    - BIO_get_mem_ptr
    - BIO_new
    - X509V3_EXT_print
    - STACK_OF
    - X509_EXTENSION_get_data
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode X509V3_ext(struct Curl_easy *data,\n                           int
      certnum,\n                           const STACK_OF(X509_EXTENSION) *extsarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/curl/lib/vtls/openssl.c:272,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:274,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:275,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:277,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:278,1
    - Dst: RSA_get0_key
      Src: /src/curl/lib/vtls/openssl.c:280,1
    - Dst: BIO_printf
      Src: /src/curl/lib/vtls/openssl.c:282,1
    - Dst: BN_num_bits
      Src: /src/curl/lib/vtls/openssl.c:282,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:283,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:285,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:287,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:289,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - data
    - pubkey
    - mem
    - i
    argTypes:
    - struct Curl_easy*
    - EVP_PKEY*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 292
    functionName: get_pkey_rsa
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - print_pubkey_BN
    - FREE_PKEY_PARAM_BIGNUM
    - BIO_printf
    - RSA_get0_key
    - push_certinfo
    - EVP_PKEY_get0_RSA
    - EVP_PKEY_get_bn_param
    - DECLARE_PKEY_PARAM_BIGNUM
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode get_pkey_rsa(struct Curl_easy *data,\n                             EVP_PKEY
      *pubkey, BIO *mem, int i)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/curl/lib/vtls/openssl.c:300,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:302,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:303,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:304,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:305,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:307,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:308,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:309,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:310,1
    - Dst: DSA_get0_pqg
      Src: /src/curl/lib/vtls/openssl.c:312,1
    - Dst: DSA_get0_key
      Src: /src/curl/lib/vtls/openssl.c:313,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:315,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:317,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:319,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:321,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:322,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:323,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:324,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - data
    - pubkey
    - mem
    - i
    argTypes:
    - struct Curl_easy*
    - EVP_PKEY*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 327
    functionName: get_pkey_dsa
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - DSA_get0_pqg
    - DECLARE_PKEY_PARAM_BIGNUM
    - print_pubkey_BN
    - EVP_PKEY_get0_DSA
    - FREE_PKEY_PARAM_BIGNUM
    - EVP_PKEY_get_bn_param
    - DSA_get0_key
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode get_pkey_dsa(struct Curl_easy *data,\n                             EVP_PKEY
      *pubkey, BIO *mem, int i)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_DH
      Src: /src/curl/lib/vtls/openssl.c:335,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:337,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:338,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:339,1
    - Dst: DECLARE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:340,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:342,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:343,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:344,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/curl/lib/vtls/openssl.c:345,1
    - Dst: DH_get0_pqg
      Src: /src/curl/lib/vtls/openssl.c:347,1
    - Dst: DH_get0_key
      Src: /src/curl/lib/vtls/openssl.c:348,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:350,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:352,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:354,1
    - Dst: print_pubkey_BN
      Src: /src/curl/lib/vtls/openssl.c:356,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:357,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:358,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:359,1
    - Dst: FREE_PKEY_PARAM_BIGNUM
      Src: /src/curl/lib/vtls/openssl.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - data
    - pubkey
    - mem
    - i
    argTypes:
    - struct Curl_easy*
    - EVP_PKEY*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 362
    functionName: get_pkey_dh
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - DH_get0_pqg
    - print_pubkey_BN
    - FREE_PKEY_PARAM_BIGNUM
    - DH_get0_key
    - EVP_PKEY_get0_DH
    - EVP_PKEY_get_bn_param
    - DECLARE_PKEY_PARAM_BIGNUM
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode get_pkey_dh(struct Curl_easy *data,\n                            EVP_PKEY
      *pubkey, BIO *mem, int i)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/curl/lib/vtls/openssl.c:374,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:379,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/curl/lib/vtls/openssl.c:381,1
    - Dst: sk_X509_num
      Src: /src/curl/lib/vtls/openssl.c:385,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:387,1
    - Dst: Curl_ssl_init_certinfo
      Src: /src/curl/lib/vtls/openssl.c:392,1
    - Dst: BIO_new
      Src: /src/curl/lib/vtls/openssl.c:396,1
    - Dst: BIO_s_mem
      Src: /src/curl/lib/vtls/openssl.c:396,1
    - Dst: sk_X509_value
      Src: /src/curl/lib/vtls/openssl.c:403,1
    - Dst: X509_NAME_print_ex
      Src: /src/curl/lib/vtls/openssl.c:408,1
    - Dst: X509_get_subject_name
      Src: /src/curl/lib/vtls/openssl.c:408,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:409,1
    - Dst: X509_NAME_print_ex
      Src: /src/curl/lib/vtls/openssl.c:413,1
    - Dst: X509_get_issuer_name
      Src: /src/curl/lib/vtls/openssl.c:413,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:414,1
    - Dst: BIO_printf
      Src: /src/curl/lib/vtls/openssl.c:418,1
    - Dst: X509_get_version
      Src: /src/curl/lib/vtls/openssl.c:418,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:419,1
    - Dst: X509_get_serialNumber
      Src: /src/curl/lib/vtls/openssl.c:423,1
    - Dst: ASN1_STRING_type
      Src: /src/curl/lib/vtls/openssl.c:424,1
    - Dst: BIO_puts
      Src: /src/curl/lib/vtls/openssl.c:425,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/curl/lib/vtls/openssl.c:426,1
    - Dst: ASN1_STRING_length
      Src: /src/curl/lib/vtls/openssl.c:427,1
    - Dst: BIO_printf
      Src: /src/curl/lib/vtls/openssl.c:428,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:429,1
    - Dst: X509_get0_signature
      Src: /src/curl/lib/vtls/openssl.c:438,1
    - Dst: X509_ALGOR_get0
      Src: /src/curl/lib/vtls/openssl.c:441,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/curl/lib/vtls/openssl.c:442,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:443,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/curl/lib/vtls/openssl.c:448,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/curl/lib/vtls/openssl.c:450,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/curl/lib/vtls/openssl.c:452,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:453,1
    - Dst: X509V3_ext
      Src: /src/curl/lib/vtls/openssl.c:459,1
    - Dst: X509_get0_extensions
      Src: /src/curl/lib/vtls/openssl.c:459,1
    - Dst: ASN1_TIME_print
      Src: /src/curl/lib/vtls/openssl.c:464,1
    - Dst: X509_get0_notBefore
      Src: /src/curl/lib/vtls/openssl.c:464,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:465,1
    - Dst: ASN1_TIME_print
      Src: /src/curl/lib/vtls/openssl.c:469,1
    - Dst: X509_get0_notAfter
      Src: /src/curl/lib/vtls/openssl.c:469,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:470,1
    - Dst: X509_get_pubkey
      Src: /src/curl/lib/vtls/openssl.c:474,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:476,1
    - Dst: EVP_PKEY_id
      Src: /src/curl/lib/vtls/openssl.c:478,1
    - Dst: get_pkey_rsa
      Src: /src/curl/lib/vtls/openssl.c:480,1
    - Dst: get_pkey_dsa
      Src: /src/curl/lib/vtls/openssl.c:485,1
    - Dst: get_pkey_dh
      Src: /src/curl/lib/vtls/openssl.c:490,1
    - Dst: EVP_PKEY_free
      Src: /src/curl/lib/vtls/openssl.c:493,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/curl/lib/vtls/openssl.c:497,1
    - Dst: ASN1_STRING_length
      Src: /src/curl/lib/vtls/openssl.c:498,1
    - Dst: BIO_printf
      Src: /src/curl/lib/vtls/openssl.c:499,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:500,1
    - Dst: PEM_write_bio_X509
      Src: /src/curl/lib/vtls/openssl.c:504,1
    - Dst: push_certinfo
      Src: /src/curl/lib/vtls/openssl.c:505,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:509,1
    - Dst: Curl_ssl_free_certinfo
      Src: /src/curl/lib/vtls/openssl.c:513,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 99
    argCount: 2
    argNames:
    - data
    - ssl
    argTypes:
    - struct Curl_easy*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 516
    functionName: ossl_certchain
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - ASN1_STRING_get0_data
    - DEBUGASSERT
    - X509_NAME_print_ex
    - Curl_ssl_free_certinfo
    - X509_get0_signature
    - X509_get_subject_name
    - ASN1_STRING_type
    - X509_get_pubkey
    - EVP_PKEY_id
    - BIO_puts
    - ASN1_STRING_length
    - sk_X509_num
    - X509_get_version
    - STACK_OF
    - i2a_ASN1_OBJECT
    - ASN1_TIME_print
    - X509V3_ext
    - X509_PUBKEY_get0_param
    - failf
    - EVP_PKEY_free
    - BIO_printf
    - X509_ALGOR_get0
    - get_pkey_rsa
    - X509_get_serialNumber
    - X509_get_X509_PUBKEY
    - BIO_new
    - SSL_get_peer_cert_chain
    - X509_get0_extensions
    - X509_get0_notBefore
    - get_pkey_dh
    - X509_get_issuer_name
    - BIO_s_mem
    - sk_X509_value
    - get_pkey_dsa
    - X509_get0_notAfter
    - PEM_write_bio_X509
    - infof
    - push_certinfo
    - Curl_ssl_init_certinfo
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ossl_certchain(struct Curl_easy *data, SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_shutdown
      Src: /src/curl/lib/vtls/openssl.c:520,1
    - Dst: BIO_set_init
      Src: /src/curl/lib/vtls/openssl.c:521,1
    - Dst: BIO_set_data
      Src: /src/curl/lib/vtls/openssl.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: ossl_bio_cf_create
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_shutdown
    - BIO_set_data
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int ossl_bio_cf_create(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 531
    functionName: ossl_bio_cf_destroy
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_bio_cf_destroy(BIO *bio)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/curl/lib/vtls/openssl.c:535,1
    - Dst: BIO_get_shutdown
      Src: /src/curl/lib/vtls/openssl.c:542,1
    - Dst: BIO_set_shutdown
      Src: /src/curl/lib/vtls/openssl.c:545,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 565
    functionName: ossl_bio_cf_ctrl
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_shutdown
    - BIO_set_shutdown
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: long ossl_bio_cf_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/curl/lib/vtls/openssl.c:569,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/openssl.c:572,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:576,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vtls/openssl.c:580,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:583,1
    - Dst: BIO_clear_retry_flags
      Src: /src/curl/lib/vtls/openssl.c:585,1
    - Dst: BIO_set_retry_write
      Src: /src/curl/lib/vtls/openssl.c:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - bio
    - buf
    - blen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 593
    functionName: ossl_bio_cf_out_write
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - DEBUGASSERT
    - BIO_clear_retry_flags
    - Curl_conn_cf_send
    - BIO_set_retry_write
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: int ossl_bio_cf_out_write(BIO *bio, const char *buf, int blen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/curl/lib/vtls/openssl.c:597,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/openssl.c:600,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:604,1
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/vtls/openssl.c:611,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:612,1
    - Dst: BIO_clear_retry_flags
      Src: /src/curl/lib/vtls/openssl.c:614,1
    - Dst: BIO_set_retry_read
      Src: /src/curl/lib/vtls/openssl.c:618,1
    - Dst: Curl_ssl_setup_x509_store
      Src: /src/curl/lib/vtls/openssl.c:630,1
    - Dst: BIO_clear_retry_flags
      Src: /src/curl/lib/vtls/openssl.c:632,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - bio
    - buf
    - blen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 639
    functionName: ossl_bio_cf_in_read
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - DEBUGASSERT
    - Curl_ssl_setup_x509_store
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - Curl_conn_cf_recv
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: int ossl_bio_cf_in_read(BIO *bio, char *buf, int blen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/curl/lib/vtls/openssl.c:643,1
    - Dst: BIO_meth_set_write
      Src: /src/curl/lib/vtls/openssl.c:645,1
    - Dst: BIO_meth_set_read
      Src: /src/curl/lib/vtls/openssl.c:646,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/curl/lib/vtls/openssl.c:647,1
    - Dst: BIO_meth_set_create
      Src: /src/curl/lib/vtls/openssl.c:648,1
    - Dst: BIO_meth_set_destroy
      Src: /src/curl/lib/vtls/openssl.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 652
    functionName: ossl_bio_cf_method_create
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_meth_new
    - BIO_meth_set_create
    - BIO_meth_set_write
    - BIO_meth_set_ctrl
    - BIO_meth_set_destroy
    - BIO_meth_set_read
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *ossl_bio_cf_method_create(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/curl/lib/vtls/openssl.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: ossl_bio_cf_method_free
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void ossl_bio_cf_method_free(BIO_METHOD *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_tls_keylog_write_line
      Src: /src/curl/lib/vtls/openssl.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 667
    functionName: ossl_keylog_callback
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_tls_keylog_write_line
    linkageType: ''
    returnType: void
    signature: void ossl_keylog_callback(const SSL *ssl, const char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/curl/lib/vtls/openssl.c:680,1
    - Dst: SSL_get_session
      Src: /src/curl/lib/vtls/openssl.c:682,1
    - Dst: ERR_pop_to_mark
      Src: /src/curl/lib/vtls/openssl.c:685,1
    - Dst: SSL_get_client_random
      Src: /src/curl/lib/vtls/openssl.c:689,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/curl/lib/vtls/openssl.c:691,1
    - Dst: ERR_pop_to_mark
      Src: /src/curl/lib/vtls/openssl.c:693,1
    - Dst: Curl_tls_keylog_write
      Src: /src/curl/lib/vtls/openssl.c:702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ssl
    - keylog_done
    argTypes:
    - SSL*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 704
    functionName: ossl_log_tls12_secret
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - ERR_pop_to_mark
    - SSL_get_session
    - SSL_get_client_random
    - Curl_tls_keylog_write
    - SSL_SESSION_get_master_key
    - ERR_set_mark
    linkageType: ''
    returnType: void
    signature: void ossl_log_tls12_secret(const SSL *ssl, bool *keylog_done)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 744
    functionName: SSL_ERROR_to_str
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *SSL_ERROR_to_str(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:751,1
    - Dst: Curl_ossl_version
      Src: /src/curl/lib/vtls/openssl.c:754,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:755,1
    - Dst: ERR_error_string_n
      Src: /src/curl/lib/vtls/openssl.c:765,1
    - Dst: ERR_error_string_n
      Src: /src/curl/lib/vtls/openssl.c:767,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/vtls/openssl.c:772,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/openssl.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - error
    - buf
    - size
    argTypes:
    - unsigned long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 776
    functionName: ossl_strerror
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - ERR_error_string_n
    - Curl_ossl_version
    - DEBUGASSERT
    - curlx_strcopy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *ossl_strerror(unsigned long error, char *buf, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:780,1
    - Dst: curlx_uztosi
      Src: /src/curl/lib/vtls/openssl.c:783,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/openssl.c:783,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/openssl.c:785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - num
    - encrypting
    - password
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 790
    functionName: passwd_callback
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curlx_uztosi
    - strlen
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int passwd_callback(char *buf, int num, int encrypting, void *password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_status
      Src: /src/curl/lib/vtls/openssl.c:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 798
    functionName: rand_enough
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - RAND_status
    linkageType: ''
    returnType: bool
    signature: bool rand_enough(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rand_enough
      Src: /src/curl/lib/vtls/openssl.c:806,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 814
    functionName: ossl_seed
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - failf
    - rand_enough
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ossl_seed(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/openssl.c:829,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/openssl.c:831,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/openssl.c:833,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/openssl.c:835,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/openssl.c:837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 840
    functionName: ossl_do_file_type
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    linkageType: ''
    returnType: int
    signature: int ossl_do_file_type(const char *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/curl/lib/vtls/openssl.c:851,1
    - Dst: UI_get0_user_data
      Src: /src/curl/lib/vtls/openssl.c:854,1
    - Dst: UI_get_input_flags
      Src: /src/curl/lib/vtls/openssl.c:855,1
    - Dst: UI_set_result
      Src: /src/curl/lib/vtls/openssl.c:856,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/openssl.c:859,1
    - Dst: UI_method_get_reader
      Src: /src/curl/lib/vtls/openssl.c:863,1
    - Dst: UI_OpenSSL
      Src: /src/curl/lib/vtls/openssl.c:863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 864
    functionName: ssl_ui_reader
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - UI_get0_user_data
    - UI_get_input_flags
    - UI_OpenSSL
    - UI_set_result
    - UI_method_get_reader
    - FALLTHROUGH
    - UI_get_string_type
    linkageType: ''
    returnType: int
    signature: int ssl_ui_reader(UI *ui, UI_STRING *uis)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/curl/lib/vtls/openssl.c:871,1
    - Dst: UI_get0_user_data
      Src: /src/curl/lib/vtls/openssl.c:874,1
    - Dst: UI_get_input_flags
      Src: /src/curl/lib/vtls/openssl.c:875,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/openssl.c:878,1
    - Dst: UI_method_get_writer
      Src: /src/curl/lib/vtls/openssl.c:882,1
    - Dst: UI_OpenSSL
      Src: /src/curl/lib/vtls/openssl.c:882,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 883
    functionName: ssl_ui_writer
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - UI_get0_user_data
    - UI_get_input_flags
    - UI_OpenSSL
    - UI_method_get_writer
    - FALLTHROUGH
    - UI_get_string_type
    linkageType: ''
    returnType: int
    signature: int ssl_ui_writer(UI *ui, UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_strnequal
      Src: /src/curl/lib/vtls/openssl.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 891
    functionName: is_pkcs11_uri
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 1
    functionsReached:
    - curl_strnequal
    linkageType: ''
    returnType: bool
    signature: bool is_pkcs11_uri(const char *string)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/curl/lib/vtls/openssl.c:907,1
    - Dst: d2i_X509_bio
      Src: /src/curl/lib/vtls/openssl.c:913,1
    - Dst: PEM_read_bio_X509
      Src: /src/curl/lib/vtls/openssl.c:917,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:917,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/curl/lib/vtls/openssl.c:929,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:931,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:932,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - blob
    - type
    - key_passwd
    argTypes:
    - SSL_CTX*
    - struct curl_blob*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 934
    functionName: use_certificate_blob
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - BIO_new_mem_buf
    - CURL_UNCONST
    - X509_free
    - SSL_CTX_use_certificate
    - d2i_X509_bio
    - PEM_read_bio_X509
    linkageType: ''
    returnType: int
    signature: "int use_certificate_blob(SSL_CTX *ctx, const struct curl_blob *blob,\n
      \                               int type, const char *key_passwd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/curl/lib/vtls/openssl.c:941,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/curl/lib/vtls/openssl.c:946,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:947,1
    - Dst: d2i_PrivateKey_bio
      Src: /src/curl/lib/vtls/openssl.c:949,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/curl/lib/vtls/openssl.c:956,1
    - Dst: EVP_PKEY_free
      Src: /src/curl/lib/vtls/openssl.c:957,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:959,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - blob
    - type
    - key_passwd
    argTypes:
    - SSL_CTX*
    - struct curl_blob*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 961
    functionName: use_privatekey_blob
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - PEM_read_bio_PrivateKey
    - EVP_PKEY_free
    - BIO_new_mem_buf
    - d2i_PrivateKey_bio
    - CURL_UNCONST
    - SSL_CTX_use_PrivateKey
    linkageType: ''
    returnType: int
    signature: "int use_privatekey_blob(SSL_CTX *ctx, const struct curl_blob *blob,\n
      \                              int type, const char *key_passwd)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/curl/lib/vtls/openssl.c:969,1
    - Dst: ERR_clear_error
      Src: /src/curl/lib/vtls/openssl.c:973,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/curl/lib/vtls/openssl.c:975,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:976,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/curl/lib/vtls/openssl.c:980,1
    - Dst: ERR_peek_error
      Src: /src/curl/lib/vtls/openssl.c:982,1
    - Dst: SSL_CTX_clear_chain_certs
      Src: /src/curl/lib/vtls/openssl.c:989,1
    - Dst: PEM_read_bio_X509
      Src: /src/curl/lib/vtls/openssl.c:994,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:995,1
    - Dst: SSL_CTX_add0_chain_cert
      Src: /src/curl/lib/vtls/openssl.c:997,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:998,1
    - Dst: ERR_peek_last_error
      Src: /src/curl/lib/vtls/openssl.c:1004,1
    - Dst: ERR_GET_LIB
      Src: /src/curl/lib/vtls/openssl.c:1005,1
    - Dst: ERR_GET_REASON
      Src: /src/curl/lib/vtls/openssl.c:1006,1
    - Dst: ERR_clear_error
      Src: /src/curl/lib/vtls/openssl.c:1007,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:1013,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:1014,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - blob
    - key_passwd
    argTypes:
    - SSL_CTX*
    - struct curl_blob*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 1016
    functionName: use_certificate_chain_blob
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_clear_chain_certs
    - ERR_GET_REASON
    - BIO_free
    - BIO_new_mem_buf
    - ERR_peek_error
    - SSL_CTX_add0_chain_cert
    - CURL_UNCONST
    - ERR_clear_error
    - X509_free
    - SSL_CTX_use_certificate
    - ERR_peek_last_error
    - ERR_GET_LIB
    - PEM_read_bio_X509
    - PEM_read_bio_X509_AUX
    linkageType: ''
    returnType: int
    signature: "int use_certificate_chain_blob(SSL_CTX *ctx,\n                                      const
      struct curl_blob *blob,\n                                      const char *key_passwd)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_pkcs11_uri
      Src: /src/curl/lib/vtls/openssl.c:1029,1
    - Dst: ossl_set_engine
      Src: /src/curl/lib/vtls/openssl.c:1030,1
    - Dst: UI_create_method
      Src: /src/curl/lib/vtls/openssl.c:1037,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1039,1
    - Dst: UI_method_set_opener
      Src: /src/curl/lib/vtls/openssl.c:1042,1
    - Dst: UI_method_get_opener
      Src: /src/curl/lib/vtls/openssl.c:1042,1
    - Dst: UI_OpenSSL
      Src: /src/curl/lib/vtls/openssl.c:1042,1
    - Dst: UI_method_set_closer
      Src: /src/curl/lib/vtls/openssl.c:1043,1
    - Dst: UI_method_get_closer
      Src: /src/curl/lib/vtls/openssl.c:1043,1
    - Dst: UI_OpenSSL
      Src: /src/curl/lib/vtls/openssl.c:1043,1
    - Dst: UI_method_set_reader
      Src: /src/curl/lib/vtls/openssl.c:1044,1
    - Dst: UI_method_set_writer
      Src: /src/curl/lib/vtls/openssl.c:1045,1
    - Dst: ENGINE_load_private_key
      Src: /src/curl/lib/vtls/openssl.c:1046,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:1048,1
    - Dst: UI_destroy_method
      Src: /src/curl/lib/vtls/openssl.c:1049,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1051,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/curl/lib/vtls/openssl.c:1054,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1055,1
    - Dst: EVP_PKEY_free
      Src: /src/curl/lib/vtls/openssl.c:1056,1
    - Dst: EVP_PKEY_free
      Src: /src/curl/lib/vtls/openssl.c:1059,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1062,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1070,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 4
    argNames:
    - data
    - ctx
    - key_file
    - key_passwd
    argTypes:
    - struct Curl_easy*
    - SSL_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1073
    functionName: enginecheck
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - UI_create_method
    - failf
    - UI_method_set_closer
    - is_pkcs11_uri
    - UI_method_set_reader
    - UI_OpenSSL
    - EVP_PKEY_free
    - UI_method_get_opener
    - UI_method_set_writer
    - CURL_UNCONST
    - UI_destroy_method
    - SSL_CTX_use_PrivateKey
    - UI_method_set_opener
    - ENGINE_load_private_key
    - ossl_set_engine
    - UI_method_get_closer
    linkageType: ''
    returnType: int
    signature: "int enginecheck(struct Curl_easy *data,\n                       SSL_CTX*
      ctx,\n                       const char *key_file,\n                       const
      char *key_passwd)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_pkcs11_uri
      Src: /src/curl/lib/vtls/openssl.c:1084,1
    - Dst: ossl_set_provider
      Src: /src/curl/lib/vtls/openssl.c:1085,1
    - Dst: UI_create_method
      Src: /src/curl/lib/vtls/openssl.c:1096,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1098,1
    - Dst: UI_method_set_opener
      Src: /src/curl/lib/vtls/openssl.c:1101,1
    - Dst: UI_method_get_opener
      Src: /src/curl/lib/vtls/openssl.c:1101,1
    - Dst: UI_OpenSSL
      Src: /src/curl/lib/vtls/openssl.c:1101,1
    - Dst: UI_method_set_closer
      Src: /src/curl/lib/vtls/openssl.c:1102,1
    - Dst: UI_method_get_closer
      Src: /src/curl/lib/vtls/openssl.c:1102,1
    - Dst: UI_OpenSSL
      Src: /src/curl/lib/vtls/openssl.c:1102,1
    - Dst: UI_method_set_reader
      Src: /src/curl/lib/vtls/openssl.c:1103,1
    - Dst: UI_method_set_writer
      Src: /src/curl/lib/vtls/openssl.c:1104,1
    - Dst: OSSL_STORE_open_ex
      Src: /src/curl/lib/vtls/openssl.c:1106,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1110,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1111,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1111,1
    - Dst: UI_destroy_method
      Src: /src/curl/lib/vtls/openssl.c:1113,1
    - Dst: OSSL_STORE_expect
      Src: /src/curl/lib/vtls/openssl.c:1116,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1117,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1118,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1118,1
    - Dst: OSSL_STORE_load
      Src: /src/curl/lib/vtls/openssl.c:1122,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/curl/lib/vtls/openssl.c:1124,1
    - Dst: OSSL_STORE_INFO_get1_PKEY
      Src: /src/curl/lib/vtls/openssl.c:1127,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/curl/lib/vtls/openssl.c:1128,1
    - Dst: OSSL_STORE_close
      Src: /src/curl/lib/vtls/openssl.c:1130,1
    - Dst: UI_destroy_method
      Src: /src/curl/lib/vtls/openssl.c:1131,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1133,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1134,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1134,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/curl/lib/vtls/openssl.c:1139,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1140,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1141,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1141,1
    - Dst: EVP_PKEY_free
      Src: /src/curl/lib/vtls/openssl.c:1143,1
    - Dst: EVP_PKEY_free
      Src: /src/curl/lib/vtls/openssl.c:1146,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1149,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1156,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 3
    argNames:
    - data
    - ctx
    - key_file
    argTypes:
    - struct Curl_easy*
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1075
    functionDepth: 2
    functionLinenumber: 1075
    functionLinenumberEnd: 1159
    functionName: providercheck
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_close
    - UI_create_method
    - ossl_set_provider
    - is_pkcs11_uri
    - UI_method_set_reader
    - OSSL_STORE_INFO_free
    - OSSL_STORE_INFO_get1_PKEY
    - OSSL_STORE_open_ex
    - failf
    - EVP_PKEY_free
    - UI_method_get_opener
    - UI_method_set_writer
    - SSL_CTX_use_PrivateKey
    - UI_destroy_method
    - UI_method_set_opener
    - OSSL_STORE_INFO_get_type
    - UI_method_get_closer
    - UI_method_set_closer
    - UI_OpenSSL
    - ossl_strerror
    - OSSL_STORE_load
    - ERR_get_error
    - OSSL_STORE_expect
    linkageType: ''
    returnType: int
    signature: "int providercheck(struct Curl_easy *data,\n                         SSL_CTX*
      ctx,\n                         const char *key_file)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_pkcs11_uri
      Src: /src/curl/lib/vtls/openssl.c:1171,1
    - Dst: ossl_set_engine
      Src: /src/curl/lib/vtls/openssl.c:1172,1
    - Dst: ENGINE_ctrl
      Src: /src/curl/lib/vtls/openssl.c:1189,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:1190,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1191,1
    - Dst: ENGINE_ctrl_cmd
      Src: /src/curl/lib/vtls/openssl.c:1196,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1197,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1199,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1199,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1205,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/curl/lib/vtls/openssl.c:1209,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1210,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1211,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1211,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:1213,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:1216,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1219,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1226,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - data
    - ctx
    - cert_file
    argTypes:
    - struct Curl_easy*
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1229
    functionName: engineload
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - failf
    - is_pkcs11_uri
    - ossl_strerror
    - CURL_UNCONST
    - ENGINE_ctrl
    - X509_free
    - ERR_get_error
    - SSL_CTX_use_certificate
    - ossl_set_engine
    - ENGINE_ctrl_cmd
    linkageType: ''
    returnType: int
    signature: "int engineload(struct Curl_easy *data,\n                      SSL_CTX*
      ctx,\n                      const char *cert_file)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: is_pkcs11_uri
      Src: /src/curl/lib/vtls/openssl.c:1240,1
    - Dst: ossl_set_provider
      Src: /src/curl/lib/vtls/openssl.c:1241,1
    - Dst: OSSL_STORE_open_ex
      Src: /src/curl/lib/vtls/openssl.c:1252,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1257,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1258,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1258,1
    - Dst: OSSL_STORE_expect
      Src: /src/curl/lib/vtls/openssl.c:1262,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1263,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1264,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1264,1
    - Dst: OSSL_STORE_load
      Src: /src/curl/lib/vtls/openssl.c:1268,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/curl/lib/vtls/openssl.c:1270,1
    - Dst: OSSL_STORE_INFO_get1_CERT
      Src: /src/curl/lib/vtls/openssl.c:1273,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/curl/lib/vtls/openssl.c:1274,1
    - Dst: OSSL_STORE_close
      Src: /src/curl/lib/vtls/openssl.c:1276,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1278,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1279,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1279,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/curl/lib/vtls/openssl.c:1284,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:1285,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1288,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1289,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1289,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1295,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - data
    - ctx
    - cert_file
    argTypes:
    - struct Curl_easy*
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1231
    functionDepth: 2
    functionLinenumber: 1231
    functionLinenumberEnd: 1305
    functionName: providerload
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - failf
    - ossl_set_provider
    - is_pkcs11_uri
    - ossl_strerror
    - OSSL_STORE_INFO_free
    - OSSL_STORE_load
    - OSSL_STORE_INFO_get1_CERT
    - X509_free
    - OSSL_STORE_open_ex
    - ERR_get_error
    - SSL_CTX_use_certificate
    - OSSL_STORE_INFO_get_type
    - OSSL_STORE_close
    - OSSL_STORE_expect
    linkageType: ''
    returnType: int
    signature: "int providerload(struct Curl_easy *data,\n                        SSL_CTX*
      ctx,\n                        const char *cert_file)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/curl/lib/vtls/openssl.c:1319,1
    - Dst: BIO_new_mem_buf
      Src: /src/curl/lib/vtls/openssl.c:1321,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1323,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1324,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1324,1
    - Dst: BIO_new
      Src: /src/curl/lib/vtls/openssl.c:1330,1
    - Dst: BIO_s_file
      Src: /src/curl/lib/vtls/openssl.c:1330,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1332,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1333,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1333,1
    - Dst: BIO_read_filename
      Src: /src/curl/lib/vtls/openssl.c:1338,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:1338,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1339,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:1340,1
    - Dst: d2i_PKCS12_bio
      Src: /src/curl/lib/vtls/openssl.c:1345,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:1346,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1349,1
    - Dst: PKCS12_parse
      Src: /src/curl/lib/vtls/openssl.c:1354,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1355,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1357,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1357,1
    - Dst: PKCS12_free
      Src: /src/curl/lib/vtls/openssl.c:1358,1
    - Dst: PKCS12_free
      Src: /src/curl/lib/vtls/openssl.c:1362,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/curl/lib/vtls/openssl.c:1364,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1365,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1367,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1367,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/curl/lib/vtls/openssl.c:1371,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1372,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/curl/lib/vtls/openssl.c:1376,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1377,1
    - Dst: sk_X509_num
      Src: /src/curl/lib/vtls/openssl.c:1383,1
    - Dst: sk_X509_pop
      Src: /src/curl/lib/vtls/openssl.c:1391,1
    - Dst: SSL_CTX_add_client_CA
      Src: /src/curl/lib/vtls/openssl.c:1392,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:1393,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1394,1
    - Dst: SSL_CTX_add_extra_chain_cert
      Src: /src/curl/lib/vtls/openssl.c:1397,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:1398,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1399,1
    - Dst: EVP_PKEY_free
      Src: /src/curl/lib/vtls/openssl.c:1407,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:1408,1
    - Dst: sk_X509_pop_free
      Src: /src/curl/lib/vtls/openssl.c:1413,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 5
    argNames:
    - data
    - ctx
    - cert_blob
    - cert_file
    - key_passwd
    argTypes:
    - struct Curl_easy*
    - SSL_CTX*
    - struct curl_blob*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1307
    functionDepth: 2
    functionLinenumber: 1307
    functionLinenumberEnd: 1420
    functionName: pkcs12load
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - SSL_CTX_add_extra_chain_cert
    - CURL_UNCONST
    - SSL_CTX_use_certificate
    - d2i_PKCS12_bio
    - PKCS12_free
    - SSL_CTX_add_client_CA
    - sk_X509_num
    - PKCS12_parse
    - X509_free
    - sk_X509_pop
    - STACK_OF
    - failf
    - EVP_PKEY_free
    - BIO_new_mem_buf
    - SSL_CTX_check_private_key
    - SSL_CTX_use_PrivateKey
    - BIO_new
    - sk_X509_pop_free
    - BIO_read_filename
    - ossl_strerror
    - ERR_get_error
    - BIO_s_file
    linkageType: ''
    returnType: int
    signature: "int pkcs12load(struct Curl_easy *data,\n                      SSL_CTX*
      ctx,\n                      const struct curl_blob *cert_blob,\n                      const
      char *cert_file,\n                      const char *key_passwd)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: ossl_do_file_type
      Src: /src/curl/lib/vtls/openssl.c:1434,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/curl/lib/vtls/openssl.c:1445,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/curl/lib/vtls/openssl.c:1447,1
    - Dst: use_certificate_chain_blob
      Src: /src/curl/lib/vtls/openssl.c:1454,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/curl/lib/vtls/openssl.c:1455,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1457,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1462,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1462,1
    - Dst: use_certificate_blob
      Src: /src/curl/lib/vtls/openssl.c:1474,1
    - Dst: SSL_CTX_use_certificate_file
      Src: /src/curl/lib/vtls/openssl.c:1475,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1477,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1482,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1482,1
    - Dst: engineload
      Src: /src/curl/lib/vtls/openssl.c:1489,1
    - Dst: providerload
      Src: /src/curl/lib/vtls/openssl.c:1494,1
    - Dst: pkcs12load
      Src: /src/curl/lib/vtls/openssl.c:1499,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1505,1
    - Dst: ossl_do_file_type
      Src: /src/curl/lib/vtls/openssl.c:1514,1
    - Dst: use_privatekey_blob
      Src: /src/curl/lib/vtls/openssl.c:1520,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/curl/lib/vtls/openssl.c:1521,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1523,1
    - Dst: enginecheck
      Src: /src/curl/lib/vtls/openssl.c:1530,1
    - Dst: providercheck
      Src: /src/curl/lib/vtls/openssl.c:1535,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1541,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1546,1
    - Dst: SSL_new
      Src: /src/curl/lib/vtls/openssl.c:1550,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1552,1
    - Dst: SSL_get_certificate
      Src: /src/curl/lib/vtls/openssl.c:1556,1
    - Dst: X509_get_pubkey
      Src: /src/curl/lib/vtls/openssl.c:1559,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/curl/lib/vtls/openssl.c:1560,1
    - Dst: SSL_get_privatekey
      Src: /src/curl/lib/vtls/openssl.c:1560,1
    - Dst: EVP_PKEY_free
      Src: /src/curl/lib/vtls/openssl.c:1561,1
    - Dst: SSL_get_privatekey
      Src: /src/curl/lib/vtls/openssl.c:1568,1
    - Dst: EVP_PKEY_id
      Src: /src/curl/lib/vtls/openssl.c:1569,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/curl/lib/vtls/openssl.c:1570,1
    - Dst: RSA_flags
      Src: /src/curl/lib/vtls/openssl.c:1571,1
    - Dst: RSA_free
      Src: /src/curl/lib/vtls/openssl.c:1573,1
    - Dst: SSL_free
      Src: /src/curl/lib/vtls/openssl.c:1578,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/curl/lib/vtls/openssl.c:1586,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1587,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 95
    argCount: 9
    argNames:
    - data
    - ctx
    - cert_file
    - cert_blob
    - cert_type
    - key_file
    - key_blob
    - key_type
    - key_passwd
    argTypes:
    - struct Curl_easy*
    - SSL_CTX*
    - char*
    - struct curl_blob*
    - char*
    - char*
    - struct curl_blob*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1422
    functionDepth: 4
    functionLinenumber: 1422
    functionLinenumberEnd: 1593
    functionName: client_cert
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_set_default_passwd_cb_userdata
    - SSL_CTX_use_certificate_chain_file
    - engineload
    - ossl_do_file_type
    - SSL_get_privatekey
    - X509_get_pubkey
    - EVP_PKEY_id
    - EVP_PKEY_get1_RSA
    - RSA_free
    - SSL_new
    - SSL_CTX_set_default_passwd_cb
    - failf
    - pkcs12load
    - use_privatekey_blob
    - EVP_PKEY_free
    - SSL_CTX_check_private_key
    - providerload
    - EVP_PKEY_copy_parameters
    - RSA_flags
    - use_certificate_chain_blob
    - use_certificate_blob
    - enginecheck
    - ossl_strerror
    - SSL_free
    - SSL_CTX_use_certificate_file
    - SSL_CTX_use_PrivateKey_file
    - ERR_get_error
    - providercheck
    - SSL_get_certificate
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode client_cert(struct Curl_easy *data,\n                            SSL_CTX*
      ctx,\n                            char *cert_file,\n                            const
      struct curl_blob *cert_blob,\n                            const char *cert_type,\n
      \                           char *key_file,\n                            const
      struct curl_blob *key_blob,\n                            const char *key_type,\n
      \                           char *key_passwd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/curl/lib/vtls/openssl.c:1599,1
    - Dst: BIO_s_mem
      Src: /src/curl/lib/vtls/openssl.c:1599,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vtls/openssl.c:1607,1
    - Dst: X509_NAME_print_ex
      Src: /src/curl/lib/vtls/openssl.c:1608,1
    - Dst: BIO_get_mem_ptr
      Src: /src/curl/lib/vtls/openssl.c:1610,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/openssl.c:1611,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:1613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - d
    argTypes:
    - X509_NAME*
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1616
    functionName: x509_name_oneline
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - BIO_s_mem
    - curlx_dyn_addn
    - X509_NAME_print_ex
    - curlx_dyn_reset
    - BIO_get_mem_ptr
    - BIO_new
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode x509_name_oneline(const X509_NAME *a, struct dynbuf *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_ssl
      Src: /src/curl/lib/vtls/openssl.c:1638,1
    - Dst: Curl_tls_keylog_open
      Src: /src/curl/lib/vtls/openssl.c:1641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1625
    functionDepth: 2
    functionLinenumber: 1625
    functionLinenumberEnd: 1645
    functionName: ossl_init
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_ssl
    - Curl_tls_keylog_open
    linkageType: ''
    returnType: int
    signature: int ossl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_tls_keylog_close
      Src: /src/curl/lib/vtls/openssl.c:1651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1648
    functionDepth: 2
    functionLinenumber: 1648
    functionLinenumberEnd: 1653
    functionName: ossl_cleanup
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_tls_keylog_close
    linkageType: ''
    returnType: void
    signature: void ossl_cleanup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_by_id
      Src: /src/curl/lib/vtls/openssl.c:1661,1
    - Dst: ENGINE_finish
      Src: /src/curl/lib/vtls/openssl.c:1666,1
    - Dst: ENGINE_free
      Src: /src/curl/lib/vtls/openssl.c:1667,1
    - Dst: ENGINE_init
      Src: /src/curl/lib/vtls/openssl.c:1670,1
    - Dst: ENGINE_free
      Src: /src/curl/lib/vtls/openssl.c:1673,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1674,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1675,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1675,1
    - Dst: ossl_set_provider
      Src: /src/curl/lib/vtls/openssl.c:1687,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - data
    - name
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1657
    functionDepth: 2
    functionLinenumber: 1657
    functionLinenumberEnd: 1693
    functionName: ossl_set_engine
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 2
    functionsReached:
    - failf
    - ENGINE_finish
    - ENGINE_free
    - ossl_set_provider
    - ossl_strerror
    - ENGINE_by_id
    - ERR_get_error
    - ENGINE_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ossl_set_engine(struct Curl_easy *data, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_default
      Src: /src/curl/lib/vtls/openssl.c:1701,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:1702,1
    - Dst: ENGINE_get_id
      Src: /src/curl/lib/vtls/openssl.c:1703,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1706,1
    - Dst: ENGINE_get_id
      Src: /src/curl/lib/vtls/openssl.c:1707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1697
    functionDepth: 1
    functionLinenumber: 1697
    functionLinenumberEnd: 1715
    functionName: ossl_set_engine_default
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_id
    - infof
    - failf
    - ENGINE_set_default
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ossl_set_engine_default(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/curl/lib/vtls/openssl.c:1726,1
    - Dst: ENGINE_get_next
      Src: /src/curl/lib/vtls/openssl.c:1726,1
    - Dst: curl_slist_append
      Src: /src/curl/lib/vtls/openssl.c:1727,1
    - Dst: ENGINE_get_id
      Src: /src/curl/lib/vtls/openssl.c:1727,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/vtls/openssl.c:1729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1719
    functionDepth: 3
    functionLinenumber: 1719
    functionLinenumberEnd: 1737
    functionName: ossl_engines_list
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - curl_slist_free_all
    - ENGINE_get_id
    - curl_slist_append
    - ENGINE_get_first
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *ossl_engines_list(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/curl/lib/vtls/openssl.c:1744,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/curl/lib/vtls/openssl.c:1748,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/curl/lib/vtls/openssl.c:1751,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/openssl.c:1753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1741
    functionDepth: 1
    functionLinenumber: 1741
    functionLinenumberEnd: 1755
    functionName: ossl_provider_cleanup
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_unload
    linkageType: ''
    returnType: void
    signature: void ossl_provider_cleanup(struct Curl_easy *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_cleanup
      Src: /src/curl/lib/vtls/openssl.c:1775,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/vtls/openssl.c:1778,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/vtls/openssl.c:1781,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/openssl.c:1786,1
    - Dst: curlx_str
      Src: /src/curl/lib/vtls/openssl.c:1786,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/vtls/openssl.c:1786,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/vtls/openssl.c:1787,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/curl/lib/vtls/openssl.c:1790,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/openssl.c:1794,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/curl/lib/vtls/openssl.c:1796,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/curl/lib/vtls/openssl.c:1806,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:1807,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/curl/lib/vtls/openssl.c:1811,1
    - Dst: OSSL_PROVIDER_try_load
      Src: /src/curl/lib/vtls/openssl.c:1817,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1820,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1821,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1821,1
    - Dst: ossl_provider_cleanup
      Src: /src/curl/lib/vtls/openssl.c:1822,1
    - Dst: OSSL_PROVIDER_try_load
      Src: /src/curl/lib/vtls/openssl.c:1827,1
    - Dst: ossl_provider_cleanup
      Src: /src/curl/lib/vtls/openssl.c:1829,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:1830,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - data
    - iname
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1767
    functionDepth: 2
    functionLinenumber: 1767
    functionLinenumberEnd: 1836
    functionName: ossl_set_provider
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 3
    functionsReached:
    - memcpy
    - curlx_str_single
    - failf
    - curlx_str_until
    - curlx_str
    - ossl_strerror
    - curlx_strdup
    - infof
    - OSSL_PROVIDER_try_load
    - ossl_provider_cleanup
    - curlx_strlen
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_available
    - ERR_get_error
    - OSSL_LIB_CTX_new
    - OSSL_LIB_CTX_load_config
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ossl_set_provider(struct Curl_easy *data, const char *iname)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:1850,1
    - Dst: SSL_get_shutdown
      Src: /src/curl/lib/vtls/openssl.c:1858,1
    - Dst: ERR_clear_error
      Src: /src/curl/lib/vtls/openssl.c:1861,1
    - Dst: SSL_read
      Src: /src/curl/lib/vtls/openssl.c:1863,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1864,1
    - Dst: SSL_get_error
      Src: /src/curl/lib/vtls/openssl.c:1868,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1873,1
    - Dst: struct Curl_cfilter*::next::cft::is_alive
      Src: /src/curl/lib/vtls/openssl.c:1877,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1882,1
    - Dst: SSL_get_shutdown
      Src: /src/curl/lib/vtls/openssl.c:1891,1
    - Dst: ERR_clear_error
      Src: /src/curl/lib/vtls/openssl.c:1893,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1894,1
    - Dst: SSL_shutdown
      Src: /src/curl/lib/vtls/openssl.c:1895,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1897,1
    - Dst: SSL_get_error
      Src: /src/curl/lib/vtls/openssl.c:1901,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1902,1
    - Dst: ERR_clear_error
      Src: /src/curl/lib/vtls/openssl.c:1911,1
    - Dst: SSL_read
      Src: /src/curl/lib/vtls/openssl.c:1912,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1913,1
    - Dst: SSL_get_error
      Src: /src/curl/lib/vtls/openssl.c:1917,1
    - Dst: SSL_shutdown
      Src: /src/curl/lib/vtls/openssl.c:1920,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1921,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1923,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1930,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1934,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:1941,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:1942,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:1944,1
    - Dst: SSL_ERROR_to_str
      Src: /src/curl/lib/vtls/openssl.c:1945,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 89
    argCount: 4
    argNames:
    - cf
    - data
    - send_shutdown
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1839
    functionDepth: 2
    functionLinenumber: 1839
    functionLinenumberEnd: 1958
    functionName: ossl_shutdown
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - struct Curl_cfilter*::next::cft::is_alive
    - SSL_read
    - ossl_strerror
    - ERR_clear_error
    - ERR_get_error
    - SSL_ERROR_to_str
    - SSL_get_error
    - SSL_get_shutdown
    - CURL_TRC_CF
    - SSL_shutdown
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_shutdown(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              bool send_shutdown, bool *done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:1966,1
    - Dst: SSL_free
      Src: /src/curl/lib/vtls/openssl.c:1970,1
    - Dst: SSL_CTX_free
      Src: /src/curl/lib/vtls/openssl.c:1974,1
    - Dst: ossl_bio_cf_method_free
      Src: /src/curl/lib/vtls/openssl.c:1979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1960
    functionDepth: 1
    functionLinenumber: 1960
    functionLinenumberEnd: 1982
    functionName: ossl_close
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    - SSL_free
    - ossl_bio_cf_method_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void ossl_close(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_finish
      Src: /src/curl/lib/vtls/openssl.c:1992,1
    - Dst: ENGINE_free
      Src: /src/curl/lib/vtls/openssl.c:1993,1
    - Dst: ossl_provider_cleanup
      Src: /src/curl/lib/vtls/openssl.c:2000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1988
    functionDepth: 2
    functionLinenumber: 1988
    functionLinenumberEnd: 2002
    functionName: ossl_close_all
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - ossl_provider_cleanup
    - ENGINE_finish
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: void ossl_close_all(struct Curl_easy *data)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/curl/lib/vtls/openssl.c:2036,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/openssl.c:2045,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/vtls/openssl.c:2050,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/vtls/openssl.c:2057,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:2067,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2068,1
    - Dst: X509_get_ext_d2i
      Src: /src/curl/lib/vtls/openssl.c:2073,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/curl/lib/vtls/openssl.c:2086,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/curl/lib/vtls/openssl.c:2091,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/curl/lib/vtls/openssl.c:2101,1
    - Dst: ASN1_STRING_length
      Src: /src/curl/lib/vtls/openssl.c:2102,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/openssl.c:2115,1
    - Dst: Curl_cert_hostcheck
      Src: /src/curl/lib/vtls/openssl.c:2118,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:2121,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/openssl.c:2129,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:2131,1
    - Dst: GENERAL_NAMES_free
      Src: /src/curl/lib/vtls/openssl.c:2138,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:2148,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2150,1
    - Dst: X509_get_subject_name
      Src: /src/curl/lib/vtls/openssl.c:2163,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/curl/lib/vtls/openssl.c:2166,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/curl/lib/vtls/openssl.c:2176,1
    - Dst: X509_NAME_get_entry
      Src: /src/curl/lib/vtls/openssl.c:2176,1
    - Dst: ASN1_STRING_type
      Src: /src/curl/lib/vtls/openssl.c:2183,1
    - Dst: ASN1_STRING_length
      Src: /src/curl/lib/vtls/openssl.c:2184,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:2185,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/curl/lib/vtls/openssl.c:2185,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/curl/lib/vtls/openssl.c:2188,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/openssl.c:2194,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2197,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2207,1
    - Dst: Curl_cert_hostcheck
      Src: /src/curl/lib/vtls/openssl.c:2210,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2212,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:2217,1
    - Dst: OPENSSL_free
      Src: /src/curl/lib/vtls/openssl.c:2220,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 95
    argCount: 4
    argNames:
    - data
    - conn
    - peer
    - server_cert
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - struct ssl_peer*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2028
    functionDepth: 6
    functionLinenumber: 2028
    functionLinenumberEnd: 2224
    functionName: ossl_verifyhost
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - X509_NAME_get_index_by_NID
    - ASN1_STRING_get0_data
    - DEBUGASSERT
    - memcmp
    - Curl_cert_hostcheck
    - CURL_UNCONST
    - X509_get_subject_name
    - ASN1_STRING_type
    - X509_get_ext_d2i
    - GENERAL_NAMES_free
    - ASN1_STRING_length
    - X509_NAME_ENTRY_get_data
    - ASN1_STRING_to_UTF8
    - STACK_OF
    - X509_NAME_get_entry
    - failf
    - sk_GENERAL_NAME_num
    - infof
    - sk_GENERAL_NAME_value
    - curlx_inet_pton
    - strlen
    - OPENSSL_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_verifyhost(struct Curl_easy *data,\n                                struct
      connectdata *conn,\n                                struct ssl_peer *peer,\n
      \                               X509 *server_cert)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/curl/lib/vtls/openssl.c:2242,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:2251,1
    - Dst: SSL_get_tlsext_status_ocsp_resp
      Src: /src/curl/lib/vtls/openssl.c:2253,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2256,1
    - Dst: d2i_OCSP_RESPONSE
      Src: /src/curl/lib/vtls/openssl.c:2261,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2263,1
    - Dst: OCSP_response_status
      Src: /src/curl/lib/vtls/openssl.c:2268,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2270,1
    - Dst: OCSP_response_status_str
      Src: /src/curl/lib/vtls/openssl.c:2271,1
    - Dst: OCSP_response_get1_basic
      Src: /src/curl/lib/vtls/openssl.c:2276,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2278,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/curl/lib/vtls/openssl.c:2283,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2285,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/curl/lib/vtls/openssl.c:2289,1
    - Dst: OCSP_basic_verify
      Src: /src/curl/lib/vtls/openssl.c:2291,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2292,1
    - Dst: SSL_get1_peer_certificate
      Src: /src/curl/lib/vtls/openssl.c:2298,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2300,1
    - Dst: sk_X509_num
      Src: /src/curl/lib/vtls/openssl.c:2305,1
    - Dst: sk_X509_value
      Src: /src/curl/lib/vtls/openssl.c:2306,1
    - Dst: X509_check_issued
      Src: /src/curl/lib/vtls/openssl.c:2307,1
    - Dst: OCSP_cert_to_id
      Src: /src/curl/lib/vtls/openssl.c:2311,1
    - Dst: EVP_sha1
      Src: /src/curl/lib/vtls/openssl.c:2311,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:2315,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2318,1
    - Dst: OCSP_resp_find_status
      Src: /src/curl/lib/vtls/openssl.c:2324,1
    - Dst: OCSP_CERTID_free
      Src: /src/curl/lib/vtls/openssl.c:2326,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2328,1
    - Dst: OCSP_check_validity
      Src: /src/curl/lib/vtls/openssl.c:2341,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2342,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:2347,1
    - Dst: OCSP_cert_status_str
      Src: /src/curl/lib/vtls/openssl.c:2348,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2356,1
    - Dst: OCSP_crl_reason_str
      Src: /src/curl/lib/vtls/openssl.c:2357,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/curl/lib/vtls/openssl.c:2368,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/curl/lib/vtls/openssl.c:2369,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 102
    argCount: 3
    argNames:
    - cf
    - data
    - octx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ossl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2227
    functionDepth: 1
    functionLinenumber: 2227
    functionLinenumberEnd: 2372
    functionName: verifystatus
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - OCSP_check_validity
    - SSL_get1_peer_certificate
    - sk_X509_num
    - X509_free
    - OCSP_CERTID_free
    - STACK_OF
    - OCSP_cert_status_str
    - SSL_CTX_get_cert_store
    - failf
    - OCSP_crl_reason_str
    - OCSP_RESPONSE_free
    - OCSP_cert_to_id
    - OCSP_resp_find_status
    - OCSP_basic_verify
    - OCSP_response_get1_basic
    - d2i_OCSP_RESPONSE
    - OCSP_response_status_str
    - SSL_get_peer_cert_chain
    - X509_check_issued
    - sk_X509_value
    - OCSP_BASICRESP_free
    - infof
    - EVP_sha1
    - SSL_get_tlsext_status_ocsp_resp
    - OCSP_response_status
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode verifystatus(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             struct ossl_ctx *octx)"
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 2
    argNames:
    - ssl_ver
    - msg
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2434
    functionName: ssl_msg_type
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ssl_msg_type(int ssl_ver, int msg)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2436
    functionDepth: 0
    functionLinenumber: 2436
    functionLinenumberEnd: 2454
    functionName: tls_rt_type
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *tls_rt_type(int type)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:2568,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:2582,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/curl/lib/vtls/openssl.c:2626,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/curl/lib/vtls/openssl.c:2627,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - cf
    - ctx
    - ssl_version_min
    argTypes:
    - struct Curl_cfilter*
    - SSL_CTX*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2631
      start: 2564
    functionDepth: 1
    functionLinenumber: 2564
    functionLinenumberEnd: 2631
    functionName: ossl_set_ssl_version_min_max
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_cf_get_primary_config
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_set_max_proto_version
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_set_ssl_version_min_max(struct Curl_cfilter *cf,\n                                             SSL_CTX
      *ctx,\n                                             unsigned int ssl_version_min)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vtls/openssl.c:2659,1
    - Dst: i2d_SSL_SESSION
      Src: /src/curl/lib/vtls/openssl.c:2665,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/openssl.c:2671,1
    - Dst: i2d_SSL_SESSION
      Src: /src/curl/lib/vtls/openssl.c:2677,1
    - Dst: SSL_SESSION_get_max_early_data
      Src: /src/curl/lib/vtls/openssl.c:2684,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vtls/openssl.c:2687,1
    - Dst: Curl_ssl_session_create2
      Src: /src/curl/lib/vtls/openssl.c:2694,1
    - Dst: time
      Src: /src/curl/lib/vtls/openssl.c:2696,1
    - Dst: SSL_SESSION_get_timeout
      Src: /src/curl/lib/vtls/openssl.c:2697,1
    - Dst: Curl_ssl_scache_put
      Src: /src/curl/lib/vtls/openssl.c:2702,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:2708,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 8
    argNames:
    - cf
    - data
    - ssl_peer_key
    - session
    - ietf_tls_id
    - alpn
    - quic_tp
    - quic_tp_len
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - SSL_SESSION*
    - int
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2643
    functionDepth: 10
    functionLinenumber: 2643
    functionLinenumberEnd: 2710
    functionName: Curl_ossl_add_session
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_scache_use
    - Curl_ssl_session_create2
    - SSL_SESSION_get_max_early_data
    - i2d_SSL_SESSION
    - curlx_malloc
    - time
    - Curl_ssl_scache_put
    - curlx_free
    - curlx_memdup0
    - SSL_SESSION_get_timeout
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ossl_add_session(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               const char *ssl_peer_key,\n
      \                              SSL_SESSION *session,\n                               int
      ietf_tls_id,\n                               const char *alpn,\n                               unsigned
      char *quic_tp,\n                               size_t quic_tp_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_app_data
      Src: /src/curl/lib/vtls/openssl.c:2717,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/openssl.c:2719,1
    - Dst: Curl_ossl_add_session
      Src: /src/curl/lib/vtls/openssl.c:2721,1
    - Dst: SSL_version
      Src: /src/curl/lib/vtls/openssl.c:2722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ssl
    - ssl_sessionid
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2715
    functionDepth: 11
    functionLinenumber: 2715
    functionLinenumberEnd: 2725
    functionName: ossl_new_session_cb
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - CF_DATA_CURRENT
    - SSL_version
    - Curl_ossl_add_session
    - SSL_get_app_data
    linkageType: ''
    returnType: int
    signature: int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/curl/lib/vtls/openssl.c:2732,1
    - Dst: BIO_new_mem_buf
      Src: /src/curl/lib/vtls/openssl.c:2741,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/curl/lib/vtls/openssl.c:2745,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:2747,1
    - Dst: sk_X509_INFO_num
      Src: /src/curl/lib/vtls/openssl.c:2752,1
    - Dst: sk_X509_INFO_value
      Src: /src/curl/lib/vtls/openssl.c:2753,1
    - Dst: X509_STORE_add_cert
      Src: /src/curl/lib/vtls/openssl.c:2755,1
    - Dst: X509_STORE_add_crl
      Src: /src/curl/lib/vtls/openssl.c:2765,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/curl/lib/vtls/openssl.c:2780,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:2784,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - store
    - ca_info_blob
    argTypes:
    - X509_STORE*
    - struct curl_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2727
    functionDepth: 0
    functionLinenumber: 2727
    functionLinenumberEnd: 2788
    functionName: load_cacert_from_memory
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - sk_X509_INFO_pop_free
    - BIO_free
    - sk_X509_INFO_num
    - BIO_new_mem_buf
    - X509_STORE_add_cert
    - PEM_X509_INFO_read_bio
    - sk_X509_INFO_value
    - STACK_OF
    - X509_STORE_add_crl
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode load_cacert_from_memory(X509_STORE *store,\n                                        const
      struct curl_blob *ca_info_blob)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CertOpenSystemStoreA
      Src: /src/curl/lib/vtls/openssl.c:2802,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/curl/lib/vtls/openssl.c:2824,1
    - Dst: VERBOSE
      Src: /src/curl/lib/vtls/openssl.c:2828,1
    - Dst: CertGetNameStringA
      Src: /src/curl/lib/vtls/openssl.c:2833,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:2835,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:2837,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/curl/lib/vtls/openssl.c:2844,1
    - Dst: CompareFileTime
      Src: /src/curl/lib/vtls/openssl.c:2845,1
    - Dst: CompareFileTime
      Src: /src/curl/lib/vtls/openssl.c:2846,1
    - Dst: CertGetIntendedKeyUsage
      Src: /src/curl/lib/vtls/openssl.c:2850,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/openssl.c:2856,1
    - Dst: CertGetEnhancedKeyUsage
      Src: /src/curl/lib/vtls/openssl.c:2867,1
    - Dst: curlx_realloc
      Src: /src/curl/lib/vtls/openssl.c:2869,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:2872,1
    - Dst: CertGetEnhancedKeyUsage
      Src: /src/curl/lib/vtls/openssl.c:2881,1
    - Dst: GetLastError
      Src: /src/curl/lib/vtls/openssl.c:2886,1
    - Dst: strcmp
      Src: /src/curl/lib/vtls/openssl.c:2894,1
    - Dst: d2i_X509
      Src: /src/curl/lib/vtls/openssl.c:2911,1
    - Dst: X509_STORE_add_cert
      Src: /src/curl/lib/vtls/openssl.c:2918,1
    - Dst: VERBOSE
      Src: /src/curl/lib/vtls/openssl.c:2919,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:2921,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:2925,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:2928,1
    - Dst: CertFreeCertificateContext
      Src: /src/curl/lib/vtls/openssl.c:2929,1
    - Dst: CertCloseStore
      Src: /src/curl/lib/vtls/openssl.c:2930,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:2932,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 74
    argCount: 5
    argNames:
    - data
    - cf
    - win_store
    - store
    - padded
    argTypes:
    - struct Curl_easy*
    - struct Curl_cfilter*
    - char*
    - X509_STORE*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2791
    functionDepth: 1
    functionLinenumber: 2791
    functionLinenumberEnd: 2941
    functionName: ossl_win_load_store
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - CertEnumCertificatesInStore
    - X509_STORE_add_cert
    - CertGetNameStringA
    - strcmp
    - GetSystemTimeAsFileTime
    - d2i_X509
    - CURL_TRC_CF
    - CertCloseStore
    - X509_free
    - CertOpenSystemStoreA
    - failf
    - VERBOSE
    - curlx_free
    - CertGetEnhancedKeyUsage
    - GetLastError
    - CompareFileTime
    - curlx_realloc
    - CertFreeCertificateContext
    - CertGetIntendedKeyUsage
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_win_load_store(struct Curl_easy *data,\n                                    struct
      Curl_cfilter *cf,\n                                    const char *win_store,\n
      \                                   X509_STORE *store,\n                                    bool
      *padded)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/vtls/openssl.c:2961,1
    - Dst: ossl_win_load_store
      Src: /src/curl/lib/vtls/openssl.c:2963,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:2967,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:2972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - cf
    - data
    - store
    - padded
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - X509_STORE*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2943
    functionDepth: 2
    functionLinenumber: 2943
    functionLinenumberEnd: 2976
    functionName: ossl_windows_load_anchors
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - ossl_win_load_store
    - infof
    - CURL_TRC_CF
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_windows_load_anchors(struct Curl_cfilter *cf,\n                                          struct
      Curl_easy *data,\n                                          X509_STORE *store,\n
      \                                         bool *padded)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:2985,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/openssl.c:2986,1
    - Dst: ossl_windows_load_anchors
      Src: /src/curl/lib/vtls/openssl.c:2998,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3002,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3006,1
    - Dst: load_cacert_from_memory
      Src: /src/curl/lib/vtls/openssl.c:3012,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3014,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3018,1
    - Dst: X509_STORE_load_file
      Src: /src/curl/lib/vtls/openssl.c:3026,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3029,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3033,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3035,1
    - Dst: X509_STORE_load_path
      Src: /src/curl/lib/vtls/openssl.c:3039,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3042,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3046,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3048,1
    - Dst: X509_STORE_load_locations
      Src: /src/curl/lib/vtls/openssl.c:3054,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3057,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3064,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3069,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3071,1
    - Dst: X509_STORE_set_default_paths
      Src: /src/curl/lib/vtls/openssl.c:3080,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3081,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3086,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 4
    argNames:
    - cf
    - data
    - octx
    - store
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ossl_ctx*
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 2980
    functionDepth: 3
    functionLinenumber: 2980
    functionLinenumberEnd: 3089
    functionName: ossl_load_trust_anchors
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - failf
    - ossl_windows_load_anchors
    - X509_STORE_set_default_paths
    - X509_STORE_load_path
    - infof
    - Curl_ssl_cf_get_config
    - X509_STORE_load_file
    - X509_STORE_load_locations
    - Curl_ssl_cf_get_primary_config
    - load_cacert_from_memory
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_load_trust_anchors(struct Curl_cfilter *cf,\n                                        struct
      Curl_easy *data,\n                                        struct ossl_ctx *octx,\n
      \                                       X509_STORE *store)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:3096,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/openssl.c:3097,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:3103,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3108,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3112,1
    - Dst: ossl_load_trust_anchors
      Src: /src/curl/lib/vtls/openssl.c:3113,1
    - Dst: X509_STORE_add_lookup
      Src: /src/curl/lib/vtls/openssl.c:3121,1
    - Dst: X509_LOOKUP_file
      Src: /src/curl/lib/vtls/openssl.c:3121,1
    - Dst: X509_load_crl_file
      Src: /src/curl/lib/vtls/openssl.c:3123,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3124,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3128,1
    - Dst: X509_STORE_set_flags
      Src: /src/curl/lib/vtls/openssl.c:3150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - cf
    - data
    - octx
    - store
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ossl_ctx*
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3153
      start: 3091
    functionDepth: 4
    functionLinenumber: 3091
    functionLinenumberEnd: 3153
    functionName: ossl_populate_x509_store
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_file
    - failf
    - ossl_load_trust_anchors
    - infof
    - Curl_ssl_cf_get_config
    - X509_STORE_add_lookup
    - X509_load_crl_file
    - Curl_ssl_cf_get_primary_config
    - X509_STORE_set_flags
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_populate_x509_store(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data,\n                                         struct ossl_ctx *octx,\n
      \                                        X509_STORE *store)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:3169,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:3170,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/openssl.c:3170,1
    - Dst: X509_STORE_free
      Src: /src/curl/lib/vtls/openssl.c:3174,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:3176,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:3177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - key
    - key_len
    - p
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3178
      start: 3166
    functionDepth: 1
    functionLinenumber: 3166
    functionLinenumberEnd: 3178
    functionName: oss_x509_share_free
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - memcmp
    - X509_STORE_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void oss_x509_share_free(void *key, size_t key_len, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vtls/openssl.c:3187,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/openssl.c:3187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - mb
    argTypes:
    - struct Curl_easy*
    - struct ossl_x509_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3192
      start: 3180
    functionDepth: 2
    functionLinenumber: 3180
    functionLinenumberEnd: 3192
    functionName: ossl_cached_x509_store_expired
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: bool
    signature: "bool ossl_cached_x509_store_expired(struct Curl_easy *data,\n                                           const
      struct ossl_x509_share *mb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:3198,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/openssl.c:3200,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:3200,1
    - Dst: strcmp
      Src: /src/curl/lib/vtls/openssl.c:3205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - cf
    - data
    - mb
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ossl_x509_share*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3206
      start: 3194
    functionDepth: 1
    functionLinenumber: 3194
    functionLinenumberEnd: 3206
    functionName: ossl_cached_x509_store_different
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_cf_get_primary_config
    - strcmp
    - CURL_UNCONST
    - Curl_ssl_cf_get_config
    linkageType: ''
    returnType: bool
    signature: "bool ossl_cached_x509_store_different(struct Curl_cfilter *cf,\n                                             const
      struct Curl_easy *data,\n                                             const
      struct ossl_x509_share *mb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:3216,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/vtls/openssl.c:3218,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:3219,1
    - Dst: ossl_cached_x509_store_expired
      Src: /src/curl/lib/vtls/openssl.c:3222,1
    - Dst: ossl_cached_x509_store_different
      Src: /src/curl/lib/vtls/openssl.c:3223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - cf
    - data
    - pempty
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3229
      start: 3208
    functionDepth: 3
    functionLinenumber: 3208
    functionLinenumberEnd: 3229
    functionName: ossl_get_cached_x509_store
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - ossl_cached_x509_store_different
    - DEBUGASSERT
    - Curl_hash_pick
    - ossl_cached_x509_store_expired
    - CURL_UNCONST
    linkageType: ''
    returnType: X509_STORE
    signature: "X509_STORE *ossl_get_cached_x509_store(struct Curl_cfilter *cf,\n
      \                                             struct Curl_easy *data,\n                                              bool
      *pempty)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:3236,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:3240,1
    - Dst: Curl_hash_pick
      Src: /src/curl/lib/vtls/openssl.c:3243,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:3244,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/openssl.c:3248,1
    - Dst: Curl_hash_add2
      Src: /src/curl/lib/vtls/openssl.c:3251,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:3252,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:3255,1
    - Dst: X509_STORE_up_ref
      Src: /src/curl/lib/vtls/openssl.c:3260,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/openssl.c:3263,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vtls/openssl.c:3263,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vtls/openssl.c:3266,1
    - Dst: X509_STORE_free
      Src: /src/curl/lib/vtls/openssl.c:3268,1
    - Dst: X509_STORE_free
      Src: /src/curl/lib/vtls/openssl.c:3274,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:3275,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/openssl.c:3278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - cf
    - data
    - store
    - is_empty
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - X509_STORE*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3284
      start: 3231
    functionDepth: 3
    functionLinenumber: 3231
    functionLinenumberEnd: 3284
    functionName: ossl_set_cached_x509_store
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_hash_pick
    - curlx_strdup
    - CURL_UNCONST
    - Curl_ssl_cf_get_config
    - curlx_free
    - X509_STORE_up_ref
    - curlx_calloc
    - X509_STORE_free
    - Curl_ssl_cf_get_primary_config
    - Curl_hash_add2
    linkageType: ''
    returnType: void
    signature: "void ossl_set_cached_x509_store(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       X509_STORE *store,\n
      \                                      bool is_empty)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:3290,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/openssl.c:3291,1
    - Dst: ERR_set_mark
      Src: /src/curl/lib/vtls/openssl.c:3306,1
    - Dst: ossl_get_cached_x509_store
      Src: /src/curl/lib/vtls/openssl.c:3308,1
    - Dst: X509_STORE_up_ref
      Src: /src/curl/lib/vtls/openssl.c:3309,1
    - Dst: SSL_CTX_set_cert_store
      Src: /src/curl/lib/vtls/openssl.c:3310,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/curl/lib/vtls/openssl.c:3314,1
    - Dst: ossl_populate_x509_store
      Src: /src/curl/lib/vtls/openssl.c:3316,1
    - Dst: ossl_set_cached_x509_store
      Src: /src/curl/lib/vtls/openssl.c:3318,1
    - Dst: ERR_pop_to_mark
      Src: /src/curl/lib/vtls/openssl.c:3322,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - cf
    - data
    - octx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ossl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3286
    functionDepth: 5
    functionLinenumber: 3286
    functionLinenumberEnd: 3325
    functionName: Curl_ssl_setup_x509_store
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_cert_store
    - SSL_CTX_get_cert_store
    - ossl_get_cached_x509_store
    - ossl_set_cached_x509_store
    - Curl_ssl_cf_get_config
    - ossl_populate_x509_store
    - X509_STORE_up_ref
    - Curl_ssl_cf_get_primary_config
    - ERR_pop_to_mark
    - ERR_set_mark
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_setup_x509_store(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   struct ossl_ctx *octx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/openssl.c:3335,1
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:3336,1
    - Dst: Curl_alpn_copy
      Src: /src/curl/lib/vtls/openssl.c:3340,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vtls/openssl.c:3343,1
    - Dst: Curl_ssl_scache_take
      Src: /src/curl/lib/vtls/openssl.c:3346,1
    - Dst: d2i_SSL_SESSION
      Src: /src/curl/lib/vtls/openssl.c:3354,1
    - Dst: SSL_set_session
      Src: /src/curl/lib/vtls/openssl.c:3357,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3359,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:3361,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:3361,1
    - Dst: SSL_get_verify_result
      Src: /src/curl/lib/vtls/openssl.c:3366,1
    - Dst: SSL_set_session
      Src: /src/curl/lib/vtls/openssl.c:3368,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3369,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3372,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3375,1
    - Dst: SSL_get_verify_result
      Src: /src/curl/lib/vtls/openssl.c:3376,1
    - Dst: SSL_SESSION_get_max_early_data
      Src: /src/curl/lib/vtls/openssl.c:3379,1
    - Dst: SSL_version
      Src: /src/curl/lib/vtls/openssl.c:3381,1
    - Dst: sess_reuse_cb
      Src: /src/curl/lib/vtls/openssl.c:3384,1
    - Dst: SSL_SESSION_free
      Src: /src/curl/lib/vtls/openssl.c:3386,1
    - Dst: Curl_alpn_restrict_to
      Src: /src/curl/lib/vtls/openssl.c:3393,1
    - Dst: SSL_SESSION_free
      Src: /src/curl/lib/vtls/openssl.c:3402,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3405,1
    - Dst: Curl_ssl_scache_return
      Src: /src/curl/lib/vtls/openssl.c:3408,1
    - Dst: memset
      Src: /src/curl/lib/vtls/openssl.c:3413,1
    - Dst: Curl_alpn_to_proto_buf
      Src: /src/curl/lib/vtls/openssl.c:3414,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3416,1
    - Dst: SSL_set_alpn_protos
      Src: /src/curl/lib/vtls/openssl.c:3419,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3420,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 6
    argNames:
    - octx
    - cf
    - data
    - peer
    - alpns_requested
    - sess_reuse_cb
    argTypes:
    - struct ossl_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    - struct alpn_spec*
    - Curl_ossl_init_session_reuse_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3327
    functionDepth: 11
    functionLinenumber: 3327
    functionLinenumberEnd: 3426
    functionName: ossl_init_session_and_alpns
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_scache_take
    - Curl_ssl_scache_return
    - SSL_set_session
    - sess_reuse_cb
    - Curl_ssl_scache_use
    - SSL_set_alpn_protos
    - Curl_alpn_to_proto_buf
    - Curl_ssl_cf_get_primary_config
    - SSL_SESSION_free
    - failf
    - SSL_SESSION_get_max_early_data
    - Curl_ssl_cf_get_config
    - Curl_alpn_restrict_to
    - d2i_SSL_SESSION
    - memset
    - Curl_alpn_copy
    - SSL_version
    - ossl_strerror
    - infof
    - ERR_get_error
    - SSL_get_verify_result
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_init_session_and_alpns(\n  struct ossl_ctx *octx,\n
      \ struct Curl_cfilter *cf,\n  struct Curl_easy *data,\n  struct ssl_peer *peer,\n
      \ const struct alpn_spec *alpns_requested,\n  Curl_ossl_init_session_reuse_cb
      *sess_reuse_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURLECH_ENABLED
      Src: /src/curl/lib/vtls/openssl.c:3431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3429
    functionDepth: 1
    functionLinenumber: 3429
    functionLinenumberEnd: 3437
    functionName: Curl_ossl_need_httpsrr
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - CURLECH_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool Curl_ossl_need_httpsrr(struct Curl_easy *data)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CURLECH_ENABLED
      Src: /src/curl/lib/vtls/openssl.c:3450,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3454,1
    - Dst: SSL_set_enable_ech_grease
      Src: /src/curl/lib/vtls/openssl.c:3456,1
    - Dst: SSL_set_options
      Src: /src/curl/lib/vtls/openssl.c:3458,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3467,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/openssl.c:3470,1
    - Dst: curlx_base64_decode
      Src: /src/curl/lib/vtls/openssl.c:3471,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3473,1
    - Dst: SSL_set1_ech_config_list
      Src: /src/curl/lib/vtls/openssl.c:3477,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3478,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:3480,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:3484,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3489,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/openssl.c:3492,1
    - Dst: SSL_set1_ech_config_list
      Src: /src/curl/lib/vtls/openssl.c:3493,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3494,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3501,1
    - Dst: Curl_conn_dns_get_https
      Src: /src/curl/lib/vtls/openssl.c:3505,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3511,1
    - Dst: SSL_set1_ech_config_list
      Src: /src/curl/lib/vtls/openssl.c:3512,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3513,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3519,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3523,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3531,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3536,1
    - Dst: SSL_ech_set1_server_names
      Src: /src/curl/lib/vtls/openssl.c:3538,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3542,1
    - Dst: SSL_set_min_proto_version
      Src: /src/curl/lib/vtls/openssl.c:3548,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3549,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 4
    argNames:
    - octx
    - cf
    - data
    - peer
    argTypes:
    - struct ossl_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3439
    functionDepth: 1
    functionLinenumber: 3439
    functionLinenumberEnd: 3554
    functionName: ossl_init_ech
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_options
    - infof
    - Curl_conn_dns_get_https
    - SSL_set_enable_ech_grease
    - curlx_free
    - SSL_set_min_proto_version
    - SSL_set1_ech_config_list
    - strlen
    - curlx_base64_decode
    - SSL_ech_set1_server_names
    - CURLECH_ENABLED
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_init_ech(struct ossl_ctx *octx,\n                              struct
      Curl_cfilter *cf,\n                              struct Curl_easy *data,\n                              struct
      ssl_peer *peer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3556
    functionDepth: 0
    functionLinenumber: 3556
    functionLinenumberEnd: 3560
    functionName: Curl_ossl_need_httpsrr
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_ossl_need_httpsrr(struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/curl/lib/vtls/openssl.c:3573,1
    - Dst: SSL_new
      Src: /src/curl/lib/vtls/openssl.c:3574,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3576,1
    - Dst: SSL_set_app_data
      Src: /src/curl/lib/vtls/openssl.c:3580,1
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:3583,1
    - Dst: SSL_set_tlsext_status_type
      Src: /src/curl/lib/vtls/openssl.c:3584,1
    - Dst: SSL_set_connect_state
      Src: /src/curl/lib/vtls/openssl.c:3587,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/curl/lib/vtls/openssl.c:3590,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3591,1
    - Dst: ossl_init_ech
      Src: /src/curl/lib/vtls/openssl.c:3598,1
    - Dst: ossl_init_session_and_alpns
      Src: /src/curl/lib/vtls/openssl.c:3604,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - octx
    - cf
    - data
    - peer
    - alpns_requested
    - ssl_user_data
    - sess_reuse_cb
    argTypes:
    - struct ossl_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    - struct alpn_spec*
    - void*
    - Curl_ossl_init_session_reuse_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3606
      start: 3563
    functionDepth: 12
    functionLinenumber: 3563
    functionLinenumberEnd: 3606
    functionName: ossl_init_ssl
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - SSL_new
    - failf
    - SSL_set_app_data
    - SSL_set_connect_state
    - SSL_set_tlsext_host_name
    - SSL_free
    - ossl_init_session_and_alpns
    - ossl_init_ech
    - Curl_ssl_cf_get_primary_config
    - SSL_set_tlsext_status_type
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_init_ssl(struct ossl_ctx *octx,\n                              struct
      Curl_cfilter *cf,\n                              struct Curl_easy *data,\n                              struct
      ssl_peer *peer,\n                              const struct alpn_spec *alpns_requested,\n
      \                             void *ssl_user_data,\n                              Curl_ossl_init_session_reuse_cb
      *sess_reuse_cb)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:3614,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:3618,1
    - Dst: TLS_client_method
      Src: /src/curl/lib/vtls/openssl.c:3629,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3632,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3635,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3638,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3647,1
    - Dst: TLS_method
      Src: /src/curl/lib/vtls/openssl.c:3651,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:3654,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 5
    argNames:
    - cf
    - data
    - peer
    - pmethod
    - pssl_version_min
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    - SSL_METHOD**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3659
      start: 3608
    functionDepth: 1
    functionLinenumber: 3608
    functionLinenumberEnd: 3659
    functionName: ossl_init_method
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - failf
    - DEBUGASSERT
    - TLS_client_method
    - TLS_method
    - Curl_ssl_cf_get_primary_config
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_init_method(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct ssl_peer *peer,\n
      \                                const SSL_METHOD **pmethod,\n                                 unsigned
      int *pssl_version_min)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3864
    functionDepth: 0
    functionLinenumber: 3864
    functionLinenumberEnd: 3865
    functionName: OSSL_CURVE_CAST
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_CURVE_CAST(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3867
      start: 3866
    functionDepth: 0
    functionLinenumber: 3866
    functionLinenumberEnd: 3867
    functionName: OSSL_CURVE_CAST
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_CURVE_CAST(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3877
      start: 3876
    functionDepth: 0
    functionLinenumber: 3876
    functionLinenumberEnd: 3877
    functionName: OSSL_SIGALG_CAST
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_SIGALG_CAST(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_on_session_reuse
      Src: /src/curl/lib/vtls/openssl.c:3974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - cf
    - data
    - alpns
    - scs
    - do_early_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct alpn_spec*
    - struct Curl_ssl_session*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3976
      start: 3964
    functionDepth: 1
    functionLinenumber: 3964
    functionLinenumberEnd: 3976
    functionName: ossl_on_session_reuse
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_on_session_reuse
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_on_session_reuse(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      struct alpn_spec *alpns,\n
      \                                     struct Curl_ssl_session *scs,\n                                      bool
      *do_early_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vtls/openssl.c:3981,1
    - Dst: SSL_get_peer_signature_type_nid
      Src: /src/curl/lib/vtls/openssl.c:3986,1
    - Dst: SSL_get0_group_name
      Src: /src/curl/lib/vtls/openssl.c:3988,1
    - Dst: OBJ_nid2sn
      Src: /src/curl/lib/vtls/openssl.c:3991,1
    - Dst: SSL_get_negotiated_group
      Src: /src/curl/lib/vtls/openssl.c:3991,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:3996,1
    - Dst: SSL_get_version
      Src: /src/curl/lib/vtls/openssl.c:3997,1
    - Dst: SSL_get_cipher
      Src: /src/curl/lib/vtls/openssl.c:3998,1
    - Dst: OBJ_nid2sn
      Src: /src/curl/lib/vtls/openssl.c:4000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - octx
    argTypes:
    - struct Curl_easy*
    - struct ossl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4006
      start: 3978
    functionDepth: 1
    functionLinenumber: 3978
    functionLinenumberEnd: 4006
    functionName: Curl_ossl_report_handshake
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_peer_signature_type_nid
    - OBJ_nid2sn
    - SSL_get_version
    - SSL_get_cipher
    - SSL_get_negotiated_group
    - Curl_trc_is_verbose
    - infof
    - SSL_get0_group_name
    linkageType: ''
    returnType: void
    signature: void Curl_ossl_report_handshake(struct Curl_easy *data, struct ossl_ctx
      *octx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:4017,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:4018,1
    - Dst: Curl_ossl_version
      Src: /src/curl/lib/vtls/openssl.c:4021,1
    - Dst: Curl_ssl_peer_init
      Src: /src/curl/lib/vtls/openssl.c:4022,1
    - Dst: Curl_ossl_ctx_init
      Src: /src/curl/lib/vtls/openssl.c:4027,1
    - Dst: ossl_bio_cf_method_create
      Src: /src/curl/lib/vtls/openssl.c:4034,1
    - Dst: BIO_new
      Src: /src/curl/lib/vtls/openssl.c:4037,1
    - Dst: BIO_set_data
      Src: /src/curl/lib/vtls/openssl.c:4041,1
    - Dst: BIO_up_ref
      Src: /src/curl/lib/vtls/openssl.c:4048,1
    - Dst: SSL_set0_rbio
      Src: /src/curl/lib/vtls/openssl.c:4049,1
    - Dst: SSL_set0_wbio
      Src: /src/curl/lib/vtls/openssl.c:4050,1
    - Dst: SSL_set_bio
      Src: /src/curl/lib/vtls/openssl.c:4052,1
    - Dst: memset
      Src: /src/curl/lib/vtls/openssl.c:4057,1
    - Dst: Curl_alpn_to_proto_str
      Src: /src/curl/lib/vtls/openssl.c:4058,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4059,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4064
      start: 4008
    functionDepth: 1
    functionLinenumber: 4008
    functionLinenumberEnd: 4064
    functionName: ossl_connect_step1
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_ossl_version
    - Curl_ossl_ctx_init
    - SSL_set0_wbio
    - DEBUGASSERT
    - BIO_up_ref
    - BIO_set_data
    - SSL_set0_rbio
    - SSL_set_bio
    - ossl_bio_cf_method_create
    - Curl_alpn_to_proto_str
    - infof
    - BIO_new
    - memset
    - Curl_ssl_peer_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_connect_step1(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NOVERBOSE
      Src: /src/curl/lib/vtls/openssl.c:4085,1
    - Dst: CURLECH_ENABLED
      Src: /src/curl/lib/vtls/openssl.c:4088,1
    - Dst: SSL_ech_get1_retry_config
      Src: /src/curl/lib/vtls/openssl.c:4091,1
    - Dst: SSL_get0_ech_retry_configs
      Src: /src/curl/lib/vtls/openssl.c:4093,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/vtls/openssl.c:4101,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4103,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:4104,1
    - Dst: SSL_ech_get1_status
      Src: /src/curl/lib/vtls/openssl.c:4106,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4107,1
    - Dst: SSL_ech_accepted
      Src: /src/curl/lib/vtls/openssl.c:4110,1
    - Dst: SSL_get_servername_type
      Src: /src/curl/lib/vtls/openssl.c:4111,1
    - Dst: SSL_get_servername
      Src: /src/curl/lib/vtls/openssl.c:4112,1
    - Dst: SSL_get0_ech_name_override
      Src: /src/curl/lib/vtls/openssl.c:4113,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4114,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4120,1
    - Dst: OPENSSL_free
      Src: /src/curl/lib/vtls/openssl.c:4122,1
    - Dst: OPENSSL_free
      Src: /src/curl/lib/vtls/openssl.c:4123,1
    - Dst: OPENSSL_free
      Src: /src/curl/lib/vtls/openssl.c:4124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - data
    - ssl
    - reason
    argTypes:
    - struct Curl_easy*
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4127
      start: 4068
    functionDepth: 1
    functionLinenumber: 4068
    functionLinenumberEnd: 4127
    functionName: ossl_trace_ech_retry_configs
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - SSL_get0_ech_name_override
    - SSL_ech_accepted
    - curlx_base64_encode
    - SSL_get0_ech_retry_configs
    - SSL_ech_get1_status
    - infof
    - SSL_get_servername_type
    - curlx_free
    - SSL_ech_get1_retry_config
    - NOVERBOSE
    - OPENSSL_free
    - SSL_get_servername
    - CURLECH_ENABLED
    linkageType: ''
    returnType: int
    signature: "int ossl_trace_ech_retry_configs(struct Curl_easy *data, SSL *ssl,\n
      \                                       int reason)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/openssl.c:4137,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:4138,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:4139,1
    - Dst: ERR_clear_error
      Src: /src/curl/lib/vtls/openssl.c:4142,1
    - Dst: SSL_connect
      Src: /src/curl/lib/vtls/openssl.c:4144,1
    - Dst: Curl_ssl_setup_x509_store
      Src: /src/curl/lib/vtls/openssl.c:4149,1
    - Dst: Curl_tls_keylog_enabled
      Src: /src/curl/lib/vtls/openssl.c:4159,1
    - Dst: ossl_log_tls12_secret
      Src: /src/curl/lib/vtls/openssl.c:4160,1
    - Dst: SSL_get_error
      Src: /src/curl/lib/vtls/openssl.c:4167,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:4168,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:4171,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:4176,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:4182,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:4189,1
    - Dst: Curl_xfer_pause_recv
      Src: /src/curl/lib/vtls/openssl.c:4190,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:4208,1
    - Dst: ERR_GET_LIB
      Src: /src/curl/lib/vtls/openssl.c:4211,1
    - Dst: ERR_GET_REASON
      Src: /src/curl/lib/vtls/openssl.c:4212,1
    - Dst: SSL_get_verify_result
      Src: /src/curl/lib/vtls/openssl.c:4223,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4226,1
    - Dst: X509_verify_cert_error_string
      Src: /src/curl/lib/vtls/openssl.c:4227,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4230,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4240,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:4241,1
    - Dst: HAVE_BORINGSSL_LIKE
      Src: /src/curl/lib/vtls/openssl.c:4246,1
    - Dst: ossl_trace_ech_retry_configs
      Src: /src/curl/lib/vtls/openssl.c:4253,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4256,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:4257,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4262,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:4263,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vtls/openssl.c:4277,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4278,1
    - Dst: SSL_ERROR_to_str
      Src: /src/curl/lib/vtls/openssl.c:4279,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4285
      start: 4131
    functionDepth: 6
    functionLinenumber: 4131
    functionLinenumberEnd: 4285
    functionName: ossl_connect_step2
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - ossl_trace_ech_retry_configs
    - DEBUGASSERT
    - ERR_clear_error
    - HAVE_BORINGSSL_LIKE
    - Curl_xfer_pause_recv
    - CURL_TRC_CF
    - Curl_ssl_setup_x509_store
    - ossl_log_tls12_secret
    - curlx_strerror
    - Curl_tls_keylog_enabled
    - failf
    - Curl_ssl_cf_get_config
    - SSL_connect
    - ERR_GET_LIB
    - X509_verify_cert_error_string
    - ERR_GET_REASON
    - ossl_strerror
    - ERR_get_error
    - SSL_ERROR_to_str
    - SSL_get_error
    - SSL_get_verify_result
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_connect_step2(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_PUBKEY
      Src: /src/curl/lib/vtls/openssl.c:4399,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/curl/lib/vtls/openssl.c:4399,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/openssl.c:4403,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/curl/lib/vtls/openssl.c:4408,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/curl/lib/vtls/openssl.c:4408,1
    - Dst: Curl_pin_peer_pubkey
      Src: /src/curl/lib/vtls/openssl.c:4421,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/openssl.c:4425,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 3
    argNames:
    - data
    - cert
    - pinnedpubkey
    argTypes:
    - struct Curl_easy*
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4428
      start: 4379
    functionDepth: 1
    functionLinenumber: 4379
    functionLinenumberEnd: 4428
    functionName: ossl_pkp_pin_peer_pubkey
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - i2d_X509_PUBKEY
    - Curl_pin_peer_pubkey
    - curlx_malloc
    - curlx_free
    - X509_get_X509_PUBKEY
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_pkp_pin_peer_pubkey(struct Curl_easy *data, X509 *cert,\n
      \                                        const char *pinnedpubkey)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/curl/lib/vtls/openssl.c:4435,1
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vtls/openssl.c:4440,1
    - Dst: SSL_get_verify_result
      Src: /src/curl/lib/vtls/openssl.c:4443,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/curl/lib/vtls/openssl.c:4445,1
    - Dst: SSL_get0_verified_chain
      Src: /src/curl/lib/vtls/openssl.c:4447,1
    - Dst: sk_X509_num
      Src: /src/curl/lib/vtls/openssl.c:4450,1
    - Dst: sk_X509_value
      Src: /src/curl/lib/vtls/openssl.c:4464,1
    - Dst: X509_get0_pubkey
      Src: /src/curl/lib/vtls/openssl.c:4468,1
    - Dst: X509_get0_signature
      Src: /src/curl/lib/vtls/openssl.c:4472,1
    - Dst: X509_ALGOR_get0
      Src: /src/curl/lib/vtls/openssl.c:4473,1
    - Dst: OBJ_obj2txt
      Src: /src/curl/lib/vtls/openssl.c:4474,1
    - Dst: EVP_PKEY_bits
      Src: /src/curl/lib/vtls/openssl.c:4476,1
    - Dst: EVP_PKEY_get_security_bits
      Src: /src/curl/lib/vtls/openssl.c:4480,1
    - Dst: EVP_PKEY_get_group_name
      Src: /src/curl/lib/vtls/openssl.c:4484,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:4486,1
    - Dst: EVP_PKEY_get0_type_name
      Src: /src/curl/lib/vtls/openssl.c:4489,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4495,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - data
    - ssl
    argTypes:
    - struct Curl_easy*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4501
      start: 4433
    functionDepth: 7
    functionLinenumber: 4433
    functionLinenumberEnd: 4501
    functionName: infof_certstack
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - OBJ_obj2txt
    - EVP_PKEY_get_group_name
    - sk_X509_value
    - sk_X509_num
    - Curl_trc_is_verbose
    - X509_get0_signature
    - X509_ALGOR_get0
    - infof
    - EVP_PKEY_get_security_bits
    - SSL_get_verify_result
    - SSL_get0_verified_chain
    - STACK_OF
    - EVP_PKEY_get0_type_name
    - EVP_PKEY_bits
    - X509_get0_pubkey
    - SSL_get_peer_cert_chain
    linkageType: ''
    returnType: void
    signature: void infof_certstack(struct Curl_easy *data, const SSL *ssl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:4511,1
    - Dst: BIO_new_mem_buf
      Src: /src/curl/lib/vtls/openssl.c:4520,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4523,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:4524,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:4524,1
    - Dst: BIO_new
      Src: /src/curl/lib/vtls/openssl.c:4530,1
    - Dst: BIO_s_file
      Src: /src/curl/lib/vtls/openssl.c:4530,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4532,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:4533,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:4533,1
    - Dst: BIO_read_filename
      Src: /src/curl/lib/vtls/openssl.c:4538,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4540,1
    - Dst: PEM_read_bio_X509
      Src: /src/curl/lib/vtls/openssl.c:4548,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4551,1
    - Dst: X509_check_issued
      Src: /src/curl/lib/vtls/openssl.c:4557,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4559,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4565,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:4571,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:4573,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 3
    argNames:
    - cf
    - data
    - server_cert
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4575
      start: 4507
    functionDepth: 2
    functionLinenumber: 4507
    functionLinenumberEnd: 4575
    functionName: ossl_check_issuer
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_read_filename
    - BIO_free
    - X509_check_issued
    - failf
    - BIO_new_mem_buf
    - ossl_strerror
    - infof
    - X509_free
    - ERR_get_error
    - BIO_new
    - Curl_ssl_cf_get_primary_config
    - PEM_read_bio_X509
    - BIO_s_file
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_check_issuer(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  X509 *server_cert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/openssl.c:4586,1
    - Dst: ossl_pkp_pin_peer_pubkey
      Src: /src/curl/lib/vtls/openssl.c:4593,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cf
    - data
    - server_cert
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4577
    functionDepth: 2
    functionLinenumber: 4577
    functionLinenumberEnd: 4598
    functionName: ossl_check_pinned_key
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_cf_is_proxy
    - failf
    - ossl_pkp_pin_peer_pubkey
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_check_pinned_key(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      X509 *server_cert)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vtls/openssl.c:4613,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/openssl.c:4616,1
    - Dst: BIO_new
      Src: /src/curl/lib/vtls/openssl.c:4617,1
    - Dst: BIO_s_mem
      Src: /src/curl/lib/vtls/openssl.c:4617,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4619,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:4620,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:4620,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4625,1
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/openssl.c:4625,1
    - Dst: x509_name_oneline
      Src: /src/curl/lib/vtls/openssl.c:4628,1
    - Dst: X509_get_subject_name
      Src: /src/curl/lib/vtls/openssl.c:4628,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4629,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/openssl.c:4629,1
    - Dst: ASN1_TIME_print
      Src: /src/curl/lib/vtls/openssl.c:4631,1
    - Dst: X509_get0_notBefore
      Src: /src/curl/lib/vtls/openssl.c:4631,1
    - Dst: BIO_get_mem_data
      Src: /src/curl/lib/vtls/openssl.c:4632,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4633,1
    - Dst: BIO_reset
      Src: /src/curl/lib/vtls/openssl.c:4634,1
    - Dst: ASN1_TIME_print
      Src: /src/curl/lib/vtls/openssl.c:4636,1
    - Dst: X509_get0_notAfter
      Src: /src/curl/lib/vtls/openssl.c:4636,1
    - Dst: BIO_get_mem_data
      Src: /src/curl/lib/vtls/openssl.c:4637,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4638,1
    - Dst: BIO_reset
      Src: /src/curl/lib/vtls/openssl.c:4639,1
    - Dst: x509_name_oneline
      Src: /src/curl/lib/vtls/openssl.c:4641,1
    - Dst: X509_get_issuer_name
      Src: /src/curl/lib/vtls/openssl.c:4641,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4644,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/openssl.c:4644,1
    - Dst: BIO_free
      Src: /src/curl/lib/vtls/openssl.c:4647,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/openssl.c:4648,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - cf
    - data
    - server_cert
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4650
      start: 4602
    functionDepth: 2
    functionLinenumber: 4602
    functionLinenumberEnd: 4650
    functionName: ossl_infof_cert
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - BIO_free
    - curlx_dyn_ptr
    - X509_get_subject_name
    - BIO_get_mem_data
    - BIO_reset
    - Curl_ssl_cf_is_proxy
    - curlx_dyn_free
    - ASN1_TIME_print
    - failf
    - Curl_trc_is_verbose
    - BIO_new
    - X509_get0_notBefore
    - X509_get_issuer_name
    - BIO_s_mem
    - ossl_strerror
    - X509_get0_notAfter
    - infof
    - ERR_get_error
    - x509_name_oneline
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_infof_cert(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                X509 *server_cert)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/curl/lib/vtls/openssl.c:4677,1
    - Dst: i2d_X509
      Src: /src/curl/lib/vtls/openssl.c:4680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - cf
    - data
    - user_data
    - i
    - pder
    - pder_len
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4685
      start: 4659
    functionDepth: 0
    functionLinenumber: 4659
    functionLinenumberEnd: 4685
    functionName: ossl_chain_get_der
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - i2d_X509
    - sk_X509_value
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_chain_get_der(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   void *user_data,\n                                   size_t
      i,\n                                   unsigned char **pder,\n                                   size_t
      *pder_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/openssl.c:4693,1
    - Dst: memset
      Src: /src/curl/lib/vtls/openssl.c:4697,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/curl/lib/vtls/openssl.c:4698,1
    - Dst: sk_X509_num
      Src: /src/curl/lib/vtls/openssl.c:4699,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4704,1
    - Dst: SSL_get_tlsext_status_ocsp_resp
      Src: /src/curl/lib/vtls/openssl.c:4722,1
    - Dst: Curl_vtls_apple_verify
      Src: /src/curl/lib/vtls/openssl.c:4730,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4737,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - cf
    - data
    - octx
    - peer
    - pverified
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ossl_ctx*
    - struct ssl_peer*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4743
      start: 4687
    functionDepth: 0
    functionLinenumber: 4687
    functionLinenumberEnd: 4743
    functionName: ossl_apple_verify
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_vtls_apple_verify
    - failf
    - sk_X509_num
    - SSL_get_tlsext_status_ocsp_resp
    - memset
    - Curl_ssl_cf_get_primary_config
    - SSL_get_peer_cert_chain
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_apple_verify(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  struct ossl_ctx *octx,\n
      \                                 struct ssl_peer *peer,\n                                  bool
      *pverified)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:4865,1
    - Dst: Curl_ossl_check_peer_cert
      Src: /src/curl/lib/vtls/openssl.c:4874,1
    - Dst: Curl_ssl_scache_remove_all
      Src: /src/curl/lib/vtls/openssl.c:4877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4880
      start: 4858
    functionDepth: 6
    functionLinenumber: 4858
    functionLinenumberEnd: 4880
    functionName: ossl_connect_step3
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - Curl_ossl_check_peer_cert
    - DEBUGASSERT
    - Curl_ssl_scache_remove_all
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_connect_step3(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:4893,1
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/vtls/openssl.c:4895,1
    - Dst: SSL_write_early_data
      Src: /src/curl/lib/vtls/openssl.c:4897,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:4898,1
    - Dst: SSL_get_error
      Src: /src/curl/lib/vtls/openssl.c:4903,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:4921,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:4923,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vtls/openssl.c:4925,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:4927,1
    - Dst: SSL_ERROR_to_str
      Src: /src/curl/lib/vtls/openssl.c:4928,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4930,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:4938,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4939,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:4940,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:4946,1
    - Dst: SSL_ERROR_to_str
      Src: /src/curl/lib/vtls/openssl.c:4947,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vtls/openssl.c:4952,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:4955,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4958
      start: 4883
    functionDepth: 7
    functionLinenumber: 4883
    functionLinenumberEnd: 4958
    functionName: ossl_send_earlydata
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - DEBUGASSERT
    - failf
    - ossl_strerror
    - curlx_strerror
    - infof
    - SSL_write_early_data
    - ERR_get_error
    - SSL_ERROR_to_str
    - Curl_bufq_skip
    - Curl_bufq_peek
    - SSL_get_error
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_send_earlydata(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ossl_need_httpsrr
      Src: /src/curl/lib/vtls/openssl.c:4978,1
    - Dst: Curl_conn_dns_resolved_https
      Src: /src/curl/lib/vtls/openssl.c:4979,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:4980,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:4983,1
    - Dst: ossl_connect_step1
      Src: /src/curl/lib/vtls/openssl.c:4984,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:4990,1
    - Dst: ossl_send_earlydata
      Src: /src/curl/lib/vtls/openssl.c:4996,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:5002,1
    - Dst: ossl_connect_step2
      Src: /src/curl/lib/vtls/openssl.c:5005,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:5011,1
    - Dst: ossl_connect_step3
      Src: /src/curl/lib/vtls/openssl.c:5012,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:5020,1
    - Dst: SSL_get_early_data_status
      Src: /src/curl/lib/vtls/openssl.c:5022,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:5029,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5041
      start: 4961
    functionDepth: 8
    functionLinenumber: 4961
    functionLinenumberEnd: 5041
    functionName: ossl_connect
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - ossl_send_earlydata
    - ossl_connect_step1
    - ossl_connect_step2
    - DEBUGASSERT
    - Curl_conn_dns_resolved_https
    - SSL_get_early_data_status
    - Curl_ossl_need_httpsrr
    - ossl_connect_step3
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_connect(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5049
      start: 5043
    functionDepth: 0
    functionLinenumber: 5043
    functionLinenumberEnd: 5049
    functionName: ossl_data_pending
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool ossl_data_pending(struct Curl_cfilter *cf,\n                              const
      struct Curl_easy *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:5068,1
    - Dst: ERR_clear_error
      Src: /src/curl/lib/vtls/openssl.c:5070,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:5079,1
    - Dst: SSL_write
      Src: /src/curl/lib/vtls/openssl.c:5085,1
    - Dst: SSL_get_error
      Src: /src/curl/lib/vtls/openssl.c:5090,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:5110,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:5112,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vtls/openssl.c:5114,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:5116,1
    - Dst: SSL_ERROR_to_str
      Src: /src/curl/lib/vtls/openssl.c:5117,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5119,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:5127,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5128,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:5129,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5135,1
    - Dst: SSL_ERROR_to_str
      Src: /src/curl/lib/vtls/openssl.c:5136,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 5
    argNames:
    - cf
    - data
    - mem
    - len
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5144
      start: 5051
    functionDepth: 7
    functionLinenumber: 5051
    functionLinenumberEnd: 5144
    functionName: ossl_send
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - SSL_write
    - DEBUGASSERT
    - failf
    - ossl_strerror
    - curlx_strerror
    - ERR_clear_error
    - ERR_get_error
    - SSL_ERROR_to_str
    - SSL_get_error
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_send(struct Curl_cfilter *cf,\n                          struct
      Curl_easy *data,\n                          const void *mem,\n                          size_t
      len,\n                          size_t *pnwritten)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:5160,1
    - Dst: ERR_clear_error
      Src: /src/curl/lib/vtls/openssl.c:5163,1
    - Dst: SSL_read
      Src: /src/curl/lib/vtls/openssl.c:5167,1
    - Dst: SSL_get_error
      Src: /src/curl/lib/vtls/openssl.c:5173,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:5183,1
    - Dst: ERR_get_error
      Src: /src/curl/lib/vtls/openssl.c:5201,1
    - Dst: ossl_strerror
      Src: /src/curl/lib/vtls/openssl.c:5207,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vtls/openssl.c:5209,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:5211,1
    - Dst: SSL_ERROR_to_str
      Src: /src/curl/lib/vtls/openssl.c:5212,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5213,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5224,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vtls/openssl.c:5232,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:5234,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5237,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/openssl.c:5256,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - buffersize
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5259
      start: 5146
    functionDepth: 7
    functionLinenumber: 5146
    functionLinenumberEnd: 5259
    functionName: ossl_recv
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - DEBUGASSERT
    - failf
    - SSL_read
    - ossl_strerror
    - curlx_strerror
    - ERR_clear_error
    - ERR_get_error
    - SSL_ERROR_to_str
    - SSL_get_error
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_recv(struct Curl_cfilter *cf,\n                          struct
      Curl_easy *data,   /* transfer */\n                          char *buf,                /*
      store read data here */\n                          size_t buffersize,        /*
      max amount to read */\n                          size_t *pnread)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/vtls/openssl.c:5283,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5292,1
    - Dst: SSL_get1_peer_certificate
      Src: /src/curl/lib/vtls/openssl.c:5296,1
    - Dst: X509_get0_pubkey
      Src: /src/curl/lib/vtls/openssl.c:5305,1
    - Dst: X509_get_signature_info
      Src: /src/curl/lib/vtls/openssl.c:5307,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5308,1
    - Dst: EVP_sha256
      Src: /src/curl/lib/vtls/openssl.c:5315,1
    - Dst: EVP_get_digestbynid
      Src: /src/curl/lib/vtls/openssl.c:5318,1
    - Dst: EVP_PKEY_is_a
      Src: /src/curl/lib/vtls/openssl.c:5320,1
    - Dst: OBJ_nid2sn
      Src: /src/curl/lib/vtls/openssl.c:5320,1
    - Dst: EVP_PKEY_get_default_digest_name
      Src: /src/curl/lib/vtls/openssl.c:5332,1
    - Dst: strcmp
      Src: /src/curl/lib/vtls/openssl.c:5333,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:5341,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/curl/lib/vtls/openssl.c:5349,1
    - Dst: X509_get_signature_nid
      Src: /src/curl/lib/vtls/openssl.c:5349,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5350,1
    - Dst: EVP_sha256
      Src: /src/curl/lib/vtls/openssl.c:5358,1
    - Dst: EVP_get_digestbynid
      Src: /src/curl/lib/vtls/openssl.c:5361,1
    - Dst: OBJ_nid2sn
      Src: /src/curl/lib/vtls/openssl.c:5363,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5364,1
    - Dst: infof
      Src: /src/curl/lib/vtls/openssl.c:5375,1
    - Dst: OBJ_nid2sn
      Src: /src/curl/lib/vtls/openssl.c:5381,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5382,1
    - Dst: X509_digest
      Src: /src/curl/lib/vtls/openssl.c:5388,1
    - Dst: failf
      Src: /src/curl/lib/vtls/openssl.c:5389,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/openssl.c:5395,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/openssl.c:5400,1
    - Dst: X509_free
      Src: /src/curl/lib/vtls/openssl.c:5403,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 3
    argNames:
    - data
    - sockindex
    - binding
    argTypes:
    - struct Curl_easy*
    - int
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5405
      start: 5261
    functionDepth: 1
    functionLinenumber: 5261
    functionLinenumberEnd: 5405
    functionName: ossl_get_channel_binding
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    - EVP_PKEY_is_a
    - OBJ_nid2sn
    - failf
    - curlx_dyn_addn
    - SSL_get1_peer_certificate
    - OBJ_find_sigid_algs
    - X509_get_signature_info
    - EVP_PKEY_get_default_digest_name
    - infof
    - strcmp
    - X509_get_signature_nid
    - X509_free
    - X509_digest
    - EVP_get_digestbynid
    - X509_get0_pubkey
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_get_channel_binding(struct Curl_easy *data,\n                                         int
      sockindex,\n                                         struct dynbuf *binding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_version
      Src: /src/curl/lib/vtls/openssl.c:5412,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/vtls/openssl.c:5414,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:5417,1
    - Dst: ISBLANK
      Src: /src/curl/lib/vtls/openssl.c:5419,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:5424,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:5428,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:5431,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/openssl.c:5434,1
    - Dst: OpenSSL_version
      Src: /src/curl/lib/vtls/openssl.c:5435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5437
      start: 5407
    functionDepth: 7
    functionLinenumber: 5407
    functionLinenumberEnd: 5437
    functionName: Curl_ossl_version
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 2
    functionsReached:
    - OpenSSL_version
    - curl_msnprintf
    - ISBLANK
    - curl_strnequal
    linkageType: ''
    returnType: size_t
    signature: size_t Curl_ossl_version(char *buffer, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_seed
      Src: /src/curl/lib/vtls/openssl.c:5445,1
    - Dst: rand_enough
      Src: /src/curl/lib/vtls/openssl.c:5449,1
    - Dst: RAND_bytes
      Src: /src/curl/lib/vtls/openssl.c:5453,1
    - Dst: curlx_uztosi
      Src: /src/curl/lib/vtls/openssl.c:5453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - data
    - entropy
    - length
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5455
      start: 5440
    functionDepth: 2
    functionLinenumber: 5440
    functionLinenumberEnd: 5455
    functionName: ossl_random
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - curlx_uztosi
    - RAND_bytes
    - rand_enough
    - ossl_seed
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_random(struct Curl_easy *data,\n                            unsigned
      char *entropy, size_t length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_create
      Src: /src/curl/lib/vtls/openssl.c:5466,1
    - Dst: EVP_DigestInit
      Src: /src/curl/lib/vtls/openssl.c:5469,1
    - Dst: EVP_sha256
      Src: /src/curl/lib/vtls/openssl.c:5469,1
    - Dst: EVP_DigestUpdate
      Src: /src/curl/lib/vtls/openssl.c:5473,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/curl/lib/vtls/openssl.c:5474,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/curl/lib/vtls/openssl.c:5477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - input
    - len
    - sha256sum
    - unused
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5479
      start: 5457
    functionDepth: 0
    functionLinenumber: 5457
    functionLinenumberEnd: 5479
    functionName: ossl_sha256sum
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    - EVP_DigestInit
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_create
    - EVP_MD_CTX_destroy
    - EVP_DigestUpdate
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ossl_sha256sum(const unsigned char *input,\n                               size_t
      len,\n                               unsigned char *sha256sum /* output */,\n
      \                              size_t unused)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5488
      start: 5481
    functionDepth: 0
    functionLinenumber: 5481
    functionLinenumberEnd: 5488
    functionName: ossl_cert_status_request
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ossl_cert_status_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/openssl.c:5495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - connssl
    - info
    argTypes:
    - struct ssl_connect_data*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5498
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5498
    functionName: ossl_get_internals
    functionSourceFile: /src/curl/lib/vtls/openssl.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void *ossl_get_internals(struct ssl_connect_data *connssl,\n                                CURLINFO
      info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - wanted
    - preferred
    - only_http_10
    - use_alpn
    argTypes:
    - http_majors
    - http_majors
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 125
    functionName: alpn_get_spec
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct alpn_spec
    signature: "struct alpn_spec *alpn_get_spec(http_majors wanted,\n                                             http_majors
      preferred,\n                                             bool only_http_10,\n
      \                                            bool use_alpn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: Curl_ssl_backend
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - multissl_setup
    linkageType: ''
    returnType: curl_sslbackend
    signature: curl_sslbackend Curl_ssl_backend(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/curl/lib/vtls/vtls.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: Curl_ssl_init
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - init
    linkageType: ''
    returnType: int
    signature: int Curl_ssl_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls.c:171,1
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 188
    functionName: ssl_prefs_check
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - failf
    linkageType: ''
    returnType: bool
    signature: bool ssl_prefs_check(struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/vtls.c:196,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/vtls/vtls.c:202,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/vtls.c:203,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - data
    - alpn
    argTypes:
    - struct Curl_easy*
    - struct alpn_spec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 209
    functionName: cf_ctx_new
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_calloc
    - Curl_bufq_init2
    linkageType: ''
    returnType: struct ssl_connect_data
    signature: "struct ssl_connect_data *cf_ctx_new(struct Curl_easy *data,\n                                           const
      struct alpn_spec *alpn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls.c:214,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/vtls/vtls.c:215,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls.c:216,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_connect_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: cf_ctx_free
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void cf_ctx_free(struct ssl_connect_data *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_channel_binding
      Src: /src/curl/lib/vtls/vtls.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - data
    - sockindex
    - binding
    argTypes:
    - struct Curl_easy*
    - int
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: Curl_ssl_get_channel_binding
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - get_channel_binding
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_get_channel_binding(struct Curl_easy *data, int
      sockindex,\n                                      struct dynbuf *binding)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_all
      Src: /src/curl/lib/vtls/vtls.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: Curl_ssl_close_all
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - close_all
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_close_all(struct Curl_easy *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/vtls/vtls.c:242,1
    - Dst: Curl_pollset_set_out_only
      Src: /src/curl/lib/vtls/vtls.c:246,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:247,1
    - Dst: Curl_pollset_set_in_only
      Src: /src/curl/lib/vtls/vtls.c:251,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: Curl_ssl_adjust_pollset
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_set_out_only
    - Curl_pollset_set_in_only
    - CURL_TRC_CF
    - Curl_conn_cf_get_socket
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_adjust_pollset(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct easy_pollset *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_engine
      Src: /src/curl/lib/vtls/vtls.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - engine
    argTypes:
    - struct Curl_easy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: Curl_ssl_set_engine
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 2
    functionsReached:
    - set_engine
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_ssl_set_engine(struct Curl_easy *data, const char *engine)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_engine_default
      Src: /src/curl/lib/vtls/vtls.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: Curl_ssl_set_engine_default
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - set_engine_default
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_ssl_set_engine_default(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engines_list
      Src: /src/curl/lib/vtls/vtls.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: Curl_ssl_engines_list
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - engines_list
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *Curl_ssl_engines_list(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: multissl_version
      Src: /src/curl/lib/vtls/vtls.c:292,1
    - Dst: version
      Src: /src/curl/lib/vtls/vtls.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: Curl_ssl_version
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 2
    functionsReached:
    - version
    - multissl_version
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_version(char *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/vtls/vtls.c:306,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 313
    functionName: Curl_ssl_free_certinfo
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 3
    functionsReached:
    - curlx_safefree
    - curl_slist_free_all
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_free_certinfo(struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_free_certinfo
      Src: /src/curl/lib/vtls/vtls.c:321,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/vtls.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - num
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 332
    functionName: Curl_ssl_init_certinfo
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 5
    functionsReached:
    - curlx_calloc
    - Curl_ssl_free_certinfo
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_ssl_init_certinfo(struct Curl_easy *data, int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:348,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/vtls.c:350,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vtls/vtls.c:352,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls.c:353,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls.c:354,1
    - Dst: Curl_slist_append_nodup
      Src: /src/curl/lib/vtls/vtls.c:357,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/vtls.c:357,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/vtls.c:359,1
    - Dst: curl_slist_free_all
      Src: /src/curl/lib/vtls/vtls.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - data
    - certnum
    - label
    - value
    - valuelen
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 366
    functionName: Curl_ssl_push_certinfo_len
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 4
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - DEBUGASSERT
    - curlx_dyn_add
    - Curl_slist_append_nodup
    - curlx_dyn_free
    - curl_slist_free_all
    - curlx_dyn_ptr
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_push_certinfo_len(struct Curl_easy *data,\n                                    int
      certnum,\n                                    const char *label,\n                                    const
      char *value,\n                                    size_t valuelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:372,1
    - Dst: random
      Src: /src/curl/lib/vtls/vtls.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - buffer
    - length
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: Curl_ssl_random
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - random
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_random(struct Curl_easy *data,\n                         unsigned
      char *buffer, size_t length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/vtls.c:395,1
    - Dst: strstr
      Src: /src/curl/lib/vtls/vtls.c:397,1
    - Dst: strstr
      Src: /src/curl/lib/vtls/vtls.c:410,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls.c:423,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vtls/vtls.c:430,1
    - Dst: curlx_base64_decode
      Src: /src/curl/lib/vtls/vtls.c:431,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/vtls.c:431,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/vtls.c:432,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - pem
    - der
    - der_len
    argTypes:
    - char*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 438
    functionName: pubkey_pem_to_der
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - strstr
    - curlx_dyn_addn
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_ptr
    - curlx_base64_decode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode pubkey_pem_to_der(const char *pem,\n                                  unsigned
      char **der, size_t *der_len)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/curl/lib/vtls/vtls.c:457,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/vtls.c:470,1
    - Dst: sha256sum
      Src: /src/curl/lib/vtls/vtls.c:473,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/vtls/vtls.c:477,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls.c:480,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:485,1
    - Dst: strncmp
      Src: /src/curl/lib/vtls/vtls.c:489,1
    - Dst: strchr
      Src: /src/curl/lib/vtls/vtls.c:491,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls.c:493,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls.c:497,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/vtls.c:498,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:498,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vtls/vtls.c:503,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:503,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls.c:508,1
    - Dst: curlx_fopen
      Src: /src/curl/lib/vtls/vtls.c:517,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vtls/vtls.c:521,1
    - Dst: fseek
      Src: /src/curl/lib/vtls/vtls.c:524,1
    - Dst: ftell
      Src: /src/curl/lib/vtls/vtls.c:526,1
    - Dst: fseek
      Src: /src/curl/lib/vtls/vtls.c:527,1
    - Dst: curlx_sotouz
      Src: /src/curl/lib/vtls/vtls.c:536,1
    - Dst: fread
      Src: /src/curl/lib/vtls/vtls.c:547,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vtls/vtls.c:549,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls.c:556,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/vtls.c:556,1
    - Dst: pubkey_pem_to_der
      Src: /src/curl/lib/vtls/vtls.c:565,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vtls/vtls.c:565,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls.c:574,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vtls/vtls.c:577,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls.c:578,1
    - Dst: curlx_fclose
      Src: /src/curl/lib/vtls/vtls.c:579,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 80
    argCount: 4
    argNames:
    - data
    - pinnedpubkey
    - pubkey
    - pubkeylen
    argTypes:
    - struct Curl_easy*
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 583
    functionName: Curl_pin_peer_pubkey
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 4
    functionsReached:
    - curlx_safefree
    - curlx_dyn_init
    - curlx_fclose
    - memcmp
    - curlx_sotouz
    - sha256sum
    - curlx_dyn_ptr
    - ftell
    - strncmp
    - curlx_dyn_addn
    - curlx_dyn_free
    - fread
    - pubkey_pem_to_der
    - curlx_base64_encode
    - curlx_malloc
    - fseek
    - DEBUGF
    - infof
    - curlx_fopen
    - strchr
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_pin_peer_pubkey(struct Curl_easy *data,\n                              const
      char *pinnedpubkey,\n                              const unsigned char *pubkey,
      size_t pubkeylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_status_request
      Src: /src/curl/lib/vtls/vtls.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: Curl_ssl_cert_status_request
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - cert_status_request
    linkageType: ''
    returnType: bool
    signature: bool Curl_ssl_cert_status_request(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:597,1
    - Dst: init
      Src: /src/curl/lib/vtls/vtls.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 602
    functionName: multissl_init
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - init
    - multissl_setup
    linkageType: ''
    returnType: int
    signature: int multissl_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:607,1
    - Dst: random
      Src: /src/curl/lib/vtls/vtls.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - data
    - entropy
    - length
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 610
    functionName: multissl_random
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - random
    - multissl_setup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode multissl_random(struct Curl_easy *data,\n                                unsigned
      char *entropy, size_t length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:615,1
    - Dst: do_connect
      Src: /src/curl/lib/vtls/vtls.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 618
    functionName: multissl_connect
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - do_connect
    - multissl_setup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode multissl_connect(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data, bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:624,1
    - Dst: adjust_pollset
      Src: /src/curl/lib/vtls/vtls.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 627
    functionName: multissl_adjust_pollset
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - adjust_pollset
    - multissl_setup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode multissl_adjust_pollset(struct Curl_cfilter *cf,\n                                        struct
      Curl_easy *data,\n                                        struct easy_pollset
      *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:632,1
    - Dst: get_internals
      Src: /src/curl/lib/vtls/vtls.c:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - connssl
    - info
    argTypes:
    - struct ssl_connect_data*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: multissl_get_internals
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - get_internals
    - multissl_setup
    linkageType: ''
    returnType: void
    signature: "void *multissl_get_internals(struct ssl_connect_data *connssl,\n                                    CURLINFO
      info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:639,1
    - Dst: close
      Src: /src/curl/lib/vtls/vtls.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 642
    functionName: multissl_close
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - close
    - multissl_setup
    linkageType: ''
    returnType: void
    signature: void multissl_close(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:648,1
    - Dst: recv_plain
      Src: /src/curl/lib/vtls/vtls.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 651
    functionName: multissl_recv_plain
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - recv_plain
    - multissl_setup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode multissl_recv_plain(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    char *buf, size_t len,
      size_t *pnread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:658,1
    - Dst: send_plain
      Src: /src/curl/lib/vtls/vtls.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - cf
    - data
    - mem
    - len
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 661
    functionName: multissl_send_plain
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - send_plain
    - multissl_setup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode multissl_send_plain(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    const void *mem, size_t
      len,\n                                    size_t *pnwritten)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/curl/lib/vtls/vtls.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 742
    functionName: Curl_ssl_cleanup
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - cleanup
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_cleanup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/curl/lib/vtls/vtls.c:766,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/vtls.c:767,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/vtls/vtls.c:776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 744
    functionDepth: 7
    functionLinenumber: 744
    functionLinenumberEnd: 779
    functionName: multissl_version
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - curl_msnprintf
    - version
    - curlx_strcopy
    linkageType: ''
    returnType: size_t
    signature: size_t multissl_version(char *buffer, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_getenv
      Src: /src/curl/lib/vtls/vtls.c:797,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls.c:800,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls.c:802,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls.c:810,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls.c:813,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/vtls.c:821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - backend
    argTypes:
    - struct Curl_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 823
    functionName: multissl_setup
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 9
    functionsReached:
    - curl_getenv
    - curl_strequal
    - curlx_free
    linkageType: ''
    returnType: int
    signature: int multissl_setup(const struct Curl_ssl *backend)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls.c:837,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls.c:847,1
    - Dst: multissl_setup
      Src: /src/curl/lib/vtls/vtls.c:848,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - id
    - name
    - avail
    argTypes:
    - curl_sslbackend
    - char*
    - curl_ssl_backend***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 854
    functionName: Curl_init_sslset_nolock
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - curl_strequal
    - multissl_setup
    linkageType: ''
    returnType: CURLsslset
    signature: "CURLsslset Curl_init_sslset_nolock(curl_sslbackend id, const char
      *name,\n                                   const curl_ssl_backend ***avail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - id
    - name
    - avail
    argTypes:
    - curl_sslbackend
    - char*
    - curl_ssl_backend***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 864
    functionName: Curl_init_sslset_nolock
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CURLsslset
    signature: "CURLsslset Curl_init_sslset_nolock(curl_sslbackend id, const char
      *name,\n                                   const curl_ssl_backend ***avail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/vtls/vtls.c:872,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls.c:873,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct ssl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 877
    functionName: Curl_ssl_peer_cleanup
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_peer_unlink
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_peer_cleanup(struct ssl_peer *peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ssl_connect_data*::ssl_impl::close
      Src: /src/curl/lib/vtls/vtls.c:883,1
    - Dst: Curl_ssl_peer_cleanup
      Src: /src/curl/lib/vtls/vtls.c:887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 890
    functionName: cf_close
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - struct ssl_connect_data*::ssl_impl::close
    - Curl_ssl_peer_cleanup
    linkageType: ''
    returnType: void
    signature: void cf_close(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/vtls/vtls.c:900,1
    - Dst: curlx_inet_pton
      Src: /src/curl/lib/vtls/vtls.c:903,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 909
    functionName: get_peer_type
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - curlx_inet_pton
    linkageType: ''
    returnType: ssl_peer_type
    signature: ssl_peer_type get_peer_type(const char *hostname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:920,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:921,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:922,1
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/vtls.c:930,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/vtls/vtls.c:945,1
    - Dst: get_peer_type
      Src: /src/curl/lib/vtls/vtls.c:946,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls.c:950,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/vtls.c:954,1
    - Dst: Curl_strntolower
      Src: /src/curl/lib/vtls/vtls.c:957,1
    - Dst: Curl_ssl_peer_key_make
      Src: /src/curl/lib/vtls/vtls.c:962,1
    - Dst: Curl_ssl_peer_cleanup
      Src: /src/curl/lib/vtls/vtls.c:966,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - peer
    - cf
    - tls_id
    - transport
    argTypes:
    - struct ssl_peer*
    - struct Curl_cfilter*
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 911
    functionDepth: 6
    functionLinenumber: 911
    functionLinenumberEnd: 968
    functionName: Curl_ssl_peer_init
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - Curl_ssl_peer_cleanup
    - Curl_strntolower
    - DEBUGASSERT
    - Curl_ssl_peer_key_make
    - Curl_peer_link
    - get_peer_type
    - curlx_calloc
    - strlen
    - Curl_ssl_cf_is_proxy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_peer_init(struct ssl_peer *peer,\n                            struct
      Curl_cfilter *cf,\n                            const char *tls_id,\n                            uint8_t
      transport)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vtls/vtls.c:974,1
    - Dst: cf_close
      Src: /src/curl/lib/vtls/vtls.c:975,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vtls/vtls.c:976,1
    - Dst: cf_ctx_free
      Src: /src/curl/lib/vtls/vtls.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 970
    functionDepth: 4
    functionLinenumber: 970
    functionLinenumberEnd: 979
    functionName: ssl_cf_destroy
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - cf_ctx_free
    - cf_close
    linkageType: ''
    returnType: void
    signature: void ssl_cf_destroy(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::do_connect
      Src: /src/curl/lib/vtls/vtls.c:1000,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vtls/vtls.c:1005,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:1006,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1007,1
    - Dst: ssl_prefs_check
      Src: /src/curl/lib/vtls/vtls.c:1012,1
    - Dst: struct ssl_connect_data*::ssl_impl::version
      Src: /src/curl/lib/vtls/vtls.c:1021,1
    - Dst: Curl_ssl_peer_init
      Src: /src/curl/lib/vtls/vtls.c:1022,1
    - Dst: struct ssl_connect_data*::ssl_impl::do_connect
      Src: /src/curl/lib/vtls/vtls.c:1027,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vtls/vtls.c:1032,1
    - Dst: Curl_tls_keylog_enabled
      Src: /src/curl/lib/vtls/vtls.c:1034,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1035,1
    - Dst: Curl_tls_keylog_file_name
      Src: /src/curl/lib/vtls/vtls.c:1036,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1038,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1042,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1044,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:1048,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vtls/vtls.c:1049,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 981
    functionDepth: 7
    functionLinenumber: 981
    functionLinenumberEnd: 1051
    functionName: ssl_cf_connect
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - struct ssl_connect_data*::ssl_impl::do_connect
    - Curl_pgrs_now
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - struct Curl_cfilter*::next::cft::do_connect
    - ssl_prefs_check
    - infof
    - Curl_tls_keylog_enabled
    - Curl_ssl_peer_init
    - struct ssl_connect_data*::ssl_impl::version
    - Curl_tls_keylog_file_name
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_cf_connect(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               bool *done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1061,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1062,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vtls/vtls.c:1062,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/vtls/vtls.c:1066,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:1067,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - cf
    - data
    - buf
    - blen
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1053
    functionDepth: 5
    functionLinenumber: 1053
    functionLinenumberEnd: 1073
    functionName: ssl_cf_set_earlydata
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - Curl_bufq_write
    - DEBUGASSERT
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_cf_set_earlydata(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data,\n                                     const void *buf, size_t
      blen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1083,1
    - Dst: ssl_cf_set_earlydata
      Src: /src/curl/lib/vtls/vtls.c:1086,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vtls/vtls.c:1092,1
    - Dst: ssl_cf_connect
      Src: /src/curl/lib/vtls/vtls.c:1095,1
    - Dst: Curl_pgrsTimeWas
      Src: /src/curl/lib/vtls/vtls.c:1098,1
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/vtls.c:1103,1
    - Dst: Curl_pgrsEarlyData
      Src: /src/curl/lib/vtls/vtls.c:1104,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1105,1
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/vtls.c:1109,1
    - Dst: Curl_pgrsEarlyData
      Src: /src/curl/lib/vtls/vtls.c:1110,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1111,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1117,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - blen
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1075
    functionDepth: 8
    functionLinenumber: 1075
    functionLinenumberEnd: 1122
    functionName: ssl_cf_connect_deferred
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - DEBUGASSERT
    - ssl_cf_set_earlydata
    - Curl_pgrsEarlyData
    - infof
    - ssl_cf_connect
    - Curl_pgrsTimeWas
    - Curl_ssl_cf_is_proxy
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_cf_connect_deferred(struct Curl_cfilter *cf,\n                                        struct
      Curl_easy *data,\n                                        const void *buf, size_t
      blen,\n                                        bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vtls/vtls.c:1131,1
    - Dst: struct ssl_connect_data*::ssl_impl::data_pending
      Src: /src/curl/lib/vtls/vtls.c:1133,1
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/vtls/vtls.c:1136,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vtls/vtls.c:1137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1139
    functionName: ssl_cf_data_pending
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - struct Curl_cfilter*::next::cft::has_data_pending
    - struct ssl_connect_data*::ssl_impl::data_pending
    - CF_DATA_RESTORE
    linkageType: ''
    returnType: bool
    signature: "bool ssl_cf_data_pending(struct Curl_cfilter *cf,\n                                const
      struct Curl_easy *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vtls/vtls.c:1152,1
    - Dst: ssl_cf_connect_deferred
      Src: /src/curl/lib/vtls/vtls.c:1156,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1163,1
    - Dst: struct ssl_connect_data*::ssl_impl::send_plain
      Src: /src/curl/lib/vtls/vtls.c:1184,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vtls/vtls.c:1190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - blen
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1141
    functionDepth: 9
    functionLinenumber: 1141
    functionLinenumberEnd: 1192
    functionName: ssl_cf_send
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - ssl_cf_connect_deferred
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - struct ssl_connect_data*::ssl_impl::send_plain
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_cf_send(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            const uint8_t *buf, size_t blen,\n
      \                           bool eos, size_t *pnwritten)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vtls/vtls.c:1202,1
    - Dst: ssl_cf_connect_deferred
      Src: /src/curl/lib/vtls/vtls.c:1206,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1213,1
    - Dst: struct ssl_connect_data*::ssl_impl::recv_plain
      Src: /src/curl/lib/vtls/vtls.c:1216,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vtls/vtls.c:1219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1194
    functionDepth: 9
    functionLinenumber: 1194
    functionLinenumberEnd: 1221
    functionName: ssl_cf_recv
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - ssl_cf_connect_deferred
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - struct ssl_connect_data*::ssl_impl::recv_plain
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_cf_recv(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data, char *buf, size_t len,\n                            size_t
      *pnread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vtls/vtls.c:1236,1
    - Dst: struct ssl_connect_data*::ssl_impl::shut_down
      Src: /src/curl/lib/vtls/vtls.c:1237,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:1238,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vtls/vtls.c:1239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: ssl_cf_shutdown
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - CURL_TRC_CF
    - struct ssl_connect_data*::ssl_impl::shut_down
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_cf_shutdown(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vtls/vtls.c:1253,1
    - Dst: struct ssl_connect_data*::ssl_impl::adjust_pollset
      Src: /src/curl/lib/vtls/vtls.c:1254,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vtls/vtls.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1257
    functionName: ssl_cf_adjust_pollset
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - struct ssl_connect_data*::ssl_impl::adjust_pollset
    - CF_DATA_RESTORE
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_cf_adjust_pollset(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      struct easy_pollset
      *ps)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/vtls.c:1268,1
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/vtls.c:1274,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vtls/vtls.c:1277,1
    - Dst: Curl_ssl_backend
      Src: /src/curl/lib/vtls/vtls.c:1278,1
    - Dst: struct ssl_connect_data*::ssl_impl::get_internals
      Src: /src/curl/lib/vtls/vtls.c:1279,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vtls/vtls.c:1282,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1288,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:1290,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/vtls/vtls.c:1297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1299
    functionName: ssl_cf_query
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - Curl_ssl_backend
    - struct ssl_connect_data*::ssl_impl::get_internals
    - struct Curl_cfilter*::next::cft::query
    - Curl_ssl_cf_is_proxy
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_cf_query(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             int query, int *pres1, void *pres2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/curl/lib/vtls/vtls.c:1313,1
    - Dst: strcmp
      Src: /src/curl/lib/vtls/vtls.c:1315,1
    - Dst: strcmp
      Src: /src/curl/lib/vtls/vtls.c:1317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1323
    functionName: ssl_cf_cntrl
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssl_cf_cntrl(struct Curl_cfilter *cf,\n                             struct
      Curl_easy *data,\n                             int event, int arg1, void *arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::is_alive
      Src: /src/curl/lib/vtls/vtls.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1334
    functionName: cf_ssl_is_alive
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::is_alive
    linkageType: ''
    returnType: bool
    signature: "bool cf_ssl_is_alive(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                           bool *input_pending)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1382,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1387,1
    - Dst: cf_ctx_new
      Src: /src/curl/lib/vtls/vtls.c:1388,1
    - Dst: cf_ctx_new
      Src: /src/curl/lib/vtls/vtls.c:1390,1
    - Dst: alpn_get_spec
      Src: /src/curl/lib/vtls/vtls.c:1390,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/vtls/vtls.c:1400,1
    - Dst: cf_ctx_free
      Src: /src/curl/lib/vtls/vtls.c:1404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - pcf
    - data
    - conn
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1374
    functionDepth: 4
    functionLinenumber: 1374
    functionLinenumberEnd: 1407
    functionName: cf_ssl_create
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - Curl_cf_create
    - cf_ctx_new
    - cf_ctx_free
    - alpn_get_spec
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ssl_create(struct Curl_cfilter **pcf,\n                              struct
      Curl_easy *data,\n                              struct connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_create
      Src: /src/curl/lib/vtls/vtls.c:1416,1
    - Dst: Curl_conn_cf_add
      Src: /src/curl/lib/vtls/vtls.c:1418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - conn
    - sockindex
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1409
    functionDepth: 5
    functionLinenumber: 1409
    functionLinenumberEnd: 1420
    functionName: Curl_ssl_cfilter_add
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 6
    functionsReached:
    - Curl_conn_cf_add
    - cf_ssl_create
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_cfilter_add(struct Curl_easy *data,\n                              struct
      connectdata *conn,\n                              int sockindex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_create
      Src: /src/curl/lib/vtls/vtls.c:1428,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/vtls/vtls.c:1430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cf_at
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1422
    functionDepth: 5
    functionLinenumber: 1422
    functionLinenumberEnd: 1432
    functionName: Curl_cf_ssl_insert_after
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - Curl_conn_cf_insert_after
    - cf_ssl_create
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_ssl_insert_after(struct Curl_cfilter *cf_at,\n                                  struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_ctx_new
      Src: /src/curl/lib/vtls/vtls.c:1455,1
    - Dst: alpn_get_spec
      Src: /src/curl/lib/vtls/vtls.c:1455,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/vtls/vtls.c:1460,1
    - Dst: cf_ctx_free
      Src: /src/curl/lib/vtls/vtls.c:1464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - pcf
    - data
    - conn
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1436
    functionDepth: 4
    functionLinenumber: 1436
    functionLinenumberEnd: 1467
    functionName: cf_ssl_proxy_create
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - cf_ctx_new
    - cf_ctx_free
    - alpn_get_spec
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ssl_proxy_create(struct Curl_cfilter **pcf,\n                                    struct
      Curl_easy *data,\n                                    struct connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_ssl_proxy_create
      Src: /src/curl/lib/vtls/vtls.c:1475,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/vtls/vtls.c:1477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cf_at
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1469
    functionDepth: 5
    functionLinenumber: 1469
    functionLinenumberEnd: 1479
    functionName: Curl_cf_ssl_proxy_insert_after
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - cf_ssl_proxy_create
    - Curl_conn_cf_insert_after
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_ssl_proxy_insert_after(struct Curl_cfilter *cf_at,\n
      \                                       struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - ssl_option
    argTypes:
    - struct Curl_easy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1487
    functionName: Curl_ssl_supports
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_ssl_supports(struct Curl_easy *data, unsigned int ssl_option)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vtls/vtls.c:1503,1
    - Dst: Curl_shutdown_timeleft
      Src: /src/curl/lib/vtls/vtls.c:1507,1
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls.c:1511,1
    - Dst: struct ssl_connect_data*::ssl_impl::shut_down
      Src: /src/curl/lib/vtls/vtls.c:1516,1
    - Dst: Curl_conn_cf_poll
      Src: /src/curl/lib/vtls/vtls.c:1521,1
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls.c:1524,1
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls.c:1530,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vtls/vtls.c:1538,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 4
    argNames:
    - cf
    - data
    - send_shutdown
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1489
    functionDepth: 3
    functionLinenumber: 1489
    functionLinenumberEnd: 1541
    functionName: vtls_shutdown_blocking
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - Curl_conn_cf_poll
    - failf
    - Curl_shutdown_timeleft
    - struct ssl_connect_data*::ssl_impl::shut_down
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode vtls_shutdown_blocking(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data,\n                                       bool send_shutdown,
      bool *done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:1553,1
    - Dst: Curl_shutdown_start
      Src: /src/curl/lib/vtls/vtls.c:1554,1
    - Dst: vtls_shutdown_blocking
      Src: /src/curl/lib/vtls/vtls.c:1555,1
    - Dst: Curl_shutdown_clear
      Src: /src/curl/lib/vtls/vtls.c:1556,1
    - Dst: Curl_conn_cf_discard
      Src: /src/curl/lib/vtls/vtls.c:1559,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:1560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - data
    - sockindex
    - send_shutdown
    argTypes:
    - struct Curl_easy*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1543
    functionDepth: 7
    functionLinenumber: 1543
    functionLinenumberEnd: 1565
    functionName: Curl_ssl_cfilter_remove
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 1
    functionsReached:
    - vtls_shutdown_blocking
    - Curl_conn_cf_discard
    - Curl_shutdown_clear
    - Curl_shutdown_start
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_cfilter_remove(struct Curl_easy *data,\n                                 int
      sockindex, bool send_shutdown)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1567
    functionDepth: 0
    functionLinenumber: 1567
    functionLinenumberEnd: 1570
    functionName: Curl_ssl_cf_is_proxy
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_ssl_cf_is_proxy(struct Curl_cfilter *cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/vtls.c:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1581
    functionName: Curl_ssl_cf_get_config
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 22
    functionsReached:
    - Curl_ssl_cf_is_proxy
    linkageType: ''
    returnType: struct ssl_config_data
    signature: "struct ssl_config_data *Curl_ssl_cf_get_config(struct Curl_cfilter
      *cf,\n                                               struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/vtls.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1583
    functionDepth: 1
    functionLinenumber: 1583
    functionLinenumberEnd: 1592
    functionName: Curl_ssl_cf_get_primary_config
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 41
    functionsReached:
    - Curl_ssl_cf_is_proxy
    linkageType: ''
    returnType: struct ssl_primary_config
    signature: "struct ssl_primary_config *Curl_ssl_cf_get_primary_config(\n  struct
      Curl_cfilter *cf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/vtls/vtls.c:1601,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls.c:1603,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/vtls.c:1610,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - spec
    argTypes:
    - struct alpn_proto_buf*
    - struct alpn_spec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1615
    functionName: Curl_alpn_to_proto_buf
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 2
    functionsReached:
    - strlen
    - memcpy
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_alpn_to_proto_buf(struct alpn_proto_buf *buf,\n                                const
      struct alpn_spec *spec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/vtls/vtls.c:1623,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls.c:1625,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/vtls.c:1632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - spec
    argTypes:
    - struct alpn_proto_buf*
    - struct alpn_spec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1638
    functionName: Curl_alpn_to_proto_str
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 6
    functionsReached:
    - strlen
    - memcpy
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_alpn_to_proto_str(struct alpn_proto_buf *buf,\n                                const
      struct alpn_spec *spec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls.c:1643,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls.c:1645,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls.c:1646,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - spec
    - proto
    argTypes:
    - struct alpn_spec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1640
    functionDepth: 0
    functionLinenumber: 1640
    functionLinenumberEnd: 1650
    functionName: Curl_alpn_contains_proto
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 2
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: bool
    signature: "bool Curl_alpn_contains_proto(const struct alpn_spec *spec,\n                              const
      char *proto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls.c:1654,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1655,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/vtls.c:1657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - spec
    - proto
    argTypes:
    - struct alpn_spec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1652
    functionDepth: 1
    functionLinenumber: 1652
    functionLinenumberEnd: 1660
    functionName: Curl_alpn_restrict_to
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 3
    functionsReached:
    - strlen
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void Curl_alpn_restrict_to(struct alpn_spec *spec, const char *proto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/lib/vtls/vtls.c:1665,1
    - Dst: memset
      Src: /src/curl/lib/vtls/vtls.c:1667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - struct alpn_spec*
    - struct alpn_spec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1662
    functionDepth: 0
    functionLinenumber: 1662
    functionLinenumberEnd: 1668
    functionName: Curl_alpn_copy
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 3
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_alpn_copy(struct alpn_spec *dest, const struct alpn_spec
      *src)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls.c:1684,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls.c:1691,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls.c:1695,1
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls.c:1696,1
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls.c:1697,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1704,1
    - Dst: memchr
      Src: /src/curl/lib/vtls/vtls.c:1710,1
    - Dst: failf
      Src: /src/curl/lib/vtls/vtls.c:1711,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vtls/vtls.c:1716,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1723,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1725,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1729,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1731,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 5
    argNames:
    - cf
    - data
    - connssl
    - proto
    - proto_len
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_connect_data*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1736
    functionName: Curl_alpn_set_negotiated
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 4
    functionsReached:
    - failf
    - DEBUGASSERT
    - memcmp
    - memchr
    - infof
    - curlx_memdup0
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_alpn_set_negotiated(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  struct ssl_connect_data
      *connssl,\n                                  const unsigned char *proto,\n                                  size_t
      proto_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:1750,1
    - Dst: Curl_alpn_contains_proto
      Src: /src/curl/lib/vtls/vtls.c:1752,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/vtls.c:1753,1
    - Dst: infof
      Src: /src/curl/lib/vtls/vtls.c:1756,1
    - Dst: Curl_alpn_set_negotiated
      Src: /src/curl/lib/vtls/vtls.c:1760,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/vtls.c:1762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - cf
    - data
    - alpns
    - scs
    - do_early_data
    - early_data_allowed
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct alpn_spec*
    - struct Curl_ssl_session*
    - bool*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1738
    functionDepth: 2
    functionLinenumber: 1738
    functionLinenumberEnd: 1766
    functionName: Curl_on_session_reuse
    functionSourceFile: /src/curl/lib/vtls/vtls.c
    functionUses: 3
    functionsReached:
    - Curl_alpn_set_negotiated
    - infof
    - Curl_alpn_contains_proto
    - strlen
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_on_session_reuse(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               struct alpn_spec *alpns,\n
      \                              struct Curl_ssl_session *scs,\n                               bool
      *do_early_data, bool early_data_allowed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: CLONE_STRING
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLONE_STRING(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: CLONE_BLOB
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLONE_BLOB(var)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_config.c:73,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_config.c:74,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/vtls_config.c:78,1
    - Dst: memcpy
      Src: /src/curl/lib/vtls/vtls_config.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - struct curl_blob**
    - struct curl_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: blobdup
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 0
    functionsReached:
    - curlx_malloc
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode blobdup(struct curl_blob **dest, struct curl_blob *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/curl/lib/vtls/vtls_config.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - struct curl_blob*
    - struct curl_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: blobcmp
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool blobcmp(struct curl_blob *first, struct curl_blob *second)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sslc
    argTypes:
    - struct ssl_primary_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: Curl_ssl_config_init
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_config_init(struct ssl_primary_config *sslc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:118,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:119,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:120,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:121,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:122,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:123,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:124,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:125,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:126,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:127,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:128,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:129,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:130,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:131,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:132,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:133,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:134,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:135,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:137,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/vtls_config.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - sslc
    argTypes:
    - struct ssl_primary_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 142
    functionName: Curl_ssl_config_cleanup
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_config_cleanup(struct ssl_primary_config *sslc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blobcmp
      Src: /src/curl/lib/vtls/vtls_config.c:155,1
    - Dst: blobcmp
      Src: /src/curl/lib/vtls/vtls_config.c:156,1
    - Dst: blobcmp
      Src: /src/curl/lib/vtls/vtls_config.c:157,1
    - Dst: blobcmp
      Src: /src/curl/lib/vtls/vtls_config.c:158,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/vtls/vtls_config.c:159,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/vtls/vtls_config.c:160,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/vtls/vtls_config.c:161,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/vtls/vtls_config.c:162,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/vtls/vtls_config.c:164,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/vtls/vtls_config.c:165,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls_config.c:167,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls_config.c:168,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls_config.c:169,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls_config.c:170,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/vtls/vtls_config.c:171,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/vtls/vtls_config.c:172,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls_config.c:173,1
    - Dst: Curl_safecmp
      Src: /src/curl/lib/vtls/vtls_config.c:174,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/vtls_config.c:175,1
    - Dst: Curl_timestrcmp
      Src: /src/curl/lib/vtls/vtls_config.c:176,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 5
    argCount: 3
    argNames:
    - data
    - c1
    - c2
    argTypes:
    - struct Curl_easy*
    - struct ssl_primary_config*
    - struct ssl_primary_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 180
    functionName: match_ssl_primary_config
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 0
    functionsReached:
    - curl_strequal
    - Curl_timestrcmp
    - Curl_safecmp
    - blobcmp
    linkageType: ''
    returnType: bool
    signature: "bool match_ssl_primary_config(struct Curl_easy *data,\n                                     struct
      ssl_primary_config *c1,\n                                     struct ssl_primary_config
      *c2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_ssl_primary_config
      Src: /src/curl/lib/vtls/vtls_config.c:188,1
    - Dst: match_ssl_primary_config
      Src: /src/curl/lib/vtls/vtls_config.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - candidate
    - proxy
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 195
    functionName: Curl_ssl_conn_config_match
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 3
    functionsReached:
    - match_ssl_primary_config
    linkageType: ''
    returnType: bool
    signature: "bool Curl_ssl_conn_config_match(struct Curl_easy *data,\n                                struct
      connectdata *candidate,\n                                bool proxy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/vtls_config.c:200,1
    - Dst: CLONE_BLOB
      Src: /src/curl/lib/vtls/vtls_config.c:210,1
    - Dst: CLONE_BLOB
      Src: /src/curl/lib/vtls/vtls_config.c:211,1
    - Dst: CLONE_BLOB
      Src: /src/curl/lib/vtls/vtls_config.c:212,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:213,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:214,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:215,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:216,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:217,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:218,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:219,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:220,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:221,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:223,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:224,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:225,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:226,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:227,1
    - Dst: CLONE_BLOB
      Src: /src/curl/lib/vtls/vtls_config.c:228,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:230,1
    - Dst: CLONE_STRING
      Src: /src/curl/lib/vtls/vtls_config.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - struct ssl_primary_config*
    - struct ssl_primary_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 235
    functionName: clone_ssl_primary_config
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 0
    functionsReached:
    - CLONE_BLOB
    - DEBUGASSERT
    - CLONE_STRING
    linkageType: ''
    returnType: bool
    signature: "bool clone_ssl_primary_config(struct ssl_primary_config *source,\n
      \                                    struct ssl_primary_config *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_equal
      Src: /src/curl/lib/vtls/vtls_config.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - origin
    - initial_origin
    - sslc
    argTypes:
    - struct Curl_peer*
    - struct Curl_peer*
    - struct ssl_config_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 254
    functionName: ssl_easy_config_compl_options
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 0
    functionsReached:
    - Curl_peer_equal
    linkageType: ''
    returnType: void
    signature: "void ssl_easy_config_compl_options(struct Curl_peer *origin,\n                                          struct
      Curl_peer *initial_origin,\n                                          struct
      ssl_config_data *sslc)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ssl_easy_config_compl_options
      Src: /src/curl/lib/vtls/vtls_config.c:265,1
    - Dst: Curl_ssl_backend
      Src: /src/curl/lib/vtls/vtls_config.c:267,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/vtls/vtls_config.c:274,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/vtls/vtls_config.c:281,1
    - Dst: Curl_peer_equal
      Src: /src/curl/lib/vtls/vtls_config.c:301,1
    - Dst: ssl_easy_config_compl_options
      Src: /src/curl/lib/vtls/vtls_config.c:333,1
    - Dst: Curl_ssl_backend
      Src: /src/curl/lib/vtls/vtls_config.c:335,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/vtls/vtls_config.c:342,1
    - Dst: Curl_setstropt
      Src: /src/curl/lib/vtls/vtls_config.c:350,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 2
    argNames:
    - data
    - origin
    argTypes:
    - struct Curl_easy*
    - struct Curl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 380
    functionName: Curl_ssl_easy_config_complete
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 2
    functionsReached:
    - Curl_ssl_backend
    - Curl_setstropt
    - Curl_peer_equal
    - ssl_easy_config_compl_options
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data,\n                                       struct
      Curl_peer *origin)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clone_ssl_primary_config
      Src: /src/curl/lib/vtls/vtls_config.c:388,1
    - Dst: clone_ssl_primary_config
      Src: /src/curl/lib/vtls/vtls_config.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 396
    functionName: Curl_ssl_conn_config_init
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 2
    functionsReached:
    - clone_ssl_primary_config
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssl_conn_config_init(struct Curl_easy *data,\n                                   struct
      connectdata *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_config_cleanup
      Src: /src/curl/lib/vtls/vtls_config.c:400,1
    - Dst: Curl_ssl_config_cleanup
      Src: /src/curl/lib/vtls/vtls_config.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: Curl_ssl_conn_config_cleanup
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 2
    functionsReached:
    - Curl_ssl_config_cleanup
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_conn_config_cleanup(struct connectdata *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - data
    - for_proxy
    argTypes:
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 423
    functionName: Curl_ssl_conn_config_update
    functionSourceFile: /src/curl/lib/vtls/vtls_config.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Curl_ssl_conn_config_update(struct Curl_easy *data, bool for_proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: mbedtls_strerror
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mbedtls_strerror(a, b, c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vtls/mbedtls.c:121,1
    - Dst: infof
      Src: /src/curl/lib/vtls/mbedtls.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - context
    - level
    - f_name
    - line_nb
    - line
    argTypes:
    - void*
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: mbed_debug
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - strlen
    - infof
    linkageType: ''
    returnType: void
    signature: "void mbed_debug(void *context, int level, const char *f_name,\n                       int
      line_nb, const char *line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/mbedtls.c:134,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:138,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vtls/mbedtls.c:142,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - buf
    - blen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: mbedtls_bio_cf_write
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_send
    - CURL_TRC_CF
    - CF_DATA_CURRENT
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int mbedtls_bio_cf_write(void *bio,\n                                const
      unsigned char *buf, size_t blen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/mbedtls.c:153,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:157,1
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/vtls/mbedtls.c:164,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - bio
    - buf
    - blen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: mbedtls_bio_cf_read
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_recv
    - CURL_TRC_CF
    - CF_DATA_CURRENT
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int mbedtls_bio_cf_read(void *bio, unsigned char *buf, size_t blen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/mbedtls.c:258,1
    - Dst: Curl_cipher_suite_get_str
      Src: /src/curl/lib/vtls/mbedtls.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - id
    - buf
    - buf_size
    - prefer_rfc
    argTypes:
    - uint16_t
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 9
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: mbed_cipher_suite_get_str
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - Curl_cipher_suite_get_str
    linkageType: ''
    returnType: int
    signature: "int mbed_cipher_suite_get_str(uint16_t id, char *buf, size_t buf_size,\n
      \                                    bool prefer_rfc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cipher_suite_walk_str
      Src: /src/curl/lib/vtls/mbedtls.c:266,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/vtls/mbedtls.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - str
    - end
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 6
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: mbed_cipher_suite_walk_str
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - Curl_cipher_suite_walk_str
    - curl_strnequal
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t mbed_cipher_suite_walk_str(const char **str, const char **end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/mbedtls.c:399,1
    - Dst: mbedtls_x509_crt_info
      Src: /src/curl/lib/vtls/mbedtls.c:401,1
    - Dst: infof
      Src: /src/curl/lib/vtls/mbedtls.c:402,1
    - Dst: strcspn
      Src: /src/curl/lib/vtls/mbedtls.c:404,1
    - Dst: infof
      Src: /src/curl/lib/vtls/mbedtls.c:405,1
    - Dst: infof
      Src: /src/curl/lib/vtls/mbedtls.c:410,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/mbedtls.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - crt
    argTypes:
    - struct Curl_easy*
    - mbedtls_x509_crt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 414
    functionName: mbed_dump_cert_info
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - infof
    - curlx_malloc
    - curlx_free
    - mbedtls_x509_crt_info
    - strcspn
    linkageType: ''
    returnType: void
    signature: "void mbed_dump_cert_info(struct Curl_easy *data,\n                                const
      mbedtls_x509_crt *crt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/vtls/mbedtls.c:428,1
    - Dst: Curl_ssl_init_certinfo
      Src: /src/curl/lib/vtls/mbedtls.c:433,1
    - Dst: Curl_extract_certinfo
      Src: /src/curl/lib/vtls/mbedtls.c:438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - data
    - crt
    argTypes:
    - struct Curl_easy*
    - mbedtls_x509_crt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 416
    functionDepth: 9
    functionLinenumber: 416
    functionLinenumberEnd: 440
    functionName: mbed_extract_certinfo
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_init_certinfo
    - Curl_extract_certinfo
    - infof
    linkageType: ''
    returnType: void
    signature: "void mbed_extract_certinfo(struct Curl_easy *data,\n                                  const
      mbedtls_x509_crt *crt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/mbedtls.c:446,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vtls/mbedtls.c:447,1
    - Dst: mbed_dump_cert_info
      Src: /src/curl/lib/vtls/mbedtls.c:451,1
    - Dst: mbed_extract_certinfo
      Src: /src/curl/lib/vtls/mbedtls.c:453,1
    - Dst: mbedtls_x509_crt_verify_info
      Src: /src/curl/lib/vtls/mbedtls.c:464,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:465,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - ptr
    - crt
    - depth
    - flags
    argTypes:
    - void*
    - mbedtls_x509_crt*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 442
    functionDepth: 10
    functionLinenumber: 442
    functionLinenumberEnd: 472
    functionName: mbed_verify_cb
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - failf
    - mbedtls_x509_crt_verify_info
    - mbed_dump_cert_info
    - mbed_extract_certinfo
    - Curl_ssl_cf_get_primary_config
    - CF_DATA_CURRENT
    linkageType: ''
    returnType: int
    signature: "int mbed_verify_cb(void *ptr, mbedtls_x509_crt *crt,\n                          int
      depth, uint32_t *flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/mbedtls.c:480,1
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/mbedtls.c:488,1
    - Dst: mbedtls_x509_crt_init
      Src: /src/curl/lib/vtls/mbedtls.c:494,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/mbedtls.c:500,1
    - Dst: mbedtls_x509_crt_parse
      Src: /src/curl/lib/vtls/mbedtls.c:502,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vtls/mbedtls.c:512,1
    - Dst: mbedtls_x509_crt_parse
      Src: /src/curl/lib/vtls/mbedtls.c:517,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/mbedtls.c:519,1
    - Dst: mbedtls_x509_crt_parse_der
      Src: /src/curl/lib/vtls/mbedtls.c:525,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:530,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:531,1
    - Dst: mbedtls_x509_crt_parse_file
      Src: /src/curl/lib/vtls/mbedtls.c:539,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:542,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:543,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:548,1
    - Dst: mbedtls_x509_crt_parse_path
      Src: /src/curl/lib/vtls/mbedtls.c:555,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:558,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:559,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:566,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 572
    functionName: mbed_load_cacert
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_x509_crt_parse
    - mbedtls_x509_crt_parse_der
    - failf
    - mbedtls_x509_crt_parse_path
    - mbedtls_strerror
    - Curl_ssl_cf_get_config
    - curl_strequal
    - curlx_free
    - mbedtls_x509_crt_init
    - curlx_memdup0
    - Curl_ssl_cf_get_primary_config
    - mbedtls_x509_crt_parse_file
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbed_load_cacert(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/mbedtls.c:580,1
    - Dst: mbedtls_x509_crt_init
      Src: /src/curl/lib/vtls/mbedtls.c:589,1
    - Dst: mbedtls_x509_crt_parse_file
      Src: /src/curl/lib/vtls/mbedtls.c:593,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:596,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:597,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:603,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vtls/mbedtls.c:612,1
    - Dst: mbedtls_x509_crt_parse
      Src: /src/curl/lib/vtls/mbedtls.c:615,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vtls/mbedtls.c:626,1
    - Dst: mbedtls_x509_crt_parse
      Src: /src/curl/lib/vtls/mbedtls.c:630,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/mbedtls.c:632,1
    - Dst: mbedtls_x509_crt_parse_der
      Src: /src/curl/lib/vtls/mbedtls.c:638,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:643,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:644,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 651
    functionName: mbed_load_clicert
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - failf
    - mbedtls_x509_crt_parse
    - mbedtls_x509_crt_parse_der
    - mbedtls_strerror
    - Curl_ssl_cf_get_config
    - curl_strequal
    - curlx_free
    - mbedtls_x509_crt_init
    - curlx_memdup0
    - mbedtls_x509_crt_parse_file
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbed_load_clicert(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/mbedtls.c:659,1
    - Dst: mbedtls_pk_init
      Src: /src/curl/lib/vtls/mbedtls.c:663,1
    - Dst: mbedtls_pk_parse_keyfile
      Src: /src/curl/lib/vtls/mbedtls.c:669,1
    - Dst: mbedtls_pk_can_do_psa
      Src: /src/curl/lib/vtls/mbedtls.c:672,1
    - Dst: PSA_ALG_RSA_PKCS1V15_SIGN
      Src: /src/curl/lib/vtls/mbedtls.c:673,1
    - Dst: mbedtls_pk_can_do_psa
      Src: /src/curl/lib/vtls/mbedtls.c:675,1
    - Dst: MBEDTLS_PK_ALG_ECDSA
      Src: /src/curl/lib/vtls/mbedtls.c:676,1
    - Dst: mbedtls_pk_parse_keyfile
      Src: /src/curl/lib/vtls/mbedtls.c:680,1
    - Dst: mbedtls_pk_can_do
      Src: /src/curl/lib/vtls/mbedtls.c:684,1
    - Dst: mbedtls_pk_can_do
      Src: /src/curl/lib/vtls/mbedtls.c:685,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:690,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:691,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:696,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vtls/mbedtls.c:706,1
    - Dst: mbedtls_pk_parse_key
      Src: /src/curl/lib/vtls/mbedtls.c:712,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/mbedtls.c:714,1
    - Dst: mbedtls_pk_can_do_psa
      Src: /src/curl/lib/vtls/mbedtls.c:716,1
    - Dst: PSA_ALG_RSA_PKCS1V15_SIGN
      Src: /src/curl/lib/vtls/mbedtls.c:717,1
    - Dst: mbedtls_pk_can_do_psa
      Src: /src/curl/lib/vtls/mbedtls.c:719,1
    - Dst: MBEDTLS_PK_ALG_ECDSA
      Src: /src/curl/lib/vtls/mbedtls.c:720,1
    - Dst: mbedtls_pk_parse_key
      Src: /src/curl/lib/vtls/mbedtls.c:724,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/mbedtls.c:726,1
    - Dst: mbedtls_pk_can_do
      Src: /src/curl/lib/vtls/mbedtls.c:729,1
    - Dst: mbedtls_pk_can_do
      Src: /src/curl/lib/vtls/mbedtls.c:730,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/mbedtls.c:733,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:736,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:737,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 745
    functionName: mbed_load_privkey
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_pk_can_do
    - mbedtls_pk_init
    - failf
    - strlen
    - MBEDTLS_PK_ALG_ECDSA
    - mbedtls_strerror
    - Curl_ssl_cf_get_config
    - PSA_ALG_RSA_PKCS1V15_SIGN
    - curlx_free
    - mbedtls_pk_can_do_psa
    - mbedtls_pk_parse_key
    - curlx_memdup0
    - mbedtls_pk_parse_keyfile
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbed_load_privkey(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_config
      Src: /src/curl/lib/vtls/mbedtls.c:753,1
    - Dst: mbedtls_x509_crl_init
      Src: /src/curl/lib/vtls/mbedtls.c:757,1
    - Dst: mbedtls_x509_crl_parse_file
      Src: /src/curl/lib/vtls/mbedtls.c:762,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:765,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:766,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:773,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 786
    functionName: mbed_load_crl
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_x509_crl_init
    - failf
    - mbedtls_x509_crl_parse_file
    - mbedtls_strerror
    - Curl_ssl_cf_get_config
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbed_load_crl(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vtls/mbedtls.c:986,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:991,1
    - Dst: mbed_load_cacert
      Src: /src/curl/lib/vtls/mbedtls.c:995,1
    - Dst: mbed_load_clicert
      Src: /src/curl/lib/vtls/mbedtls.c:997,1
    - Dst: mbed_load_privkey
      Src: /src/curl/lib/vtls/mbedtls.c:999,1
    - Dst: mbed_load_crl
      Src: /src/curl/lib/vtls/mbedtls.c:1001,1
    - Dst: mbed_configure_ssl
      Src: /src/curl/lib/vtls/mbedtls.c:1003,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 982
    functionDepth: 4
    functionLinenumber: 982
    functionLinenumberEnd: 1009
    functionName: mbed_connect_step1
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - failf
    - mbed_load_clicert
    - mbed_configure_ssl
    - mbed_load_crl
    - mbed_load_privkey
    - mbed_load_cacert
    - Curl_ssl_cf_get_primary_config
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbed_connect_step1(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_is_proxy
      Src: /src/curl/lib/vtls/mbedtls.c:1027,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:1035,1
    - Dst: mbedtls_ssl_handshake
      Src: /src/curl/lib/vtls/mbedtls.c:1037,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:1048,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1053,1
    - Dst: mbedtls_ssl_get_version_number
      Src: /src/curl/lib/vtls/mbedtls.c:1054,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:1055,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:1056,1
    - Dst: mbedtls_ssl_get_ciphersuite_id_from_ssl
      Src: /src/curl/lib/vtls/mbedtls.c:1065,1
    - Dst: mbed_cipher_suite_get_str
      Src: /src/curl/lib/vtls/mbedtls.c:1066,1
    - Dst: infof
      Src: /src/curl/lib/vtls/mbedtls.c:1067,1
    - Dst: mbedtls_ssl_get_version
      Src: /src/curl/lib/vtls/mbedtls.c:1068,1
    - Dst: mbedtls_ssl_get_peer_cert
      Src: /src/curl/lib/vtls/mbedtls.c:1078,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:1080,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vtls/mbedtls.c:1084,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/mbedtls.c:1089,1
    - Dst: mbedtls_x509_crt_init
      Src: /src/curl/lib/vtls/mbedtls.c:1096,1
    - Dst: mbedtls_x509_crt_parse_der
      Src: /src/curl/lib/vtls/mbedtls.c:1101,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:1102,1
    - Dst: mbedtls_pk_write_pubkey_der
      Src: /src/curl/lib/vtls/mbedtls.c:1107,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:1110,1
    - Dst: Curl_pin_peer_pubkey
      Src: /src/curl/lib/vtls/mbedtls.c:1116,1
    - Dst: mbedtls_x509_crt_free
      Src: /src/curl/lib/vtls/mbedtls.c:1120,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/mbedtls.c:1121,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/mbedtls.c:1122,1
    - Dst: mbedtls_ssl_get_alpn_protocol
      Src: /src/curl/lib/vtls/mbedtls.c:1130,1
    - Dst: Curl_alpn_set_negotiated
      Src: /src/curl/lib/vtls/mbedtls.c:1132,1
    - Dst: strlen
      Src: /src/curl/lib/vtls/mbedtls.c:1134,1
    - Dst: infof
      Src: /src/curl/lib/vtls/mbedtls.c:1141,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1015
    functionDepth: 10
    functionLinenumber: 1015
    functionLinenumberEnd: 1144
    functionName: mbed_connect_step2
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_pk_write_pubkey_der
    - DEBUGASSERT
    - mbedtls_x509_crt_parse_der
    - mbedtls_x509_crt_init
    - mbedtls_ssl_get_alpn_protocol
    - Curl_ssl_cf_is_proxy
    - CURL_TRC_CF
    - mbedtls_ssl_get_ciphersuite_id_from_ssl
    - failf
    - curlx_malloc
    - mbed_cipher_suite_get_str
    - curlx_free
    - curlx_calloc
    - mbedtls_ssl_get_version_number
    - mbedtls_ssl_get_version
    - mbedtls_ssl_get_peer_cert
    - Curl_alpn_set_negotiated
    - Curl_pin_peer_pubkey
    - mbedtls_strerror
    - infof
    - mbedtls_ssl_handshake
    - mbedtls_x509_crt_free
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbed_connect_step2(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:1161,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vtls/mbedtls.c:1162,1
    - Dst: mbedtls_ssl_session_init
      Src: /src/curl/lib/vtls/mbedtls.c:1165,1
    - Dst: mbedtls_ssl_get_session
      Src: /src/curl/lib/vtls/mbedtls.c:1166,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:1169,1
    - Dst: mbedtls_ssl_session_save
      Src: /src/curl/lib/vtls/mbedtls.c:1174,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:1176,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vtls/mbedtls.c:1180,1
    - Dst: mbedtls_ssl_session_save
      Src: /src/curl/lib/vtls/mbedtls.c:1186,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:1188,1
    - Dst: mbedtls_ssl_get_version_number
      Src: /src/curl/lib/vtls/mbedtls.c:1192,1
    - Dst: Curl_ssl_session_create
      Src: /src/curl/lib/vtls/mbedtls.c:1193,1
    - Dst: Curl_ssl_scache_put
      Src: /src/curl/lib/vtls/mbedtls.c:1199,1
    - Dst: mbedtls_ssl_session_free
      Src: /src/curl/lib/vtls/mbedtls.c:1204,1
    - Dst: curlx_free
      Src: /src/curl/lib/vtls/mbedtls.c:1205,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1146
    functionDepth: 10
    functionLinenumber: 1146
    functionLinenumberEnd: 1207
    functionName: mbed_new_session
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_scache_use
    - Curl_ssl_session_create
    - mbedtls_ssl_session_free
    - failf
    - DEBUGASSERT
    - mbedtls_ssl_session_save
    - curlx_malloc
    - Curl_ssl_scache_put
    - curlx_free
    - mbedtls_ssl_session_init
    - mbedtls_ssl_get_version_number
    - mbedtls_ssl_get_session
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbed_new_session(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:1218,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:1226,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1227,1
    - Dst: mbedtls_ssl_write
      Src: /src/curl/lib/vtls/mbedtls.c:1232,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1239,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - cf
    - data
    - mem
    - len
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1266
    functionName: mbed_send
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - mbedtls_ssl_write
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbed_send(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                         const void *mem, size_t len, size_t *pnwritten)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:1280,1
    - Dst: mbedtls_ssl_close_notify
      Src: /src/curl/lib/vtls/mbedtls.c:1294,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1308,1
    - Dst: mbedtls_ssl_read
      Src: /src/curl/lib/vtls/mbedtls.c:1318,1
    - Dst: mbedtls_ssl_read
      Src: /src/curl/lib/vtls/mbedtls.c:1322,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1333,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1337,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1341,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1345,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1349,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 4
    argNames:
    - cf
    - data
    - send_shutdown
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1356
    functionName: mbedtls_shutdown
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - mbedtls_ssl_read
    - mbedtls_ssl_close_notify
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbedtls_shutdown(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 bool send_shutdown, bool
      *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:1365,1
    - Dst: mbedtls_pk_free
      Src: /src/curl/lib/vtls/mbedtls.c:1366,1
    - Dst: mbedtls_x509_crt_free
      Src: /src/curl/lib/vtls/mbedtls.c:1367,1
    - Dst: mbedtls_x509_crt_free
      Src: /src/curl/lib/vtls/mbedtls.c:1368,1
    - Dst: mbedtls_x509_crl_free
      Src: /src/curl/lib/vtls/mbedtls.c:1370,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vtls/mbedtls.c:1372,1
    - Dst: mbedtls_ssl_config_free
      Src: /src/curl/lib/vtls/mbedtls.c:1373,1
    - Dst: mbedtls_ssl_free
      Src: /src/curl/lib/vtls/mbedtls.c:1375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1378
    functionName: mbedtls_close
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - mbedtls_ssl_free
    - mbedtls_x509_crl_free
    - DEBUGASSERT
    - mbedtls_pk_free
    - mbedtls_x509_crt_free
    - mbedtls_ssl_config_free
    linkageType: ''
    returnType: void
    signature: void mbedtls_close(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:1389,1
    - Dst: mbedtls_ssl_read
      Src: /src/curl/lib/vtls/mbedtls.c:1393,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vtls/mbedtls.c:1398,1
    - Dst: mbed_new_session
      Src: /src/curl/lib/vtls/mbedtls.c:1403,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vtls/mbedtls.c:1404,1
    - Dst: mbedtls_strerror
      Src: /src/curl/lib/vtls/mbedtls.c:1418,1
    - Dst: failf
      Src: /src/curl/lib/vtls/mbedtls.c:1419,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - buffersize
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1380
    functionDepth: 11
    functionLinenumber: 1380
    functionLinenumberEnd: 1425
    functionName: mbed_recv
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - failf
    - mbedtls_ssl_read
    - mbed_new_session
    - mbedtls_strerror
    - FALLTHROUGH
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbed_recv(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                         char *buf, size_t buffersize, size_t *pnread)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_version_get_number
      Src: /src/curl/lib/vtls/mbedtls.c:1431,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/mbedtls.c:1432,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vtls/mbedtls.c:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1427
    functionDepth: 7
    functionLinenumber: 1427
    functionLinenumberEnd: 1437
    functionName: mbedtls_version
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - mbedtls_version_get_number
    linkageType: ''
    returnType: size_t
    signature: size_t mbedtls_version(char *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: psa_generate_random
      Src: /src/curl/lib/vtls/mbedtls.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - entropy
    - length
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1449
    functionName: mbedtls_random
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - psa_generate_random
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbedtls_random(struct Curl_easy *data,\n                               unsigned
      char *entropy, size_t length)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mbed_connect_step1
      Src: /src/curl/lib/vtls/mbedtls.c:1468,1
    - Dst: mbed_connect_step2
      Src: /src/curl/lib/vtls/mbedtls.c:1474,1
    - Dst: mbedtls_ssl_get_version_number
      Src: /src/curl/lib/vtls/mbedtls.c:1485,1
    - Dst: mbed_new_session
      Src: /src/curl/lib/vtls/mbedtls.c:1487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1451
    functionDepth: 11
    functionLinenumber: 1451
    functionLinenumberEnd: 1500
    functionName: mbedtls_connect
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbed_new_session
    - mbed_connect_step1
    - mbed_connect_step2
    - mbedtls_ssl_get_version_number
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbedtls_connect(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                bool *done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: psa_crypto_init
      Src: /src/curl/lib/vtls/mbedtls.c:1512,1
    - Dst: mbedtls_ctr_drbg_init
      Src: /src/curl/lib/vtls/mbedtls.c:1518,1
    - Dst: mbedtls_entropy_init
      Src: /src/curl/lib/vtls/mbedtls.c:1519,1
    - Dst: mbedtls_ctr_drbg_seed
      Src: /src/curl/lib/vtls/mbedtls.c:1521,1
    - Dst: mbedtls_ctr_drbg_set_prediction_resistance
      Src: /src/curl/lib/vtls/mbedtls.c:1533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1537
    functionName: mbedtls_init
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ctr_drbg_set_prediction_resistance
    - mbedtls_entropy_init
    - psa_crypto_init
    - mbedtls_ctr_drbg_init
    - mbedtls_ctr_drbg_seed
    linkageType: ''
    returnType: int
    signature: int mbedtls_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_psa_crypto_free
      Src: /src/curl/lib/vtls/mbedtls.c:1541,1
    - Dst: mbedtls_ctr_drbg_free
      Src: /src/curl/lib/vtls/mbedtls.c:1544,1
    - Dst: mbedtls_entropy_free
      Src: /src/curl/lib/vtls/mbedtls.c:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1539
    functionDepth: 0
    functionLinenumber: 1539
    functionLinenumberEnd: 1547
    functionName: mbedtls_cleanup
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_psa_crypto_free
    - mbedtls_entropy_free
    - mbedtls_ctr_drbg_free
    linkageType: ''
    returnType: void
    signature: void mbedtls_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:1556,1
    - Dst: mbedtls_ssl_get_bytes_avail
      Src: /src/curl/lib/vtls/mbedtls.c:1558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1559
    functionName: mbedtls_data_pending
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_get_bytes_avail
    - DEBUGASSERT
    linkageType: ''
    returnType: bool
    signature: "bool mbedtls_data_pending(struct Curl_cfilter *cf,\n                                 const
      struct Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psa_hash_compute
      Src: /src/curl/lib/vtls/mbedtls.c:1569,1
    - Dst: Curl_sha256it
      Src: /src/curl/lib/vtls/mbedtls.c:1577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - input
    - inputlen
    - sha256sum
    - sha256len
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1561
    functionDepth: 2
    functionLinenumber: 1561
    functionLinenumberEnd: 1579
    functionName: mbedtls_sha256sum
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - psa_hash_compute
    - Curl_sha256it
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mbedtls_sha256sum(const unsigned char *input,\n                                  size_t
      inputlen,\n                                  unsigned char *sha256sum,\n                                  size_t
      sha256len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vtls/mbedtls.c:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - connssl
    - info
    argTypes:
    - struct ssl_connect_data*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1589
    functionName: mbedtls_get_internals
    functionSourceFile: /src/curl/lib/vtls/mbedtls.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void *mbedtls_get_internals(struct ssl_connect_data *connssl,\n                                   CURLINFO
      info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QuerySecurityPackageInfo
      Src: /src/curl/lib/vauth/krb5_sspi.c:48,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/krb5_sspi.c:49,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/krb5_sspi.c:49,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/krb5_sspi.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: Curl_auth_is_gssapi_supported
    functionSourceFile: /src/curl/lib/vauth/krb5_sspi.c
    functionUses: 2
    functionsReached:
    - TEXT
    - FreeContextBuffer
    - QuerySecurityPackageInfo
    - CURL_UNCONST
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_is_gssapi_supported(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/vauth/krb5_sspi.c:99,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/vauth/krb5_sspi.c:100,1
    - Dst: Curl_auth_build_spn
      Src: /src/curl/lib/vauth/krb5_sspi.c:104,1
    - Dst: QuerySecurityPackageInfo
      Src: /src/curl/lib/vauth/krb5_sspi.c:111,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/krb5_sspi.c:112,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/krb5_sspi.c:112,1
    - Dst: failf
      Src: /src/curl/lib/vauth/krb5_sspi.c:115,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/krb5_sspi.c:122,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/krb5_sspi.c:125,1
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/vauth/krb5_sspi.c:132,1
    - Dst: Curl_create_sspi_identity
      Src: /src/curl/lib/vauth/krb5_sspi.c:134,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/krb5_sspi.c:147,1
    - Dst: AcquireCredentialsHandle
      Src: /src/curl/lib/vauth/krb5_sspi.c:152,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/krb5_sspi.c:153,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/krb5_sspi.c:153,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/krb5_sspi.c:158,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/krb5_sspi.c:163,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/krb5_sspi.c:169,1
    - Dst: infof
      Src: /src/curl/lib/vauth/krb5_sspi.c:170,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/krb5_sspi.c:179,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vauth/krb5_sspi.c:179,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/krb5_sspi.c:180,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/krb5_sspi.c:180,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/krb5_sspi.c:189,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/vauth/krb5_sspi.c:192,1
    - Dst: memcmp
      Src: /src/curl/lib/vauth/krb5_sspi.c:208,1
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/vauth/krb5_sspi.c:209,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/krb5_sspi.c:211,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/vauth/krb5_sspi.c:215,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/krb5_sspi.c:218,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/krb5_sspi.c:220,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 8
    argNames:
    - data
    - creds
    - default_service
    - host
    - mutual_auth
    - chlg
    - krb5
    - out
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - char*
    - char*
    - bool
    - struct bufref*
    - struct kerberos5data*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 223
    functionName: Curl_auth_create_gssapi_user_message
    functionSourceFile: /src/curl/lib/vauth/krb5_sspi.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - Curl_bufref_set
    - memcmp
    - Curl_creds_sasl_service
    - CURL_UNCONST
    - DeleteSecurityContext
    - Curl_creds_has_user
    - InitializeSecurityContext
    - memcpy
    - Curl_bufref_ptr
    - Curl_create_sspi_identity
    - FreeContextBuffer
    - QuerySecurityPackageInfo
    - failf
    - AcquireCredentialsHandle
    - curlx_uztoul
    - curlx_malloc
    - Curl_creds_has_sasl_service
    - Curl_auth_build_spn
    - curlx_calloc
    - Curl_bufref_memdup0
    - Curl_bufref_len
    - infof
    - TEXT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_gssapi_user_message(struct Curl_easy *data,\n
      \                                             struct Curl_creds *creds,\n                                              const
      char *default_service,\n                                              const
      char *host,\n                                              const bool mutual_auth,\n
      \                                             const struct bufref *chlg,\n                                              struct
      kerberos5data *krb5,\n                                              struct bufref
      *out)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/krb5_sspi.c:267,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/krb5_sspi.c:268,1
    - Dst: infof
      Src: /src/curl/lib/vauth/krb5_sspi.c:269,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/vauth/krb5_sspi.c:274,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/krb5_sspi.c:288,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vauth/krb5_sspi.c:288,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/krb5_sspi.c:289,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/krb5_sspi.c:289,1
    - Dst: DecryptMessage
      Src: /src/curl/lib/vauth/krb5_sspi.c:295,1
    - Dst: infof
      Src: /src/curl/lib/vauth/krb5_sspi.c:297,1
    - Dst: infof
      Src: /src/curl/lib/vauth/krb5_sspi.c:303,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/krb5_sspi.c:314,1
    - Dst: infof
      Src: /src/curl/lib/vauth/krb5_sspi.c:318,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/krb5_sspi.c:332,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/krb5_sspi.c:339,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/krb5_sspi.c:340,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/krb5_sspi.c:356,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/krb5_sspi.c:359,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/krb5_sspi.c:374,1
    - Dst: EncryptMessage
      Src: /src/curl/lib/vauth/krb5_sspi.c:380,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/krb5_sspi.c:393,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/krb5_sspi.c:400,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/krb5_sspi.c:402,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/krb5_sspi.c:404,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/krb5_sspi.c:408,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/krb5_sspi.c:409,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/krb5_sspi.c:410,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/krb5_sspi.c:416,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 106
    argCount: 5
    argNames:
    - data
    - authzid
    - chlg
    - krb5
    - out
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    - struct kerberos5data*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 418
    functionName: Curl_auth_create_gssapi_security_message
    functionSourceFile: /src/curl/lib/vauth/krb5_sspi.c
    functionUses: 1
    functionsReached:
    - FreeContextBuffer
    - memcpy
    - Curl_bufref_set
    - DEBUGASSERT
    - curlx_uztoul
    - CURL_UNCONST
    - Curl_bufref_len
    - infof
    - curlx_malloc
    - Curl_bufref_ptr
    - curlx_free
    - QueryContextAttributes
    - EncryptMessage
    - strlen
    - DecryptMessage
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy
      *data,\n                                                  const char *authzid,\n
      \                                                 const struct bufref *chlg,\n
      \                                                 struct kerberos5data *krb5,\n
      \                                                 struct bufref *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/vauth/krb5_sspi.c:434,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/krb5_sspi.c:435,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vauth/krb5_sspi.c:440,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/krb5_sspi.c:441,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/krb5_sspi.c:445,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/krb5_sspi.c:449,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/krb5_sspi.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - krb5
    argTypes:
    - struct kerberos5data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 454
    functionName: Curl_auth_cleanup_gssapi
    functionSourceFile: /src/curl/lib/vauth/krb5_sspi.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_sspi_free_identity
    - DeleteSecurityContext
    - FreeCredentialsHandle
    linkageType: ''
    returnType: void
    signature: void Curl_auth_cleanup_gssapi(struct kerberos5data *krb5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: GSS_ERROR
    functionSourceFile: /src/curl/lib/vauth/vauth.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GSS_ERROR(status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: Curl_auth_is_digest_supported
    functionSourceFile: /src/curl/lib/vauth/vauth.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_auth_is_digest_supported()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: Curl_auth_is_ntlm_supported
    functionSourceFile: /src/curl/lib/vauth/vauth.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_auth_is_ntlm_supported()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: Curl_auth_is_gssapi_supported
    functionSourceFile: /src/curl/lib/vauth/vauth.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_auth_is_gssapi_supported()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vauth/cram.c:56,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vauth/cram.c:57,1
    - Dst: Curl_HMAC_init
      Src: /src/curl/lib/vauth/cram.c:60,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/cram.c:62,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/cram.c:62,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/cram.c:67,1
    - Dst: Curl_HMAC_update
      Src: /src/curl/lib/vauth/cram.c:68,1
    - Dst: Curl_bufref_uptr
      Src: /src/curl/lib/vauth/cram.c:68,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/cram.c:69,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/cram.c:69,1
    - Dst: Curl_HMAC_final
      Src: /src/curl/lib/vauth/cram.c:72,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/cram.c:75,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/cram.c:83,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/cram.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - chlg
    - creds
    - out
    argTypes:
    - struct bufref*
    - struct Curl_creds*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 85
    functionName: Curl_auth_create_cram_md5_message
    functionSourceFile: /src/curl/lib/vauth/cram.c
    functionUses: 1
    functionsReached:
    - Curl_HMAC_update
    - Curl_creds_passwd
    - curl_maprintf
    - Curl_bufref_set
    - Curl_HMAC_final
    - Curl_HMAC_init
    - Curl_bufref_len
    - curlx_uztoui
    - Curl_bufref_uptr
    - Curl_creds_user
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_cram_md5_message(const struct bufref *chlg,\n
      \                                          struct Curl_creds *creds,\n                                           struct
      bufref *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QuerySecurityPackageInfo
      Src: /src/curl/lib/vauth/spnego_sspi.c:50,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/spnego_sspi.c:51,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/spnego_sspi.c:51,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/spnego_sspi.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: Curl_auth_is_spnego_supported
    functionSourceFile: /src/curl/lib/vauth/spnego_sspi.c
    functionUses: 1
    functionsReached:
    - TEXT
    - FreeContextBuffer
    - QuerySecurityPackageInfo
    - CURL_UNCONST
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_is_spnego_supported(void)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_cleanup_spnego
      Src: /src/curl/lib/vauth/spnego_sspi.c:101,1
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/vauth/spnego_sspi.c:107,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/vauth/spnego_sspi.c:108,1
    - Dst: Curl_auth_build_spn
      Src: /src/curl/lib/vauth/spnego_sspi.c:109,1
    - Dst: QuerySecurityPackageInfo
      Src: /src/curl/lib/vauth/spnego_sspi.c:116,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/spnego_sspi.c:117,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/spnego_sspi.c:117,1
    - Dst: failf
      Src: /src/curl/lib/vauth/spnego_sspi.c:120,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/spnego_sspi.c:127,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/spnego_sspi.c:130,1
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/vauth/spnego_sspi.c:137,1
    - Dst: Curl_create_sspi_identity
      Src: /src/curl/lib/vauth/spnego_sspi.c:139,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/spnego_sspi.c:152,1
    - Dst: AcquireCredentialsHandle
      Src: /src/curl/lib/vauth/spnego_sspi.c:157,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/spnego_sspi.c:158,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/spnego_sspi.c:158,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/spnego_sspi.c:163,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/spnego_sspi.c:168,1
    - Dst: curlx_base64_decode
      Src: /src/curl/lib/vauth/spnego_sspi.c:176,1
    - Dst: infof
      Src: /src/curl/lib/vauth/spnego_sspi.c:183,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/spnego_sspi.c:193,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/vauth/spnego_sspi.c:207,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/spnego_sspi.c:227,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/vauth/spnego_sspi.c:235,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/spnego_sspi.c:246,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/vauth/spnego_sspi.c:248,1
    - Dst: failf
      Src: /src/curl/lib/vauth/spnego_sspi.c:250,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vauth/spnego_sspi.c:251,1
    - Dst: CompleteAuthToken
      Src: /src/curl/lib/vauth/spnego_sspi.c:261,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/vauth/spnego_sspi.c:262,1
    - Dst: failf
      Src: /src/curl/lib/vauth/spnego_sspi.c:264,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vauth/spnego_sspi.c:265,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 97
    argCount: 6
    argNames:
    - data
    - creds
    - default_service
    - host
    - chlg64
    - nego
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - char*
    - char*
    - char*
    - struct negotiatedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 80
    functionDepth: 8
    functionLinenumber: 80
    functionLinenumberEnd: 277
    functionName: Curl_auth_decode_spnego_message
    functionSourceFile: /src/curl/lib/vauth/spnego_sspi.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - Curl_creds_sasl_service
    - CURL_UNCONST
    - CompleteAuthToken
    - Curl_sspi_strerror
    - Curl_creds_has_user
    - InitializeSecurityContext
    - Curl_create_sspi_identity
    - FreeContextBuffer
    - QuerySecurityPackageInfo
    - failf
    - AcquireCredentialsHandle
    - curlx_uztoul
    - curlx_malloc
    - curlx_free
    - Curl_creds_has_sasl_service
    - Curl_auth_build_spn
    - curlx_calloc
    - GSS_ERROR
    - infof
    - QueryContextAttributes
    - TEXT
    - Curl_auth_cleanup_spnego
    - curlx_base64_decode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_decode_spnego_message(struct Curl_easy *data,\n
      \                                        struct Curl_creds *creds,\n                                         const
      char *default_service,\n                                         const char
      *host,\n                                         const char *chlg64,\n                                         struct
      negotiatedata *nego)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/vauth/spnego_sspi.c:299,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/spnego_sspi.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - nego
    - outptr
    - outlen
    argTypes:
    - struct negotiatedata*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 308
    functionName: Curl_auth_create_spnego_message
    functionSourceFile: /src/curl/lib/vauth/spnego_sspi.c
    functionUses: 1
    functionsReached:
    - curlx_free
    - curlx_base64_encode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_spnego_message(struct negotiatedata *nego,\n
      \                                        char **outptr, size_t *outlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/vauth/spnego_sspi.c:324,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/spnego_sspi.c:325,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vauth/spnego_sspi.c:330,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/spnego_sspi.c:331,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/spnego_sspi.c:335,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/spnego_sspi.c:339,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/spnego_sspi.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - nego
    argTypes:
    - struct negotiatedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 349
    functionName: Curl_auth_cleanup_spnego
    functionSourceFile: /src/curl/lib/vauth/spnego_sspi.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - Curl_sspi_free_identity
    - DeleteSecurityContext
    - FreeCredentialsHandle
    linkageType: ''
    returnType: void
    signature: void Curl_auth_cleanup_spnego(struct negotiatedata *nego)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gsasl_init
      Src: /src/curl/lib/vauth/gsasl.c:45,1
    - Dst: failf
      Src: /src/curl/lib/vauth/gsasl.c:47,1
    - Dst: gsasl_strerror
      Src: /src/curl/lib/vauth/gsasl.c:47,1
    - Dst: gsasl_client_start
      Src: /src/curl/lib/vauth/gsasl.c:51,1
    - Dst: gsasl_done
      Src: /src/curl/lib/vauth/gsasl.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - data
    - mech
    - gsasl
    argTypes:
    - struct Curl_easy*
    - char*
    - struct gsasldata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: Curl_auth_gsasl_is_supported
    functionSourceFile: /src/curl/lib/vauth/gsasl.c
    functionUses: 1
    functionsReached:
    - failf
    - gsasl_done
    - gsasl_client_start
    - gsasl_init
    - gsasl_strerror
    linkageType: ''
    returnType: bool
    signature: "bool Curl_auth_gsasl_is_supported(struct Curl_easy *data,\n                                  const
      char *mech,\n                                  struct gsasldata *gsasl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gsasl_step
      Src: /src/curl/lib/vauth/gsasl.c:102,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vauth/gsasl.c:102,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/gsasl.c:102,1
    - Dst: failf
      Src: /src/curl/lib/vauth/gsasl.c:105,1
    - Dst: gsasl_strerror
      Src: /src/curl/lib/vauth/gsasl.c:105,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/gsasl.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - data
    - chlg
    - gsasl
    - out
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    - struct gsasldata*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 111
    functionName: Curl_auth_gsasl_token
    functionSourceFile: /src/curl/lib/vauth/gsasl.c
    functionUses: 2
    functionsReached:
    - Curl_bufref_set
    - failf
    - Curl_bufref_len
    - gsasl_step
    - Curl_bufref_ptr
    - gsasl_strerror
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_gsasl_token(struct Curl_easy *data,\n                               const
      struct bufref *chlg,\n                               struct gsasldata *gsasl,\n
      \                              struct bufref *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gsasl_finish
      Src: /src/curl/lib/vauth/gsasl.c:115,1
    - Dst: gsasl_done
      Src: /src/curl/lib/vauth/gsasl.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - gsasl
    argTypes:
    - struct gsasldata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: Curl_auth_gsasl_cleanup
    functionSourceFile: /src/curl/lib/vauth/gsasl.c
    functionUses: 0
    functionsReached:
    - gsasl_done
    - gsasl_finish
    linkageType: ''
    returnType: void
    signature: void Curl_auth_gsasl_cleanup(struct gsasldata *gsasl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vauth/cleartext.c:55,1
    - Dst: Curl_creds_sasl_authzid
      Src: /src/curl/lib/vauth/cleartext.c:55,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/cleartext.c:56,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vauth/cleartext.c:56,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/cleartext.c:57,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vauth/cleartext.c:57,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/cleartext.c:65,1
    - Dst: Curl_creds_sasl_authzid
      Src: /src/curl/lib/vauth/cleartext.c:66,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vauth/cleartext.c:67,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vauth/cleartext.c:68,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/cleartext.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - creds
    - out
    argTypes:
    - struct Curl_creds*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: Curl_auth_create_plain_message
    functionSourceFile: /src/curl/lib/vauth/cleartext.c
    functionUses: 2
    functionsReached:
    - Curl_creds_passwd
    - curl_maprintf
    - Curl_bufref_set
    - Curl_creds_sasl_authzid
    - Curl_creds_user
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_plain_message(struct Curl_creds *creds,\n
      \                                       struct bufref *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/cleartext.c:90,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/cleartext.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - out
    argTypes:
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: Curl_auth_create_login_message
    functionSourceFile: /src/curl/lib/vauth/cleartext.c
    functionUses: 2
    functionsReached:
    - strlen
    - Curl_bufref_set
    linkageType: ''
    returnType: void
    signature: void Curl_auth_create_login_message(const char *value, struct bufref
      *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_create_login_message
      Src: /src/curl/lib/vauth/cleartext.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - out
    argTypes:
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: Curl_auth_create_external_message
    functionSourceFile: /src/curl/lib/vauth/cleartext.c
    functionUses: 2
    functionsReached:
    - Curl_auth_create_login_message
    linkageType: ''
    returnType: void
    signature: void Curl_auth_create_external_message(const char *user, struct bufref
      *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QuerySecurityPackageInfo
      Src: /src/curl/lib/vauth/digest_sspi.c:56,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/digest_sspi.c:57,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/digest_sspi.c:57,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/digest_sspi.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: Curl_auth_is_digest_supported
    functionSourceFile: /src/curl/lib/vauth/digest_sspi.c
    functionUses: 3
    functionsReached:
    - TEXT
    - FreeContextBuffer
    - QuerySecurityPackageInfo
    - CURL_UNCONST
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_is_digest_supported(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/vauth/digest_sspi.c:106,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/vauth/digest_sspi.c:107,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/digest_sspi.c:110,1
    - Dst: infof
      Src: /src/curl/lib/vauth/digest_sspi.c:111,1
    - Dst: QuerySecurityPackageInfo
      Src: /src/curl/lib/vauth/digest_sspi.c:117,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/digest_sspi.c:118,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/digest_sspi.c:118,1
    - Dst: failf
      Src: /src/curl/lib/vauth/digest_sspi.c:121,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/digest_sspi.c:128,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/digest_sspi.c:131,1
    - Dst: Curl_auth_build_spn
      Src: /src/curl/lib/vauth/digest_sspi.c:136,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:138,1
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/vauth/digest_sspi.c:142,1
    - Dst: Curl_create_sspi_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:144,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:147,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:148,1
    - Dst: AcquireCredentialsHandle
      Src: /src/curl/lib/vauth/digest_sspi.c:160,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/digest_sspi.c:161,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/digest_sspi.c:161,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:167,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:168,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:169,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/digest_sspi.c:178,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vauth/digest_sspi.c:178,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/digest_sspi.c:179,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/digest_sspi.c:179,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/digest_sspi.c:187,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/vauth/digest_sspi.c:190,1
    - Dst: CompleteAuthToken
      Src: /src/curl/lib/vauth/digest_sspi.c:197,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vauth/digest_sspi.c:201,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:202,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:203,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:204,1
    - Dst: infof
      Src: /src/curl/lib/vauth/digest_sspi.c:209,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vauth/digest_sspi.c:210,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/digest_sspi.c:216,1
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/vauth/digest_sspi.c:219,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vauth/digest_sspi.c:220,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:223,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:226,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 69
    argCount: 5
    argNames:
    - data
    - chlg
    - creds
    - default_service
    - out
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    - struct Curl_creds*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 229
    functionName: Curl_auth_create_digest_md5_message
    functionSourceFile: /src/curl/lib/vauth/digest_sspi.c
    functionUses: 1
    functionsReached:
    - Curl_bufref_set
    - Curl_creds_sasl_service
    - CURL_UNCONST
    - CompleteAuthToken
    - DeleteSecurityContext
    - Curl_sspi_strerror
    - Curl_creds_has_user
    - InitializeSecurityContext
    - Curl_bufref_ptr
    - Curl_create_sspi_identity
    - FreeContextBuffer
    - QuerySecurityPackageInfo
    - failf
    - AcquireCredentialsHandle
    - curlx_uztoul
    - FreeCredentialsHandle
    - curlx_malloc
    - curlx_free
    - Curl_creds_has_sasl_service
    - Curl_auth_build_spn
    - Curl_sspi_free_identity
    - Curl_bufref_len
    - infof
    - TEXT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_digest_md5_message(struct Curl_easy *data,\n
      \                                            const struct bufref *chlg,\n                                             struct
      Curl_creds *creds,\n                                             const char
      *default_service,\n                                             struct bufref
      *out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/lib/vauth/digest_sspi.c:257,1
    - Dst: Curl_auth_digest_get_pair
      Src: /src/curl/lib/vauth/digest_sspi.c:261,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest_sspi.c:262,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/vauth/digest_sspi.c:265,1
    - Dst: curlx_tcsdup
      Src: /src/curl/lib/vauth/digest_sspi.c:269,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:271,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:275,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/digest_sspi.c:277,1
    - Dst: _tcslen
      Src: /src/curl/lib/vauth/digest_sspi.c:277,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:280,1
    - Dst: ISBLANK
      Src: /src/curl/lib/vauth/digest_sspi.c:290,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - chlg
    - identity
    argTypes:
    - char*
    - SEC_WINNT_AUTH_IDENTITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 300
    functionName: Curl_override_sspi_http_realm
    functionSourceFile: /src/curl/lib/vauth/digest_sspi.c
    functionUses: 0
    functionsReached:
    - curlx_uztoul
    - _tcslen
    - curlx_tcsdup
    - curl_strequal
    - curlx_free
    - curlx_convert_UTF8_to_tchar
    - Curl_auth_digest_get_pair
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_override_sspi_http_realm(const char *chlg,\n                                       SEC_WINNT_AUTH_IDENTITY
      *identity)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest_sspi.c:318,1
    - Dst: ISBLANK
      Src: /src/curl/lib/vauth/digest_sspi.c:331,1
    - Dst: Curl_auth_digest_get_pair
      Src: /src/curl/lib/vauth/digest_sspi.c:334,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest_sspi.c:337,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest_sspi.c:338,1
    - Dst: ISBLANK
      Src: /src/curl/lib/vauth/digest_sspi.c:343,1
    - Dst: Curl_auth_digest_cleanup
      Src: /src/curl/lib/vauth/digest_sspi.c:351,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/vauth/digest_sspi.c:357,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 2
    argNames:
    - chlg
    - digest
    argTypes:
    - char*
    - struct digestdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 364
    functionName: Curl_auth_decode_digest_http_message
    functionSourceFile: /src/curl/lib/vauth/digest_sspi.c
    functionUses: 1
    functionsReached:
    - curlx_memdup
    - curl_strequal
    - Curl_auth_digest_get_pair
    - strlen
    - ISBLANK
    - Curl_auth_digest_cleanup
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_decode_digest_http_message(const char *chlg,\n
      \                                             struct digestdata *digest)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: QuerySecurityPackageInfo
      Src: /src/curl/lib/vauth/digest_sspi.c:404,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/digest_sspi.c:405,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/digest_sspi.c:405,1
    - Dst: failf
      Src: /src/curl/lib/vauth/digest_sspi.c:408,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/digest_sspi.c:415,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/digest_sspi.c:419,1
    - Dst: Curl_creds_same
      Src: /src/curl/lib/vauth/digest_sspi.c:426,1
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/vauth/digest_sspi.c:428,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest_sspi.c:429,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/vauth/digest_sspi.c:431,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/digest_sspi.c:442,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/digest_sspi.c:443,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest_sspi.c:443,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/digest_sspi.c:445,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/digest_sspi.c:446,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest_sspi.c:446,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/digest_sspi.c:452,1
    - Dst: MakeSignature
      Src: /src/curl/lib/vauth/digest_sspi.c:454,1
    - Dst: infof
      Src: /src/curl/lib/vauth/digest_sspi.c:459,1
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/vauth/digest_sspi.c:460,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest_sspi.c:461,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/vauth/digest_sspi.c:475,1
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/vauth/digest_sspi.c:477,1
    - Dst: Curl_create_sspi_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:479,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:480,1
    - Dst: Curl_override_sspi_http_realm
      Src: /src/curl/lib/vauth/digest_sspi.c:485,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:487,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:488,1
    - Dst: Curl_creds_link
      Src: /src/curl/lib/vauth/digest_sspi.c:500,1
    - Dst: AcquireCredentialsHandle
      Src: /src/curl/lib/vauth/digest_sspi.c:503,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/digest_sspi.c:504,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/digest_sspi.c:504,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:509,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:510,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/digest_sspi.c:521,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/digest_sspi.c:523,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/digest_sspi.c:524,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest_sspi.c:524,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/digest_sspi.c:535,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/vauth/digest_sspi.c:537,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vauth/digest_sspi.c:539,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:541,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:542,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/digest_sspi.c:548,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vauth/digest_sspi.c:550,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:551,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:552,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:553,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/vauth/digest_sspi.c:558,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:565,1
    - Dst: CompleteAuthToken
      Src: /src/curl/lib/vauth/digest_sspi.c:569,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vauth/digest_sspi.c:573,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:575,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:576,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest_sspi.c:578,1
    - Dst: infof
      Src: /src/curl/lib/vauth/digest_sspi.c:583,1
    - Dst: Curl_sspi_strerror
      Src: /src/curl/lib/vauth/digest_sspi.c:584,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vauth/digest_sspi.c:591,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/digest_sspi.c:592,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vauth/digest_sspi.c:595,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest_sspi.c:596,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 129
    argCount: 7
    argNames:
    - data
    - creds
    - request
    - uripath
    - digest
    - outptr
    - outlen
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - unsigned char*
    - unsigned char*
    - struct digestdata*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 386
    functionDepth: 8
    functionLinenumber: 386
    functionLinenumberEnd: 605
    functionName: Curl_auth_create_digest_http_message
    functionSourceFile: /src/curl/lib/vauth/digest_sspi.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - CURL_UNCONST
    - CompleteAuthToken
    - DeleteSecurityContext
    - curlx_memdup0
    - Curl_sspi_strerror
    - Curl_creds_has_user
    - InitializeSecurityContext
    - Curl_creds_link
    - Curl_creds_unlink
    - Curl_create_sspi_identity
    - FreeContextBuffer
    - QuerySecurityPackageInfo
    - failf
    - AcquireCredentialsHandle
    - curlx_uztoul
    - FreeCredentialsHandle
    - curlx_malloc
    - curlx_free
    - curlx_convert_UTF8_to_tchar
    - curlx_calloc
    - Curl_override_sspi_http_realm
    - Curl_creds_same
    - Curl_sspi_free_identity
    - infof
    - TEXT
    - strlen
    - MakeSignature
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_digest_http_message(struct Curl_easy *data,\n
      \                                             struct Curl_creds *creds,\n                                              const
      unsigned char *request,\n                                              const
      unsigned char *uripath,\n                                              struct
      digestdata *digest,\n                                              char **outptr,
      size_t *outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest_sspi.c:620,1
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/vauth/digest_sspi.c:627,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest_sspi.c:628,1
    - Dst: Curl_creds_unlink
      Src: /src/curl/lib/vauth/digest_sspi.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - digest
    argTypes:
    - struct digestdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 633
    functionName: Curl_auth_digest_cleanup
    functionSourceFile: /src/curl/lib/vauth/digest_sspi.c
    functionUses: 5
    functionsReached:
    - curlx_safefree
    - Curl_creds_unlink
    - DeleteSecurityContext
    linkageType: ''
    returnType: void
    signature: void Curl_auth_digest_cleanup(struct digestdata *digest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/oauth2.c:59,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vauth/oauth2.c:60,1
    - Dst: Curl_creds_oauth_bearer
      Src: /src/curl/lib/vauth/oauth2.c:61,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/oauth2.c:63,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vauth/oauth2.c:64,1
    - Dst: Curl_creds_oauth_bearer
      Src: /src/curl/lib/vauth/oauth2.c:65,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/oauth2.c:69,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/oauth2.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - creds
    - host
    - port
    - out
    argTypes:
    - struct Curl_creds*
    - char*
    - long
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 7
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: Curl_auth_create_oauth_bearer_message
    functionSourceFile: /src/curl/lib/vauth/oauth2.c
    functionUses: 2
    functionsReached:
    - curl_maprintf
    - Curl_bufref_set
    - Curl_creds_user
    - Curl_creds_oauth_bearer
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_oauth_bearer_message(struct Curl_creds *creds,\n
      \                                              const char *host,\n                                               const
      long port,\n                                               struct bufref *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/oauth2.c:91,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vauth/oauth2.c:92,1
    - Dst: Curl_creds_oauth_bearer
      Src: /src/curl/lib/vauth/oauth2.c:93,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/oauth2.c:97,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/oauth2.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - creds
    - out
    argTypes:
    - struct Curl_creds*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 7
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: Curl_auth_create_xoauth_bearer_message
    functionSourceFile: /src/curl/lib/vauth/oauth2.c
    functionUses: 2
    functionsReached:
    - curl_maprintf
    - Curl_bufref_set
    - Curl_creds_user
    - Curl_creds_oauth_bearer
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_xoauth_bearer_message(struct Curl_creds
      *creds,\n                                                struct bufref *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: Curl_auth_is_spnego_supported
    functionSourceFile: /src/curl/lib/vauth/spnego_gssapi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_is_spnego_supported(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_cleanup_spnego
      Src: /src/curl/lib/vauth/spnego_gssapi.c:98,1
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/vauth/spnego_gssapi.c:106,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/vauth/spnego_gssapi.c:107,1
    - Dst: Curl_auth_build_spn
      Src: /src/curl/lib/vauth/spnego_gssapi.c:108,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/spnego_gssapi.c:114,1
    - Dst: gss_import_name
      Src: /src/curl/lib/vauth/spnego_gssapi.c:117,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/vauth/spnego_gssapi.c:120,1
    - Dst: Curl_gss_log_error
      Src: /src/curl/lib/vauth/spnego_gssapi.c:121,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/spnego_gssapi.c:124,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/spnego_gssapi.c:129,1
    - Dst: curlx_base64_decode
      Src: /src/curl/lib/vauth/spnego_gssapi.c:135,1
    - Dst: infof
      Src: /src/curl/lib/vauth/spnego_gssapi.c:142,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vauth/spnego_gssapi.c:153,1
    - Dst: memset
      Src: /src/curl/lib/vauth/spnego_gssapi.c:154,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vauth/spnego_gssapi.c:155,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vauth/spnego_gssapi.c:156,1
    - Dst: Curl_gss_init_sec_context
      Src: /src/curl/lib/vauth/spnego_gssapi.c:162,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/spnego_gssapi.c:174,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/vauth/spnego_gssapi.c:177,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/spnego_gssapi.c:179,1
    - Dst: Curl_gss_log_error
      Src: /src/curl/lib/vauth/spnego_gssapi.c:181,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/spnego_gssapi.c:189,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/spnego_gssapi.c:196,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 6
    argNames:
    - data
    - creds
    - default_service
    - host
    - chlg64
    - nego
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - char*
    - char*
    - char*
    - struct negotiatedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 72
    functionDepth: 9
    functionLinenumber: 72
    functionLinenumberEnd: 201
    functionName: Curl_auth_decode_spnego_message
    functionSourceFile: /src/curl/lib/vauth/spnego_gssapi.c
    functionUses: 1
    functionsReached:
    - gss_import_name
    - curlx_safefree
    - strlen
    - Curl_gss_init_sec_context
    - curlx_dyn_len
    - Curl_creds_sasl_service
    - infof
    - curlx_dyn_ptr
    - Curl_gss_log_error
    - Curl_creds_has_sasl_service
    - Curl_auth_build_spn
    - curlx_free
    - memset
    - Curl_auth_cleanup_spnego
    - curlx_base64_decode
    - GSS_ERROR
    - gss_release_buffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_decode_spnego_message(struct Curl_easy *data,\n
      \                                        struct Curl_creds *creds,\n                                         const
      char *default_service,\n                                         const char
      *host,\n                                         const char *chlg64,\n                                         struct
      negotiatedata *nego)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/vauth/spnego_gssapi.c:226,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/spnego_gssapi.c:231,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/spnego_gssapi.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - nego
    - outptr
    - outlen
    argTypes:
    - struct negotiatedata*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 247
    functionName: Curl_auth_create_spnego_message
    functionSourceFile: /src/curl/lib/vauth/spnego_gssapi.c
    functionUses: 1
    functionsReached:
    - curlx_base64_encode
    - gss_release_buffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_spnego_message(struct negotiatedata *nego,\n
      \                                        char **outptr, size_t *outlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/vauth/spnego_gssapi.c:265,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/spnego_gssapi.c:272,1
    - Dst: gss_release_name
      Src: /src/curl/lib/vauth/spnego_gssapi.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - nego
    argTypes:
    - struct negotiatedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 289
    functionName: Curl_auth_cleanup_spnego
    functionSourceFile: /src/curl/lib/vauth/spnego_gssapi.c
    functionUses: 3
    functionsReached:
    - gss_release_name
    - Curl_gss_delete_sec_context
    - gss_release_buffer
    linkageType: ''
    returnType: void
    signature: void Curl_auth_cleanup_spnego(struct negotiatedata *nego)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: Curl_auth_is_gssapi_supported
    functionSourceFile: /src/curl/lib/vauth/krb5_gssapi.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_is_gssapi_supported(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/vauth/krb5_gssapi.c:91,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/vauth/krb5_gssapi.c:92,1
    - Dst: Curl_auth_build_spn
      Src: /src/curl/lib/vauth/krb5_gssapi.c:98,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/krb5_gssapi.c:104,1
    - Dst: gss_import_name
      Src: /src/curl/lib/vauth/krb5_gssapi.c:107,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/vauth/krb5_gssapi.c:109,1
    - Dst: Curl_gss_log_error
      Src: /src/curl/lib/vauth/krb5_gssapi.c:110,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/krb5_gssapi.c:113,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/krb5_gssapi.c:118,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/krb5_gssapi.c:122,1
    - Dst: infof
      Src: /src/curl/lib/vauth/krb5_gssapi.c:123,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/krb5_gssapi.c:126,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vauth/krb5_gssapi.c:126,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/krb5_gssapi.c:127,1
    - Dst: Curl_gss_init_sec_context
      Src: /src/curl/lib/vauth/krb5_gssapi.c:130,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/vauth/krb5_gssapi.c:141,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/krb5_gssapi.c:143,1
    - Dst: Curl_gss_log_error
      Src: /src/curl/lib/vauth/krb5_gssapi.c:145,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/vauth/krb5_gssapi.c:152,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/krb5_gssapi.c:153,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/krb5_gssapi.c:156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 8
    argNames:
    - data
    - creds
    - default_service
    - host
    - mutual_auth
    - chlg
    - krb5
    - out
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - char*
    - char*
    - bool
    - struct bufref*
    - struct kerberos5data*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 76
    functionDepth: 9
    functionLinenumber: 76
    functionLinenumberEnd: 159
    functionName: Curl_auth_create_gssapi_user_message
    functionSourceFile: /src/curl/lib/vauth/krb5_gssapi.c
    functionUses: 2
    functionsReached:
    - Curl_bufref_set
    - strlen
    - Curl_creds_sasl_service
    - Curl_bufref_len
    - infof
    - Curl_gss_log_error
    - Curl_creds_has_sasl_service
    - Curl_auth_build_spn
    - curlx_free
    - CURL_UNCONST
    - Curl_bufref_ptr
    - Curl_gss_init_sec_context
    - Curl_bufref_memdup0
    - gss_import_name
    - GSS_ERROR
    - gss_release_buffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_gssapi_user_message(struct Curl_easy *data,\n
      \                                             struct Curl_creds *creds,\n                                              const
      char *default_service,\n                                              const
      char *host,\n                                              const bool mutual_auth,\n
      \                                             const struct bufref *chlg,\n                                              struct
      kerberos5data *krb5,\n                                              struct bufref
      *out)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/krb5_gssapi.c:197,1
    - Dst: infof
      Src: /src/curl/lib/vauth/krb5_gssapi.c:198,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/krb5_gssapi.c:203,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vauth/krb5_gssapi.c:203,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/krb5_gssapi.c:204,1
    - Dst: gss_unwrap
      Src: /src/curl/lib/vauth/krb5_gssapi.c:207,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/vauth/krb5_gssapi.c:209,1
    - Dst: Curl_gss_log_error
      Src: /src/curl/lib/vauth/krb5_gssapi.c:210,1
    - Dst: infof
      Src: /src/curl/lib/vauth/krb5_gssapi.c:217,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/krb5_gssapi.c:218,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/krb5_gssapi.c:229,1
    - Dst: infof
      Src: /src/curl/lib/vauth/krb5_gssapi.c:233,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/krb5_gssapi.c:250,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/krb5_gssapi.c:251,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/krb5_gssapi.c:265,1
    - Dst: gss_wrap
      Src: /src/curl/lib/vauth/krb5_gssapi.c:272,1
    - Dst: GSS_ERROR
      Src: /src/curl/lib/vauth/krb5_gssapi.c:275,1
    - Dst: Curl_gss_log_error
      Src: /src/curl/lib/vauth/krb5_gssapi.c:276,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/krb5_gssapi.c:278,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/vauth/krb5_gssapi.c:283,1
    - Dst: gss_release_buffer
      Src: /src/curl/lib/vauth/krb5_gssapi.c:285,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/krb5_gssapi.c:288,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 5
    argNames:
    - data
    - authzid
    - chlg
    - krb5
    - out
    argTypes:
    - struct Curl_easy*
    - char*
    - struct bufref*
    - struct kerberos5data*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 291
    functionName: Curl_auth_create_gssapi_security_message
    functionSourceFile: /src/curl/lib/vauth/krb5_gssapi.c
    functionUses: 1
    functionsReached:
    - memcpy
    - gss_wrap
    - gss_unwrap
    - CURL_UNCONST
    - Curl_bufref_len
    - infof
    - Curl_gss_log_error
    - Curl_bufref_ptr
    - curlx_malloc
    - curlx_free
    - Curl_bufref_memdup0
    - strlen
    - GSS_ERROR
    - gss_release_buffer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy
      *data,\n                                                  const char *authzid,\n
      \                                                 const struct bufref *chlg,\n
      \                                                 struct kerberos5data *krb5,\n
      \                                                 struct bufref *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_gss_delete_sec_context
      Src: /src/curl/lib/vauth/krb5_gssapi.c:309,1
    - Dst: gss_release_name
      Src: /src/curl/lib/vauth/krb5_gssapi.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - krb5
    argTypes:
    - struct kerberos5data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 319
    functionName: Curl_auth_cleanup_gssapi
    functionSourceFile: /src/curl/lib/vauth/krb5_gssapi.c
    functionUses: 0
    functionsReached:
    - gss_release_name
    - Curl_gss_delete_sec_context
    linkageType: ''
    returnType: void
    signature: void Curl_auth_cleanup_gssapi(struct kerberos5data *krb5)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/vauth.c:56,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/vauth.c:58,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/vauth.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - service
    - host
    - realm
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: Curl_auth_build_spn
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 5
    functionsReached:
    - curl_maprintf
    linkageType: ''
    returnType: char
    signature: "char *Curl_auth_build_spn(const char *service, const char *host,\n
      \                         const char *realm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/vauth.c:82,1
    - Dst: curlx_convert_UTF8_to_tchar
      Src: /src/curl/lib/vauth/vauth.c:87,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/vauth.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - service
    - host
    - realm
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 66
    functionDepth: 7
    functionLinenumber: 66
    functionLinenumberEnd: 91
    functionName: Curl_auth_build_spn
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 5
    functionsReached:
    - curlx_free
    - curlx_convert_UTF8_to_tchar
    - curl_maprintf
    linkageType: ''
    returnType: TCHAR
    signature: "TCHAR *Curl_auth_build_spn(const char *service, const char *host,\n
      \                          const char *realm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/vauth/vauth.c:119,1
    - Dst: strpbrk
      Src: /src/curl/lib/vauth/vauth.c:121,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/vauth.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - creds
    argTypes:
    - struct Curl_creds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 134
    functionName: Curl_auth_user_contains_domain
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 1
    functionsReached:
    - strpbrk
    - strlen
    - Curl_creds_has_user
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_user_contains_domain(struct Curl_creds *creds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_allowed_to_origin
      Src: /src/curl/lib/vauth/vauth.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: Curl_auth_allowed_to_host
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 5
    functionsReached:
    - Curl_auth_allowed_to_origin
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_allowed_to_host(struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_peer_equal
      Src: /src/curl/lib/vauth/vauth.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - data
    - origin
    argTypes:
    - struct Curl_easy*
    - struct Curl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: Curl_auth_allowed_to_origin
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 2
    functionsReached:
    - Curl_peer_equal
    linkageType: ''
    returnType: bool
    signature: "bool Curl_auth_allowed_to_origin(struct Curl_easy *data,\n                                 struct
      Curl_peer *origin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/vauth.c:158,1
    - Dst: Curl_auth_cleanup_ntlm
      Src: /src/curl/lib/vauth/vauth.c:159,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/vauth.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: ntlm_conn_dtor
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_auth_cleanup_ntlm
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void ntlm_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vauth/vauth.c:166,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/vauth.c:168,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/vauth/vauth.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - proxy
    argTypes:
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: Curl_auth_ntlm_get
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 4
    functionsReached:
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_conn_meta_get
    linkageType: ''
    returnType: struct ntlmdata
    signature: struct ntlmdata *Curl_auth_ntlm_get(struct connectdata *conn, bool
      proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_remove
      Src: /src/curl/lib/vauth/vauth.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - proxy
    argTypes:
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: Curl_auth_ntlm_remove
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 1
    functionsReached:
    - Curl_conn_meta_remove
    linkageType: ''
    returnType: void
    signature: void Curl_auth_ntlm_remove(struct connectdata *conn, bool proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/vauth.c:188,1
    - Dst: Curl_auth_cleanup_gssapi
      Src: /src/curl/lib/vauth/vauth.c:189,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/vauth.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: krb5_conn_dtor
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_auth_cleanup_gssapi
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void krb5_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vauth/vauth.c:195,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/vauth.c:197,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/vauth/vauth.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: Curl_auth_krb5_get
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 2
    functionsReached:
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_conn_meta_get
    linkageType: ''
    returnType: struct kerberos5data
    signature: struct kerberos5data *Curl_auth_krb5_get(struct connectdata *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/vauth.c:212,1
    - Dst: Curl_auth_gsasl_cleanup
      Src: /src/curl/lib/vauth/vauth.c:213,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/vauth.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: gsasl_conn_dtor
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 0
    functionsReached:
    - Curl_auth_gsasl_cleanup
    - curlx_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void gsasl_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vauth/vauth.c:219,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/vauth.c:221,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/vauth/vauth.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 227
    functionName: Curl_auth_gsasl_get
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 2
    functionsReached:
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_conn_meta_get
    linkageType: ''
    returnType: struct gsasldata
    signature: struct gsasldata *Curl_auth_gsasl_get(struct connectdata *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/vauth.c:236,1
    - Dst: Curl_auth_cleanup_spnego
      Src: /src/curl/lib/vauth/vauth.c:237,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/vauth.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: nego_conn_dtor
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_auth_cleanup_spnego
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void nego_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vauth/vauth.c:244,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/vauth.c:246,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/vauth/vauth.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - proxy
    argTypes:
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: Curl_auth_nego_get
    functionSourceFile: /src/curl/lib/vauth/vauth.c
    functionUses: 3
    functionsReached:
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_conn_meta_get
    linkageType: ''
    returnType: struct negotiatedata
    signature: struct negotiatedata *Curl_auth_nego_get(struct connectdata *conn,
      bool proxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QuerySecurityPackageInfo
      Src: /src/curl/lib/vauth/ntlm_sspi.c:48,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/ntlm_sspi.c:49,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/ntlm_sspi.c:49,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/ntlm_sspi.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: Curl_auth_is_ntlm_supported
    functionSourceFile: /src/curl/lib/vauth/ntlm_sspi.c
    functionUses: 3
    functionsReached:
    - TEXT
    - FreeContextBuffer
    - QuerySecurityPackageInfo
    - CURL_UNCONST
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_is_ntlm_supported(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/vauth/ntlm_sspi.c:90,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/vauth/ntlm_sspi.c:91,1
    - Dst: Curl_auth_cleanup_ntlm
      Src: /src/curl/lib/vauth/ntlm_sspi.c:94,1
    - Dst: QuerySecurityPackageInfo
      Src: /src/curl/lib/vauth/ntlm_sspi.c:97,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/ntlm_sspi.c:98,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/ntlm_sspi.c:98,1
    - Dst: failf
      Src: /src/curl/lib/vauth/ntlm_sspi.c:101,1
    - Dst: FreeContextBuffer
      Src: /src/curl/lib/vauth/ntlm_sspi.c:108,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/ntlm_sspi.c:111,1
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/vauth/ntlm_sspi.c:115,1
    - Dst: Curl_create_sspi_identity
      Src: /src/curl/lib/vauth/ntlm_sspi.c:119,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/ntlm_sspi.c:132,1
    - Dst: AcquireCredentialsHandle
      Src: /src/curl/lib/vauth/ntlm_sspi.c:137,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vauth/ntlm_sspi.c:138,1
    - Dst: TEXT
      Src: /src/curl/lib/vauth/ntlm_sspi.c:138,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/ntlm_sspi.c:143,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vauth/ntlm_sspi.c:148,1
    - Dst: Curl_auth_build_spn
      Src: /src/curl/lib/vauth/ntlm_sspi.c:152,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/ntlm_sspi.c:162,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/vauth/ntlm_sspi.c:165,1
    - Dst: CompleteAuthToken
      Src: /src/curl/lib/vauth/ntlm_sspi.c:173,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/ntlm_sspi.c:180,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 6
    argNames:
    - data
    - creds
    - default_service
    - host
    - ntlm
    - out
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - char*
    - char*
    - struct ntlmdata*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 78
    functionDepth: 8
    functionLinenumber: 78
    functionLinenumberEnd: 182
    functionName: Curl_auth_create_ntlm_type1_message
    functionSourceFile: /src/curl/lib/vauth/ntlm_sspi.c
    functionUses: 3
    functionsReached:
    - curlx_safefree
    - Curl_bufref_set
    - Curl_auth_cleanup_ntlm
    - Curl_creds_sasl_service
    - CURL_UNCONST
    - CompleteAuthToken
    - Curl_creds_has_user
    - InitializeSecurityContext
    - Curl_create_sspi_identity
    - FreeContextBuffer
    - QuerySecurityPackageInfo
    - failf
    - AcquireCredentialsHandle
    - curlx_uztoul
    - curlx_malloc
    - Curl_creds_has_sasl_service
    - curlx_calloc
    - Curl_auth_build_spn
    - TEXT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_ntlm_type1_message(struct Curl_easy *data,\n
      \                                            struct Curl_creds *creds,\n                                             const
      char *default_service,\n                                             const char
      *host,\n                                             struct ntlmdata *ntlm,\n
      \                                            struct bufref *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/ntlm_sspi.c:202,1
    - Dst: infof
      Src: /src/curl/lib/vauth/ntlm_sspi.c:203,1
    - Dst: curlx_memdup0
      Src: /src/curl/lib/vauth/ntlm_sspi.c:208,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vauth/ntlm_sspi.c:208,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/ntlm_sspi.c:209,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/ntlm_sspi.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - data
    - type2ref
    - ntlm
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    - struct ntlmdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 215
    functionName: Curl_auth_decode_ntlm_type2_message
    functionSourceFile: /src/curl/lib/vauth/ntlm_sspi.c
    functionUses: 2
    functionsReached:
    - Curl_bufref_ptr
    - curlx_memdup0
    - Curl_bufref_len
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_decode_ntlm_type2_message(struct Curl_easy *data,\n
      \                                            const struct bufref *type2ref,\n
      \                                            struct ntlmdata *ntlm)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/ntlm_sspi.c:254,1
    - Dst: QueryContextAttributes
      Src: /src/curl/lib/vauth/ntlm_sspi.c:268,1
    - Dst: curlx_uztoul
      Src: /src/curl/lib/vauth/ntlm_sspi.c:288,1
    - Dst: InitializeSecurityContext
      Src: /src/curl/lib/vauth/ntlm_sspi.c:291,1
    - Dst: infof
      Src: /src/curl/lib/vauth/ntlm_sspi.c:300,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/vauth/ntlm_sspi.c:310,1
    - Dst: Curl_auth_cleanup_ntlm
      Src: /src/curl/lib/vauth/ntlm_sspi.c:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 4
    argNames:
    - data
    - creds
    - ntlm
    - out
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - struct ntlmdata*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 313
    functionName: Curl_auth_create_ntlm_type3_message
    functionSourceFile: /src/curl/lib/vauth/ntlm_sspi.c
    functionUses: 2
    functionsReached:
    - curlx_uztoul
    - Curl_auth_cleanup_ntlm
    - infof
    - Curl_bufref_memdup0
    - QueryContextAttributes
    - InitializeSecurityContext
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,\n
      \                                            struct Curl_creds *creds,\n                                             struct
      ntlmdata *ntlm,\n                                             struct bufref
      *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DeleteSecurityContext
      Src: /src/curl/lib/vauth/ntlm_sspi.c:329,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/ntlm_sspi.c:330,1
    - Dst: FreeCredentialsHandle
      Src: /src/curl/lib/vauth/ntlm_sspi.c:335,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/ntlm_sspi.c:336,1
    - Dst: Curl_sspi_free_identity
      Src: /src/curl/lib/vauth/ntlm_sspi.c:340,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/ntlm_sspi.c:344,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/ntlm_sspi.c:345,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/ntlm_sspi.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ntlm
    argTypes:
    - struct ntlmdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 351
    functionName: Curl_auth_cleanup_ntlm
    functionSourceFile: /src/curl/lib/vauth/ntlm_sspi.c
    functionUses: 3
    functionsReached:
    - curlx_safefree
    - Curl_sspi_free_identity
    - DeleteSecurityContext
    - FreeCredentialsHandle
    linkageType: ''
    returnType: void
    signature: void Curl_auth_cleanup_ntlm(struct ntlmdata *ntlm)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 4
    argNames:
    - str
    - value
    - content
    - endptr
    argTypes:
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 130
    functionName: Curl_auth_digest_get_pair
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_auth_digest_get_pair(const char *str, char *value, char
      *content,\n                               const char **endptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vauth/digest.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 7
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: auth_digest_md5_to_ascii
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: "void auth_digest_md5_to_ascii(\n  const unsigned char *source, /*
      16 bytes */\n  unsigned char *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vauth/digest.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 7
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: auth_digest_sha256_to_ascii
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: "void auth_digest_sha256_to_ascii(\n  const unsigned char *source,
      /* 32 bytes */\n  unsigned char *dest)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vauth/digest.c:157,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vauth/digest.c:159,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vauth/digest.c:163,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vauth/digest.c:165,1
    - Dst: Curl_hexbyte
      Src: /src/curl/lib/vauth/digest.c:169,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vauth/digest.c:170,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vauth/digest.c:173,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vauth/digest.c:178,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 179
    functionName: auth_digest_string_quoted
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_addn
    - curlx_strdup
    - curlx_dyn_ptr
    - Curl_hexbyte
    linkageType: ''
    returnType: char
    signature: char *auth_digest_string_quoted(const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/vauth/digest.c:195,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/vauth/digest.c:197,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/vauth/digest.c:198,1
    - Dst: curlx_str_quotedword
      Src: /src/curl/lib/vauth/digest.c:200,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/vauth/digest.c:203,1
    - Dst: curlx_str_cmp
      Src: /src/curl/lib/vauth/digest.c:207,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/vauth/digest.c:209,1
    - Dst: curlx_str
      Src: /src/curl/lib/vauth/digest.c:210,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/vauth/digest.c:227,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - chlg
    - key
    - buf
    - buflen
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 235
    functionName: auth_digest_get_key_value
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 0
    functionsReached:
    - curlx_str_single
    - curlx_str_until
    - curlx_str_quotedword
    - curlx_str_cmp
    - curlx_str
    - curlx_str_passblanks
    - curlx_strlen
    linkageType: ''
    returnType: bool
    signature: "bool auth_digest_get_key_value(const char *chlg, const char *key,\n
      \                                     char *buf, size_t buflen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_until
      Src: /src/curl/lib/vauth/digest.c:243,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/vauth/digest.c:244,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/vauth/digest.c:246,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/vauth/digest.c:248,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/vauth/digest.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - options
    - value
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 253
    functionName: auth_digest_get_qop_values
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 0
    functionsReached:
    - curlx_str_until
    - curlx_str_casecompare
    - curlx_str_single
    linkageType: ''
    returnType: void
    signature: void auth_digest_get_qop_values(const char *options, int *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vauth/digest.c:281,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/digest.c:284,1
    - Dst: auth_digest_get_key_value
      Src: /src/curl/lib/vauth/digest.c:288,1
    - Dst: auth_digest_get_key_value
      Src: /src/curl/lib/vauth/digest.c:292,1
    - Dst: auth_digest_get_key_value
      Src: /src/curl/lib/vauth/digest.c:298,1
    - Dst: auth_digest_get_key_value
      Src: /src/curl/lib/vauth/digest.c:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 9
    argNames:
    - chlgref
    - nonce
    - nlen
    - realm
    - rlen
    - alg
    - alen
    - qop
    - qlen
    argTypes:
    - struct bufref*
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 306
    functionName: auth_decode_digest_md5_message
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 0
    functionsReached:
    - Curl_bufref_ptr
    - auth_digest_get_key_value
    - Curl_bufref_len
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode auth_decode_digest_md5_message(const struct bufref *chlgref,\n
      \                                              char *nonce, size_t nlen,\n                                               char
      *realm, size_t rlen,\n                                               char *alg,
      size_t alen,\n                                               char *qop, size_t
      qlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: Curl_auth_is_digest_supported
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_is_digest_supported(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/vauth/digest.c:345,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/vauth/digest.c:346,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vauth/digest.c:349,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vauth/digest.c:350,1
    - Dst: auth_decode_digest_md5_message
      Src: /src/curl/lib/vauth/digest.c:371,1
    - Dst: strcmp
      Src: /src/curl/lib/vauth/digest.c:382,1
    - Dst: auth_digest_get_qop_values
      Src: /src/curl/lib/vauth/digest.c:386,1
    - Dst: Curl_rand_hex
      Src: /src/curl/lib/vauth/digest.c:393,1
    - Dst: Curl_MD5_init
      Src: /src/curl/lib/vauth/digest.c:398,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:402,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:403,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:403,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:404,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:405,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:406,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:406,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:407,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:408,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:409,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:409,1
    - Dst: Curl_MD5_final
      Src: /src/curl/lib/vauth/digest.c:410,1
    - Dst: Curl_MD5_init
      Src: /src/curl/lib/vauth/digest.c:412,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:416,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:417,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:418,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:419,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:419,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:420,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:421,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:422,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:422,1
    - Dst: Curl_MD5_final
      Src: /src/curl/lib/vauth/digest.c:423,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vauth/digest.c:427,1
    - Dst: Curl_auth_build_spn
      Src: /src/curl/lib/vauth/digest.c:430,1
    - Dst: Curl_MD5_init
      Src: /src/curl/lib/vauth/digest.c:435,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:437,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:442,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:443,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:443,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:444,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:445,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:446,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:446,1
    - Dst: Curl_MD5_final
      Src: /src/curl/lib/vauth/digest.c:447,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vauth/digest.c:450,1
    - Dst: Curl_MD5_init
      Src: /src/curl/lib/vauth/digest.c:453,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:455,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:460,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:461,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:462,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:463,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:463,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:464,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:466,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:467,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:467,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:468,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:469,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:470,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:470,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:471,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:472,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vauth/digest.c:473,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:473,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:474,1
    - Dst: Curl_MD5_update
      Src: /src/curl/lib/vauth/digest.c:476,1
    - Dst: Curl_MD5_final
      Src: /src/curl/lib/vauth/digest.c:477,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vauth/digest.c:480,1
    - Dst: auth_digest_string_quoted
      Src: /src/curl/lib/vauth/digest.c:484,1
    - Dst: auth_digest_string_quoted
      Src: /src/curl/lib/vauth/digest.c:485,1
    - Dst: auth_digest_string_quoted
      Src: /src/curl/lib/vauth/digest.c:486,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/digest.c:489,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:495,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:496,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:497,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:498,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/digest.c:503,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:503,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 77
    argCount: 5
    argNames:
    - data
    - chlg
    - creds
    - default_service
    - out
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    - struct Curl_creds*
    - char*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 339
    functionDepth: 8
    functionLinenumber: 339
    functionLinenumberEnd: 505
    functionName: Curl_auth_create_digest_md5_message
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 1
    functionsReached:
    - Curl_MD5_init
    - curl_msnprintf
    - Curl_bufref_set
    - Curl_creds_sasl_service
    - strcmp
    - Curl_creds_user
    - Curl_rand_hex
    - Curl_creds_passwd
    - Curl_MD5_final
    - curl_maprintf
    - curlx_uztoui
    - auth_digest_get_qop_values
    - curlx_free
    - Curl_creds_has_sasl_service
    - Curl_auth_build_spn
    - auth_decode_digest_md5_message
    - Curl_MD5_update
    - auth_digest_string_quoted
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_digest_md5_message(struct Curl_easy *data,\n
      \                                            const struct bufref *chlg,\n                                             struct
      Curl_creds *creds,\n                                             const char
      *default_service,\n                                             struct bufref
      *out)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: Curl_auth_digest_cleanup
      Src: /src/curl/lib/vauth/digest.c:530,1
    - Dst: ISBLANK
      Src: /src/curl/lib/vauth/digest.c:537,1
    - Dst: Curl_auth_digest_get_pair
      Src: /src/curl/lib/vauth/digest.c:541,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:542,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:543,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vauth/digest.c:544,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:548,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:549,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:554,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:555,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vauth/digest.c:556,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:560,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:561,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vauth/digest.c:562,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:566,1
    - Dst: ISBLANK
      Src: /src/curl/lib/vauth/digest.c:572,1
    - Dst: curlx_str_until
      Src: /src/curl/lib/vauth/digest.c:574,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/vauth/digest.c:575,1
    - Dst: curlx_str_casecompare
      Src: /src/curl/lib/vauth/digest.c:577,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/vauth/digest.c:580,1
    - Dst: ISBLANK
      Src: /src/curl/lib/vauth/digest.c:582,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:588,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vauth/digest.c:589,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:594,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vauth/digest.c:595,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:600,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:601,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vauth/digest.c:602,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:606,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:608,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:610,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:612,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:614,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:621,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:631,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:632,1
    - Dst: ISBLANK
      Src: /src/curl/lib/vauth/digest.c:644,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 101
    argCount: 2
    argNames:
    - chlg
    - digest
    argTypes:
    - char*
    - struct digestdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 667
    functionName: Curl_auth_decode_digest_http_message
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 1
    functionsReached:
    - curlx_str_single
    - curlx_str_until
    - curlx_str_casecompare
    - curlx_strdup
    - curlx_free
    - curl_strequal
    - Curl_auth_digest_get_pair
    - Curl_auth_digest_cleanup
    - ISBLANK
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_decode_digest_http_message(const char *chlg,\n
      \                                             struct digestdata *digest)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vauth/digest.c:699,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vauth/digest.c:700,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vauth/digest.c:716,1
    - Dst: memset
      Src: /src/curl/lib/vauth/digest.c:718,1
    - Dst: Curl_rand_bytes
      Src: /src/curl/lib/vauth/digest.c:724,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/vauth/digest.c:731,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/digest.c:740,1
    - Dst: hash
      Src: /src/curl/lib/vauth/digest.c:747,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:747,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:748,1
    - Dst: convert_to_ascii
      Src: /src/curl/lib/vauth/digest.c:751,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/digest.c:765,1
    - Dst: hash
      Src: /src/curl/lib/vauth/digest.c:772,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:772,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:773,1
    - Dst: convert_to_ascii
      Src: /src/curl/lib/vauth/digest.c:776,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/digest.c:780,1
    - Dst: hash
      Src: /src/curl/lib/vauth/digest.c:786,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:786,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:787,1
    - Dst: convert_to_ascii
      Src: /src/curl/lib/vauth/digest.c:790,1
    - Dst: auth_digest_string_quoted
      Src: /src/curl/lib/vauth/digest.c:806,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/digest.c:812,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vauth/digest.c:818,1
    - Dst: hash
      Src: /src/curl/lib/vauth/digest.c:823,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:825,1
    - Dst: convert_to_ascii
      Src: /src/curl/lib/vauth/digest.c:828,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/digest.c:830,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:831,1
    - Dst: hash
      Src: /src/curl/lib/vauth/digest.c:839,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:839,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:840,1
    - Dst: convert_to_ascii
      Src: /src/curl/lib/vauth/digest.c:843,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/digest.c:846,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/digest.c:849,1
    - Dst: hash
      Src: /src/curl/lib/vauth/digest.c:856,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/digest.c:856,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:857,1
    - Dst: convert_to_ascii
      Src: /src/curl/lib/vauth/digest.c:860,1
    - Dst: auth_digest_string_quoted
      Src: /src/curl/lib/vauth/digest.c:875,1
    - Dst: auth_digest_string_quoted
      Src: /src/curl/lib/vauth/digest.c:881,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vauth/digest.c:883,1
    - Dst: auth_digest_string_quoted
      Src: /src/curl/lib/vauth/digest.c:892,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vauth/digest.c:899,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vauth/digest.c:920,1
    - Dst: auth_digest_string_quoted
      Src: /src/curl/lib/vauth/digest.c:937,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vauth/digest.c:942,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:943,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vauth/digest.c:950,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vauth/digest.c:957,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vauth/digest.c:963,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vauth/digest.c:964,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:968,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:969,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:970,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/digest.c:971,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vauth/digest.c:973,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 170
    argCount: 7
    argNames:
    - data
    - creds
    - request
    - uripath
    - digest
    - outptr
    - outlen
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - unsigned char*
    - unsigned char*
    - struct digestdata*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 688
    functionDepth: 7
    functionLinenumber: 688
    functionLinenumberEnd: 975
    functionName: auth_create_digest_http_message
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - curlx_dyn_add
    - curlx_dyn_ptr
    - Curl_creds_user
    - curlx_dyn_addf
    - hash
    - convert_to_ascii
    - Curl_creds_passwd
    - curl_maprintf
    - curlx_dyn_free
    - curlx_base64_encode
    - curlx_dyn_len
    - curlx_malloc
    - curlx_free
    - curl_strequal
    - memset
    - Curl_rand_bytes
    - auth_digest_string_quoted
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode auth_create_digest_http_message(\n  struct Curl_easy *data,\n
      \ struct Curl_creds *creds,\n  const unsigned char *request,\n  const unsigned
      char *uripath,\n  struct digestdata *digest,\n  char **outptr, size_t *outlen,\n
      \ void (*convert_to_ascii)(const unsigned char *, unsigned char *),\n  CURLcode
      (*hash)(unsigned char *, const unsigned char *, const size_t))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: auth_create_digest_http_message
      Src: /src/curl/lib/vauth/digest.c:1005,1
    - Dst: auth_create_digest_http_message
      Src: /src/curl/lib/vauth/digest.c:1012,1
    - Dst: auth_create_digest_http_message
      Src: /src/curl/lib/vauth/digest.c:1019,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 7
    argNames:
    - data
    - creds
    - request
    - uripath
    - digest
    - outptr
    - outlen
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - unsigned char*
    - unsigned char*
    - struct digestdata*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 997
    functionDepth: 8
    functionLinenumber: 997
    functionLinenumberEnd: 1028
    functionName: Curl_auth_create_digest_http_message
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 1
    functionsReached:
    - auth_create_digest_http_message
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_digest_http_message(struct Curl_easy *data,\n
      \                                             struct Curl_creds *creds,\n                                              const
      unsigned char *request,\n                                              const
      unsigned char *uripath,\n                                              struct
      digestdata *digest,\n                                              char **outptr,
      size_t *outlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest.c:1042,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest.c:1043,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest.c:1044,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest.c:1045,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest.c:1046,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/digest.c:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - digest
    argTypes:
    - struct digestdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1053
    functionName: Curl_auth_digest_cleanup
    functionSourceFile: /src/curl/lib/vauth/digest.c
    functionUses: 6
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void Curl_auth_digest_cleanup(struct digestdata *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: DEBUG_OUT
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_OUT(x)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:165,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:167,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:169,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:171,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:173,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:175,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:177,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:179,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:181,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:183,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:185,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:187,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:189,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:191,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:193,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:195,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:197,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:199,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:201,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:203,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:205,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:207,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:209,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:211,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:213,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:215,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:217,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:219,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:221,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:223,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:225,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 63
    argCount: 2
    argNames:
    - handle
    - flags
    argTypes:
    - FILE*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 226
    functionName: ntlm_print_flags
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void ntlm_print_flags(FILE *handle, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:234,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - handle
    - buf
    - len
    argTypes:
    - FILE*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 6
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: ntlm_print_hex
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void ntlm_print_hex(FILE *handle, const char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: DEBUG_OUT
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_OUT(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_uptr
      Src: /src/curl/lib/vauth/ntlm.c:262,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/ntlm.c:263,1
    - Dst: Curl_read16_le
      Src: /src/curl/lib/vauth/ntlm.c:266,1
    - Dst: Curl_read32_le
      Src: /src/curl/lib/vauth/ntlm.c:267,1
    - Dst: infof
      Src: /src/curl/lib/vauth/ntlm.c:272,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/ntlm.c:277,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/vauth/ntlm.c:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - data
    - type2ref
    - ntlm
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    - struct ntlmdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 288
    functionName: ntlm_decode_type2_target
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 0
    functionsReached:
    - Curl_read16_le
    - curlx_memdup
    - Curl_bufref_len
    - infof
    - curlx_free
    - Curl_bufref_uptr
    - Curl_read32_le
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ntlm_decode_type2_target(struct Curl_easy *data,\n                                         const
      struct bufref *type2ref,\n                                         struct ntlmdata
      *ntlm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: Curl_auth_is_ntlm_supported
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curl_auth_is_ntlm_supported(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufref_uptr
      Src: /src/curl/lib/vauth/ntlm.c:358,1
    - Dst: Curl_bufref_len
      Src: /src/curl/lib/vauth/ntlm.c:359,1
    - Dst: memcmp
      Src: /src/curl/lib/vauth/ntlm.c:364,1
    - Dst: memcmp
      Src: /src/curl/lib/vauth/ntlm.c:365,1
    - Dst: infof
      Src: /src/curl/lib/vauth/ntlm.c:367,1
    - Dst: Curl_read32_le
      Src: /src/curl/lib/vauth/ntlm.c:371,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/ntlm.c:372,1
    - Dst: ntlm_decode_type2_target
      Src: /src/curl/lib/vauth/ntlm.c:375,1
    - Dst: infof
      Src: /src/curl/lib/vauth/ntlm.c:377,1
    - Dst: DEBUG_OUT
      Src: /src/curl/lib/vauth/ntlm.c:382,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:383,1
    - Dst: ntlm_print_flags
      Src: /src/curl/lib/vauth/ntlm.c:384,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:385,1
    - Dst: ntlm_print_hex
      Src: /src/curl/lib/vauth/ntlm.c:386,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:387,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - data
    - type2ref
    - ntlm
    argTypes:
    - struct Curl_easy*
    - struct bufref*
    - struct ntlmdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 335
    functionDepth: 7
    functionLinenumber: 335
    functionLinenumberEnd: 392
    functionName: Curl_auth_decode_ntlm_type2_message
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 2
    functionsReached:
    - memcpy
    - ntlm_decode_type2_target
    - curl_mfprintf
    - memcmp
    - Curl_bufref_len
    - infof
    - DEBUG_OUT
    - ntlm_print_hex
    - Curl_bufref_uptr
    - ntlm_print_flags
    - Curl_read32_le
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_decode_ntlm_type2_message(struct Curl_easy *data,\n
      \                                            const struct bufref *type2ref,\n
      \                                            struct ntlmdata *ntlm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - src
    - length
    argTypes:
    - unsigned char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: unicodecpy
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unicodecpy(unsigned char *dest, const char *src, size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_has_sasl_service
      Src: /src/curl/lib/vauth/ntlm.c:444,1
    - Dst: Curl_creds_sasl_service
      Src: /src/curl/lib/vauth/ntlm.c:445,1
    - Dst: Curl_auth_cleanup_ntlm
      Src: /src/curl/lib/vauth/ntlm.c:462,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vauth/ntlm.c:464,1
    - Dst: LONGQUARTET
      Src: /src/curl/lib/vauth/ntlm.c:480,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:485,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:486,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:487,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:489,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:490,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:491,1
    - Dst: DEBUG_OUT
      Src: /src/curl/lib/vauth/ntlm.c:502,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:503,1
    - Dst: LONGQUARTET
      Src: /src/curl/lib/vauth/ntlm.c:505,1
    - Dst: ntlm_print_flags
      Src: /src/curl/lib/vauth/ntlm.c:515,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:521,1
    - Dst: Curl_bufref_set
      Src: /src/curl/lib/vauth/ntlm.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 6
    argNames:
    - data
    - creds
    - default_service
    - host
    - ntlm
    - out
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - char*
    - char*
    - struct ntlmdata*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 423
    functionDepth: 7
    functionLinenumber: 423
    functionLinenumberEnd: 526
    functionName: Curl_auth_create_ntlm_type1_message
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 3
    functionsReached:
    - curl_maprintf
    - curl_mfprintf
    - Curl_bufref_set
    - LONGQUARTET
    - Curl_auth_cleanup_ntlm
    - Curl_creds_sasl_service
    - DEBUG_OUT
    - Curl_creds_has_sasl_service
    - SHORTPAIR
    - ntlm_print_flags
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_ntlm_type1_message(struct Curl_easy *data,\n
      \                                            struct Curl_creds *creds,\n                                             const
      char *default_service,\n                                             const char
      *host,\n                                             struct ntlmdata *ntlm,\n
      \                                            struct bufref *out)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vauth/ntlm.c:581,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vauth/ntlm.c:582,1
    - Dst: memset
      Src: /src/curl/lib/vauth/ntlm.c:592,1
    - Dst: memset
      Src: /src/curl/lib/vauth/ntlm.c:593,1
    - Dst: strchr
      Src: /src/curl/lib/vauth/ntlm.c:594,1
    - Dst: strchr
      Src: /src/curl/lib/vauth/ntlm.c:596,1
    - Dst: strlen
      Src: /src/curl/lib/vauth/ntlm.c:606,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vauth/ntlm.c:618,1
    - Dst: Curl_ntlm_core_mk_nt_hash
      Src: /src/curl/lib/vauth/ntlm.c:622,1
    - Dst: Curl_ntlm_core_mk_ntlmv2_hash
      Src: /src/curl/lib/vauth/ntlm.c:626,1
    - Dst: Curl_ntlm_core_mk_lmv2_resp
      Src: /src/curl/lib/vauth/ntlm.c:632,1
    - Dst: Curl_ntlm_core_mk_ntlmv2_resp
      Src: /src/curl/lib/vauth/ntlm.c:638,1
    - Dst: Curl_ntlm_core_mk_nt_hash
      Src: /src/curl/lib/vauth/ntlm.c:652,1
    - Dst: Curl_ntlm_core_lm_resp
      Src: /src/curl/lib/vauth/ntlm.c:656,1
    - Dst: Curl_ntlm_core_mk_lm_hash
      Src: /src/curl/lib/vauth/ntlm.c:658,1
    - Dst: Curl_ntlm_core_lm_resp
      Src: /src/curl/lib/vauth/ntlm.c:662,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vauth/ntlm.c:683,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:729,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:731,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:732,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:735,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:736,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:737,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:740,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:741,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:742,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:745,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:746,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:747,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:750,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:751,1
    - Dst: SHORTPAIR
      Src: /src/curl/lib/vauth/ntlm.c:752,1
    - Dst: LONGQUARTET
      Src: /src/curl/lib/vauth/ntlm.c:760,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/ntlm.c:762,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/ntlm.c:763,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/ntlm.c:767,1
    - Dst: DEBUG_OUT
      Src: /src/curl/lib/vauth/ntlm.c:771,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:772,1
    - Dst: ntlm_print_hex
      Src: /src/curl/lib/vauth/ntlm.c:773,1
    - Dst: failf
      Src: /src/curl/lib/vauth/ntlm.c:778,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/ntlm.c:782,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/ntlm.c:783,1
    - Dst: DEBUG_OUT
      Src: /src/curl/lib/vauth/ntlm.c:786,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:787,1
    - Dst: ntlm_print_hex
      Src: /src/curl/lib/vauth/ntlm.c:788,1
    - Dst: DEBUG_OUT
      Src: /src/curl/lib/vauth/ntlm.c:791,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:792,1
    - Dst: LONGQUARTET
      Src: /src/curl/lib/vauth/ntlm.c:793,1
    - Dst: ntlm_print_flags
      Src: /src/curl/lib/vauth/ntlm.c:794,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vauth/ntlm.c:795,1
    - Dst: failf
      Src: /src/curl/lib/vauth/ntlm.c:801,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/ntlm.c:806,1
    - Dst: unicodecpy
      Src: /src/curl/lib/vauth/ntlm.c:808,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/ntlm.c:810,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/ntlm.c:814,1
    - Dst: unicodecpy
      Src: /src/curl/lib/vauth/ntlm.c:816,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/ntlm.c:818,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vauth/ntlm.c:822,1
    - Dst: unicodecpy
      Src: /src/curl/lib/vauth/ntlm.c:824,1
    - Dst: memcpy
      Src: /src/curl/lib/vauth/ntlm.c:826,1
    - Dst: Curl_bufref_memdup0
      Src: /src/curl/lib/vauth/ntlm.c:831,1
    - Dst: curlx_free
      Src: /src/curl/lib/vauth/ntlm.c:834,1
    - Dst: Curl_auth_cleanup_ntlm
      Src: /src/curl/lib/vauth/ntlm.c:836,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 108
    argCount: 4
    argNames:
    - data
    - creds
    - ntlm
    - out
    argTypes:
    - struct Curl_easy*
    - struct Curl_creds*
    - struct ntlmdata*
    - struct bufref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 544
    functionDepth: 8
    functionLinenumber: 544
    functionLinenumberEnd: 839
    functionName: Curl_auth_create_ntlm_type3_message
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 2
    functionsReached:
    - curl_msnprintf
    - Curl_ntlm_core_mk_lm_hash
    - DEBUGASSERT
    - Curl_auth_cleanup_ntlm
    - DEBUG_OUT
    - Curl_creds_user
    - unicodecpy
    - Curl_creds_passwd
    - memcpy
    - ntlm_print_hex
    - SHORTPAIR
    - Curl_ntlm_core_mk_ntlmv2_resp
    - Curl_ntlm_core_mk_lmv2_resp
    - Curl_ntlm_core_mk_ntlmv2_hash
    - Curl_rand
    - failf
    - curlx_free
    - Curl_bufref_memdup0
    - memset
    - curl_mfprintf
    - LONGQUARTET
    - Curl_ntlm_core_mk_nt_hash
    - Curl_ntlm_core_lm_resp
    - ntlm_print_flags
    - strchr
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,\n
      \                                            struct Curl_creds *creds,\n                                             struct
      ntlmdata *ntlm,\n                                             struct bufref
      *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/vauth/ntlm.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ntlm
    argTypes:
    - struct ntlmdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 858
    functionName: Curl_auth_cleanup_ntlm
    functionSourceFile: /src/curl/lib/vauth/ntlm.c
    functionUses: 5
    functionsReached:
    - curlx_safefree
    linkageType: ''
    returnType: void
    signature: void Curl_auth_cleanup_ntlm(struct ntlmdata *ntlm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: Curl_ssh_statename
    functionSourceFile: /src/curl/lib/vssh/ssh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssh_statename(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: myssh_to
    functionSourceFile: /src/curl/lib/vssh/ssh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: myssh_to(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: Curl_ssh_init
    functionSourceFile: /src/curl/lib/vssh/ssh.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_ssh_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/vssh.c:100,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/vssh/vssh.c:100,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/vssh/vssh.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - sshstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 102
    functionName: Curl_ssh_statename
    functionSourceFile: /src/curl/lib/vssh/vssh.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - CURL_ARRAYSIZE
    linkageType: ''
    returnType: char
    signature: char *Curl_ssh_statename(sshstate state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/vssh.c:115,1
    - Dst: Curl_ssh_statename
      Src: /src/curl/lib/vssh/vssh.c:116,1
    - Dst: Curl_ssh_statename
      Src: /src/curl/lib/vssh/vssh.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - data
    - sshc
    - nowstate
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - sshstate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: Curl_ssh_set_state
    functionSourceFile: /src/curl/lib/vssh/vssh.c
    functionUses: 0
    functionsReached:
    - Curl_ssh_statename
    - CURL_TRC_SSH
    linkageType: ''
    returnType: void
    signature: "void Curl_ssh_set_state(struct Curl_easy *data,\n                        struct
      ssh_conn *sshc,\n                        sshstate nowstate)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_urldecode
      Src: /src/curl/lib/vssh/vssh.c:137,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vssh/vssh.c:143,1
    - Dst: memcmp
      Src: /src/curl/lib/vssh/vssh.c:147,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vssh/vssh.c:149,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/vssh.c:150,1
    - Dst: strcmp
      Src: /src/curl/lib/vssh/vssh.c:155,1
    - Dst: memcmp
      Src: /src/curl/lib/vssh/vssh.c:156,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vssh/vssh.c:157,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/vssh.c:158,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vssh/vssh.c:166,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vssh/vssh.c:167,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vssh/vssh.c:171,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/vssh.c:173,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vssh/vssh.c:178,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/vssh.c:179,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vssh/vssh.c:185,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/vssh.c:186,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vssh/vssh.c:189,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/vssh.c:193,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 3
    argNames:
    - data
    - homedir
    - path
    argTypes:
    - struct Curl_easy*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 196
    functionName: Curl_getworkingpath
    functionSourceFile: /src/curl/lib/vssh/vssh.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - Curl_urldecode
    - curlx_dyn_addn
    - curlx_dyn_add
    - DEBUGASSERT
    - memcmp
    - curlx_dyn_len
    - curlx_dyn_ptr
    - curlx_free
    - strcmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_getworkingpath(struct Curl_easy *data,\n                             const
      char *homedir, /* when SFTP is used */\n                             char **path)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/vssh.c:206,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vssh/vssh.c:212,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/vssh/vssh.c:215,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vssh/vssh.c:231,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vssh/vssh.c:238,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vssh/vssh.c:247,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vssh/vssh.c:249,1
    - Dst: curlx_str_word
      Src: /src/curl/lib/vssh/vssh.c:256,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vssh/vssh.c:259,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vssh/vssh.c:268,1
    - Dst: curlx_str
      Src: /src/curl/lib/vssh/vssh.c:268,1
    - Dst: curlx_strlen
      Src: /src/curl/lib/vssh/vssh.c:268,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/vssh/vssh.c:274,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vssh/vssh.c:279,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vssh/vssh.c:283,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 3
    argNames:
    - cpp
    - path
    - homedir
    argTypes:
    - char**
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 285
    functionName: Curl_get_pathname
    functionSourceFile: /src/curl/lib/vssh/vssh.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_init
    - curlx_str_word
    - curlx_dyn_addn
    - DEBUGASSERT
    - curlx_dyn_add
    - curlx_dyn_free
    - curlx_str
    - curlx_dyn_len
    - curlx_str_passblanks
    - curlx_dyn_ptr
    - curlx_strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_get_pathname(const char **cpp, char **path, const char
      *homedir)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_number
      Src: /src/curl/lib/vssh/vssh.c:293,1
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/vssh/vssh.c:296,1
    - Dst: curlx_str_single
      Src: /src/curl/lib/vssh/vssh.c:297,1
    - Dst: curlx_str_numblanks
      Src: /src/curl/lib/vssh/vssh.c:299,1
    - Dst: failf
      Src: /src/curl/lib/vssh/vssh.c:314,1
    - Dst: failf
      Src: /src/curl/lib/vssh/vssh.c:322,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 5
    argNames:
    - data
    - range
    - filesize
    - startp
    - sizep
    argTypes:
    - struct Curl_easy*
    - char*
    - curl_off_t
    - curl_off_t*
    - curl_off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 331
    functionName: Curl_ssh_range
    functionSourceFile: /src/curl/lib/vssh/vssh.c
    functionUses: 1
    functionsReached:
    - curlx_str_single
    - failf
    - curlx_str_number
    - curlx_str_passblanks
    - curlx_str_numblanks
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_ssh_range(struct Curl_easy *data,\n                        const
      char *range, curl_off_t filesize,\n                        curl_off_t *startp,
      curl_off_t *sizep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: SSH_STRING_FREE_CHAR
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSH_STRING_FREE_CHAR(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 110
    functionName: sftp_error_to_CURLE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode sftp_error_to_CURLE(int err)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: ssh_get_server_publickey
      Src: /src/curl/lib/vssh/libssh.c:142,1
    - Dst: ssh_get_publickey_hash
      Src: /src/curl/lib/vssh/libssh.c:155,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:158,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/vssh/libssh.c:163,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:169,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:186,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:187,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh.c:190,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh.c:195,1
    - Dst: ssh_get_publickey_hash
      Src: /src/curl/lib/vssh/libssh.c:206,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:209,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vssh/libssh.c:215,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:217,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vssh/libssh.c:219,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:220,1
    - Dst: ssh_session_get_known_hosts_entry
      Src: /src/curl/lib/vssh/libssh.c:234,1
    - Dst: ssh_pki_export_pubkey_base64
      Src: /src/curl/lib/vssh/libssh.c:240,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:246,1
    - Dst: ssh_key_type
      Src: /src/curl/lib/vssh/libssh.c:248,1
    - Dst: ssh_pki_export_pubkey_base64
      Src: /src/curl/lib/vssh/libssh.c:293,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:298,1
    - Dst: ssh_key_type
      Src: /src/curl/lib/vssh/libssh.c:300,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh.c:324,1
    - Dst: func
      Src: /src/curl/lib/vssh/libssh.c:325,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh.c:328,1
    - Dst: ssh_session_update_known_hosts
      Src: /src/curl/lib/vssh/libssh.c:332,1
    - Dst: free
      Src: /src/curl/lib/vssh/libssh.c:356,1
    - Dst: free
      Src: /src/curl/lib/vssh/libssh.c:360,1
    - Dst: ssh_clean_pubkey_hash
      Src: /src/curl/lib/vssh/libssh.c:363,1
    - Dst: ssh_clean_pubkey_hash
      Src: /src/curl/lib/vssh/libssh.c:365,1
    - Dst: ssh_key_free
      Src: /src/curl/lib/vssh/libssh.c:366,1
    - Dst: ssh_knownhosts_entry_free
      Src: /src/curl/lib/vssh/libssh.c:368,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 184
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 124
    functionDepth: 7
    functionLinenumber: 124
    functionLinenumberEnd: 371
    functionName: myssh_is_known
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - ssh_knownhosts_entry_free
    - ssh_key_free
    - strncmp
    - ssh_get_server_publickey
    - ssh_pki_export_pubkey_base64
    - failf
    - curlx_base64_encode
    - curlx_free
    - ssh_get_publickey_hash
    - curl_strequal
    - ssh_session_get_known_hosts_entry
    - ssh_key_type
    - func
    - ssh_session_update_known_hosts
    - free
    - infof
    - Curl_set_in_callback
    - ssh_clean_pubkey_hash
    - strlen
    linkageType: ''
    returnType: int
    signature: int myssh_is_known(struct Curl_easy *data, struct ssh_conn *sshc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - sshc
    - result
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: myssh_to_ERROR
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_to_ERROR(struct Curl_easy *data,\n                          struct
      ssh_conn *sshc,\n                          CURLcode result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:385,1
    - Dst: sftp_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh.c:386,1
    - Dst: sftp_get_error
      Src: /src/curl/lib/vssh/libssh.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: myssh_to_SFTP_CLOSE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - sftp_get_error
    - sftp_error_to_CURLE
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_to_SFTP_CLOSE(struct Curl_easy *data,\n                               struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:394,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: myssh_to_PASSWD_AUTH
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to_ERROR
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_to_PASSWD_AUTH(struct Curl_easy *data,\n                                struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:404,1
    - Dst: myssh_to_PASSWD_AUTH
      Src: /src/curl/lib/vssh/libssh.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: myssh_to_KEY_AUTH
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to_PASSWD_AUTH
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_to_KEY_AUTH(struct Curl_easy *data,\n                             struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:414,1
    - Dst: myssh_to_KEY_AUTH
      Src: /src/curl/lib/vssh/libssh.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 4
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: myssh_to_GSSAPI_AUTH
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to_KEY_AUTH
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_to_GSSAPI_AUTH(struct Curl_easy *data,\n                                struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:425,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/vssh/libssh.c:426,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:428,1
    - Dst: sftp_opendir
      Src: /src/curl/lib/vssh/libssh.c:436,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:439,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:440,1
    - Dst: myssh_to_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:441,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 445
    functionName: myssh_in_SFTP_READDIR_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - failf
    - sftp_opendir
    - myssh_to
    - Curl_pgrsSetDownloadSize
    - myssh_to_SFTP_CLOSE
    - myssh_to_ERROR
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_READDIR_INIT(struct Curl_easy *data,\n                                      struct
      ssh_conn *sshc,\n                                      struct SSHPROTO *sshp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:454,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vssh/libssh.c:455,1
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:457,1
    - Dst: sftp_readdir
      Src: /src/curl/lib/vssh/libssh.c:459,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:463,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vssh/libssh.c:468,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:470,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/vssh/libssh.c:474,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh.c:476,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:479,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vssh/libssh.c:485,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:487,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vssh/libssh.c:494,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:498,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:503,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:506,1
    - Dst: sftp_dir_eof
      Src: /src/curl/lib/vssh/libssh.c:510,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:511,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:514,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:515,1
    - Dst: myssh_to_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:516,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 519
    functionName: myssh_in_SFTP_READDIR
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - curl_maprintf
    - sftp_dir_eof
    - failf
    - myssh_to
    - curlx_dyn_add
    - Curl_client_write
    - myssh_to_SFTP_CLOSE
    - curlx_dyn_reset
    - sftp_attributes_free
    - curlx_free
    - sftp_readdir
    - myssh_to_ERROR
    - strlen
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_READDIR(struct Curl_easy *data,\n                                 struct
      ssh_conn *sshc,\n                                 struct SSHPROTO *sshp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:525,1
    - Dst: sftp_lstat
      Src: /src/curl/lib/vssh/libssh.c:527,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:530,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:531,1
    - Dst: myssh_to_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:532,1
    - Dst: sftp_readlink
      Src: /src/curl/lib/vssh/libssh.c:536,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:541,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:546,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:551,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vssh/libssh.c:553,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:561,1
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:566,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 573
    functionName: myssh_in_SFTP_READDIR_LINK
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - curlx_safefree
    - failf
    - myssh_to
    - myssh_to_SFTP_CLOSE
    - sftp_readlink
    - sftp_attributes_free
    - sftp_lstat
    - curlx_dyn_addf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_READDIR_LINK(struct Curl_easy *data,\n                                      struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vssh/libssh.c:580,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/vssh/libssh.c:583,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vssh/libssh.c:584,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vssh/libssh.c:585,1
    - Dst: ssh_string_free_char
      Src: /src/curl/lib/vssh/libssh.c:587,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:591,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 597
    functionName: myssh_in_SFTP_READDIR_BOTTOM
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - myssh_to
    - Curl_client_write
    - curlx_dyn_len
    - curlx_dyn_ptr
    - ssh_string_free_char
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_READDIR_BOTTOM(struct Curl_easy *data,\n                                        struct
      ssh_conn *sshc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftp_closedir
      Src: /src/curl/lib/vssh/libssh.c:602,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/vssh/libssh.c:606,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 599
    functionDepth: 3
    functionLinenumber: 599
    functionLinenumberEnd: 609
    functionName: myssh_in_SFTP_READDIR_DONE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_setup_nop
    - sftp_closedir
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_READDIR_DONE(struct Curl_easy *data,\n                                      struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:615,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:616,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:617,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:618,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - data
    - sshc
    - cmd
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 622
    functionName: myssh_quote_error
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - curlx_safefree
    - failf
    - myssh_to
    linkageType: ''
    returnType: void
    signature: "void myssh_quote_error(struct Curl_easy *data, struct ssh_conn *sshc,\n
      \                             const char *cmd)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftp_statvfs
      Src: /src/curl/lib/vssh/libssh.c:629,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:631,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vssh/libssh.c:643,1
    - Dst: sftp_statvfs_free
      Src: /src/curl/lib/vssh/libssh.c:661,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/vssh/libssh.c:667,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:667,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh.c:668,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:671,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:676,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 624
    functionDepth: 7
    functionLinenumber: 624
    functionLinenumberEnd: 678
    functionName: myssh_in_SFTP_QUOTE_STATVFS
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - sftp_statvfs_free
    - curl_maprintf
    - myssh_to
    - Curl_client_write
    - sftp_statvfs
    - curlx_free
    - strlen
    - myssh_quote_error
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE_STATVFS(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ssh_userauth_kbdint
      Src: /src/curl/lib/vssh/libssh.c:689,1
    - Dst: ssh_userauth_kbdint_getnprompts
      Src: /src/curl/lib/vssh/libssh.c:696,1
    - Dst: ssh_userauth_kbdint_setanswer
      Src: /src/curl/lib/vssh/libssh.c:700,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vssh/libssh.c:701,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh.c:705,1
    - Dst: ssh_userauth_kbdint
      Src: /src/curl/lib/vssh/libssh.c:709,1
    - Dst: ssh_userauth_kbdint_getnprompts
      Src: /src/curl/lib/vssh/libssh.c:715,1
    - Dst: ssh_userauth_kbdint
      Src: /src/curl/lib/vssh/libssh.c:728,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - conn
    - sshc
    argTypes:
    - struct connectdata*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 743
    functionName: myssh_auth_interactive
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - Curl_creds_passwd
    - ssh_userauth_kbdint
    - ssh_userauth_kbdint_setanswer
    - ssh_userauth_kbdint_getnprompts
    - FALLTHROUGH
    linkageType: ''
    returnType: int
    signature: "int myssh_auth_interactive(struct connectdata *conn,\n                                  struct
      ssh_conn *sshc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssh_set_log_level
      Src: /src/curl/lib/vssh/libssh.c:753,1
    - Dst: ssh_set_blocking
      Src: /src/curl/lib/vssh/libssh.c:758,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 761
    functionName: myssh_state_init
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_set_blocking
    - ssh_set_log_level
    - myssh_to
    linkageType: ''
    returnType: void
    signature: "void myssh_state_init(struct Curl_easy *data,\n                             struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssh_get_poll_flags
      Src: /src/curl/lib/vssh/libssh.c:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - conn
    - sshc
    - block
    argTypes:
    - struct connectdata*
    - struct ssh_conn*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 777
    functionName: myssh_block2waitfor
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_poll_flags
    linkageType: ''
    returnType: void
    signature: "void myssh_block2waitfor(struct connectdata *conn,\n                                struct
      ssh_conn *sshc,\n                                bool block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssh_connect
      Src: /src/curl/lib/vssh/libssh.c:783,1
    - Dst: myssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh.c:785,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:787,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:790,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:791,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 797
    functionName: myssh_in_S_STARTUP
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_connect
    - failf
    - CURL_TRC_SSH
    - myssh_to
    - myssh_to_ERROR
    - myssh_block2waitfor
    linkageType: ''
    returnType: int
    signature: "int myssh_in_S_STARTUP(struct Curl_easy *data,\n                              struct
      ssh_conn *sshc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssh_userauth_none
      Src: /src/curl/lib/vssh/libssh.c:805,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:811,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:812,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:816,1
    - Dst: ssh_userauth_list
      Src: /src/curl/lib/vssh/libssh.c:821,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:823,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:837,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:838,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:841,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:844,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:847,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:850,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 853
    functionName: myssh_in_AUTHLIST
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - ssh_userauth_list
    - infof
    - myssh_to_ERROR
    - ssh_userauth_none
    linkageType: ''
    returnType: int
    signature: "int myssh_in_AUTHLIST(struct Curl_easy *data,\n                             struct
      ssh_conn *sshc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_GSSAPI_AUTH
      Src: /src/curl/lib/vssh/libssh.c:860,1
    - Dst: ssh_userauth_try_publickey
      Src: /src/curl/lib/vssh/libssh.c:868,1
    - Dst: myssh_to_GSSAPI_AUTH
      Src: /src/curl/lib/vssh/libssh.c:873,1
    - Dst: ssh_pki_import_privkey_file
      Src: /src/curl/lib/vssh/libssh.c:878,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:883,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:885,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:889,1
    - Dst: ssh_userauth_publickey_auto
      Src: /src/curl/lib/vssh/libssh.c:892,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:900,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:901,1
    - Dst: myssh_to_GSSAPI_AUTH
      Src: /src/curl/lib/vssh/libssh.c:905,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 855
    functionDepth: 5
    functionLinenumber: 855
    functionLinenumberEnd: 908
    functionName: myssh_in_AUTH_PKEY_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_userauth_try_publickey
    - ssh_pki_import_privkey_file
    - myssh_to_GSSAPI_AUTH
    - failf
    - myssh_to
    - ssh_userauth_publickey_auto
    - infof
    - myssh_to_ERROR
    linkageType: ''
    returnType: int
    signature: "int myssh_in_AUTH_PKEY_INIT(struct Curl_easy *data,\n                                   struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssh_userauth_publickey
      Src: /src/curl/lib/vssh/libssh.c:913,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:918,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:919,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:923,1
    - Dst: myssh_to_GSSAPI_AUTH
      Src: /src/curl/lib/vssh/libssh.c:924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 910
    functionDepth: 5
    functionLinenumber: 910
    functionLinenumberEnd: 926
    functionName: myssh_in_AUTH_PKEY
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - myssh_to_GSSAPI_AUTH
    - ssh_userauth_publickey
    - infof
    linkageType: ''
    returnType: int
    signature: "int myssh_in_AUTH_PKEY(struct Curl_easy *data,\n                              struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_KEY_AUTH
      Src: /src/curl/lib/vssh/libssh.c:933,1
    - Dst: ssh_userauth_gssapi
      Src: /src/curl/lib/vssh/libssh.c:935,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:941,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:942,1
    - Dst: myssh_to_KEY_AUTH
      Src: /src/curl/lib/vssh/libssh.c:946,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 928
    functionDepth: 4
    functionLinenumber: 928
    functionLinenumberEnd: 947
    functionName: myssh_in_AUTH_GSSAPI
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - ssh_userauth_gssapi
    - myssh_to_KEY_AUTH
    - infof
    linkageType: ''
    returnType: int
    signature: "int myssh_in_AUTH_GSSAPI(struct Curl_easy *data,\n                                struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:953,1
    - Dst: myssh_to_PASSWD_AUTH
      Src: /src/curl/lib/vssh/libssh.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 957
    functionName: myssh_in_AUTH_KEY_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to_PASSWD_AUTH
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_AUTH_KEY_INIT(struct Curl_easy *data,\n                                  struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: myssh_auth_interactive
      Src: /src/curl/lib/vssh/libssh.c:963,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:968,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:969,1
    - Dst: myssh_to_PASSWD_AUTH
      Src: /src/curl/lib/vssh/libssh.c:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 959
    functionDepth: 3
    functionLinenumber: 959
    functionLinenumberEnd: 974
    functionName: myssh_in_AUTH_KEY
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to_PASSWD_AUTH
    - myssh_to
    - myssh_auth_interactive
    - infof
    linkageType: ''
    returnType: int
    signature: "int myssh_in_AUTH_KEY(struct Curl_easy *data,\n                             struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:980,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 976
    functionDepth: 2
    functionLinenumber: 976
    functionLinenumberEnd: 983
    functionName: myssh_in_AUTH_PASS_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to_ERROR
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_AUTH_PASS_INIT(struct Curl_easy *data,\n                                   struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssh_userauth_password
      Src: /src/curl/lib/vssh/libssh.c:988,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vssh/libssh.c:989,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:994,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:995,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 999
    functionName: myssh_in_AUTH_PASS
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_userauth_password
    - Curl_creds_passwd
    - myssh_to
    - infof
    - myssh_to_ERROR
    linkageType: ''
    returnType: int
    signature: "int myssh_in_AUTH_PASS(struct Curl_easy *data,\n                              struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1006,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1007,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:1011,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/vssh/libssh.c:1012,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1017,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:1020,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1001
    functionDepth: 4
    functionLinenumber: 1001
    functionLinenumberEnd: 1023
    functionName: myssh_in_AUTH_DONE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - failf
    - myssh_to
    - infof
    - myssh_to_ERROR
    - Curl_pgrsTime
    linkageType: ''
    returnType: int
    signature: "int myssh_in_AUTH_DONE(struct Curl_easy *data,\n                              struct
      ssh_conn *sshc)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1033,1
    - Dst: sftp_stat
      Src: /src/curl/lib/vssh/libssh.c:1039,1
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:1042,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1044,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1045,1
    - Dst: sftp_close
      Src: /src/curl/lib/vssh/libssh.c:1073,1
    - Dst: sftp_open
      Src: /src/curl/lib/vssh/libssh.c:1075,1
    - Dst: sftp_get_error
      Src: /src/curl/lib/vssh/libssh.c:1078,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:1084,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1088,1
    - Dst: myssh_to_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:1092,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh.c:1103,1
    - Dst: struct Curl_easy*::set::seek_func
      Src: /src/curl/lib/vssh/libssh.c:1104,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh.c:1106,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1113,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1114,1
    - Dst: curlx_sotouz
      Src: /src/curl/lib/vssh/libssh.c:1123,1
    - Dst: struct Curl_easy*::state::fread_func
      Src: /src/curl/lib/vssh/libssh.c:1126,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1133,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1134,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1143,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1144,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/vssh/libssh.c:1148,1
    - Dst: sftp_seek64
      Src: /src/curl/lib/vssh/libssh.c:1151,1
    - Dst: myssh_to_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:1153,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/vssh/libssh.c:1159,1
    - Dst: Curl_xfer_setup_send
      Src: /src/curl/lib/vssh/libssh.c:1162,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vssh/libssh.c:1169,1
    - Dst: SSH_VERSION_INT
      Src: /src/curl/lib/vssh/libssh.c:1170,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1173,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 86
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1025
    functionDepth: 3
    functionLinenumber: 1025
    functionLinenumberEnd: 1175
    functionName: myssh_in_UPLOAD_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - Curl_multi_mark_dirty
    - myssh_to_SFTP_CLOSE
    - struct Curl_easy*::set::seek_func
    - curlx_sotouz
    - Curl_pgrsSetUploadSize
    - sftp_open
    - myssh_to
    - Curl_xfer_setup_send
    - SSH_VERSION_INT
    - sftp_get_error
    - failf
    - sftp_attributes_free
    - myssh_to_ERROR
    - struct Curl_easy*::state::fread_func
    - sftp_stat
    - sftp_close
    - Curl_set_in_callback
    - sftp_seek64
    - strlen
    linkageType: ''
    returnType: int
    signature: "int myssh_in_UPLOAD_INIT(struct Curl_easy *data,\n                                struct
      ssh_conn *sshc,\n                                struct SSHPROTO *sshp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1182,1
    - Dst: sftp_close
      Src: /src/curl/lib/vssh/libssh.c:1185,1
    - Dst: sftp_open
      Src: /src/curl/lib/vssh/libssh.c:1187,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1190,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:1191,1
    - Dst: myssh_to_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:1193,1
    - Dst: sftp_file_set_nonblocking
      Src: /src/curl/lib/vssh/libssh.c:1195,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1198
    functionName: myssh_in_SFTP_DOWNLOAD_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - failf
    - myssh_to
    - myssh_to_SFTP_CLOSE
    - myssh_to_ERROR
    - sftp_close
    - sftp_file_set_nonblocking
    - sftp_open
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_DOWNLOAD_INIT(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc,\n                                       struct SSHPROTO *sshp)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sftp_fstat
      Src: /src/curl/lib/vssh/libssh.c:1205,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/vssh/libssh.c:1217,1
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:1220,1
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:1225,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1228,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1229,1
    - Dst: Curl_ssh_range
      Src: /src/curl/lib/vssh/libssh.c:1233,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1236,1
    - Dst: sftp_seek64
      Src: /src/curl/lib/vssh/libssh.c:1238,1
    - Dst: myssh_to_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:1240,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/vssh/libssh.c:1244,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1252,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1254,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1261,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1264,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/vssh/libssh.c:1270,1
    - Dst: sftp_seek64
      Src: /src/curl/lib/vssh/libssh.c:1272,1
    - Dst: myssh_to_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:1274,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/vssh/libssh.c:1280,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:1281,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1282,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/vssh/libssh.c:1285,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1291,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1200
    functionDepth: 3
    functionLinenumber: 1200
    functionLinenumberEnd: 1294
    functionName: myssh_in_SFTP_DOWNLOAD_STAT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - sftp_fstat
    - failf
    - myssh_to
    - Curl_xfer_setup_nop
    - Curl_pgrsSetDownloadSize
    - Curl_xfer_setup_recv
    - myssh_to_SFTP_CLOSE
    - infof
    - sftp_attributes_free
    - myssh_to_ERROR
    - Curl_ssh_range
    - sftp_seek64
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_DOWNLOAD_STAT(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1301,1
    - Dst: sftp_close
      Src: /src/curl/lib/vssh/libssh.c:1303,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1306,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:1308,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1315,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1322
    functionName: myssh_in_SFTP_CLOSE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - myssh_to
    - CURL_TRC_SSH
    - myssh_to_ERROR
    - sftp_close
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_CLOSE(struct Curl_easy *data,\n                               struct
      ssh_conn *sshc,\n                               struct SSHPROTO *sshp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssh_set_blocking
      Src: /src/curl/lib/vssh/libssh.c:1330,1
    - Dst: SSH_VERSION_INT
      Src: /src/curl/lib/vssh/libssh.c:1331,1
    - Dst: SFTP_AIO_FREE
      Src: /src/curl/lib/vssh/libssh.c:1332,1
    - Dst: SFTP_AIO_FREE
      Src: /src/curl/lib/vssh/libssh.c:1333,1
    - Dst: sftp_close
      Src: /src/curl/lib/vssh/libssh.c:1337,1
    - Dst: sftp_free
      Src: /src/curl/lib/vssh/libssh.c:1342,1
    - Dst: SSH_STRING_FREE_CHAR
      Src: /src/curl/lib/vssh/libssh.c:1346,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1350
    functionName: myssh_in_SFTP_SHUTDOWN
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - sftp_free
    - SSH_STRING_FREE_CHAR
    - sftp_close
    - SSH_VERSION_INT
    - SFTP_AIO_FREE
    - ssh_set_blocking
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_SHUTDOWN(struct Curl_easy *data,\n                                  struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssh_set_blocking
      Src: /src/curl/lib/vssh/libssh.c:1356,1
    - Dst: sftp_new
      Src: /src/curl/lib/vssh/libssh.c:1358,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1360,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:1361,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1362,1
    - Dst: sftp_init
      Src: /src/curl/lib/vssh/libssh.c:1365,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1367,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:1368,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1369,1
    - Dst: sftp_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh.c:1369,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1352
    functionDepth: 2
    functionLinenumber: 1352
    functionLinenumberEnd: 1373
    functionName: myssh_in_SFTP_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - failf
    - myssh_to
    - sftp_init
    - myssh_to_ERROR
    - sftp_new
    - ssh_set_blocking
    - sftp_error_to_CURLE
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_INIT(struct Curl_easy *data,\n                              struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_canonicalize_path
      Src: /src/curl/lib/vssh/libssh.c:1379,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1381,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh.c:1383,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vssh/libssh.c:1384,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1386,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:1392,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1375
    functionDepth: 2
    functionLinenumber: 1375
    functionLinenumberEnd: 1395
    functionName: myssh_in_SFTP_REALPATH
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_SSH
    - myssh_to
    - curlx_strdup
    - curlx_free
    - myssh_to_ERROR
    - sftp_canonicalize_path
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_REALPATH(struct Curl_easy *data,\n                                  struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1404,1
    - Dst: Curl_getworkingpath
      Src: /src/curl/lib/vssh/libssh.c:1406,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1409,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:1412,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1414,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1397
    functionDepth: 3
    functionLinenumber: 1397
    functionLinenumberEnd: 1419
    functionName: myssh_in_SFTP_QUOTE_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - Curl_getworkingpath
    - infof
    - myssh_to_ERROR
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE_INIT(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc,\n                                    struct SSHPROTO *sshp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:1425,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1427,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1433
    functionName: myssh_in_SFTP_POSTQUOTE_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - infof
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_POSTQUOTE_INIT(struct Curl_easy *data,\n                                        struct
      ssh_conn *sshc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1438,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1439,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1440,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1445
    functionName: quote_error
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 1
    functionsReached:
    - curlx_safefree
    - failf
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int quote_error(struct Curl_easy *data,\n                       struct
      ssh_conn *sshc)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1461,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vssh/libssh.c:1473,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vssh/libssh.c:1475,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1479,1
    - Dst: Curl_debug
      Src: /src/curl/lib/vssh/libssh.c:1483,1
    - Dst: Curl_debug
      Src: /src/curl/lib/vssh/libssh.c:1484,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:1484,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/vssh/libssh.c:1489,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:1489,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh.c:1490,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1492,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1497,1
    - Dst: strchr
      Src: /src/curl/lib/vssh/libssh.c:1505,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1507,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1508,1
    - Dst: Curl_get_pathname
      Src: /src/curl/lib/vssh/libssh.c:1518,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1521,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1523,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1524,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1536,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1537,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1538,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1539,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1540,1
    - Dst: Curl_get_pathname
      Src: /src/curl/lib/vssh/libssh.c:1545,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1548,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1550,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1552,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1553,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh.c:1559,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1561,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1564,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1565,1
    - Dst: Curl_get_pathname
      Src: /src/curl/lib/vssh/libssh.c:1569,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1572,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1574,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1575,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1576,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh.c:1582,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1583,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1586,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh.c:1588,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1590,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1593,1
    - Dst: Curl_get_pathname
      Src: /src/curl/lib/vssh/libssh.c:1597,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1600,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1602,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1603,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1604,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh.c:1610,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1611,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1614,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh.c:1617,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1618,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1621,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh.c:1623,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1624,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1628,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh.c:1630,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1631,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1636,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1637,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1638,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1639,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 127
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1447
    functionDepth: 9
    functionLinenumber: 1447
    functionLinenumberEnd: 1643
    functionName: myssh_in_SFTP_QUOTE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_maprintf
    - failf
    - myssh_to
    - Curl_client_write
    - Curl_get_pathname
    - quote_error
    - curl_strequal
    - curlx_free
    - myssh_to_ERROR
    - strchr
    - Curl_debug
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE(struct Curl_easy *data,\n                               struct
      ssh_conn *sshc,\n                               struct SSHPROTO *sshp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1648,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1649,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1654,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1658,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1666
    functionName: myssh_in_SFTP_NEXT_QUOTE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_NEXT_QUOTE(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:1690,1
    - Dst: sftp_stat
      Src: /src/curl/lib/vssh/libssh.c:1691,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1693,1
    - Dst: sftp_get_error
      Src: /src/curl/lib/vssh/libssh.c:1694,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1695,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1700,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/vssh/libssh.c:1703,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1704,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1705,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1711,1
    - Dst: curlx_str_octal
      Src: /src/curl/lib/vssh/libssh.c:1714,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1715,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1716,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1722,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/vssh/libssh.c:1725,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1726,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1727,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1733,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1734,1
    - Dst: Curl_getdate_capped
      Src: /src/curl/lib/vssh/libssh.c:1737,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1738,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1743,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1748,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh.c:1751,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1760,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1668
    functionDepth: 6
    functionLinenumber: 1668
    functionLinenumberEnd: 1762
    functionName: myssh_in_SFTP_QUOTE_STAT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - strncmp
    - failf
    - myssh_to
    - curlx_str_number
    - curlx_str_octal
    - sftp_attributes_free
    - sftp_stat
    - sftp_get_error
    - Curl_getdate_capped
    - myssh_quote_error
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE_STAT(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONN_SOCK_IDX_VALID
      Src: /src/curl/lib/vssh/libssh.c:1767,1
    - Dst: Curl_conn_cf_cntrl
      Src: /src/curl/lib/vssh/libssh.c:1770,1
    - Dst: fake_sclose
      Src: /src/curl/lib/vssh/libssh.c:1771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - data
    - sockindex
    argTypes:
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1774
    functionName: conn_forget_socket
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - CONN_SOCK_IDX_VALID
    - fake_sclose
    - Curl_conn_cf_cntrl
    linkageType: ''
    returnType: void
    signature: void conn_forget_socket(struct Curl_easy *data, int sockindex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssh_scp_free
      Src: /src/curl/lib/vssh/libssh.c:1783,1
    - Dst: sftp_close
      Src: /src/curl/lib/vssh/libssh.c:1788,1
    - Dst: sftp_free
      Src: /src/curl/lib/vssh/libssh.c:1792,1
    - Dst: ssh_disconnect
      Src: /src/curl/lib/vssh/libssh.c:1796,1
    - Dst: ssh_version
      Src: /src/curl/lib/vssh/libssh.c:1797,1
    - Dst: SSH_VERSION_INT
      Src: /src/curl/lib/vssh/libssh.c:1797,1
    - Dst: conn_forget_socket
      Src: /src/curl/lib/vssh/libssh.c:1801,1
    - Dst: SSH_STRING_FREE_CHAR
      Src: /src/curl/lib/vssh/libssh.c:1804,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1776
    functionDepth: 2
    functionLinenumber: 1776
    functionLinenumberEnd: 1807
    functionName: myssh_SESSION_DISCONNECT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_scp_free
    - myssh_to
    - sftp_free
    - SSH_STRING_FREE_CHAR
    - ssh_disconnect
    - conn_forget_socket
    - ssh_version
    - sftp_close
    - SSH_VERSION_INT
    linkageType: ''
    returnType: void
    signature: "void myssh_SESSION_DISCONNECT(struct Curl_easy *data,\n                                     struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssh_scp_pull_request
      Src: /src/curl/lib/vssh/libssh.c:1813,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:1815,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1816,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1817,1
    - Dst: ssh_scp_request_get_size
      Src: /src/curl/lib/vssh/libssh.c:1821,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/vssh/libssh.c:1823,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1809
    functionDepth: 3
    functionLinenumber: 1809
    functionLinenumberEnd: 1830
    functionName: myssh_SSH_SCP_DOWNLOAD
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - ssh_scp_pull_request
    - failf
    - myssh_to
    - Curl_xfer_setup_recv
    - ssh_scp_request_get_size
    - myssh_to_ERROR
    linkageType: ''
    returnType: int
    signature: "int myssh_SSH_SCP_DOWNLOAD(struct Curl_easy *data,\n                                  struct
      ssh_conn *sshc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1838,1
    - Dst: Curl_getworkingpath
      Src: /src/curl/lib/vssh/libssh.c:1840,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1843,1
    - Dst: ssh_set_blocking
      Src: /src/curl/lib/vssh/libssh.c:1848,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1852,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1853,1
    - Dst: ssh_scp_new
      Src: /src/curl/lib/vssh/libssh.c:1857,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1858,1
    - Dst: ssh_scp_new
      Src: /src/curl/lib/vssh/libssh.c:1862,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1863,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:1867,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:1868,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:1869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1832
    functionDepth: 3
    functionLinenumber: 1832
    functionLinenumberEnd: 1872
    functionName: myssh_in_TRANS_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - Curl_getworkingpath
    - failf
    - myssh_to
    - myssh_to_ERROR
    - ssh_scp_new
    - ssh_set_blocking
    linkageType: ''
    returnType: int
    signature: "int myssh_in_TRANS_INIT(struct Curl_easy *data, struct ssh_conn *sshc,\n
      \                              struct SSHPROTO *sshp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sftp_close
      Src: /src/curl/lib/vssh/libssh.c:1878,1
    - Dst: sftp_free
      Src: /src/curl/lib/vssh/libssh.c:1882,1
    - Dst: ssh_free
      Src: /src/curl/lib/vssh/libssh.c:1886,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh.c:1891,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh.c:1892,1
    - Dst: ssh_string_free_char
      Src: /src/curl/lib/vssh/libssh.c:1895,1
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:1899,1
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:1903,1
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:1907,1
    - Dst: ssh_key_free
      Src: /src/curl/lib/vssh/libssh.c:1911,1
    - Dst: ssh_key_free
      Src: /src/curl/lib/vssh/libssh.c:1915,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1919,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1920,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1921,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1922,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vssh/libssh.c:1923,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:1924,1
    - Dst: SSH_STRING_FREE_CHAR
      Src: /src/curl/lib/vssh/libssh.c:1925,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - sshc
    argTypes:
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1928
    functionName: sshc_cleanup
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    - ssh_free
    - sftp_free
    - SSH_STRING_FREE_CHAR
    - curlx_dyn_free
    - sftp_attributes_free
    - sftp_close
    - ssh_key_free
    - ssh_string_free_char
    linkageType: ''
    returnType: void
    signature: void sshc_cleanup(struct ssh_conn *sshc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_setstat
      Src: /src/curl/lib/vssh/libssh.c:1933,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1938,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1941,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1930
    functionDepth: 2
    functionLinenumber: 1930
    functionLinenumberEnd: 1943
    functionName: myssh_in_SFTP_QUOTE_SETSTAT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - sftp_setstat
    - myssh_quote_error
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE_SETSTAT(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_symlink
      Src: /src/curl/lib/vssh/libssh.c:1948,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1953,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1945
    functionDepth: 2
    functionLinenumber: 1945
    functionLinenumberEnd: 1958
    functionName: myssh_in_SFTP_QUOTE_SYMLINK
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - myssh_quote_error
    - sftp_symlink
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE_SYMLINK(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_mkdir
      Src: /src/curl/lib/vssh/libssh.c:1963,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1968,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1960
    functionDepth: 2
    functionLinenumber: 1960
    functionLinenumberEnd: 1973
    functionName: myssh_in_SFTP_QUOTE_MKDIR
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - myssh_quote_error
    - sftp_mkdir
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE_MKDIR(struct Curl_easy *data,\n                                     struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_rename
      Src: /src/curl/lib/vssh/libssh.c:1978,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1983,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:1986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1975
    functionDepth: 2
    functionLinenumber: 1975
    functionLinenumberEnd: 1988
    functionName: myssh_in_SFTP_QUOTE_RENAME
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_quote_error
    - sftp_rename
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE_RENAME(struct Curl_easy *data,\n                                      struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_rmdir
      Src: /src/curl/lib/vssh/libssh.c:1993,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:1997,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2002
    functionName: myssh_in_SFTP_QUOTE_RMDIR
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_quote_error
    - sftp_rmdir
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE_RMDIR(struct Curl_easy *data,\n                                     struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_unlink
      Src: /src/curl/lib/vssh/libssh.c:2007,1
    - Dst: myssh_quote_error
      Src: /src/curl/lib/vssh/libssh.c:2011,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2004
    functionDepth: 2
    functionLinenumber: 2004
    functionLinenumberEnd: 2016
    functionName: myssh_in_SFTP_QUOTE_UNLINK
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_quote_error
    - sftp_unlink
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_QUOTE_UNLINK(struct Curl_easy *data,\n                                      struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2022,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2018
    functionDepth: 1
    functionLinenumber: 2018
    functionLinenumberEnd: 2026
    functionName: myssh_in_SFTP_GETINFO
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_GETINFO(struct Curl_easy *data,\n                                 struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2034,1
    - Dst: sftp_stat
      Src: /src/curl/lib/vssh/libssh.c:2036,1
    - Dst: sftp_attributes_free
      Src: /src/curl/lib/vssh/libssh.c:2039,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2028
    functionDepth: 2
    functionLinenumber: 2028
    functionLinenumberEnd: 2044
    functionName: myssh_in_SFTP_FILETIME
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - sftp_attributes_free
    - sftp_stat
    - myssh_to_ERROR
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_FILETIME(struct Curl_easy *data,\n                                  struct
      ssh_conn *sshc,\n                                  struct SSHPROTO *sshp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2051,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2053,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:2055,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2058,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2046
    functionDepth: 2
    functionLinenumber: 2046
    functionLinenumberEnd: 2064
    functionName: myssh_in_SFTP_TRANS_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - strlen
    - myssh_to_ERROR
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_TRANS_INIT(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc,\n                                    struct SSHPROTO *sshp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2071,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh.c:2073,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2075,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2066
    functionDepth: 2
    functionLinenumber: 2066
    functionLinenumberEnd: 2081
    functionName: myssh_in_SFTP_CREATE_DIRS_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - strlen
    - myssh_to_ERROR
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_CREATE_DIRS_INIT(struct Curl_easy *data,\n                                          struct
      ssh_conn *sshc,\n                                          struct SSHPROTO *sshp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2088,1
    - Dst: strchr
      Src: /src/curl/lib/vssh/libssh.c:2090,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:2094,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2095,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2083
    functionDepth: 2
    functionLinenumber: 2083
    functionLinenumberEnd: 2100
    functionName: myssh_in_SFTP_CREATE_DIRS
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to_ERROR
    - myssh_to
    - strchr
    - infof
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_CREATE_DIRS(struct Curl_easy *data,\n                                     struct
      ssh_conn *sshc,\n                                     struct SSHPROTO *sshp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2110,1
    - Dst: sftp_mkdir
      Src: /src/curl/lib/vssh/libssh.c:2112,1
    - Dst: sftp_get_error
      Src: /src/curl/lib/vssh/libssh.c:2125,1
    - Dst: myssh_to_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:2129,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2102
    functionDepth: 2
    functionLinenumber: 2102
    functionLinenumberEnd: 2135
    functionName: myssh_in_SFTP_CREATE_DIRS_MKDIR
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - myssh_to_SFTP_CLOSE
    - myssh_to_ERROR
    - sftp_mkdir
    - sftp_get_error
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SFTP_CREATE_DIRS_MKDIR(struct Curl_easy *data,\n                                           struct
      ssh_conn *sshc,\n                                           struct SSHPROTO
      *sshp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2143,1
    - Dst: ssh_scp_init
      Src: /src/curl/lib/vssh/libssh.c:2145,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:2147,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2148,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2149,1
    - Dst: ssh_scp_push_file64
      Src: /src/curl/lib/vssh/libssh.c:2152,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:2157,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2158,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2159,1
    - Dst: Curl_xfer_setup_send
      Src: /src/curl/lib/vssh/libssh.c:2163,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2137
    functionDepth: 3
    functionLinenumber: 2137
    functionLinenumberEnd: 2170
    functionName: myssh_in_SCP_UPLOAD_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - failf
    - myssh_to
    - Curl_xfer_setup_send
    - ssh_scp_init
    - myssh_to_ERROR
    - ssh_scp_push_file64
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SCP_UPLOAD_INIT(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc,\n                                    struct SSHPROTO *sshp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssh_scp_init
      Src: /src/curl/lib/vssh/libssh.c:2175,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:2177,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2178,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2179,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2172
    functionDepth: 2
    functionLinenumber: 2172
    functionLinenumberEnd: 2184
    functionName: myssh_in_SCP_DOWNLOAD_INIT
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - failf
    - myssh_to
    - ssh_scp_init
    - myssh_to_ERROR
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SCP_DOWNLOAD_INIT(struct Curl_easy *data,\n                                      struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2190,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2186
    functionDepth: 1
    functionLinenumber: 2186
    functionLinenumberEnd: 2194
    functionName: myssh_in_SCP_DONE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SCP_DONE(struct Curl_easy *data,\n                             struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssh_scp_close
      Src: /src/curl/lib/vssh/libssh.c:2200,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:2208,1
    - Dst: ssh_get_error
      Src: /src/curl/lib/vssh/libssh.c:2210,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2216
    functionName: myssh_in_SCP_SEND_EOF
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_get_error
    - ssh_scp_close
    - myssh_to
    - infof
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SCP_SEND_EOF(struct Curl_easy *data,\n                                 struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssh_scp_free
      Src: /src/curl/lib/vssh/libssh.c:2222,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2225,1
    - Dst: ssh_set_blocking
      Src: /src/curl/lib/vssh/libssh.c:2227,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2218
    functionDepth: 1
    functionLinenumber: 2218
    functionLinenumberEnd: 2231
    functionName: myssh_in_SCP_CHANNEL_FREE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - ssh_set_blocking
    - ssh_scp_free
    - CURL_TRC_SSH
    linkageType: ''
    returnType: int
    signature: "int myssh_in_SCP_CHANNEL_FREE(struct Curl_easy *data,\n                                     struct
      ssh_conn *sshc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sshc_cleanup
      Src: /src/curl/lib/vssh/libssh.c:2237,1
    - Dst: memset
      Src: /src/curl/lib/vssh/libssh.c:2240,1
    - Dst: connclose
      Src: /src/curl/lib/vssh/libssh.c:2241,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2233
    functionDepth: 1
    functionLinenumber: 2233
    functionLinenumberEnd: 2246
    functionName: myssh_in_SESSION_FREE
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - sshc_cleanup
    - myssh_to
    - connclose
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode myssh_in_SESSION_FREE(struct Curl_easy *data,\n                                      struct
      ssh_conn *sshc)"
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: myssh_state_init
      Src: /src/curl/lib/vssh/libssh.c:2267,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh.c:2268,1
    - Dst: myssh_in_S_STARTUP
      Src: /src/curl/lib/vssh/libssh.c:2270,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh.c:2273,1
    - Dst: myssh_is_known
      Src: /src/curl/lib/vssh/libssh.c:2275,1
    - Dst: myssh_to_ERROR
      Src: /src/curl/lib/vssh/libssh.c:2277,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2280,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh.c:2281,1
    - Dst: myssh_in_AUTHLIST
      Src: /src/curl/lib/vssh/libssh.c:2283,1
    - Dst: myssh_in_AUTH_PKEY_INIT
      Src: /src/curl/lib/vssh/libssh.c:2286,1
    - Dst: myssh_in_AUTH_PKEY
      Src: /src/curl/lib/vssh/libssh.c:2289,1
    - Dst: myssh_in_AUTH_GSSAPI
      Src: /src/curl/lib/vssh/libssh.c:2292,1
    - Dst: myssh_in_AUTH_KEY_INIT
      Src: /src/curl/lib/vssh/libssh.c:2295,1
    - Dst: myssh_in_AUTH_KEY
      Src: /src/curl/lib/vssh/libssh.c:2298,1
    - Dst: myssh_in_AUTH_PASS_INIT
      Src: /src/curl/lib/vssh/libssh.c:2301,1
    - Dst: myssh_in_AUTH_PASS
      Src: /src/curl/lib/vssh/libssh.c:2304,1
    - Dst: myssh_in_AUTH_DONE
      Src: /src/curl/lib/vssh/libssh.c:2307,1
    - Dst: myssh_in_SFTP_INIT
      Src: /src/curl/lib/vssh/libssh.c:2310,1
    - Dst: myssh_in_SFTP_REALPATH
      Src: /src/curl/lib/vssh/libssh.c:2313,1
    - Dst: myssh_in_SFTP_QUOTE_INIT
      Src: /src/curl/lib/vssh/libssh.c:2316,1
    - Dst: myssh_in_SFTP_POSTQUOTE_INIT
      Src: /src/curl/lib/vssh/libssh.c:2319,1
    - Dst: myssh_in_SFTP_QUOTE
      Src: /src/curl/lib/vssh/libssh.c:2322,1
    - Dst: myssh_in_SFTP_NEXT_QUOTE
      Src: /src/curl/lib/vssh/libssh.c:2325,1
    - Dst: myssh_in_SFTP_QUOTE_STAT
      Src: /src/curl/lib/vssh/libssh.c:2328,1
    - Dst: myssh_in_SFTP_QUOTE_SETSTAT
      Src: /src/curl/lib/vssh/libssh.c:2331,1
    - Dst: myssh_in_SFTP_QUOTE_SYMLINK
      Src: /src/curl/lib/vssh/libssh.c:2334,1
    - Dst: myssh_in_SFTP_QUOTE_MKDIR
      Src: /src/curl/lib/vssh/libssh.c:2337,1
    - Dst: myssh_in_SFTP_QUOTE_RENAME
      Src: /src/curl/lib/vssh/libssh.c:2340,1
    - Dst: myssh_in_SFTP_QUOTE_RMDIR
      Src: /src/curl/lib/vssh/libssh.c:2343,1
    - Dst: myssh_in_SFTP_QUOTE_UNLINK
      Src: /src/curl/lib/vssh/libssh.c:2346,1
    - Dst: myssh_in_SFTP_QUOTE_STATVFS
      Src: /src/curl/lib/vssh/libssh.c:2349,1
    - Dst: myssh_in_SFTP_GETINFO
      Src: /src/curl/lib/vssh/libssh.c:2352,1
    - Dst: myssh_in_SFTP_FILETIME
      Src: /src/curl/lib/vssh/libssh.c:2355,1
    - Dst: myssh_in_SFTP_TRANS_INIT
      Src: /src/curl/lib/vssh/libssh.c:2358,1
    - Dst: myssh_in_UPLOAD_INIT
      Src: /src/curl/lib/vssh/libssh.c:2361,1
    - Dst: myssh_in_SFTP_CREATE_DIRS_INIT
      Src: /src/curl/lib/vssh/libssh.c:2364,1
    - Dst: myssh_in_SFTP_CREATE_DIRS
      Src: /src/curl/lib/vssh/libssh.c:2367,1
    - Dst: myssh_in_SFTP_CREATE_DIRS_MKDIR
      Src: /src/curl/lib/vssh/libssh.c:2370,1
    - Dst: myssh_in_SFTP_READDIR_INIT
      Src: /src/curl/lib/vssh/libssh.c:2373,1
    - Dst: myssh_in_SFTP_READDIR
      Src: /src/curl/lib/vssh/libssh.c:2376,1
    - Dst: myssh_in_SFTP_READDIR_LINK
      Src: /src/curl/lib/vssh/libssh.c:2379,1
    - Dst: myssh_in_SFTP_READDIR_BOTTOM
      Src: /src/curl/lib/vssh/libssh.c:2382,1
    - Dst: myssh_in_SFTP_READDIR_DONE
      Src: /src/curl/lib/vssh/libssh.c:2385,1
    - Dst: myssh_in_SFTP_DOWNLOAD_INIT
      Src: /src/curl/lib/vssh/libssh.c:2388,1
    - Dst: myssh_in_SFTP_DOWNLOAD_STAT
      Src: /src/curl/lib/vssh/libssh.c:2391,1
    - Dst: myssh_in_SFTP_CLOSE
      Src: /src/curl/lib/vssh/libssh.c:2394,1
    - Dst: myssh_in_SFTP_SHUTDOWN
      Src: /src/curl/lib/vssh/libssh.c:2397,1
    - Dst: myssh_in_TRANS_INIT
      Src: /src/curl/lib/vssh/libssh.c:2400,1
    - Dst: myssh_in_SCP_UPLOAD_INIT
      Src: /src/curl/lib/vssh/libssh.c:2403,1
    - Dst: myssh_in_SCP_DOWNLOAD_INIT
      Src: /src/curl/lib/vssh/libssh.c:2406,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh.c:2409,1
    - Dst: myssh_SSH_SCP_DOWNLOAD
      Src: /src/curl/lib/vssh/libssh.c:2411,1
    - Dst: myssh_in_SCP_DONE
      Src: /src/curl/lib/vssh/libssh.c:2414,1
    - Dst: myssh_in_SCP_SEND_EOF
      Src: /src/curl/lib/vssh/libssh.c:2417,1
    - Dst: myssh_in_SCP_CHANNEL_FREE
      Src: /src/curl/lib/vssh/libssh.c:2420,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh.c:2421,1
    - Dst: myssh_SESSION_DISCONNECT
      Src: /src/curl/lib/vssh/libssh.c:2423,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh.c:2424,1
    - Dst: myssh_in_SESSION_FREE
      Src: /src/curl/lib/vssh/libssh.c:2426,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2432,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2446,1
    - Dst: Curl_ssh_statename
      Src: /src/curl/lib/vssh/libssh.c:2447,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 180
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - block
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2254
    functionDepth: 10
    functionLinenumber: 2254
    functionLinenumberEnd: 2449
    functionName: myssh_statemachine
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_in_AUTH_PASS_INIT
    - myssh_in_SFTP_QUOTE_SYMLINK
    - myssh_in_SFTP_CREATE_DIRS
    - myssh_in_SFTP_REALPATH
    - myssh_in_SFTP_QUOTE_STAT
    - myssh_state_init
    - myssh_in_SFTP_QUOTE_MKDIR
    - myssh_in_SFTP_CREATE_DIRS_MKDIR
    - myssh_in_AUTH_PASS
    - myssh_in_AUTH_PKEY
    - FALLTHROUGH
    - myssh_in_SFTP_SHUTDOWN
    - myssh_in_SFTP_QUOTE_INIT
    - myssh_in_SFTP_NEXT_QUOTE
    - myssh_to
    - myssh_in_SFTP_QUOTE_SETSTAT
    - myssh_SSH_SCP_DOWNLOAD
    - myssh_in_SCP_SEND_EOF
    - myssh_in_SFTP_QUOTE_RMDIR
    - myssh_in_UPLOAD_INIT
    - myssh_in_SFTP_QUOTE_RENAME
    - myssh_in_SESSION_FREE
    - myssh_in_S_STARTUP
    - myssh_in_AUTHLIST
    - myssh_in_AUTH_KEY_INIT
    - myssh_in_SFTP_READDIR_DONE
    - myssh_in_SCP_DOWNLOAD_INIT
    - myssh_in_SFTP_TRANS_INIT
    - myssh_in_SFTP_READDIR_BOTTOM
    - myssh_in_AUTH_GSSAPI
    - myssh_in_SFTP_POSTQUOTE_INIT
    - myssh_in_SFTP_DOWNLOAD_INIT
    - myssh_in_SFTP_READDIR
    - myssh_in_SFTP_READDIR_LINK
    - myssh_SESSION_DISCONNECT
    - CURL_TRC_SSH
    - myssh_in_SFTP_QUOTE
    - myssh_in_SCP_DONE
    - myssh_in_SFTP_QUOTE_UNLINK
    - myssh_to_ERROR
    - myssh_in_AUTH_DONE
    - myssh_in_SFTP_INIT
    - myssh_in_SFTP_GETINFO
    - Curl_ssh_statename
    - myssh_in_SFTP_DOWNLOAD_STAT
    - myssh_in_AUTH_KEY
    - myssh_in_SFTP_QUOTE_STATVFS
    - myssh_in_SFTP_CREATE_DIRS_INIT
    - myssh_in_SCP_CHANNEL_FREE
    - myssh_in_AUTH_PKEY_INIT
    - myssh_in_SFTP_FILETIME
    - myssh_in_TRANS_INIT
    - myssh_in_SFTP_CLOSE
    - myssh_in_SFTP_READDIR_INIT
    - myssh_is_known
    - myssh_in_SCP_UPLOAD_INIT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode myssh_statemachine(struct Curl_easy *data,\n                                   struct
      ssh_conn *sshc,\n                                   struct SSHPROTO *sshp,\n
      \                                  bool *block)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2457,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh.c:2471,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2472,1
    - Dst: Curl_pollset_change
      Src: /src/curl/lib/vssh/libssh.c:2473,1
    - Dst: Curl_pollset_change
      Src: /src/curl/lib/vssh/libssh.c:2477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2453
    functionDepth: 2
    functionLinenumber: 2453
    functionLinenumberEnd: 2479
    functionName: myssh_pollset
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_SSH
    - Curl_pollset_change
    - DEBUGASSERT
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode myssh_pollset(struct Curl_easy *data,\n                              struct
      easy_pollset *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2486,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2487,1
    - Dst: myssh_statemachine
      Src: /src/curl/lib/vssh/libssh.c:2494,1
    - Dst: myssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh.c:2496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2482
    functionDepth: 11
    functionLinenumber: 2482
    functionLinenumberEnd: 2499
    functionName: myssh_multi_statemach
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - myssh_statemachine
    - myssh_block2waitfor
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode myssh_multi_statemach(struct Curl_easy *data,\n                                      bool
      *done)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: myssh_statemachine
      Src: /src/curl/lib/vssh/libssh.c:2513,1
    - Dst: Curl_pgrsCheck
      Src: /src/curl/lib/vssh/libssh.c:2518,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/vssh/libssh.c:2522,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2524,1
    - Dst: SOCKET_READABLE
      Src: /src/curl/lib/vssh/libssh.c:2532,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - disconnect
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2501
    functionDepth: 11
    functionLinenumber: 2501
    functionLinenumberEnd: 2537
    functionName: myssh_block_statemach
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_pgrsCheck
    - SOCKET_READABLE
    - myssh_statemachine
    - Curl_timeleft_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode myssh_block_statemach(struct Curl_easy *data,\n                                      struct
      ssh_conn *sshc,\n                                      struct SSHPROTO *sshp,\n
      \                                     bool disconnect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh.c:2544,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh.c:2545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2539
    functionDepth: 1
    functionLinenumber: 2539
    functionLinenumberEnd: 2546
    functionName: myssh_easy_dtor
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void myssh_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sshc_cleanup
      Src: /src/curl/lib/vssh/libssh.c:2553,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh.c:2554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2548
    functionDepth: 1
    functionLinenumber: 2548
    functionLinenumberEnd: 2555
    functionName: myssh_conn_dtor
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - sshc_cleanup
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void myssh_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vssh/libssh.c:2566,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vssh/libssh.c:2570,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/vssh/libssh.c:2572,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vssh/libssh.c:2575,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/vssh/libssh.c:2577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2560
    functionDepth: 2
    functionLinenumber: 2560
    functionLinenumberEnd: 2581
    functionName: myssh_setup_connection
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_meta_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode myssh_setup_connection(struct Curl_easy *data,\n                                       struct
      connectdata *conn)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2594,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2595,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2602,1
    - Dst: ssh_new
      Src: /src/curl/lib/vssh/libssh.c:2612,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2614,1
    - Dst: ssh_options_set
      Src: /src/curl/lib/vssh/libssh.c:2618,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2623,1
    - Dst: ssh_options_parse_config
      Src: /src/curl/lib/vssh/libssh.c:2627,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:2629,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2633,1
    - Dst: ssh_options_set
      Src: /src/curl/lib/vssh/libssh.c:2634,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2636,1
    - Dst: Curl_creds_has_user
      Src: /src/curl/lib/vssh/libssh.c:2640,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:2641,1
    - Dst: ssh_options_set
      Src: /src/curl/lib/vssh/libssh.c:2642,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2645,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh.c:2651,1
    - Dst: ssh_options_set
      Src: /src/curl/lib/vssh/libssh.c:2652,1
    - Dst: ssh_options_set
      Src: /src/curl/lib/vssh/libssh.c:2657,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2660,1
    - Dst: ssh_options_set
      Src: /src/curl/lib/vssh/libssh.c:2666,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2669,1
    - Dst: ssh_options_set
      Src: /src/curl/lib/vssh/libssh.c:2675,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2678,1
    - Dst: ssh_pki_import_pubkey_file
      Src: /src/curl/lib/vssh/libssh.c:2687,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh.c:2690,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2698,1
    - Dst: myssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh.c:2700,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2590
    functionDepth: 12
    functionLinenumber: 2590
    functionLinenumberEnd: 2703
    functionName: myssh_connect
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_new
    - failf
    - CURL_TRC_SSH
    - myssh_to
    - ssh_options_set
    - ssh_options_parse_config
    - ssh_pki_import_pubkey_file
    - Curl_conn_meta_get
    - infof
    - Curl_meta_get
    - myssh_multi_statemach
    - Curl_creds_has_user
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode myssh_connect(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh.c:2710,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2706
    functionDepth: 12
    functionLinenumber: 2706
    functionLinenumberEnd: 2716
    functionName: scp_doing
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_multi_statemach
    - CURL_TRC_SSH
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode scp_doing(struct Curl_easy *data, bool *dophase_done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2731,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2733,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2740,1
    - Dst: myssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh.c:2742,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/vssh/libssh.c:2744,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - connected
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2727
    functionDepth: 12
    functionLinenumber: 2727
    functionLinenumberEnd: 2751
    functionName: scp_perform
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - CURL_TRC_SSH
    - myssh_to
    - Curl_conn_meta_get
    - myssh_multi_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_perform(struct Curl_easy *data,\n                            bool
      *connected, bool *dophase_done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2761,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2762,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2767,1
    - Dst: myssh_block_statemach
      Src: /src/curl/lib/vssh/libssh.c:2768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2756
    functionDepth: 12
    functionLinenumber: 2756
    functionLinenumberEnd: 2772
    functionName: scp_disconnect
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - myssh_to
    - myssh_block_statemach
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_disconnect(struct Curl_easy *data,\n                               struct
      connectdata *conn,\n                               bool dead_connection)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2781,1
    - Dst: myssh_block_statemach
      Src: /src/curl/lib/vssh/libssh.c:2785,1
    - Dst: Curl_pgrsDone
      Src: /src/curl/lib/vssh/libssh.c:2790,1
    - Dst: CURL_REQ_CLEAR_IO
      Src: /src/curl/lib/vssh/libssh.c:2793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - data
    - sshc
    - status
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2776
    functionDepth: 12
    functionLinenumber: 2776
    functionLinenumberEnd: 2795
    functionName: myssh_done
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - Curl_meta_get
    - Curl_pgrsDone
    - myssh_block_statemach
    - CURL_REQ_CLEAR_IO
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode myssh_done(struct Curl_easy *data,\n                           struct
      ssh_conn *sshc,\n                           CURLcode status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2800,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2806,1
    - Dst: myssh_done
      Src: /src/curl/lib/vssh/libssh.c:2808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2809
      start: 2797
    functionDepth: 13
    functionLinenumber: 2797
    functionLinenumberEnd: 2809
    functionName: scp_done
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_done
    - myssh_to
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_done(struct Curl_easy *data, CURLcode status,\n                         bool
      premature)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2817,1
    - Dst: ssh_scp_write
      Src: /src/curl/lib/vssh/libssh.c:2826,1
    - Dst: myssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh.c:2832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - data
    - sockindex
    - mem
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - int
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2811
    functionDepth: 2
    functionLinenumber: 2811
    functionLinenumberEnd: 2843
    functionName: scp_send
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - ssh_scp_write
    - myssh_block2waitfor
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_send(struct Curl_easy *data, int sockindex,\n                         const
      uint8_t *mem, size_t len, bool eos,\n                         size_t *pnwritten)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2849,1
    - Dst: ssh_scp_read
      Src: /src/curl/lib/vssh/libssh.c:2859,1
    - Dst: myssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh.c:2867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - data
    - sockindex
    - mem
    - len
    - pnread
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2845
    functionDepth: 2
    functionLinenumber: 2845
    functionLinenumberEnd: 2873
    functionName: scp_recv
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_block2waitfor
    - ssh_scp_read
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_recv(struct Curl_easy *data, int sockindex,\n                         char
      *mem, size_t len, size_t *pnread)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2892,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2895,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2902,1
    - Dst: myssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh.c:2905,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/vssh/libssh.c:2907,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2910,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - connected
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2888
    functionDepth: 12
    functionLinenumber: 2888
    functionLinenumberEnd: 2914
    functionName: sftp_perform
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - Curl_conn_is_connected
    - CURL_TRC_SSH
    - myssh_to
    - Curl_conn_meta_get
    - myssh_multi_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_perform(struct Curl_easy *data,\n                             bool
      *connected,\n                             bool *dophase_done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh.c:2920,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2917
    functionDepth: 12
    functionLinenumber: 2917
    functionLinenumberEnd: 2925
    functionName: sftp_doing
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_multi_statemach
    - CURL_TRC_SSH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_doing(struct Curl_easy *data,\n                           bool
      *dophase_done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2934,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2935,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2939,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2943,1
    - Dst: myssh_block_statemach
      Src: /src/curl/lib/vssh/libssh.c:2944,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh.c:2947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2930
    functionDepth: 12
    functionLinenumber: 2930
    functionLinenumberEnd: 2949
    functionName: sftp_disconnect
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_SSH
    - myssh_to
    - Curl_conn_meta_get
    - Curl_meta_get
    - myssh_block_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_disconnect(struct Curl_easy *data,\n                                struct
      connectdata *conn,\n                                bool dead_connection)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2955,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh.c:2965,1
    - Dst: myssh_done
      Src: /src/curl/lib/vssh/libssh.c:2967,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2951
    functionDepth: 13
    functionLinenumber: 2951
    functionLinenumberEnd: 2968
    functionName: sftp_done
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - myssh_done
    - myssh_to
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_done(struct Curl_easy *data, CURLcode status,\n                          bool
      premature)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:2976,1
    - Dst: SSH_VERSION_INT
      Src: /src/curl/lib/vssh/libssh.c:2986,1
    - Dst: sftp_file_set_nonblocking
      Src: /src/curl/lib/vssh/libssh.c:2989,1
    - Dst: sftp_aio_begin_write
      Src: /src/curl/lib/vssh/libssh.c:2990,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh.c:2995,1
    - Dst: sftp_aio_wait_write
      Src: /src/curl/lib/vssh/libssh.c:2997,1
    - Dst: myssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh.c:2998,1
    - Dst: sftp_write
      Src: /src/curl/lib/vssh/libssh.c:3029,1
    - Dst: myssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh.c:3031,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 6
    argNames:
    - data
    - sockindex
    - mem
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - int
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 2971
    functionDepth: 2
    functionLinenumber: 2971
    functionLinenumberEnd: 3046
    functionName: sftp_send
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - sftp_aio_begin_write
    - sftp_aio_wait_write
    - Curl_conn_meta_get
    - sftp_file_set_nonblocking
    - myssh_block2waitfor
    - SSH_VERSION_INT
    - sftp_write
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_send(struct Curl_easy *data, int sockindex,\n                          const
      uint8_t *mem, size_t len, bool eos,\n                          size_t *pnwritten)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:3056,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh.c:3062,1
    - Dst: SSH_VERSION_INT
      Src: /src/curl/lib/vssh/libssh.c:3068,1
    - Dst: sftp_aio_begin_read
      Src: /src/curl/lib/vssh/libssh.c:3069,1
    - Dst: sftp_async_read_begin
      Src: /src/curl/lib/vssh/libssh.c:3075,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh.c:3080,1
    - Dst: SSH_VERSION_INT
      Src: /src/curl/lib/vssh/libssh.c:3084,1
    - Dst: sftp_aio_wait_read
      Src: /src/curl/lib/vssh/libssh.c:3085,1
    - Dst: sftp_async_read
      Src: /src/curl/lib/vssh/libssh.c:3087,1
    - Dst: myssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh.c:3091,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - data
    - sockindex
    - mem
    - len
    - pnread
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3112
      start: 3052
    functionDepth: 2
    functionLinenumber: 3052
    functionLinenumberEnd: 3112
    functionName: sftp_recv
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - sftp_async_read_begin
    - DEBUGASSERT
    - sftp_async_read
    - Curl_conn_meta_get
    - sftp_aio_wait_read
    - sftp_aio_begin_read
    - myssh_block2waitfor
    - SSH_VERSION_INT
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_recv(struct Curl_easy *data, int sockindex,\n                          char
      *mem, size_t len, size_t *pnread)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh.c:3119,1
    - Dst: Curl_pgrsReset
      Src: /src/curl/lib/vssh/libssh.c:3131,1
    - Dst: scp_perform
      Src: /src/curl/lib/vssh/libssh.c:3134,1
    - Dst: sftp_perform
      Src: /src/curl/lib/vssh/libssh.c:3136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3139
      start: 3114
    functionDepth: 2
    functionLinenumber: 3114
    functionLinenumberEnd: 3139
    functionName: myssh_do_it
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 0
    functionsReached:
    - scp_perform
    - sftp_perform
    - Curl_pgrsReset
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode myssh_do_it(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssh_init
      Src: /src/curl/lib/vssh/libssh.c:3143,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vssh/libssh.c:3144,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vssh/libssh.c:3144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3148
      start: 3141
    functionDepth: 6
    functionLinenumber: 3141
    functionLinenumberEnd: 3148
    functionName: Curl_ssh_init
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 1
    functionsReached:
    - ssh_init
    - DEBUGF
    - curl_mfprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_ssh_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssh_finalize
      Src: /src/curl/lib/vssh/libssh.c:3152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3153
      start: 3150
    functionDepth: 0
    functionLinenumber: 3150
    functionLinenumberEnd: 3153
    functionName: Curl_ssh_cleanup
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 1
    functionsReached:
    - ssh_finalize
    linkageType: ''
    returnType: void
    signature: void Curl_ssh_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vssh/libssh.c:3157,1
    - Dst: ssh_version
      Src: /src/curl/lib/vssh/libssh.c:3157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - buflen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3158
      start: 3155
    functionDepth: 7
    functionLinenumber: 3155
    functionLinenumberEnd: 3158
    functionName: Curl_ssh_version
    functionSourceFile: /src/curl/lib/vssh/libssh.c
    functionUses: 2
    functionsReached:
    - curl_msnprintf
    - ssh_version
    linkageType: ''
    returnType: void
    signature: void Curl_ssh_version(char *buffer, size_t buflen)
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 1
    argNames:
    - err
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 126
    functionName: sftp_libssh2_strerror
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sftp_libssh2_strerror(unsigned long err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vssh/libssh2.c:138,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vssh/libssh2.c:139,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vssh/libssh2.c:140,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vssh/libssh2.c:141,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vssh/libssh2.c:142,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vssh/libssh2.c:151,1
    - Dst: Curl_cstrdup
      Src: /src/curl/lib/vssh/libssh2.c:154,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:156,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 8
    argNames:
    - name
    - name_len
    - instruction
    - instruction_len
    - num_prompts
    - prompts
    - responses
    - abstract
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    - LIBSSH2_USERAUTH_KBDINT_PROMPT*
    - LIBSSH2_USERAUTH_KBDINT_RESPONSE*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 159
    functionName: kbd_callback
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_creds_passwd
    - curl_mfprintf
    - curlx_uztoui
    - strlen
    - Curl_cstrdup
    linkageType: ''
    returnType: void
    signature: "void kbd_callback(const char *name, int name_len,\n                         const
      char *instruction, int instruction_len,\n                         int num_prompts,\n
      \                        const LIBSSH2_USERAUTH_KBDINT_PROMPT *prompts,\n                         LIBSSH2_USERAUTH_KBDINT_RESPONSE
      *responses,\n                         void **abstract)"
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - err
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 191
    functionName: sftp_libssh2_error_to_CURLE
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode sftp_libssh2_error_to_CURLE(unsigned long err)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 232
    functionName: libssh2_session_error_to_CURLE
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode libssh2_session_error_to_CURLE(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cmalloc
      Src: /src/curl/lib/vssh/libssh2.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: LIBSSH2_ALLOC_FUNC
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_cmalloc
    linkageType: ''
    returnType: void
    signature: void LIBSSH2_ALLOC_FUNC(my_libssh2_malloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_crealloc
      Src: /src/curl/lib/vssh/libssh2.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: LIBSSH2_REALLOC_FUNC
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_crealloc
    linkageType: ''
    returnType: void
    signature: void LIBSSH2_REALLOC_FUNC(my_libssh2_realloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cfree
      Src: /src/curl/lib/vssh/libssh2.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: LIBSSH2_FREE_FUNC
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_cfree
    linkageType: ''
    returnType: void
    signature: void LIBSSH2_FREE_FUNC(my_libssh2_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - easy
    - knownkey
    - foundkey
    - match
    - clientp
    argTypes:
    - CURL*
    - struct curl_khkey*
    - struct curl_khkey*
    - enum curl_khmatch
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: sshkeycallback
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sshkeycallback(CURL *easy,\n                          const struct
      curl_khkey *knownkey, /* known */\n                          const struct curl_khkey
      *foundkey, /* found */\n                          enum curl_khmatch match,\n
      \                         void *clientp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - sshkeytype
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 306
    functionName: convert_ssh2_keytype
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum curl_khtype
    signature: enum curl_khtype convert_ssh2_keytype(int sshkeytype)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_session_hostkey
      Src: /src/curl/lib/vssh/libssh2.c:320,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:360,1
    - Dst: libssh2_knownhost_checkp
      Src: /src/curl/lib/vssh/libssh2.c:368,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:378,1
    - Dst: convert_ssh2_keytype
      Src: /src/curl/lib/vssh/libssh2.c:386,1
    - Dst: convert_ssh2_keytype
      Src: /src/curl/lib/vssh/libssh2.c:393,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh2.c:403,1
    - Dst: func
      Src: /src/curl/lib/vssh/libssh2.c:404,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh2.c:407,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:417,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh2.c:418,1
    - Dst: libssh2_knownhost_del
      Src: /src/curl/lib/vssh/libssh2.c:426,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh2.c:427,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vssh/libssh2.c:436,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:439,1
    - Dst: libssh2_knownhost_addc
      Src: /src/curl/lib/vssh/libssh2.c:446,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:452,1
    - Dst: libssh2_knownhost_writefile
      Src: /src/curl/lib/vssh/libssh2.c:458,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:462,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:467,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 308
    functionDepth: 7
    functionLinenumber: 308
    functionLinenumberEnd: 473
    functionName: ssh_knownhost
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    - libssh2_session_hostkey
    - libssh2_knownhost_del
    - myssh_to
    - libssh2_knownhost_checkp
    - convert_ssh2_keytype
    - infof
    - libssh2_knownhost_writefile
    - curlx_free
    - Curl_set_in_callback
    - func
    - libssh2_knownhost_addc
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_knownhost(struct Curl_easy *data,\n                              struct
      ssh_conn *sshc)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:481,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:483,1
    - Dst: libssh2_hostkey_hash
      Src: /src/curl/lib/vssh/libssh2.c:494,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:497,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:500,1
    - Dst: curlx_base64_encode
      Src: /src/curl/lib/vssh/libssh2.c:506,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:508,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:513,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:514,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:518,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:535,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:536,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:539,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:540,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:544,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:546,1
    - Dst: libssh2_hostkey_hash
      Src: /src/curl/lib/vssh/libssh2.c:553,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vssh/libssh2.c:560,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:564,1
    - Dst: curl_strequal
      Src: /src/curl/lib/vssh/libssh2.c:569,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:571,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:576,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:580,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:583,1
    - Dst: libssh2_session_hostkey
      Src: /src/curl/lib/vssh/libssh2.c:592,1
    - Dst: convert_ssh2_keytype
      Src: /src/curl/lib/vssh/libssh2.c:595,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh2.c:596,1
    - Dst: struct Curl_easy*::set::ssh_hostkeyfunc
      Src: /src/curl/lib/vssh/libssh2.c:597,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh2.c:599,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:601,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:606,1
    - Dst: ssh_knownhost
      Src: /src/curl/lib/vssh/libssh2.c:612,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 475
    functionDepth: 8
    functionLinenumber: 475
    functionLinenumberEnd: 619
    functionName: ssh_check_fingerprint
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curl_msnprintf
    - libssh2_session_hostkey
    - failf
    - myssh_to
    - curlx_base64_encode
    - convert_ssh2_keytype
    - infof
    - curlx_free
    - curl_strequal
    - libssh2_hostkey_hash
    - Curl_set_in_callback
    - struct Curl_easy*::set::ssh_hostkeyfunc
    - strncmp
    - ssh_knownhost
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_check_fingerprint(struct Curl_easy *data,\n                                      struct
      ssh_conn *sshc)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_knownhost_get
      Src: /src/curl/lib/vssh/libssh2.c:647,1
    - Dst: strstr
      Src: /src/curl/lib/vssh/libssh2.c:656,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:658,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/vssh/libssh2.c:663,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:665,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:665,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:666,1
    - Dst: strcmp
      Src: /src/curl/lib/vssh/libssh2.c:673,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:688,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:713,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:716,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:721,1
    - Dst: libssh2_session_method_pref
      Src: /src/curl/lib/vssh/libssh2.c:722,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:727,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:728,1
    - Dst: libssh2_session_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:729,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:733,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 739
    functionName: ssh_force_knownhost_key_type
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_method_pref
    - libssh2_knownhost_get
    - strstr
    - libssh2_session_last_error
    - failf
    - curlx_str_number
    - infof
    - libssh2_session_error_to_CURLE
    - strcmp
    - strlen
    - strncmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_force_knownhost_key_type(struct Curl_easy *data,\n                                             struct
      ssh_conn *sshc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:744,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:745,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 748
    functionName: quote_error
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 9
    functionsReached:
    - curlx_safefree
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode quote_error(struct Curl_easy *data,\n                            struct
      ssh_conn *sshc)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: curl_strequal
      Src: /src/curl/lib/vssh/libssh2.c:776,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vssh/libssh2.c:778,1
    - Dst: Curl_debug
      Src: /src/curl/lib/vssh/libssh2.c:782,1
    - Dst: Curl_debug
      Src: /src/curl/lib/vssh/libssh2.c:783,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:783,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/vssh/libssh2.c:788,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:788,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:789,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:791,1
    - Dst: strchr
      Src: /src/curl/lib/vssh/libssh2.c:799,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:801,1
    - Dst: Curl_get_pathname
      Src: /src/curl/lib/vssh/libssh2.c:809,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:812,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:821,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:822,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:823,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:824,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:825,1
    - Dst: Curl_get_pathname
      Src: /src/curl/lib/vssh/libssh2.c:830,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:833,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:834,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh2.c:838,1
    - Dst: memset
      Src: /src/curl/lib/vssh/libssh2.c:840,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:841,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:844,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:845,1
    - Dst: Curl_get_pathname
      Src: /src/curl/lib/vssh/libssh2.c:849,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:852,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:853,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh2.c:857,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:858,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:861,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh2.c:863,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:865,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:868,1
    - Dst: Curl_get_pathname
      Src: /src/curl/lib/vssh/libssh2.c:872,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:875,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:876,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh2.c:880,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:881,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:884,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh2.c:886,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:888,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:891,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh2.c:893,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:894,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:897,1
    - Dst: quote_error
      Src: /src/curl/lib/vssh/libssh2.c:899,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:900,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:904,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:905,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:906,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 96
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 750
    functionDepth: 9
    functionLinenumber: 750
    functionLinenumberEnd: 908
    functionName: sftp_quote
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_maprintf
    - failf
    - myssh_to
    - Curl_client_write
    - Curl_get_pathname
    - quote_error
    - curl_strequal
    - curlx_free
    - strchr
    - memset
    - Curl_debug
    - strlen
    - strncmp
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_quote(struct Curl_easy *data,\n                           struct
      ssh_conn *sshc,\n                           struct SSHPROTO *sshp)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_stat_ex
      Src: /src/curl/lib/vssh/libssh2.c:927,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:928,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:928,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:940,1
    - Dst: libssh2_sftp_open_ex
      Src: /src/curl/lib/vssh/libssh2.c:965,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:966,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:966,1
    - Dst: libssh2_session_last_errno
      Src: /src/curl/lib/vssh/libssh2.c:973,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:983,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:988,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:989,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:990,1
    - Dst: sftp_libssh2_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:991,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:997,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1000,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1003,1
    - Dst: sftp_libssh2_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:1004,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1012,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:1014,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh2.c:1025,1
    - Dst: struct Curl_easy*::set::seek_func
      Src: /src/curl/lib/vssh/libssh2.c:1026,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh2.c:1028,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1035,1
    - Dst: curlx_sotouz
      Src: /src/curl/lib/vssh/libssh2.c:1044,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh2.c:1047,1
    - Dst: struct Curl_easy*::state::fread_func
      Src: /src/curl/lib/vssh/libssh2.c:1048,1
    - Dst: Curl_set_in_callback
      Src: /src/curl/lib/vssh/libssh2.c:1051,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1057,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/vssh/libssh2.c:1067,1
    - Dst: libssh2_sftp_seek64
      Src: /src/curl/lib/vssh/libssh2.c:1070,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/vssh/libssh2.c:1075,1
    - Dst: Curl_xfer_setup_send
      Src: /src/curl/lib/vssh/libssh2.c:1078,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vssh/libssh2.c:1085,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1087,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 92
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - blockp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 1089
    functionName: sftp_upload_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_last_errno
    - libssh2_sftp_open_ex
    - failf
    - myssh_to
    - Curl_multi_mark_dirty
    - Curl_xfer_setup_send
    - sftp_libssh2_strerror
    - struct Curl_easy*::set::seek_func
    - curlx_sotouz
    - curlx_uztoui
    - libssh2_sftp_seek64
    - Curl_pgrsSetUploadSize
    - libssh2_sftp_last_error
    - Curl_set_in_callback
    - struct Curl_easy*::state::fread_func
    - sftp_libssh2_error_to_CURLE
    - strlen
    - libssh2_sftp_stat_ex
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_upload_init(struct Curl_easy *data,\n                                 struct
      ssh_conn *sshc,\n                                 struct SSHPROTO *sshp,\n                                 bool
      *blockp)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/curl/lib/vssh/libssh2.c:1101,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vssh/libssh2.c:1107,1
    - Dst: curl_getenv
      Src: /src/curl/lib/vssh/libssh2.c:1114,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vssh/libssh2.c:1120,1
    - Dst: curlx_stat
      Src: /src/curl/lib/vssh/libssh2.c:1123,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:1124,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vssh/libssh2.c:1125,1
    - Dst: curlx_stat
      Src: /src/curl/lib/vssh/libssh2.c:1128,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1129,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:1132,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vssh/libssh2.c:1136,1
    - Dst: curlx_stat
      Src: /src/curl/lib/vssh/libssh2.c:1137,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:1138,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vssh/libssh2.c:1139,1
    - Dst: curlx_stat
      Src: /src/curl/lib/vssh/libssh2.c:1140,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:1141,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vssh/libssh2.c:1144,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vssh/libssh2.c:1158,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1164,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1165,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1166,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1175,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1176,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1178,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1181,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1091
    functionDepth: 7
    functionLinenumber: 1091
    functionLinenumberEnd: 1184
    functionName: ssh_state_pkey_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_maprintf
    - strstr
    - myssh_to
    - curl_getenv
    - curlx_strdup
    - infof
    - curlx_stat
    - curlx_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_pkey_init(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:1204,1
    - Dst: libssh2_sftp_stat_ex
      Src: /src/curl/lib/vssh/libssh2.c:1209,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:1210,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:1210,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:1218,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1219,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:1220,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:1226,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/vssh/libssh2.c:1229,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1234,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:1238,1
    - Dst: curlx_str_octal
      Src: /src/curl/lib/vssh/libssh2.c:1242,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1243,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:1250,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/vssh/libssh2.c:1253,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1258,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:1262,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:1263,1
    - Dst: Curl_getdate_capped
      Src: /src/curl/lib/vssh/libssh2.c:1267,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1268,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1274,1
    - Dst: strncmp
      Src: /src/curl/lib/vssh/libssh2.c:1280,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1289,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1292,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1293,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - blockp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1186
    functionDepth: 6
    functionLinenumber: 1186
    functionLinenumberEnd: 1295
    functionName: sftp_quote_stat
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - strlen
    - failf
    - myssh_to
    - sftp_libssh2_strerror
    - curlx_str_number
    - curlx_str_octal
    - curlx_uztoui
    - libssh2_sftp_last_error
    - strncmp
    - Curl_getdate_capped
    - libssh2_sftp_stat_ex
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_quote_stat(struct Curl_easy *data,\n                                struct
      ssh_conn *sshc,\n                                struct SSHPROTO *sshp,\n                                bool
      *blockp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_stat_ex
      Src: /src/curl/lib/vssh/libssh2.c:1303,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:1304,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:1304,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/vssh/libssh2.c:1321,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1328,1
    - Dst: Curl_ssh_range
      Src: /src/curl/lib/vssh/libssh2.c:1333,1
    - Dst: libssh2_sftp_seek64
      Src: /src/curl/lib/vssh/libssh2.c:1338,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/vssh/libssh2.c:1342,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1350,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1360,1
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/vssh/libssh2.c:1369,1
    - Dst: libssh2_sftp_seek64
      Src: /src/curl/lib/vssh/libssh2.c:1370,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/vssh/libssh2.c:1377,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1378,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1379,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/vssh/libssh2.c:1382,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1387,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - blockp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1297
    functionDepth: 3
    functionLinenumber: 1297
    functionLinenumberEnd: 1390
    functionName: sftp_download_stat
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - failf
    - myssh_to
    - Curl_xfer_setup_nop
    - Curl_pgrsSetDownloadSize
    - Curl_xfer_setup_recv
    - infof
    - curlx_uztoui
    - libssh2_sftp_seek64
    - Curl_ssh_range
    - strlen
    - libssh2_sftp_stat_ex
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_download_stat(struct Curl_easy *data,\n                                   struct
      ssh_conn *sshc,\n                                   struct SSHPROTO *sshp,\n
      \                                  bool *blockp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_readdir_ex
      Src: /src/curl/lib/vssh/libssh2.c:1398,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/vssh/libssh2.c:1411,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/vssh/libssh2.c:1415,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vssh/libssh2.c:1420,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vssh/libssh2.c:1426,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1428,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1431,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1438,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:1441,1
    - Dst: sftp_libssh2_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:1442,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1443,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:1444,1
    - Dst: libssh2_session_last_errno
      Src: /src/curl/lib/vssh/libssh2.c:1445,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1446,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - blockp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1392
    functionDepth: 3
    functionLinenumber: 1392
    functionLinenumberEnd: 1449
    functionName: sftp_readdir
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 1
    functionsReached:
    - libssh2_session_last_errno
    - failf
    - myssh_to
    - curlx_dyn_add
    - Curl_client_write
    - sftp_libssh2_strerror
    - libssh2_sftp_last_error
    - curlx_dyn_addf
    - sftp_libssh2_error_to_CURLE
    - libssh2_sftp_readdir_ex
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_readdir(struct Curl_easy *data,\n                             struct
      ssh_conn *sshc,\n                             struct SSHPROTO *sshp,\n                             bool
      *blockp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_session_set_blocking
      Src: /src/curl/lib/vssh/libssh2.c:1460,1
    - Dst: ssh_force_knownhost_key_type
      Src: /src/curl/lib/vssh/libssh2.c:1462,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1464,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1468
    functionName: ssh_state_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 1
    functionsReached:
    - libssh2_session_set_blocking
    - myssh_to
    - ssh_force_knownhost_key_type
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_init(struct Curl_easy *data,\n                               struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_session_handshake
      Src: /src/curl/lib/vssh/libssh2.c:1474,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:1481,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1482,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1484,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1490
    functionName: ssh_state_startup
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - failf
    - libssh2_session_last_error
    - libssh2_session_handshake
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_startup(struct Curl_easy *data,\n                                  struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssh_check_fingerprint
      Src: /src/curl/lib/vssh/libssh2.c:1500,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1492
    functionDepth: 9
    functionLinenumber: 1492
    functionLinenumberEnd: 1504
    functionName: ssh_state_hostkey
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - ssh_check_fingerprint
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_hostkey(struct Curl_easy *data,\n                                  struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vssh/libssh2.c:1520,1
    - Dst: libssh2_userauth_list
      Src: /src/curl/lib/vssh/libssh2.c:1521,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:1522,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:1522,1
    - Dst: libssh2_userauth_authenticated
      Src: /src/curl/lib/vssh/libssh2.c:1526,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1528,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1529,1
    - Dst: libssh2_session_last_errno
      Src: /src/curl/lib/vssh/libssh2.c:1532,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1536,1
    - Dst: libssh2_session_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:1537,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1539,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1543
    functionName: ssh_state_authlist
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_userauth_list
    - libssh2_session_last_errno
    - myssh_to
    - libssh2_userauth_authenticated
    - curlx_uztoui
    - infof
    - libssh2_session_error_to_CURLE
    - Curl_creds_user
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_authlist(struct Curl_easy *data,\n                                   struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vssh/libssh2.c:1551,1
    - Dst: libssh2_userauth_publickey_fromfile_ex
      Src: /src/curl/lib/vssh/libssh2.c:1553,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:1555,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:1555,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1561,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1562,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1566,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1567,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:1578,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1580,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1584
    functionName: ssh_state_auth_pkey
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - libssh2_session_last_error
    - myssh_to
    - infof
    - curlx_uztoui
    - Curl_creds_user
    - strlen
    - libssh2_userauth_publickey_fromfile_ex
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_pkey(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/curl/lib/vssh/libssh2.c:1590,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1591,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1597
    functionName: ssh_state_auth_pass_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - strstr
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_pass_init(struct Curl_easy *data,\n                                         struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vssh/libssh2.c:1603,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vssh/libssh2.c:1604,1
    - Dst: libssh2_userauth_password_ex
      Src: /src/curl/lib/vssh/libssh2.c:1606,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:1607,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:1607,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:1609,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:1609,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1616,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1617,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1623
    functionName: ssh_state_auth_pass
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_creds_passwd
    - myssh_to
    - infof
    - curlx_uztoui
    - Curl_creds_user
    - strlen
    - libssh2_userauth_password_ex
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_pass(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/curl/lib/vssh/libssh2.c:1629,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1630,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1625
    functionDepth: 1
    functionLinenumber: 1625
    functionLinenumberEnd: 1636
    functionName: ssh_state_auth_host_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - strstr
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_host_init(struct Curl_easy *data,\n                                         struct
      ssh_conn *sshc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/curl/lib/vssh/libssh2.c:1643,1
    - Dst: libssh2_agent_init
      Src: /src/curl/lib/vssh/libssh2.c:1649,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1651,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1653,1
    - Dst: libssh2_agent_connect
      Src: /src/curl/lib/vssh/libssh2.c:1658,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1662,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1663,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1666,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1638
    functionDepth: 1
    functionLinenumber: 1638
    functionLinenumberEnd: 1672
    functionName: ssh_state_auth_agent_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_agent_connect
    - strstr
    - myssh_to
    - libssh2_agent_init
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_agent_init(struct Curl_easy *data,\n                                          struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_agent_list_identities
      Src: /src/curl/lib/vssh/libssh2.c:1677,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1682,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1683,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1690
    functionName: ssh_state_auth_agent_list
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_agent_list_identities
    - myssh_to
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_agent_list(struct Curl_easy *data,\n                                          struct
      ssh_conn *sshc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_agent_get_identity
      Src: /src/curl/lib/vssh/libssh2.c:1698,1
    - Dst: libssh2_agent_userauth
      Src: /src/curl/lib/vssh/libssh2.c:1706,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vssh/libssh2.c:1706,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1720,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1722,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1726,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1727,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1730,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1733
    functionName: ssh_state_auth_agent
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_agent_get_identity
    - myssh_to
    - libssh2_agent_userauth
    - infof
    - Curl_creds_user
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_agent(struct Curl_easy *data,\n                                     struct
      ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/curl/lib/vssh/libssh2.c:1739,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1740,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1735
    functionDepth: 1
    functionLinenumber: 1735
    functionLinenumberEnd: 1746
    functionName: ssh_state_auth_key_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - strstr
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_key_init(struct Curl_easy *data,\n                                        struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vssh/libssh2.c:1753,1
    - Dst: libssh2_userauth_keyboard_interactive_ex
      Src: /src/curl/lib/vssh/libssh2.c:1755,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:1756,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:1756,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1763,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1748
    functionDepth: 1
    functionLinenumber: 1748
    functionLinenumberEnd: 1768
    functionName: ssh_state_auth_key
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_userauth_keyboard_interactive_ex
    - myssh_to
    - infof
    - curlx_uztoui
    - Curl_creds_user
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_key(struct Curl_easy *data,\n                                   struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1775,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1776,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1783,1
    - Dst: Curl_pgrsTime
      Src: /src/curl/lib/vssh/libssh2.c:1785,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1791,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1794,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1770
    functionDepth: 4
    functionLinenumber: 1770
    functionLinenumberEnd: 1797
    functionName: ssh_state_auth_done
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_pgrsTime
    - infof
    - failf
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_auth_done(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_init
      Src: /src/curl/lib/vssh/libssh2.c:1805,1
    - Dst: libssh2_session_last_errno
      Src: /src/curl/lib/vssh/libssh2.c:1808,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:1812,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1813,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1814,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1819
    functionName: ssh_state_sftp_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_sftp_init
    - libssh2_session_last_errno
    - libssh2_session_last_error
    - failf
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_init(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_symlink_ex
      Src: /src/curl/lib/vssh/libssh2.c:1833,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:1834,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:1834,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1840,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:1842,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vssh/libssh2.c:1843,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:1846,1
    - Dst: curlx_strdup
      Src: /src/curl/lib/vssh/libssh2.c:1847,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:1853,1
    - Dst: sftp_libssh2_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:1856,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:1861,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:1868,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1821
    functionDepth: 1
    functionLinenumber: 1821
    functionLinenumberEnd: 1870
    functionName: ssh_state_sftp_realpath
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_sftp_symlink_ex
    - myssh_to
    - CURL_TRC_SSH
    - curlx_strdup
    - curlx_uztoui
    - curlx_free
    - libssh2_sftp_last_error
    - sftp_libssh2_error_to_CURLE
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_realpath(struct Curl_easy *data,\n                                        struct
      ssh_conn *sshc,\n                                        struct SSHPROTO *sshp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_getworkingpath
      Src: /src/curl/lib/vssh/libssh2.c:1881,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1883,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1888,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1890,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1893,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1872
    functionDepth: 3
    functionLinenumber: 1872
    functionLinenumberEnd: 1896
    functionName: ssh_state_sftp_quote_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_getworkingpath
    - infof
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote_init(struct Curl_easy *data,\n                                          struct
      ssh_conn *sshc,\n                                          struct SSHPROTO *sshp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:1902,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1904,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1910
    functionName: ssh_state_sftp_postquote_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_postquote_init(struct Curl_easy *data,\n                                              struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_quote
      Src: /src/curl/lib/vssh/libssh2.c:1922,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1912
    functionDepth: 10
    functionLinenumber: 1912
    functionLinenumberEnd: 1928
    functionName: ssh_state_sftp_quote
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - sftp_quote
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote(struct Curl_easy *data,\n                                     struct
      ssh_conn *sshc,\n                                     struct SSHPROTO *sshp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1933,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1934,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1939,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1943,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1930
    functionDepth: 1
    functionLinenumber: 1930
    functionLinenumberEnd: 1951
    functionName: ssh_state_sftp_next_quote
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_next_quote(struct Curl_easy *data,\n                                          struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_quote_stat
      Src: /src/curl/lib/vssh/libssh2.c:1963,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - blockp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1953
    functionDepth: 7
    functionLinenumber: 1953
    functionLinenumberEnd: 1969
    functionName: ssh_state_sftp_quote_stat
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - sftp_quote_stat
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote_stat(struct Curl_easy *data,\n                                          struct
      ssh_conn *sshc,\n                                          struct SSHPROTO *sshp,\n
      \                                         bool *blockp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_stat_ex
      Src: /src/curl/lib/vssh/libssh2.c:1980,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:1981,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:1981,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:1988,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:1989,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:1990,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1991,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:1992,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1993,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:1997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 1999
    functionName: ssh_state_sftp_quote_setstat
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - failf
    - myssh_to
    - sftp_libssh2_strerror
    - curlx_uztoui
    - libssh2_sftp_last_error
    - strlen
    - libssh2_sftp_stat_ex
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote_setstat(struct Curl_easy *data,\n                                             struct
      ssh_conn *sshc,\n                                             struct SSHPROTO
      *sshp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_symlink_ex
      Src: /src/curl/lib/vssh/libssh2.c:2005,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2006,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2006,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2008,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2008,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2014,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2015,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:2017,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2018,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2019,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2020,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2024,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2001
    functionDepth: 1
    functionLinenumber: 2001
    functionLinenumberEnd: 2026
    functionName: ssh_state_sftp_quote_symlink
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - libssh2_sftp_symlink_ex
    - failf
    - myssh_to
    - sftp_libssh2_strerror
    - curlx_uztoui
    - libssh2_sftp_last_error
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote_symlink(struct Curl_easy *data,\n                                             struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_mkdir_ex
      Src: /src/curl/lib/vssh/libssh2.c:2031,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2032,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2032,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2038,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2039,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:2040,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2041,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2042,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2046,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2048
    functionName: ssh_state_sftp_quote_mkdir
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - failf
    - myssh_to
    - sftp_libssh2_strerror
    - curlx_uztoui
    - libssh2_sftp_mkdir_ex
    - libssh2_sftp_last_error
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote_mkdir(struct Curl_easy *data,\n                                           struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_rename_ex
      Src: /src/curl/lib/vssh/libssh2.c:2054,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2055,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2055,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2057,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2057,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2066,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2067,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:2069,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2070,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2071,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2072,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2050
    functionDepth: 1
    functionLinenumber: 2050
    functionLinenumberEnd: 2078
    functionName: ssh_state_sftp_quote_rename
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - failf
    - myssh_to
    - libssh2_sftp_rename_ex
    - sftp_libssh2_strerror
    - curlx_uztoui
    - libssh2_sftp_last_error
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote_rename(struct Curl_easy *data,\n                                            struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_rmdir_ex
      Src: /src/curl/lib/vssh/libssh2.c:2083,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2084,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2084,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2089,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2090,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:2091,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2092,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2093,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2097,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2099
    functionName: ssh_state_sftp_quote_rmdir
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - failf
    - myssh_to
    - libssh2_sftp_rmdir_ex
    - sftp_libssh2_strerror
    - curlx_uztoui
    - libssh2_sftp_last_error
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote_rmdir(struct Curl_easy *data,\n                                           struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_unlink_ex
      Src: /src/curl/lib/vssh/libssh2.c:2104,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2105,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2105,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2110,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2111,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:2112,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2113,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2114,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2101
    functionDepth: 1
    functionLinenumber: 2101
    functionLinenumberEnd: 2120
    functionName: ssh_state_sftp_quote_unlink
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - failf
    - myssh_to
    - sftp_libssh2_strerror
    - curlx_uztoui
    - libssh2_sftp_last_error
    - libssh2_sftp_unlink_ex
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote_unlink(struct Curl_easy *data,\n                                            struct
      ssh_conn *sshc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_statvfs
      Src: /src/curl/lib/vssh/libssh2.c:2126,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2127,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2127,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2134,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2135,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:2136,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2137,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2138,1
    - Dst: curl_maprintf
      Src: /src/curl/lib/vssh/libssh2.c:2149,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2168,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/vssh/libssh2.c:2173,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2173,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:2174,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2176,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2122
    functionDepth: 7
    functionLinenumber: 2122
    functionLinenumberEnd: 2183
    functionName: ssh_state_sftp_quote_statvfs
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curl_maprintf
    - failf
    - myssh_to
    - Curl_client_write
    - sftp_libssh2_strerror
    - libssh2_sftp_statvfs
    - curlx_uztoui
    - curlx_free
    - libssh2_sftp_last_error
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_quote_statvfs(struct Curl_easy *data,\n                                             struct
      ssh_conn *sshc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_mkdir_ex
      Src: /src/curl/lib/vssh/libssh2.c:2195,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2196,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2196,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2209,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2213,1
    - Dst: sftp_libssh2_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:2214,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2185
    functionDepth: 1
    functionLinenumber: 2185
    functionLinenumberEnd: 2219
    functionName: ssh_state_sftp_create_dirs_mkdir
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - curlx_uztoui
    - libssh2_sftp_mkdir_ex
    - libssh2_sftp_last_error
    - sftp_libssh2_error_to_CURLE
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_create_dirs_mkdir(struct Curl_easy *data,\n
      \                                                struct ssh_conn *sshc,\n                                                 struct
      SSHPROTO *sshp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrsSetDownloadSize
      Src: /src/curl/lib/vssh/libssh2.c:2228,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2230,1
    - Dst: libssh2_sftp_open_ex
      Src: /src/curl/lib/vssh/libssh2.c:2239,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2240,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2240,1
    - Dst: libssh2_session_last_errno
      Src: /src/curl/lib/vssh/libssh2.c:2244,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2247,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2248,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:2249,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2250,1
    - Dst: sftp_libssh2_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:2251,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2221
    functionDepth: 1
    functionLinenumber: 2221
    functionLinenumberEnd: 2255
    functionName: ssh_state_sftp_readdir_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_last_errno
    - libssh2_sftp_open_ex
    - failf
    - myssh_to
    - Curl_pgrsSetDownloadSize
    - sftp_libssh2_strerror
    - curlx_uztoui
    - libssh2_sftp_last_error
    - sftp_libssh2_error_to_CURLE
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_readdir_init(struct Curl_easy *data,\n                                            struct
      ssh_conn *sshc,\n                                            struct SSHPROTO
      *sshp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_symlink_ex
      Src: /src/curl/lib/vssh/libssh2.c:2266,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vssh/libssh2.c:2267,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vssh/libssh2.c:2269,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vssh/libssh2.c:2275,1
    - Dst: curlx_dyn_addf
      Src: /src/curl/lib/vssh/libssh2.c:2281,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2283,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2257
    functionDepth: 1
    functionLinenumber: 2257
    functionLinenumberEnd: 2287
    functionName: ssh_state_sftp_readdir_link
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_sftp_symlink_ex
    - myssh_to
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_ptr
    - curlx_dyn_addf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_readdir_link(struct Curl_easy *data,\n                                            struct
      ssh_conn *sshc,\n                                            struct SSHPROTO
      *sshp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/vssh/libssh2.c:2308,1
    - Dst: libssh2_scp_recv2
      Src: /src/curl/lib/vssh/libssh2.c:2309,1
    - Dst: libssh2_session_last_errno
      Src: /src/curl/lib/vssh/libssh2.c:2314,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2318,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2319,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2320,1
    - Dst: libssh2_session_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:2321,1
    - Dst: Curl_xfer_setup_recv
      Src: /src/curl/lib/vssh/libssh2.c:2327,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2289
    functionDepth: 3
    functionLinenumber: 2289
    functionLinenumberEnd: 2334
    functionName: ssh_state_scp_download_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_last_errno
    - libssh2_session_last_error
    - failf
    - myssh_to
    - Curl_xfer_setup_recv
    - libssh2_scp_recv2
    - libssh2_session_error_to_CURLE
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_scp_download_init(struct Curl_easy *data,\n                                            struct
      ssh_conn *sshc,\n                                            struct SSHPROTO
      *sshp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_close
      Src: /src/curl/lib/vssh/libssh2.c:2344,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2350,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2351,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2356,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:2358,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2365,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2336
    functionDepth: 1
    functionLinenumber: 2336
    functionLinenumberEnd: 2372
    functionName: ssh_state_sftp_close
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - libssh2_session_last_error
    - CURL_TRC_SSH
    - myssh_to
    - libssh2_sftp_close
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_close(struct Curl_easy *data,\n                                     struct
      ssh_conn *sshc,\n                                     struct SSHPROTO *sshp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_close
      Src: /src/curl/lib/vssh/libssh2.c:2382,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2388,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2389,1
    - Dst: libssh2_sftp_shutdown
      Src: /src/curl/lib/vssh/libssh2.c:2394,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2399,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2404,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2374
    functionDepth: 1
    functionLinenumber: 2374
    functionLinenumberEnd: 2408
    functionName: ssh_state_sftp_shutdown
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - libssh2_session_last_error
    - libssh2_sftp_shutdown
    - myssh_to
    - libssh2_sftp_close
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_shutdown(struct Curl_easy *data,\n                                        struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_open_ex
      Src: /src/curl/lib/vssh/libssh2.c:2420,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2421,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2421,1
    - Dst: libssh2_session_last_errno
      Src: /src/curl/lib/vssh/libssh2.c:2426,1
    - Dst: libssh2_sftp_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2430,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2431,1
    - Dst: sftp_libssh2_strerror
      Src: /src/curl/lib/vssh/libssh2.c:2432,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2433,1
    - Dst: sftp_libssh2_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:2434,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2410
    functionDepth: 1
    functionLinenumber: 2410
    functionLinenumberEnd: 2438
    functionName: ssh_state_sftp_download_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_last_errno
    - libssh2_sftp_open_ex
    - failf
    - myssh_to
    - sftp_libssh2_strerror
    - curlx_uztoui
    - libssh2_sftp_last_error
    - sftp_libssh2_error_to_CURLE
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_download_init(struct Curl_easy *data,\n                                             struct
      ssh_conn *sshc,\n                                             struct SSHPROTO
      *sshp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_scp_send64
      Src: /src/curl/lib/vssh/libssh2.c:2453,1
    - Dst: libssh2_session_last_errno
      Src: /src/curl/lib/vssh/libssh2.c:2460,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2464,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2465,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2466,1
    - Dst: libssh2_session_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:2467,1
    - Dst: Curl_pgrsSetUploadSize
      Src: /src/curl/lib/vssh/libssh2.c:2478,1
    - Dst: Curl_xfer_setup_send
      Src: /src/curl/lib/vssh/libssh2.c:2479,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2440
    functionDepth: 3
    functionLinenumber: 2440
    functionLinenumberEnd: 2487
    functionName: ssh_state_scp_upload_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_last_errno
    - libssh2_session_last_error
    - failf
    - myssh_to
    - libssh2_scp_send64
    - Curl_xfer_setup_send
    - libssh2_session_error_to_CURLE
    - Curl_pgrsSetUploadSize
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_scp_upload_init(struct Curl_easy *data,\n                                          struct
      ssh_conn *sshc,\n                                          struct SSHPROTO *sshp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_channel_free
      Src: /src/curl/lib/vssh/libssh2.c:2497,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2503,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2504,1
    - Dst: libssh2_session_disconnect
      Src: /src/curl/lib/vssh/libssh2.c:2510,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2516,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2517,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2521,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2489
    functionDepth: 1
    functionLinenumber: 2489
    functionLinenumberEnd: 2525
    functionName: ssh_state_session_disconnect
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - libssh2_session_last_error
    - myssh_to
    - infof
    - libssh2_session_disconnect
    - libssh2_channel_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_session_disconnect(struct Curl_easy *data,\n                                             struct
      ssh_conn *sshc)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_knownhost_free
      Src: /src/curl/lib/vssh/libssh2.c:2533,1
    - Dst: libssh2_agent_disconnect
      Src: /src/curl/lib/vssh/libssh2.c:2538,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2541,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2542,1
    - Dst: libssh2_agent_free
      Src: /src/curl/lib/vssh/libssh2.c:2548,1
    - Dst: libssh2_sftp_close
      Src: /src/curl/lib/vssh/libssh2.c:2558,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2561,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2562,1
    - Dst: libssh2_channel_free
      Src: /src/curl/lib/vssh/libssh2.c:2571,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2574,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2575,1
    - Dst: libssh2_sftp_shutdown
      Src: /src/curl/lib/vssh/libssh2.c:2584,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2587,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2588,1
    - Dst: libssh2_session_free
      Src: /src/curl/lib/vssh/libssh2.c:2597,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2600,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2601,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh2.c:2610,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh2.c:2611,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh2.c:2612,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh2.c:2613,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh2.c:2614,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh2.c:2615,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2617,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2618,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2619,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2620,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:2621,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 3
    argNames:
    - sshc
    - data
    - block
    argTypes:
    - struct ssh_conn*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2527
    functionDepth: 1
    functionLinenumber: 2527
    functionLinenumberEnd: 2624
    functionName: sshc_cleanup
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 2
    functionsReached:
    - curlx_safefree
    - libssh2_session_last_error
    - libssh2_session_free
    - libssh2_sftp_shutdown
    - DEBUGASSERT
    - libssh2_sftp_close
    - infof
    - libssh2_knownhost_free
    - libssh2_agent_free
    - libssh2_channel_free
    - libssh2_agent_disconnect
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sshc_cleanup(struct ssh_conn *sshc, struct Curl_easy *data,\n
      \                            bool block)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2630,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2626
    functionDepth: 1
    functionLinenumber: 2626
    functionLinenumberEnd: 2634
    functionName: ssh_state_sftp_getinfo
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_getinfo(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_stat_ex
      Src: /src/curl/lib/vssh/libssh2.c:2646,1
    - Dst: curlx_uztoui
      Src: /src/curl/lib/vssh/libssh2.c:2647,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2647,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2636
    functionDepth: 1
    functionLinenumber: 2636
    functionLinenumberEnd: 2657
    functionName: ssh_state_sftp_filetime
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_uztoui
    - strlen
    - myssh_to
    - libssh2_sftp_stat_ex
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_filetime(struct Curl_easy *data,\n                                        struct
      ssh_conn *sshc,\n                                        struct SSHPROTO *sshp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2664,1
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2666,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2668,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2675
    functionName: ssh_state_sftp_trans_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - strlen
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_trans_init(struct Curl_easy *data,\n                                          struct
      ssh_conn *sshc,\n                                          struct SSHPROTO *sshp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_upload_init
      Src: /src/curl/lib/vssh/libssh2.c:2685,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - block
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2677
    functionDepth: 4
    functionLinenumber: 2677
    functionLinenumberEnd: 2691
    functionName: ssh_state_sftp_upload_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - sftp_upload_init
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_upload_init(struct Curl_easy *data,\n                                           struct
      ssh_conn *sshc,\n                                           struct SSHPROTO
      *sshp,\n                                           bool *block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/vssh/libssh2.c:2699,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2701,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2693
    functionDepth: 1
    functionLinenumber: 2693
    functionLinenumberEnd: 2706
    functionName: ssh_state_sftp_create_dirs_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - strlen
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_create_dirs_init(struct Curl_easy *data,\n
      \                                               struct ssh_conn *sshc,\n                                                struct
      SSHPROTO *sshp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/curl/lib/vssh/libssh2.c:2714,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2717,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2718,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2708
    functionDepth: 1
    functionLinenumber: 2708
    functionLinenumberEnd: 2723
    functionName: ssh_state_sftp_create_dirs
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - strchr
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_create_dirs(struct Curl_easy *data,\n                                           struct
      ssh_conn *sshc,\n                                           struct SSHPROTO
      *sshp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_readdir
      Src: /src/curl/lib/vssh/libssh2.c:2733,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - block
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2725
    functionDepth: 4
    functionLinenumber: 2725
    functionLinenumberEnd: 2737
    functionName: ssh_state_sftp_readdir
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - sftp_readdir
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_readdir(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc,\n                                       struct SSHPROTO *sshp,\n
      \                                      bool *block)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vssh/libssh2.c:2747,1
    - Dst: Curl_client_write
      Src: /src/curl/lib/vssh/libssh2.c:2749,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vssh/libssh2.c:2750,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vssh/libssh2.c:2751,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vssh/libssh2.c:2753,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2754,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vssh/libssh2.c:2757,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2739
    functionDepth: 3
    functionLinenumber: 2739
    functionLinenumberEnd: 2761
    functionName: ssh_state_sftp_readdir_bottom
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_addn
    - myssh_to
    - Curl_client_write
    - curlx_dyn_free
    - curlx_dyn_len
    - curlx_dyn_ptr
    - curlx_dyn_reset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_readdir_bottom(struct Curl_easy *data,\n                                              struct
      ssh_conn *sshc,\n                                              struct SSHPROTO
      *sshp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_sftp_closedir
      Src: /src/curl/lib/vssh/libssh2.c:2766,1
    - Dst: Curl_xfer_setup_nop
      Src: /src/curl/lib/vssh/libssh2.c:2773,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2776
      start: 2763
    functionDepth: 3
    functionLinenumber: 2763
    functionLinenumberEnd: 2776
    functionName: ssh_state_sftp_readdir_done
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_setup_nop
    - libssh2_sftp_closedir
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_readdir_done(struct Curl_easy *data,\n                                            struct
      ssh_conn *sshc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftp_download_stat
      Src: /src/curl/lib/vssh/libssh2.c:2786,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - block
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2778
    functionDepth: 4
    functionLinenumber: 2778
    functionLinenumberEnd: 2792
    functionName: ssh_state_sftp_download_stat
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - sftp_download_stat
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_sftp_download_stat(struct Curl_easy *data,\n                                             struct
      ssh_conn *sshc,\n                                             struct SSHPROTO
      *sshp,\n                                             bool *block)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_getworkingpath
      Src: /src/curl/lib/vssh/libssh2.c:2801,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2804,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:2810,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2811,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2814,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - data
    - sshc
    - sshp
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2794
    functionDepth: 3
    functionLinenumber: 2794
    functionLinenumberEnd: 2819
    functionName: ssh_state_scp_trans_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_getworkingpath
    - failf
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_scp_trans_init(struct Curl_easy *data,\n                                         struct
      ssh_conn *sshc,\n                                         struct SSHPROTO *sshp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2825,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2821
    functionDepth: 1
    functionLinenumber: 2821
    functionLinenumberEnd: 2829
    functionName: ssh_state_scp_done
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - myssh_to
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_scp_done(struct Curl_easy *data,\n                                   struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_channel_send_eof
      Src: /src/curl/lib/vssh/libssh2.c:2835,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2840,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2842,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2831
    functionDepth: 1
    functionLinenumber: 2831
    functionLinenumberEnd: 2849
    functionName: ssh_state_scp_send_eof
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_channel_send_eof
    - libssh2_session_last_error
    - myssh_to
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_scp_send_eof(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_channel_wait_eof
      Src: /src/curl/lib/vssh/libssh2.c:2855,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2860,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2862,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2868
    functionName: ssh_state_scp_wait_eof
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_channel_wait_eof
    - libssh2_session_last_error
    - myssh_to
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_scp_wait_eof(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_channel_wait_closed
      Src: /src/curl/lib/vssh/libssh2.c:2875,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2880,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2882,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2870
    functionDepth: 1
    functionLinenumber: 2870
    functionLinenumberEnd: 2888
    functionName: ssh_state_scp_wait_close
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - infof
    - libssh2_session_last_error
    - myssh_to
    - libssh2_channel_wait_closed
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_scp_wait_close(struct Curl_easy *data,\n                                         struct
      ssh_conn *sshc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_channel_free
      Src: /src/curl/lib/vssh/libssh2.c:2895,1
    - Dst: libssh2_session_last_error
      Src: /src/curl/lib/vssh/libssh2.c:2900,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:2902,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:2908,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2890
    functionDepth: 1
    functionLinenumber: 2890
    functionLinenumberEnd: 2911
    functionName: ssh_state_scp_channel_free
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_last_error
    - CURL_TRC_SSH
    - myssh_to
    - infof
    - libssh2_channel_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_scp_channel_free(\n  struct Curl_easy *data,\n
      \ struct ssh_conn *sshc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sshc_cleanup
      Src: /src/curl/lib/vssh/libssh2.c:2916,1
    - Dst: memset
      Src: /src/curl/lib/vssh/libssh2.c:2920,1
    - Dst: connclose
      Src: /src/curl/lib/vssh/libssh2.c:2921,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - sshc
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2913
    functionDepth: 1
    functionLinenumber: 2913
    functionLinenumberEnd: 2925
    functionName: ssh_state_session_free
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - sshc_cleanup
    - myssh_to
    - connclose
    - memset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_state_session_free(struct Curl_easy *data,\n                                       struct
      ssh_conn *sshc)"
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: ssh_state_init
      Src: /src/curl/lib/vssh/libssh2.c:2944,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh2.c:2947,1
    - Dst: ssh_state_startup
      Src: /src/curl/lib/vssh/libssh2.c:2950,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vssh/libssh2.c:2953,1
    - Dst: ssh_state_hostkey
      Src: /src/curl/lib/vssh/libssh2.c:2956,1
    - Dst: ssh_state_authlist
      Src: /src/curl/lib/vssh/libssh2.c:2960,1
    - Dst: ssh_state_pkey_init
      Src: /src/curl/lib/vssh/libssh2.c:2964,1
    - Dst: ssh_state_auth_pkey
      Src: /src/curl/lib/vssh/libssh2.c:2968,1
    - Dst: ssh_state_auth_pass_init
      Src: /src/curl/lib/vssh/libssh2.c:2972,1
    - Dst: ssh_state_auth_pass
      Src: /src/curl/lib/vssh/libssh2.c:2976,1
    - Dst: ssh_state_auth_host_init
      Src: /src/curl/lib/vssh/libssh2.c:2980,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:2984,1
    - Dst: ssh_state_auth_agent_init
      Src: /src/curl/lib/vssh/libssh2.c:2988,1
    - Dst: ssh_state_auth_agent_list
      Src: /src/curl/lib/vssh/libssh2.c:2992,1
    - Dst: ssh_state_auth_agent
      Src: /src/curl/lib/vssh/libssh2.c:2996,1
    - Dst: ssh_state_auth_key_init
      Src: /src/curl/lib/vssh/libssh2.c:3000,1
    - Dst: ssh_state_auth_key
      Src: /src/curl/lib/vssh/libssh2.c:3004,1
    - Dst: ssh_state_auth_done
      Src: /src/curl/lib/vssh/libssh2.c:3008,1
    - Dst: ssh_state_sftp_init
      Src: /src/curl/lib/vssh/libssh2.c:3012,1
    - Dst: ssh_state_sftp_realpath
      Src: /src/curl/lib/vssh/libssh2.c:3016,1
    - Dst: ssh_state_sftp_quote_init
      Src: /src/curl/lib/vssh/libssh2.c:3020,1
    - Dst: ssh_state_sftp_postquote_init
      Src: /src/curl/lib/vssh/libssh2.c:3024,1
    - Dst: ssh_state_sftp_quote
      Src: /src/curl/lib/vssh/libssh2.c:3028,1
    - Dst: ssh_state_sftp_next_quote
      Src: /src/curl/lib/vssh/libssh2.c:3032,1
    - Dst: ssh_state_sftp_quote_stat
      Src: /src/curl/lib/vssh/libssh2.c:3036,1
    - Dst: ssh_state_sftp_quote_setstat
      Src: /src/curl/lib/vssh/libssh2.c:3040,1
    - Dst: ssh_state_sftp_quote_symlink
      Src: /src/curl/lib/vssh/libssh2.c:3044,1
    - Dst: ssh_state_sftp_quote_mkdir
      Src: /src/curl/lib/vssh/libssh2.c:3048,1
    - Dst: ssh_state_sftp_quote_rename
      Src: /src/curl/lib/vssh/libssh2.c:3052,1
    - Dst: ssh_state_sftp_quote_rmdir
      Src: /src/curl/lib/vssh/libssh2.c:3056,1
    - Dst: ssh_state_sftp_quote_unlink
      Src: /src/curl/lib/vssh/libssh2.c:3060,1
    - Dst: ssh_state_sftp_quote_statvfs
      Src: /src/curl/lib/vssh/libssh2.c:3064,1
    - Dst: ssh_state_sftp_getinfo
      Src: /src/curl/lib/vssh/libssh2.c:3068,1
    - Dst: ssh_state_sftp_filetime
      Src: /src/curl/lib/vssh/libssh2.c:3072,1
    - Dst: ssh_state_sftp_trans_init
      Src: /src/curl/lib/vssh/libssh2.c:3076,1
    - Dst: ssh_state_sftp_upload_init
      Src: /src/curl/lib/vssh/libssh2.c:3080,1
    - Dst: ssh_state_sftp_create_dirs_init
      Src: /src/curl/lib/vssh/libssh2.c:3084,1
    - Dst: ssh_state_sftp_create_dirs
      Src: /src/curl/lib/vssh/libssh2.c:3088,1
    - Dst: ssh_state_sftp_create_dirs_mkdir
      Src: /src/curl/lib/vssh/libssh2.c:3092,1
    - Dst: ssh_state_sftp_readdir_init
      Src: /src/curl/lib/vssh/libssh2.c:3096,1
    - Dst: ssh_state_sftp_readdir
      Src: /src/curl/lib/vssh/libssh2.c:3100,1
    - Dst: ssh_state_sftp_readdir_link
      Src: /src/curl/lib/vssh/libssh2.c:3104,1
    - Dst: ssh_state_sftp_readdir_bottom
      Src: /src/curl/lib/vssh/libssh2.c:3108,1
    - Dst: ssh_state_sftp_readdir_done
      Src: /src/curl/lib/vssh/libssh2.c:3112,1
    - Dst: ssh_state_sftp_download_init
      Src: /src/curl/lib/vssh/libssh2.c:3116,1
    - Dst: ssh_state_sftp_download_stat
      Src: /src/curl/lib/vssh/libssh2.c:3120,1
    - Dst: ssh_state_sftp_close
      Src: /src/curl/lib/vssh/libssh2.c:3124,1
    - Dst: ssh_state_sftp_shutdown
      Src: /src/curl/lib/vssh/libssh2.c:3128,1
    - Dst: ssh_state_scp_trans_init
      Src: /src/curl/lib/vssh/libssh2.c:3132,1
    - Dst: ssh_state_scp_upload_init
      Src: /src/curl/lib/vssh/libssh2.c:3136,1
    - Dst: ssh_state_scp_download_init
      Src: /src/curl/lib/vssh/libssh2.c:3140,1
    - Dst: ssh_state_scp_done
      Src: /src/curl/lib/vssh/libssh2.c:3144,1
    - Dst: ssh_state_scp_send_eof
      Src: /src/curl/lib/vssh/libssh2.c:3148,1
    - Dst: ssh_state_scp_wait_eof
      Src: /src/curl/lib/vssh/libssh2.c:3152,1
    - Dst: ssh_state_scp_wait_close
      Src: /src/curl/lib/vssh/libssh2.c:3156,1
    - Dst: ssh_state_scp_channel_free
      Src: /src/curl/lib/vssh/libssh2.c:3160,1
    - Dst: ssh_state_session_disconnect
      Src: /src/curl/lib/vssh/libssh2.c:3164,1
    - Dst: ssh_state_session_free
      Src: /src/curl/lib/vssh/libssh2.c:3168,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:3174,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3186,1
    - Dst: Curl_ssh_statename
      Src: /src/curl/lib/vssh/libssh2.c:3187,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 188
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - block
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3190
      start: 2933
    functionDepth: 11
    functionLinenumber: 2933
    functionLinenumberEnd: 3190
    functionName: ssh_statemachine
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 2
    functionsReached:
    - ssh_state_sftp_quote
    - ssh_state_authlist
    - ssh_state_sftp_next_quote
    - ssh_state_sftp_quote_mkdir
    - ssh_state_sftp_create_dirs_init
    - ssh_state_sftp_quote_symlink
    - ssh_state_session_disconnect
    - ssh_state_pkey_init
    - ssh_state_scp_trans_init
    - ssh_state_scp_done
    - ssh_state_sftp_upload_init
    - ssh_state_sftp_download_init
    - ssh_state_auth_pkey
    - ssh_state_auth_host_init
    - ssh_state_sftp_quote_statvfs
    - ssh_state_sftp_readdir_done
    - ssh_state_scp_channel_free
    - ssh_state_sftp_shutdown
    - ssh_state_sftp_quote_rmdir
    - ssh_state_sftp_download_stat
    - FALLTHROUGH
    - ssh_state_auth_key_init
    - myssh_to
    - ssh_state_sftp_quote_setstat
    - ssh_state_scp_send_eof
    - ssh_state_auth_agent_list
    - ssh_state_sftp_readdir_init
    - ssh_state_sftp_trans_init
    - ssh_state_sftp_quote_init
    - ssh_state_sftp_getinfo
    - ssh_state_sftp_close
    - ssh_state_scp_download_init
    - ssh_state_auth_key
    - ssh_state_sftp_quote_stat
    - ssh_state_sftp_filetime
    - ssh_state_sftp_readdir_link
    - ssh_state_sftp_init
    - ssh_state_sftp_quote_rename
    - ssh_state_scp_upload_init
    - ssh_state_session_free
    - ssh_state_sftp_quote_unlink
    - CURL_TRC_SSH
    - ssh_state_sftp_realpath
    - ssh_state_sftp_create_dirs
    - ssh_state_hostkey
    - ssh_state_startup
    - ssh_state_auth_agent
    - ssh_state_sftp_create_dirs_mkdir
    - ssh_state_sftp_postquote_init
    - ssh_state_auth_agent_init
    - ssh_state_scp_wait_eof
    - Curl_ssh_statename
    - ssh_state_scp_wait_close
    - ssh_state_auth_done
    - ssh_state_auth_pass
    - ssh_state_auth_pass_init
    - ssh_state_sftp_readdir_bottom
    - ssh_state_init
    - ssh_state_sftp_readdir
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_statemachine(struct Curl_easy *data,\n                                 struct
      ssh_conn *sshc,\n                                 struct SSHPROTO *sshp,\n                                 bool
      *block)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3198,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh2.c:3212,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3213,1
    - Dst: Curl_pollset_change
      Src: /src/curl/lib/vssh/libssh2.c:3214,1
    - Dst: Curl_pollset_change
      Src: /src/curl/lib/vssh/libssh2.c:3218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - data
    - ps
    argTypes:
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3194
    functionDepth: 2
    functionLinenumber: 3194
    functionLinenumberEnd: 3220
    functionName: ssh_pollset
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_SSH
    - Curl_pollset_change
    - DEBUGASSERT
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_pollset(struct Curl_easy *data,\n                            struct
      easy_pollset *ps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_session_block_directions
      Src: /src/curl/lib/vssh/libssh2.c:3236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - data
    - sshc
    - block
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3229
    functionDepth: 0
    functionLinenumber: 3229
    functionLinenumberEnd: 3246
    functionName: ssh_block2waitfor
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 6
    functionsReached:
    - libssh2_session_block_directions
    linkageType: ''
    returnType: void
    signature: "void ssh_block2waitfor(struct Curl_easy *data,\n                              struct
      ssh_conn *sshc,\n                              bool block)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3252,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3253,1
    - Dst: ssh_statemachine
      Src: /src/curl/lib/vssh/libssh2.c:3261,1
    - Dst: ssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh2.c:3266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3269
      start: 3249
    functionDepth: 12
    functionLinenumber: 3249
    functionLinenumberEnd: 3269
    functionName: ssh_multi_statemach
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 5
    functionsReached:
    - Curl_meta_get
    - ssh_block2waitfor
    - ssh_statemachine
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ssh_multi_statemach(struct Curl_easy *data, bool *done)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vssh/libssh2.c:3277,1
    - Dst: ssh_statemachine
      Src: /src/curl/lib/vssh/libssh2.c:3283,1
    - Dst: Curl_pgrsCheck
      Src: /src/curl/lib/vssh/libssh2.c:3288,1
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/vssh/libssh2.c:3292,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:3294,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vssh/libssh2.c:3298,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vssh/libssh2.c:3298,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:3300,1
    - Dst: libssh2_session_block_directions
      Src: /src/curl/lib/vssh/libssh2.c:3306,1
    - Dst: Curl_socket_check
      Src: /src/curl/lib/vssh/libssh2.c:3315,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - data
    - sshc
    - sshp
    - disconnect
    argTypes:
    - struct Curl_easy*
    - struct ssh_conn*
    - struct SSHPROTO*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3271
    functionDepth: 12
    functionLinenumber: 3271
    functionLinenumberEnd: 3321
    functionName: ssh_block_statemach
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 3
    functionsReached:
    - Curl_pgrs_now
    - failf
    - Curl_pgrsCheck
    - Curl_socket_check
    - libssh2_session_block_directions
    - Curl_timeleft_ms
    - ssh_statemachine
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_block_statemach(struct Curl_easy *data,\n                                    struct
      ssh_conn *sshc,\n                                    struct SSHPROTO *sshp,\n
      \                                   bool disconnect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_safefree
      Src: /src/curl/lib/vssh/libssh2.c:3328,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vssh/libssh2.c:3329,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vssh/libssh2.c:3330,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:3331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3332
      start: 3323
    functionDepth: 1
    functionLinenumber: 3323
    functionLinenumberEnd: 3332
    functionName: myssh_easy_dtor
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    - curlx_dyn_free
    linkageType: ''
    returnType: void
    signature: void myssh_easy_dtor(void *key, size_t klen, void *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sshc_cleanup
      Src: /src/curl/lib/vssh/libssh2.c:3339,1
    - Dst: curlx_free
      Src: /src/curl/lib/vssh/libssh2.c:3340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - klen
    - entry
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3334
    functionDepth: 1
    functionLinenumber: 3334
    functionLinenumberEnd: 3341
    functionName: myssh_conn_dtor
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - sshc_cleanup
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void myssh_conn_dtor(void *key, size_t klen, void *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vssh/libssh2.c:3353,1
    - Dst: Curl_conn_meta_set
      Src: /src/curl/lib/vssh/libssh2.c:3357,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vssh/libssh2.c:3360,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vssh/libssh2.c:3364,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vssh/libssh2.c:3365,1
    - Dst: Curl_meta_set
      Src: /src/curl/lib/vssh/libssh2.c:3366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3370
      start: 3346
    functionDepth: 2
    functionLinenumber: 3346
    functionLinenumberEnd: 3370
    functionName: ssh_setup_connection
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - Curl_conn_meta_set
    - curlx_calloc
    - Curl_meta_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode ssh_setup_connection(struct Curl_easy *data,\n                                     struct
      connectdata *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_sockindex
      Src: /src/curl/lib/vssh/libssh2.c:3380,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3385,1
    - Dst: Curl_conn_recv
      Src: /src/curl/lib/vssh/libssh2.c:3394,1
    - Dst: Curl_debug
      Src: /src/curl/lib/vssh/libssh2.c:3400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - sock
    - buffer
    - length
    - flags
    - abstract
    argTypes:
    - libssh2_socket_t
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3376
    functionDepth: 9
    functionLinenumber: 3376
    functionLinenumberEnd: 3402
    functionName: ssh_tls_recv
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_conn_sockindex
    - Curl_debug
    - Curl_conn_recv
    - Curl_conn_meta_get
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t ssh_tls_recv(libssh2_socket_t sock, void *buffer,\n                            size_t
      length, int flags, void **abstract)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_sockindex
      Src: /src/curl/lib/vssh/libssh2.c:3408,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3413,1
    - Dst: Curl_conn_send
      Src: /src/curl/lib/vssh/libssh2.c:3422,1
    - Dst: Curl_debug
      Src: /src/curl/lib/vssh/libssh2.c:3428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - sock
    - buffer
    - length
    - flags
    - abstract
    argTypes:
    - libssh2_socket_t
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3430
      start: 3404
    functionDepth: 9
    functionLinenumber: 3404
    functionLinenumberEnd: 3430
    functionName: ssh_tls_send
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - Curl_conn_sockindex
    - Curl_debug
    - Curl_conn_send
    - Curl_conn_meta_get
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t ssh_tls_send(libssh2_socket_t sock, const void *buffer,\n
      \                           size_t length, int flags, void **abstract)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3443,1
    - Dst: libssh2_crypto_engine
      Src: /src/curl/lib/vssh/libssh2.c:3449,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:3470,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:3477,1
    - Dst: Curl_creds_user
      Src: /src/curl/lib/vssh/libssh2.c:3477,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:3479,1
    - Dst: Curl_creds_passwd
      Src: /src/curl/lib/vssh/libssh2.c:3479,1
    - Dst: libssh2_session_init_ex
      Src: /src/curl/lib/vssh/libssh2.c:3485,1
    - Dst: failf
      Src: /src/curl/lib/vssh/libssh2.c:3490,1
    - Dst: libssh2_session_set_read_timeout
      Src: /src/curl/lib/vssh/libssh2.c:3497,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:3517,1
    - Dst: libssh2_session_callback_set2
      Src: /src/curl/lib/vssh/libssh2.c:3522,1
    - Dst: libssh2_session_callback_set2
      Src: /src/curl/lib/vssh/libssh2.c:3525,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:3551,1
    - Dst: libssh2_session_callback_set
      Src: /src/curl/lib/vssh/libssh2.c:3552,1
    - Dst: libssh2_session_callback_set
      Src: /src/curl/lib/vssh/libssh2.c:3554,1
    - Dst: libssh2_session_flag
      Src: /src/curl/lib/vssh/libssh2.c:3575,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:3576,1
    - Dst: libssh2_knownhost_init
      Src: /src/curl/lib/vssh/libssh2.c:3581,1
    - Dst: libssh2_session_free
      Src: /src/curl/lib/vssh/libssh2.c:3583,1
    - Dst: libssh2_knownhost_readfile
      Src: /src/curl/lib/vssh/libssh2.c:3589,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:3593,1
    - Dst: libssh2_trace
      Src: /src/curl/lib/vssh/libssh2.c:3598,1
    - Dst: infof
      Src: /src/curl/lib/vssh/libssh2.c:3599,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:3602,1
    - Dst: ssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh2.c:3604,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 75
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3437
    functionDepth: 13
    functionLinenumber: 3437
    functionLinenumberEnd: 3607
    functionName: ssh_connect
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 1
    functionsReached:
    - Curl_creds_passwd
    - libssh2_session_callback_set
    - failf
    - libssh2_session_free
    - libssh2_trace
    - myssh_to
    - infof
    - Curl_conn_meta_get
    - libssh2_session_set_read_timeout
    - libssh2_knownhost_init
    - Curl_creds_user
    - libssh2_session_callback_set2
    - libssh2_session_flag
    - libssh2_crypto_engine
    - ssh_multi_statemach
    - libssh2_knownhost_readfile
    - libssh2_session_init_ex
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ssh_connect(struct Curl_easy *data, bool *done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3622,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3625,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:3632,1
    - Dst: ssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh2.c:3635,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/vssh/libssh2.c:3637,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - connected
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3618
    functionDepth: 13
    functionLinenumber: 3618
    functionLinenumberEnd: 3644
    functionName: scp_perform
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 1
    functionsReached:
    - Curl_conn_is_connected
    - CURL_TRC_SSH
    - myssh_to
    - Curl_conn_meta_get
    - ssh_multi_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_perform(struct Curl_easy *data,\n                            bool
      *connected,\n                            bool *dophase_done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh2.c:3651,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3657
      start: 3647
    functionDepth: 13
    functionLinenumber: 3647
    functionLinenumberEnd: 3657
    functionName: scp_doing
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - ssh_multi_statemach
    - CURL_TRC_SSH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_doing(struct Curl_easy *data,\n                          bool
      *dophase_done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3667,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3668,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:3673,1
    - Dst: ssh_block_statemach
      Src: /src/curl/lib/vssh/libssh2.c:3674,1
    - Dst: sshc_cleanup
      Src: /src/curl/lib/vssh/libssh2.c:3678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3680
      start: 3662
    functionDepth: 13
    functionLinenumber: 3662
    functionLinenumberEnd: 3680
    functionName: scp_disconnect
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - ssh_block_statemach
    - myssh_to
    - Curl_conn_meta_get
    - sshc_cleanup
    - Curl_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_disconnect(struct Curl_easy *data,\n                               struct
      connectdata *conn,\n                               bool dead_connection)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3686,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3687,1
    - Dst: ssh_block_statemach
      Src: /src/curl/lib/vssh/libssh2.c:3695,1
    - Dst: Curl_pgrsDone
      Src: /src/curl/lib/vssh/libssh2.c:3699,1
    - Dst: CURL_REQ_CLEAR_IO
      Src: /src/curl/lib/vssh/libssh2.c:3702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - data
    - status
    argTypes:
    - struct Curl_easy*
    - CURLcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3704
      start: 3684
    functionDepth: 13
    functionLinenumber: 3684
    functionLinenumberEnd: 3704
    functionName: ssh_done
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 2
    functionsReached:
    - ssh_block_statemach
    - Curl_pgrsDone
    - CURL_REQ_CLEAR_IO
    - Curl_conn_meta_get
    - Curl_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ssh_done(struct Curl_easy *data, CURLcode status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3709,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:3713,1
    - Dst: ssh_done
      Src: /src/curl/lib/vssh/libssh2.c:3715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3716
      start: 3706
    functionDepth: 14
    functionLinenumber: 3706
    functionLinenumberEnd: 3716
    functionName: scp_done
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 1
    functionsReached:
    - myssh_to
    - ssh_done
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_done(struct Curl_easy *data, CURLcode status,\n                         bool
      premature)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3723,1
    - Dst: libssh2_channel_write
      Src: /src/curl/lib/vssh/libssh2.c:3735,1
    - Dst: ssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh2.c:3738,1
    - Dst: libssh2_session_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:3743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - data
    - sockindex
    - mem
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - int
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3748
      start: 3718
    functionDepth: 2
    functionLinenumber: 3718
    functionLinenumberEnd: 3748
    functionName: scp_send
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_error_to_CURLE
    - ssh_block2waitfor
    - libssh2_channel_write
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_send(struct Curl_easy *data, int sockindex,\n                         const
      uint8_t *mem, size_t len, bool eos,\n                         size_t *pnwritten)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3754,1
    - Dst: libssh2_channel_read
      Src: /src/curl/lib/vssh/libssh2.c:3765,1
    - Dst: ssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh2.c:3767,1
    - Dst: libssh2_session_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:3771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - data
    - sockindex
    - mem
    - len
    - pnread
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3776
      start: 3750
    functionDepth: 2
    functionLinenumber: 3750
    functionLinenumberEnd: 3776
    functionName: scp_recv
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_error_to_CURLE
    - libssh2_channel_read
    - ssh_block2waitfor
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode scp_recv(struct Curl_easy *data, int sockindex,\n                         char
      *mem, size_t len, size_t *pnread)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3795,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3798,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:3805,1
    - Dst: ssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh2.c:3808,1
    - Dst: Curl_conn_is_connected
      Src: /src/curl/lib/vssh/libssh2.c:3810,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - connected
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3817
      start: 3791
    functionDepth: 13
    functionLinenumber: 3791
    functionLinenumberEnd: 3817
    functionName: sftp_perform
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 1
    functionsReached:
    - Curl_conn_is_connected
    - CURL_TRC_SSH
    - myssh_to
    - Curl_conn_meta_get
    - ssh_multi_statemach
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_perform(struct Curl_easy *data,\n                             bool
      *connected,\n                             bool *dophase_done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssh_multi_statemach
      Src: /src/curl/lib/vssh/libssh2.c:3823,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - dophase_done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3820
    functionDepth: 13
    functionLinenumber: 3820
    functionLinenumberEnd: 3829
    functionName: sftp_doing
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - ssh_multi_statemach
    - CURL_TRC_SSH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_doing(struct Curl_easy *data,\n                           bool
      *dophase_done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3838,1
    - Dst: Curl_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3839,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3845,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:3846,1
    - Dst: ssh_block_statemach
      Src: /src/curl/lib/vssh/libssh2.c:3847,1
    - Dst: CURL_TRC_SSH
      Src: /src/curl/lib/vssh/libssh2.c:3848,1
    - Dst: sshc_cleanup
      Src: /src/curl/lib/vssh/libssh2.c:3850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - conn
    - dead_connection
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3853
      start: 3834
    functionDepth: 13
    functionLinenumber: 3834
    functionLinenumberEnd: 3853
    functionName: sftp_disconnect
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - ssh_block_statemach
    - CURL_TRC_SSH
    - myssh_to
    - Curl_conn_meta_get
    - sshc_cleanup
    - Curl_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_disconnect(struct Curl_easy *data,\n                                struct
      connectdata *conn, bool dead_connection)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3859,1
    - Dst: myssh_to
      Src: /src/curl/lib/vssh/libssh2.c:3870,1
    - Dst: ssh_done
      Src: /src/curl/lib/vssh/libssh2.c:3872,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - status
    - premature
    argTypes:
    - struct Curl_easy*
    - CURLcode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3873
      start: 3855
    functionDepth: 14
    functionLinenumber: 3855
    functionLinenumberEnd: 3873
    functionName: sftp_done
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - myssh_to
    - ssh_done
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_done(struct Curl_easy *data, CURLcode status,\n                          bool
      premature)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3881,1
    - Dst: libssh2_sftp_write
      Src: /src/curl/lib/vssh/libssh2.c:3891,1
    - Dst: ssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh2.c:3893,1
    - Dst: libssh2_session_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:3898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - data
    - sockindex
    - mem
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - int
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3876
    functionDepth: 2
    functionLinenumber: 3876
    functionLinenumberEnd: 3901
    functionName: sftp_send
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_error_to_CURLE
    - ssh_block2waitfor
    - libssh2_sftp_write
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_send(struct Curl_easy *data, int sockindex,\n                          const
      uint8_t *mem, size_t len, bool eos,\n                          size_t *pnwritten)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3911,1
    - Dst: libssh2_sftp_read
      Src: /src/curl/lib/vssh/libssh2.c:3920,1
    - Dst: ssh_block2waitfor
      Src: /src/curl/lib/vssh/libssh2.c:3922,1
    - Dst: libssh2_session_error_to_CURLE
      Src: /src/curl/lib/vssh/libssh2.c:3927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - data
    - sockindex
    - mem
    - len
    - pnread
    argTypes:
    - struct Curl_easy*
    - int
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3931
      start: 3907
    functionDepth: 2
    functionLinenumber: 3907
    functionLinenumberEnd: 3931
    functionName: sftp_recv
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_error_to_CURLE
    - libssh2_sftp_read
    - ssh_block2waitfor
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode sftp_recv(struct Curl_easy *data, int sockindex,\n                          char
      *mem, size_t len, size_t *pnread)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3942,1
    - Dst: Curl_pgrsReset
      Src: /src/curl/lib/vssh/libssh2.c:3952,1
    - Dst: scp_perform
      Src: /src/curl/lib/vssh/libssh2.c:3955,1
    - Dst: sftp_perform
      Src: /src/curl/lib/vssh/libssh2.c:3957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - done
    argTypes:
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3960
      start: 3937
    functionDepth: 2
    functionLinenumber: 3937
    functionLinenumberEnd: 3960
    functionName: ssh_do
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - scp_perform
    - sftp_perform
    - Curl_pgrsReset
    - Curl_conn_meta_get
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode ssh_do(struct Curl_easy *data, bool *done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_init
      Src: /src/curl/lib/vssh/libssh2.c:3964,1
    - Dst: DEBUGF
      Src: /src/curl/lib/vssh/libssh2.c:3965,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vssh/libssh2.c:3965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3969
      start: 3962
    functionDepth: 6
    functionLinenumber: 3962
    functionLinenumberEnd: 3969
    functionName: Curl_ssh_init
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 1
    functionsReached:
    - DEBUGF
    - libssh2_init
    - curl_mfprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_ssh_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libssh2_exit
      Src: /src/curl/lib/vssh/libssh2.c:3973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3974
      start: 3971
    functionDepth: 0
    functionLinenumber: 3971
    functionLinenumberEnd: 3974
    functionName: Curl_ssh_cleanup
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 1
    functionsReached:
    - libssh2_exit
    linkageType: ''
    returnType: void
    signature: void Curl_ssh_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vssh/libssh2.c:3978,1
    - Dst: libssh2_version
      Src: /src/curl/lib/vssh/libssh2.c:3978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - buflen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3979
      start: 3976
    functionDepth: 7
    functionLinenumber: 3976
    functionLinenumberEnd: 3979
    functionName: Curl_ssh_version
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 2
    functionsReached:
    - curl_msnprintf
    - libssh2_version
    linkageType: ''
    returnType: void
    signature: void Curl_ssh_version(char *buffer, size_t buflen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh2.c:3987,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vssh/libssh2.c:3988,1
    - Dst: Curl_conn_meta_get
      Src: /src/curl/lib/vssh/libssh2.c:3990,1
    - Dst: libssh2_session_abstract
      Src: /src/curl/lib/vssh/libssh2.c:3993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3997
      start: 3985
    functionDepth: 2
    functionLinenumber: 3985
    functionLinenumberEnd: 3997
    functionName: ssh_attach
    functionSourceFile: /src/curl/lib/vssh/libssh2.c
    functionUses: 0
    functionsReached:
    - libssh2_session_abstract
    - DEBUGASSERT
    - Curl_conn_meta_get
    linkageType: ''
    returnType: void
    signature: void ssh_attach(struct Curl_easy *data, struct connectdata *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: curlx_convert_UTF8_to_tchar
    functionSourceFile: /src/curl/lib/curlx/multibyte.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_convert_UTF8_to_tchar(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: curlx_convert_tchar_to_UTF8
    functionSourceFile: /src/curl/lib/curlx/multibyte.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_convert_tchar_to_UTF8(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: curlx_convert_UTF8_to_tchar
    functionSourceFile: /src/curl/lib/curlx/multibyte.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_convert_UTF8_to_tchar(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: curlx_convert_tchar_to_UTF8
    functionSourceFile: /src/curl/lib/curlx/multibyte.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_convert_tchar_to_UTF8(ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sfcntl
      Src: /src/curl/lib/curlx/nonblock.c:51,1
    - Dst: sfcntl
      Src: /src/curl/lib/curlx/nonblock.c:63,1
    - Dst: IoctlSocket
      Src: /src/curl/lib/curlx/nonblock.c:69,1
    - Dst: ioctl
      Src: /src/curl/lib/curlx/nonblock.c:75,1
    - Dst: ioctlsocket
      Src: /src/curl/lib/curlx/nonblock.c:81,1
    - Dst: setsockopt
      Src: /src/curl/lib/curlx/nonblock.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - sockfd
    - nonblock
    argTypes:
    - curl_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 92
    functionName: curlx_nonblock
    functionSourceFile: /src/curl/lib/curlx/nonblock.c
    functionUses: 10
    functionsReached:
    - ioctl
    - ioctlsocket
    - IoctlSocket
    - setsockopt
    - sfcntl
    linkageType: ''
    returnType: int
    signature: "int curlx_nonblock(curl_socket_t sockfd,    /* operate on this */\n
      \                  int nonblock   /* TRUE or FALSE */)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SET_SOCKERRNO
      Src: /src/curl/lib/curlx/wait.c:65,1
    - Dst: delay
      Src: /src/curl/lib/curlx/wait.c:69,1
    - Dst: Sleep
      Src: /src/curl/lib/curlx/wait.c:77,1
    - Dst: select
      Src: /src/curl/lib/curlx/wait.c:83,1
    - Dst: curlx_mstotv
      Src: /src/curl/lib/curlx/wait.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - timeout_ms
    argTypes:
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 94
    functionName: curlx_wait_ms
    functionSourceFile: /src/curl/lib/curlx/wait.c
    functionUses: 34
    functionsReached:
    - delay
    - Sleep
    - select
    - SET_SOCKERRNO
    - curlx_mstotv
    linkageType: ''
    returnType: int
    signature: int curlx_wait_ms(timediff_t timeout_ms)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ISDIGIT
      Src: /src/curl/lib/curlx/inet_pton.c:74,1
    - Dst: memcpy
      Src: /src/curl/lib/curlx/inet_pton.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 101
    functionName: inet_pton4
    functionSourceFile: /src/curl/lib/curlx/inet_pton.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ISDIGIT
    linkageType: ''
    returnType: int
    signature: int inet_pton4(const char *src, unsigned char *dst)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/curlx/inet_pton.c:122,1
    - Dst: ISXDIGIT
      Src: /src/curl/lib/curlx/inet_pton.c:133,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/curlx/inet_pton.c:135,1
    - Dst: inet_pton4
      Src: /src/curl/lib/curlx/inet_pton.c:157,1
    - Dst: memcpy
      Src: /src/curl/lib/curlx/inet_pton.c:188,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 190
    functionName: inet_pton6
    functionSourceFile: /src/curl/lib/curlx/inet_pton.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ISXDIGIT
    - curlx_hexval
    - memset
    - inet_pton4
    linkageType: ''
    returnType: int
    signature: int inet_pton6(const char *src, unsigned char *dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton4
      Src: /src/curl/lib/curlx/inet_pton.c:211,1
    - Dst: inet_pton6
      Src: /src/curl/lib/curlx/inet_pton.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - af
    - src
    - dst
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 219
    functionName: curlx_inet_pton
    functionSourceFile: /src/curl/lib/curlx/inet_pton.c
    functionUses: 24
    functionsReached:
    - inet_pton4
    - inet_pton6
    linkageType: ''
    returnType: int
    signature: int curlx_inet_pton(int af, const char *src, void *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - file
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: curlx_fopen
    functionSourceFile: /src/curl/lib/curlx/fopen.h
    functionUses: 77
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_fopen(file, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - file
    - ','
    - mode
    - ','
    - fh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: curlx_freopen
    functionSourceFile: /src/curl/lib/curlx/fopen.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_freopen(file, mode, fh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - file
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: curlx_fdopen
    functionSourceFile: /src/curl/lib/curlx/fopen.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_fdopen(file, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - file
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: curlx_fclose
    functionSourceFile: /src/curl/lib/curlx/fopen.h
    functionUses: 84
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_fclose(file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: curlx_verify_windows_init
    functionSourceFile: /src/curl/lib/curlx/version_win32.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_verify_windows_init()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/curl/lib/curlx/basename.c:61,1
    - Dst: strrchr
      Src: /src/curl/lib/curlx/basename.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: curlx_basename
    functionSourceFile: /src/curl/lib/curlx/basename.c
    functionUses: 2
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *curlx_basename(char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: curlx_str_init
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void curlx_str_init(struct Curl_str *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - str
    - len
    argTypes:
    - struct Curl_str*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: curlx_str_assign
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void curlx_str_assign(struct Curl_str *out, const char *str, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:42,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - len
    argTypes:
    - struct Curl_str*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: curlx_str_trim
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void curlx_str_trim(struct Curl_str *out, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:54,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:55,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:56,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:57,1
    - Dst: curlx_str_init
      Src: /src/curl/lib/curlx/strparse.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - linep
    - out
    - max
    - delim
    argTypes:
    - char**
    - struct Curl_str*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: curlx_str_until
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 18
    functionsReached:
    - curlx_str_init
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int curlx_str_until(const char **linep, struct Curl_str *out,\n                    const
      size_t max, char delim)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_until
      Src: /src/curl/lib/curlx/strparse.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - linep
    - out
    - max
    argTypes:
    - char**
    - struct Curl_str*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: curlx_str_word
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 6
    functionsReached:
    - curlx_str_until
    linkageType: ''
    returnType: int
    signature: int curlx_str_word(const char **linep, struct Curl_str *out, const
      size_t max)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:89,1
    - Dst: curlx_str_init
      Src: /src/curl/lib/curlx/strparse.c:91,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/curlx/strparse.c:92,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - linep
    - out
    - max
    argTypes:
    - char**
    - struct Curl_str*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 103
    functionName: curlx_str_untilnl
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 4
    functionsReached:
    - ISNEWLINE
    - curlx_str_init
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int curlx_str_untilnl(const char **linep, struct Curl_str *out,\n
      \                     const size_t max)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:112,1
    - Dst: curlx_str_init
      Src: /src/curl/lib/curlx/strparse.c:114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - linep
    - out
    - max
    argTypes:
    - char**
    - struct Curl_str*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: curlx_str_quotedword
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 5
    functionsReached:
    - curlx_str_init
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int curlx_str_quotedword(const char **linep, struct Curl_str *out,\n
      \                        const size_t max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - linep
    - byte
    argTypes:
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: curlx_str_single
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 41
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int curlx_str_single(const char **linep, char byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_single
      Src: /src/curl/lib/curlx/strparse.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - linep
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: curlx_str_singlespace
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 3
    functionsReached:
    - curlx_str_single
    linkageType: ''
    returnType: int
    signature: int curlx_str_singlespace(const char **linep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: valid_digit
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: valid_digit(x, m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:177,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:178,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:179,1
    - Dst: valid_digit
      Src: /src/curl/lib/curlx/strparse.c:182,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/curlx/strparse.c:187,1
    - Dst: valid_digit
      Src: /src/curl/lib/curlx/strparse.c:191,1
    - Dst: curlx_hexval
      Src: /src/curl/lib/curlx/strparse.c:195,1
    - Dst: valid_digit
      Src: /src/curl/lib/curlx/strparse.c:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - linep
    - nump
    - max
    - base
    argTypes:
    - char**
    - curl_off_t*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 204
    functionName: str_num_base
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 0
    functionsReached:
    - curlx_hexval
    - valid_digit
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int str_num_base(const char **linep, curl_off_t *nump, curl_off_t
      max,\n                        int base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_num_base
      Src: /src/curl/lib/curlx/strparse.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - linep
    - nump
    - max
    argTypes:
    - char**
    - curl_off_t*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: curlx_str_number
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 97
    functionsReached:
    - str_num_base
    linkageType: ''
    returnType: int
    signature: int curlx_str_number(const char **linep, curl_off_t *nump, curl_off_t
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_num_base
      Src: /src/curl/lib/curlx/strparse.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - linep
    - nump
    - max
    argTypes:
    - char**
    - curl_off_t*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: curlx_str_hex
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 5
    functionsReached:
    - str_num_base
    linkageType: ''
    returnType: int
    signature: int curlx_str_hex(const char **linep, curl_off_t *nump, curl_off_t
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_num_base
      Src: /src/curl/lib/curlx/strparse.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - linep
    - nump
    - max
    argTypes:
    - char**
    - curl_off_t*
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: curlx_str_octal
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 5
    functionsReached:
    - str_num_base
    linkageType: ''
    returnType: int
    signature: int curlx_str_octal(const char **linep, curl_off_t *nump, curl_off_t
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_str_passblanks
      Src: /src/curl/lib/curlx/strparse.c:233,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/curlx/strparse.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - num
    argTypes:
    - char**
    - curl_off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: curlx_str_numblanks
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 8
    functionsReached:
    - curlx_str_number
    - curlx_str_passblanks
    linkageType: ''
    returnType: int
    signature: int curlx_str_numblanks(const char **str, curl_off_t *num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:241,1
    - Dst: ISNEWLINE
      Src: /src/curl/lib/curlx/strparse.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - linep
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: curlx_str_newline
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 4
    functionsReached:
    - ISNEWLINE
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int curlx_str_newline(const char **linep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/curlx/strparse.c:254,1
    - Dst: curl_strnequal
      Src: /src/curl/lib/curlx/strparse.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - str
    - check
    argTypes:
    - struct Curl_str*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: curlx_str_casecompare
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 12
    functionsReached:
    - strlen
    - curl_strnequal
    linkageType: ''
    returnType: int
    signature: int curlx_str_casecompare(struct Curl_str *str, const char *check)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/curlx/strparse.c:263,1
    - Dst: strncmp
      Src: /src/curl/lib/curlx/strparse.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - str
    - check
    argTypes:
    - struct Curl_str*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: curlx_str_cmp
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 4
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: int curlx_str_cmp(struct Curl_str *str, const char *check)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str
    - num
    argTypes:
    - struct Curl_str*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: curlx_str_nudge
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int curlx_str_nudge(struct Curl_str *str, size_t num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strparse.c:288,1
    - Dst: strcspn
      Src: /src/curl/lib/curlx/strparse.c:290,1
    - Dst: curlx_str_init
      Src: /src/curl/lib/curlx/strparse.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - linep
    - out
    - reject
    argTypes:
    - char**
    - struct Curl_str*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 299
    functionName: curlx_str_cspn
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 5
    functionsReached:
    - strcspn
    - curlx_str_init
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int curlx_str_cspn(const char **linep, struct Curl_str *out,\n                   const
      char *reject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/lib/curlx/strparse.c:304,1
    - Dst: curlx_str_nudge
      Src: /src/curl/lib/curlx/strparse.c:305,1
    - Dst: ISBLANK
      Src: /src/curl/lib/curlx/strparse.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct Curl_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: curlx_str_trimblanks
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 7
    functionsReached:
    - curlx_str_nudge
    - ISBLANK
    linkageType: ''
    returnType: void
    signature: void curlx_str_trimblanks(struct Curl_str *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISBLANK
      Src: /src/curl/lib/curlx/strparse.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - linep
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: curlx_str_passblanks
    functionSourceFile: /src/curl/lib/curlx/strparse.c
    functionUses: 31
    functionsReached:
    - ISBLANK
    linkageType: ''
    returnType: void
    signature: void curlx_str_passblanks(const char **linep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ulnum
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: curlx_ultouc
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char curlx_ultouc(unsigned long ulnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uznum
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: curlx_uztosi
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 7
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int curlx_uztosi(size_t uznum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uznum
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: curlx_uztoul
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 14
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long curlx_uztoul(size_t uznum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uznum
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: curlx_uztoui
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 25
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int curlx_uztoui(size_t uznum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:137,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - slnum
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: curlx_sltosi
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int curlx_sltosi(long slnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:158,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - slnum
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: curlx_sltoui
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int curlx_sltoui(long slnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:179,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - slnum
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: curlx_sltous
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short curlx_sltous(long slnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uznum
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 204
    functionName: curlx_uztosz
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t curlx_uztosz(size_t uznum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sonum
    argTypes:
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 222
    functionName: curlx_sotouz
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 12
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t curlx_sotouz(curl_off_t sonum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:234,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sznum
    argTypes:
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 243
    functionName: curlx_sztosi
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 3
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: int curlx_sztosi(ssize_t sznum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uinum
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: curlx_uitous
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 2
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short curlx_uitous(unsigned int uinum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/warnless.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sinum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: curlx_sitouz
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t curlx_sitouz(int sinum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uinum
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: curlx_uitouz
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t curlx_uitouz(unsigned int uinum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURLMIN
      Src: /src/curl/lib/curlx/warnless.c:294,1
    - Dst: CURLMAX
      Src: /src/curl/lib/curlx/warnless.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sonum
    - uzmin
    - uzmax
    argTypes:
    - curl_off_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: curlx_sotouz_range
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 9
    functionsReached:
    - CURLMIN
    - CURLMAX
    linkageType: ''
    returnType: size_t
    signature: size_t curlx_sotouz_range(curl_off_t sonum, size_t uzmin, size_t uzmax)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sznum
    - puznum
    argTypes:
    - ssize_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 305
    functionName: curlx_sztouz
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool curlx_sztouz(ssize_t sznum, size_t *puznum)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - sonum
    - puznum
    argTypes:
    - curl_off_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: curlx_sotouz_fits
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool curlx_sotouz_fits(curl_off_t sonum, size_t *puznum)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - slnum
    - puznum
    argTypes:
    - long
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: curlx_sltouz
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool curlx_sltouz(long slnum, size_t *puznum)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - uznum
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 341
    functionName: curlx_uztoso
    functionSourceFile: /src/curl/lib/curlx/warnless.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t curlx_uztoso(size_t uznum)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/lib/curlx/base64.c:76,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/curlx/base64.c:99,1
    - Dst: memset
      Src: /src/curl/lib/curlx/base64.c:105,1
    - Dst: memcpy
      Src: /src/curl/lib/curlx/base64.c:106,1
    - Dst: curlx_free
      Src: /src/curl/lib/curlx/base64.c:161,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - src
    - outptr
    - outlen
    argTypes:
    - char*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 163
    functionName: curlx_base64_decode
    functionSourceFile: /src/curl/lib/curlx/base64.c
    functionUses: 11
    functionsReached:
    - memcpy
    - curlx_malloc
    - curlx_free
    - memset
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curlx_base64_decode(const char *src,\n                             uint8_t
      **outptr, size_t *outlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/base64.c:181,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/curlx/base64.c:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 6
    argNames:
    - table64
    - padbyte
    - inputbuff
    - insize
    - outptr
    - outlen
    argTypes:
    - char*
    - uint8_t
    - uint8_t*
    - size_t
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 226
    functionName: base64_encode
    functionSourceFile: /src/curl/lib/curlx/base64.c
    functionUses: 18
    functionsReached:
    - curlx_malloc
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode base64_encode(const char *table64,\n                              uint8_t
      padbyte,\n                              const uint8_t *inputbuff, size_t insize,\n
      \                             char **outptr, size_t *outlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base64_encode
      Src: /src/curl/lib/curlx/base64.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inputbuff
    - insize
    - outptr
    - outlen
    argTypes:
    - uint8_t*
    - size_t
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: curlx_base64_encode
    functionSourceFile: /src/curl/lib/curlx/base64.c
    functionUses: 18
    functionsReached:
    - base64_encode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curlx_base64_encode(const uint8_t *inputbuff, size_t insize,\n
      \                            char **outptr, size_t *outlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base64_encode
      Src: /src/curl/lib/curlx/base64.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inputbuff
    - insize
    - outptr
    - outlen
    argTypes:
    - uint8_t*
    - size_t
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: curlx_base64url_encode
    functionSourceFile: /src/curl/lib/curlx/base64.c
    functionUses: 2
    functionsReached:
    - base64_encode
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curlx_base64url_encode(const uint8_t *inputbuff, size_t insize,\n
      \                               char **outptr, size_t *outlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessageA
      Src: /src/curl/lib/curlx/winapi.c:49,1
    - Dst: strchr
      Src: /src/curl/lib/curlx/winapi.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - err
    - buf
    - buflen
    argTypes:
    - DWORD
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 66
    functionName: curlx_get_winapi_error
    functionSourceFile: /src/curl/lib/curlx/winapi.c
    functionUses: 1
    functionsReached:
    - FormatMessageA
    - strchr
    linkageType: ''
    returnType: char
    signature: char *curlx_get_winapi_error(DWORD err, char *buf, size_t buflen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/curl/lib/curlx/winapi.c:70,1
    - Dst: curlx_get_winapi_error
      Src: /src/curl/lib/curlx/winapi.c:79,1
    - Dst: SNPRINTF
      Src: /src/curl/lib/curlx/winapi.c:86,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/curlx/winapi.c:94,1
    - Dst: strlen
      Src: /src/curl/lib/curlx/winapi.c:94,1
    - Dst: GetLastError
      Src: /src/curl/lib/curlx/winapi.c:101,1
    - Dst: SetLastError
      Src: /src/curl/lib/curlx/winapi.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - err
    - buf
    - buflen
    argTypes:
    - DWORD
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 105
    functionName: curlx_winapi_strerror
    functionSourceFile: /src/curl/lib/curlx/winapi.c
    functionUses: 4
    functionsReached:
    - curlx_get_winapi_error
    - curlx_strcopy
    - SetLastError
    - GetLastError
    - strlen
    - SNPRINTF
    linkageType: ''
    returnType: char
    signature: char *curlx_winapi_strerror(DWORD err, char *buf, size_t buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: curlx_basename
    functionSourceFile: /src/curl/lib/curlx/basename.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_basename(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _fseeki64
      Src: /src/curl/lib/curlx/fopen.c:31,1
    - Dst: fseeko
      Src: /src/curl/lib/curlx/fopen.c:33,1
    - Dst: fseek
      Src: /src/curl/lib/curlx/fopen.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - stream
    - offset
    - whence
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: curlx_fseek
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 4
    functionsReached:
    - fseeko
    - fseek
    - _fseeki64
    linkageType: ''
    returnType: int
    signature: int curlx_fseek(void *stream, curl_off_t offset, int whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: CURLX_MALLOC
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLX_MALLOC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: CURLX_FREE
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLX_FREE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: CURLX_MALLOC
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLX_MALLOC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: CURLX_FREE
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLX_FREE(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/curl/lib/curlx/fopen.c:66,1
    - Dst: CURLX_MALLOC
      Src: /src/curl/lib/curlx/fopen.c:69,1
    - Dst: MultiByteToWideChar
      Src: /src/curl/lib/curlx/fopen.c:71,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - str_utf8
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: fn_convert_UTF8_to_wchar
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached:
    - CURLX_MALLOC
    - CURLX_FREE
    - MultiByteToWideChar
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *fn_convert_UTF8_to_wchar(const char *str_utf8)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: _tcsncmp
      Src: /src/curl/lib/curlx/fopen.c:124,1
    - Dst: _T
      Src: /src/curl/lib/curlx/fopen.c:124,1
    - Dst: mbstowcs_s
      Src: /src/curl/lib/curlx/fopen.c:129,1
    - Dst: CURLX_MALLOC
      Src: /src/curl/lib/curlx/fopen.c:133,1
    - Dst: mbstowcs_s
      Src: /src/curl/lib/curlx/fopen.c:136,1
    - Dst: GetFullPathNameW
      Src: /src/curl/lib/curlx/fopen.c:148,1
    - Dst: CURLX_MALLOC
      Src: /src/curl/lib/curlx/fopen.c:154,1
    - Dst: GetFullPathNameW
      Src: /src/curl/lib/curlx/fopen.c:157,1
    - Dst: wcsncmp
      Src: /src/curl/lib/curlx/fopen.c:170,1
    - Dst: wcsncmp
      Src: /src/curl/lib/curlx/fopen.c:172,1
    - Dst: wcsncmp
      Src: /src/curl/lib/curlx/fopen.c:174,1
    - Dst: wcsncmp
      Src: /src/curl/lib/curlx/fopen.c:174,1
    - Dst: wcsncmp
      Src: /src/curl/lib/curlx/fopen.c:181,1
    - Dst: CURLX_MALLOC
      Src: /src/curl/lib/curlx/fopen.c:187,1
    - Dst: wcsncpy_s
      Src: /src/curl/lib/curlx/fopen.c:191,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:192,1
    - Dst: wcscpy_s
      Src: /src/curl/lib/curlx/fopen.c:195,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:196,1
    - Dst: CURLX_MALLOC
      Src: /src/curl/lib/curlx/fopen.c:206,1
    - Dst: wcsncpy_s
      Src: /src/curl/lib/curlx/fopen.c:210,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:211,1
    - Dst: wcscpy_s
      Src: /src/curl/lib/curlx/fopen.c:214,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:215,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:220,1
    - Dst: wcstombs_s
      Src: /src/curl/lib/curlx/fopen.c:226,1
    - Dst: CURLX_MALLOC
      Src: /src/curl/lib/curlx/fopen.c:230,1
    - Dst: wcstombs_s
      Src: /src/curl/lib/curlx/fopen.c:233,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:245,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:247,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:248,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 114
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - TCHAR*
    - TCHAR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 251
    functionName: fix_excessive_path
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached:
    - wcsncpy_s
    - CURLX_FREE
    - CURLX_MALLOC
    - _T
    - wcscpy_s
    - GetFullPathNameW
    - _tcsncmp
    - wcstombs_s
    - wcsncmp
    - mbstowcs_s
    linkageType: ''
    returnType: bool
    signature: bool fix_excessive_path(const TCHAR *in, TCHAR **out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_convert_UTF8_to_wchar
      Src: /src/curl/lib/curlx/fopen.c:265,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:274,1
    - Dst: CreateFile
      Src: /src/curl/lib/curlx/fopen.c:279,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:286,1
    - Dst: curlx_free
      Src: /src/curl/lib/curlx/fopen.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - filename
    - dwDesiredAccess
    - dwShareMode
    - lpSecurityAttributes
    - dwCreationDisposition
    - dwFlagsAndAttributes
    - hTemplateFile
    argTypes:
    - char*
    - DWORD
    - DWORD
    - LPSECURITY_ATTRIBUTES
    - DWORD
    - DWORD
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 293
    functionName: curlx_CreateFile
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 2
    functionsReached:
    - CURLX_FREE
    - fix_excessive_path
    - curlx_convert_UTF8_to_wchar
    - curlx_free
    - CreateFile
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE curlx_CreateFile(const char *filename,\n                        DWORD
      dwDesiredAccess,\n                        DWORD dwShareMode,\n                        LPSECURITY_ATTRIBUTES
      lpSecurityAttributes,\n                        DWORD dwCreationDisposition,\n
      \                       DWORD dwFlagsAndAttributes,\n                        HANDLE
      hTemplateFile)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fn_convert_UTF8_to_wchar
      Src: /src/curl/lib/curlx/fopen.c:304,1
    - Dst: va_start
      Src: /src/curl/lib/curlx/fopen.c:308,1
    - Dst: va_arg
      Src: /src/curl/lib/curlx/fopen.c:310,1
    - Dst: va_end
      Src: /src/curl/lib/curlx/fopen.c:311,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:315,1
    - Dst: _wsopen_s
      Src: /src/curl/lib/curlx/fopen.c:319,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:320,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:326,1
    - Dst: _sopen_s
      Src: /src/curl/lib/curlx/fopen.c:330,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - filename
    - oflag
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 335
    functionName: curlx_win32_open
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached:
    - CURLX_FREE
    - va_arg
    - fix_excessive_path
    - va_start
    - va_end
    - _sopen_s
    - fn_convert_UTF8_to_wchar
    - _wsopen_s
    linkageType: ''
    returnType: int
    signature: int curlx_win32_open(const char *filename, int oflag, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fn_convert_UTF8_to_wchar
      Src: /src/curl/lib/curlx/fopen.c:344,1
    - Dst: fn_convert_UTF8_to_wchar
      Src: /src/curl/lib/curlx/fopen.c:345,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:347,1
    - Dst: _wfsopen
      Src: /src/curl/lib/curlx/fopen.c:351,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:356,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:357,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:359,1
    - Dst: _fsopen
      Src: /src/curl/lib/curlx/fopen.c:363,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 368
    functionName: curlx_win32_fopen
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached:
    - CURLX_FREE
    - _wfsopen
    - _fsopen
    - fix_excessive_path
    - fn_convert_UTF8_to_wchar
    linkageType: ''
    returnType: FILE
    signature: FILE *curlx_win32_fopen(const char *filename, const char *mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fn_convert_UTF8_to_wchar
      Src: /src/curl/lib/curlx/fopen.c:382,1
    - Dst: fn_convert_UTF8_to_wchar
      Src: /src/curl/lib/curlx/fopen.c:383,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:385,1
    - Dst: _wfreopen_s
      Src: /src/curl/lib/curlx/fopen.c:389,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:394,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:395,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:397,1
    - Dst: freopen_s
      Src: /src/curl/lib/curlx/fopen.c:401,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - filename
    - mode
    - fp
    argTypes:
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 406
    functionName: curlx_win32_freopen
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached:
    - CURLX_FREE
    - fix_excessive_path
    - freopen_s
    - _wfreopen_s
    - fn_convert_UTF8_to_wchar
    linkageType: ''
    returnType: FILE
    signature: FILE *curlx_win32_freopen(const char *filename, const char *mode, FILE
      *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_convert_UTF8_to_wchar
      Src: /src/curl/lib/curlx/fopen.c:415,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:417,1
    - Dst: _wstati64
      Src: /src/curl/lib/curlx/fopen.c:421,1
    - Dst: curlx_free
      Src: /src/curl/lib/curlx/fopen.c:422,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:428,1
    - Dst: _stati64
      Src: /src/curl/lib/curlx/fopen.c:432,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - path
    - buffer
    argTypes:
    - char*
    - curlx_struct_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 437
    functionName: curlx_win32_stat
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached:
    - CURLX_FREE
    - _stati64
    - fix_excessive_path
    - _wstati64
    - curlx_convert_UTF8_to_wchar
    - curlx_free
    linkageType: ''
    returnType: int
    signature: int curlx_win32_stat(const char *path, curlx_struct_stat *buffer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_convert_UTF8_to_wchar
      Src: /src/curl/lib/curlx/fopen.c:449,1
    - Dst: curlx_convert_UTF8_to_wchar
      Src: /src/curl/lib/curlx/fopen.c:450,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:465,1
    - Dst: fix_excessive_path
      Src: /src/curl/lib/curlx/fopen.c:470,1
    - Dst: curlx_now
      Src: /src/curl/lib/curlx/fopen.c:475,1
    - Dst: MoveFileEx
      Src: /src/curl/lib/curlx/fopen.c:480,1
    - Dst: curlx_timediff_ms
      Src: /src/curl/lib/curlx/fopen.c:485,1
    - Dst: curlx_now
      Src: /src/curl/lib/curlx/fopen.c:485,1
    - Dst: Sleep
      Src: /src/curl/lib/curlx/fopen.c:489,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:492,1
    - Dst: CURLX_FREE
      Src: /src/curl/lib/curlx/fopen.c:493,1
    - Dst: curlx_free
      Src: /src/curl/lib/curlx/fopen.c:497,1
    - Dst: curlx_free
      Src: /src/curl/lib/curlx/fopen.c:498,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - oldpath
    - newpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 502
    functionName: curlx_win32_rename
    functionSourceFile: /src/curl/lib/curlx/fopen.c
    functionUses: 0
    functionsReached:
    - CURLX_FREE
    - fix_excessive_path
    - MoveFileEx
    - curlx_now
    - Sleep
    - curlx_convert_UTF8_to_wchar
    - curlx_timediff_ms
    - curlx_free
    linkageType: ''
    returnType: int
    signature: int curlx_win32_rename(const char *oldpath, const char *newpath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/curlx/snprintf.c:36,1
    - Dst: vsnprintf
      Src: /src/curl/lib/curlx/snprintf.c:42,1
    - Dst: va_end
      Src: /src/curl/lib/curlx/snprintf.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - maxlen
    - fmt
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: curlx_win32_snprintf
    functionSourceFile: /src/curl/lib/curlx/snprintf.c
    functionUses: 1
    functionsReached:
    - va_start
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void curlx_win32_snprintf(char *buf, size_t maxlen, const char *fmt,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strcopy.c:43,1
    - Dst: memcpy
      Src: /src/curl/lib/curlx/strcopy.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dest
    - dsize
    - src
    - slen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: curlx_strcopy
    functionSourceFile: /src/curl/lib/curlx/strcopy.c
    functionUses: 29
    functionsReached:
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: "void curlx_strcopy(char *dest,      /* destination buffer */\n                   size_t
      dsize,    /* size of target buffer */\n                   const char *src, /*
      source string */\n                   size_t slen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - target_type
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: CURLX_FUNCTION_CAST
    functionSourceFile: /src/curl/lib/curlx/warnless.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURLX_FUNCTION_CAST(target_type, func)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - tv
    - ms
    argTypes:
    - struct timeval*
    - timediff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 77
    functionName: curlx_mstotv
    functionSourceFile: /src/curl/lib/curlx/timediff.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *curlx_mstotv(struct timeval *tv, timediff_t ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: curlx_tvtoms
    functionSourceFile: /src/curl/lib/curlx/timediff.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: timediff_t
    signature: timediff_t curlx_tvtoms(struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: curlx_str
    functionSourceFile: /src/curl/lib/curlx/strparse.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_str(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: curlx_strlen
    functionSourceFile: /src/curl/lib/curlx/strparse.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_strlen(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: curlx_hexval
    functionSourceFile: /src/curl/lib/curlx/strparse.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_hexval(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/curl/lib/curlx/multibyte.c:39,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/curlx/multibyte.c:42,1
    - Dst: MultiByteToWideChar
      Src: /src/curl/lib/curlx/multibyte.c:44,1
    - Dst: curlx_free
      Src: /src/curl/lib/curlx/multibyte.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - str_utf8
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: curlx_convert_UTF8_to_wchar
    functionSourceFile: /src/curl/lib/curlx/multibyte.c
    functionUses: 3
    functionsReached:
    - curlx_malloc
    - curlx_free
    - MultiByteToWideChar
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *curlx_convert_UTF8_to_wchar(const char *str_utf8)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WideCharToMultiByte
      Src: /src/curl/lib/curlx/multibyte.c:61,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/curlx/multibyte.c:64,1
    - Dst: WideCharToMultiByte
      Src: /src/curl/lib/curlx/multibyte.c:66,1
    - Dst: curlx_free
      Src: /src/curl/lib/curlx/multibyte.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - str_w
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: curlx_convert_wchar_to_UTF8
    functionSourceFile: /src/curl/lib/curlx/multibyte.c
    functionUses: 2
    functionsReached:
    - curlx_malloc
    - curlx_free
    - WideCharToMultiByte
    linkageType: ''
    returnType: char
    signature: char *curlx_convert_wchar_to_UTF8(const wchar_t *str_w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURLX_FUNCTION_CAST
      Src: /src/curl/lib/curlx/version_win32.c:57,1
    - Dst: GetProcAddress
      Src: /src/curl/lib/curlx/version_win32.c:58,1
    - Dst: GetModuleHandle
      Src: /src/curl/lib/curlx/version_win32.c:58,1
    - Dst: TEXT
      Src: /src/curl/lib/curlx/version_win32.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: curlx_verify_windows_init
    functionSourceFile: /src/curl/lib/curlx/version_win32.c
    functionUses: 2
    functionsReached:
    - CURLX_FUNCTION_CAST
    - GetProcAddress
    - GetModuleHandle
    - TEXT
    linkageType: ''
    returnType: void
    signature: void curlx_verify_windows_init(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/curl/lib/curlx/version_win32.c:95,1
    - Dst: memset
      Src: /src/curl/lib/curlx/version_win32.c:182,1
    - Dst: VerSetConditionMask
      Src: /src/curl/lib/curlx/version_win32.c:192,1
    - Dst: VerSetConditionMask
      Src: /src/curl/lib/curlx/version_win32.c:193,1
    - Dst: VerSetConditionMask
      Src: /src/curl/lib/curlx/version_win32.c:194,1
    - Dst: VerSetConditionMask
      Src: /src/curl/lib/curlx/version_win32.c:195,1
    - Dst: VerSetConditionMask
      Src: /src/curl/lib/curlx/version_win32.c:198,1
    - Dst: s_pRtlVerifyVersionInfo
      Src: /src/curl/lib/curlx/version_win32.c:208,1
    - Dst: VerifyVersionInfoW
      Src: /src/curl/lib/curlx/version_win32.c:210,1
    - Dst: curlx_verify_windows_version
      Src: /src/curl/lib/curlx/version_win32.c:221,1
    - Dst: VerSetConditionMask
      Src: /src/curl/lib/curlx/version_win32.c:224,1
    - Dst: s_pRtlVerifyVersionInfo
      Src: /src/curl/lib/curlx/version_win32.c:227,1
    - Dst: VerifyVersionInfoW
      Src: /src/curl/lib/curlx/version_win32.c:229,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 5
    argNames:
    - majorVersion
    - minorVersion
    - buildVersion
    - platform
    - condition
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - PlatformIdentifier
    - VersionCondition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 236
    functionName: curlx_verify_windows_version
    functionSourceFile: /src/curl/lib/curlx/version_win32.c
    functionUses: 10
    functionsReached:
    - s_pRtlVerifyVersionInfo
    - MAKEWORD
    - curlx_verify_windows_version
    - VerSetConditionMask
    - memset
    - VerifyVersionInfoW
    linkageType: ''
    returnType: bool
    signature: "bool curlx_verify_windows_version(const unsigned int majorVersion,\n
      \                                 const unsigned int minorVersion,\n                                  const
      unsigned int buildVersion,\n                                  const PlatformIdentifier
      platform,\n                                  const VersionCondition condition)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:40,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:41,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - s
    - toobig
    argTypes:
    - struct dynbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: curlx_dyn_init
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 114
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void curlx_dyn_init(struct dynbuf *s, size_t toobig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:58,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:59,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/curlx/dynbuf.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: curlx_dyn_free
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 106
    functionsReached:
    - curlx_safefree
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void curlx_dyn_free(struct dynbuf *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:75,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:76,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:77,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:78,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:79,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:80,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/curlx/dynbuf.c:83,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:87,1
    - Dst: curlx_realloc
      Src: /src/curl/lib/curlx/dynbuf.c:105,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/curlx/dynbuf.c:107,1
    - Dst: memcpy
      Src: /src/curl/lib/curlx/dynbuf.c:115,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - s
    - mem
    - len
    argTypes:
    - struct dynbuf*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 119
    functionName: dyn_nappend
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_free
    - memcpy
    - DEBUGASSERT
    - curlx_realloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode dyn_nappend(struct dynbuf *s,\n                            const
      unsigned char *mem, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:127,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:128,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: curlx_dyn_reset
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 54
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void curlx_dyn_reset(struct dynbuf *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:141,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:142,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:143,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/curlx/dynbuf.c:149,1
    - Dst: memmove
      Src: /src/curl/lib/curlx/dynbuf.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - trail
    argTypes:
    - struct dynbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 157
    functionName: curlx_dyn_tail
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 8
    functionsReached:
    - curlx_dyn_reset
    - memmove
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curlx_dyn_tail(struct dynbuf *s, size_t trail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:164,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:165,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:166,1
    - Dst: dyn_nappend
      Src: /src/curl/lib/curlx/dynbuf.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - mem
    - len
    argTypes:
    - struct dynbuf*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: curlx_dyn_addn
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 96
    functionsReached:
    - dyn_nappend
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curlx_dyn_addn(struct dynbuf *s, const void *mem, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:176,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:177,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:178,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:179,1
    - Dst: strlen
      Src: /src/curl/lib/curlx/dynbuf.c:180,1
    - Dst: dyn_nappend
      Src: /src/curl/lib/curlx/dynbuf.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - struct dynbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: curlx_dyn_add
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 43
    functionsReached:
    - dyn_nappend
    - strlen
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curlx_dyn_add(struct dynbuf *s, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:191,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:192,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:193,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:194,1
    - Dst: curlx_dyn_vprintf
      Src: /src/curl/lib/curlx/dynbuf.c:195,1
    - Dst: curl_mvaprintf
      Src: /src/curl/lib/curlx/dynbuf.c:204,1
    - Dst: dyn_nappend
      Src: /src/curl/lib/curlx/dynbuf.c:207,1
    - Dst: strlen
      Src: /src/curl/lib/curlx/dynbuf.c:207,1
    - Dst: curl_free
      Src: /src/curl/lib/curlx/dynbuf.c:208,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/curlx/dynbuf.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - s
    - fmt
    - ap
    argTypes:
    - struct dynbuf*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 215
    functionName: curlx_dyn_vaddf
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    - curl_mvaprintf
    - curlx_dyn_free
    - curlx_dyn_vprintf
    - dyn_nappend
    - curl_free
    - strlen
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curlx_dyn_vaddf(struct dynbuf *s, const char *fmt, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:224,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:225,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:226,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:227,1
    - Dst: strcmp
      Src: /src/curl/lib/curlx/dynbuf.c:227,1
    - Dst: va_start
      Src: /src/curl/lib/curlx/dynbuf.c:228,1
    - Dst: curlx_dyn_vaddf
      Src: /src/curl/lib/curlx/dynbuf.c:229,1
    - Dst: va_end
      Src: /src/curl/lib/curlx/dynbuf.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - s
    - fmt
    argTypes:
    - struct dynbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 220
    functionDepth: 7
    functionLinenumber: 220
    functionLinenumberEnd: 232
    functionName: curlx_dyn_addf
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 49
    functionsReached:
    - DEBUGASSERT
    - va_start
    - va_end
    - strcmp
    - curlx_dyn_vaddf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curlx_dyn_addf(struct dynbuf *s, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:239,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:240,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: curlx_dyn_ptr
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 157
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: char
    signature: char *curlx_dyn_ptr(const struct dynbuf *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:248,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - s
    - plen
    argTypes:
    - struct dynbuf*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: curlx_dyn_take
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 1
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: char
    signature: char *curlx_dyn_take(struct dynbuf *s, size_t *plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:262,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:263,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: curlx_dyn_uptr
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 8
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *curlx_dyn_uptr(const struct dynbuf *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:273,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:274,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct dynbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: curlx_dyn_len
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 98
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t curlx_dyn_len(const struct dynbuf *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:284,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:285,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/dynbuf.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - set
    argTypes:
    - struct dynbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: curlx_dyn_setlen
    functionSourceFile: /src/curl/lib/curlx/dynbuf.c
    functionUses: 6
    functionsReached:
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curlx_dyn_setlen(struct dynbuf *s, size_t set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceFrequency
      Src: /src/curl/lib/curlx/timeval.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: curlx_now_init
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 4
    functionsReached:
    - QueryPerformanceFrequency
    linkageType: ''
    returnType: void
    signature: void curlx_now_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/timeval.c:43,1
    - Dst: QueryPerformanceCounter
      Src: /src/curl/lib/curlx/timeval.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pnow
    argTypes:
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: curlx_pnow
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 4
    functionsReached:
    - QueryPerformanceCounter
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void curlx_pnow(struct curltime *pnow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mach_timebase_info
      Src: /src/curl/lib/curlx/timeval.c:134,1
    - Dst: mach_absolute_time
      Src: /src/curl/lib/curlx/timeval.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pnow
    argTypes:
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 143
    functionName: curlx_pnow
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 4
    functionsReached:
    - mach_timebase_info
    - mach_absolute_time
    linkageType: ''
    returnType: void
    signature: void curlx_pnow(struct curltime *pnow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/curl/lib/curlx/timeval.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pnow
    argTypes:
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: curlx_pnow
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 4
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void curlx_pnow(struct curltime *pnow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/curl/lib/curlx/timeval.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pnow
    argTypes:
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: curlx_pnow
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 4
    functionsReached:
    - time
    linkageType: ''
    returnType: void
    signature: void curlx_pnow(struct curltime *pnow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_pnow
      Src: /src/curl/lib/curlx/timeval.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: curlx_now
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 37
    functionsReached:
    - curlx_pnow
    linkageType: ''
    returnType: struct curltime
    signature: struct curltime curlx_now(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - newer
    - older
    argTypes:
    - struct curltime*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: curlx_ptimediff_ms
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t curlx_ptimediff_ms(const struct curltime *newer,\n                              const
      struct curltime *older)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/curlx/timeval.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - newer
    - older
    argTypes:
    - struct curltime
    - struct curltime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: curlx_timediff_ms
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 18
    functionsReached:
    - curlx_ptimediff_ms
    linkageType: ''
    returnType: timediff_t
    signature: timediff_t curlx_timediff_ms(struct curltime newer, struct curltime
      older)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - newer
    - older
    argTypes:
    - struct curltime
    - struct curltime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: curlx_timediff_ceil_ms
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t curlx_timediff_ceil_ms(struct curltime newer,\n                                  struct
      curltime older)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - newer
    - older
    argTypes:
    - struct curltime*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: curlx_ptimediff_us
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: timediff_t
    signature: "timediff_t curlx_ptimediff_us(const struct curltime *newer,\n                              const
      struct curltime *older)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curlx_ptimediff_us
      Src: /src/curl/lib/curlx/timeval.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - newer
    - older
    argTypes:
    - struct curltime
    - struct curltime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: curlx_timediff_us
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 0
    functionsReached:
    - curlx_ptimediff_us
    linkageType: ''
    returnType: timediff_t
    signature: timediff_t curlx_timediff_us(struct curltime newer, struct curltime
      older)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/curl/lib/curlx/timeval.c:255,1
    - Dst: gmtime_r
      Src: /src/curl/lib/curlx/timeval.c:259,1
    - Dst: gmtime
      Src: /src/curl/lib/curlx/timeval.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - intime
    - store
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 273
    functionName: curlx_gmtime
    functionSourceFile: /src/curl/lib/curlx/timeval.c
    functionUses: 9
    functionsReached:
    - gmtime_r
    - gmtime
    - gmtime_s
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curlx_gmtime(time_t intime, struct tm *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: curlx_inet_pton
    functionSourceFile: /src/curl/lib/curlx/inet_pton.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_inet_pton(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: curlx_inet_pton
    functionSourceFile: /src/curl/lib/curlx/inet_pton.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_inet_pton(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - af
    - ','
    - src
    - ','
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: curlx_inet_ntop
    functionSourceFile: /src/curl/lib/curlx/inet_ntop.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_inet_ntop(af, src, buf, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - af
    - ','
    - src
    - ','
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: curlx_inet_ntop
    functionSourceFile: /src/curl/lib/curlx/inet_ntop.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: curlx_inet_ntop(af, src, buf, size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/inet_ntop.c:63,1
    - Dst: SNPRINTF
      Src: /src/curl/lib/curlx/inet_ntop.c:66,1
    - Dst: strlen
      Src: /src/curl/lib/curlx/inet_ntop.c:72,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/curlx/inet_ntop.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - src
    - dst
    - size
    argTypes:
    - unsigned char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 83
    functionName: inet_ntop4
    functionSourceFile: /src/curl/lib/curlx/inet_ntop.c
    functionUses: 0
    functionsReached:
    - curlx_strcopy
    - strlen
    - SNPRINTF
    - DEBUGASSERT
    linkageType: ''
    returnType: char
    signature: char *inet_ntop4(const unsigned char *src, char *dst, size_t size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/lib/curlx/inet_ntop.c:110,1
    - Dst: inet_ntop4
      Src: /src/curl/lib/curlx/inet_ntop.c:157,1
    - Dst: strlen
      Src: /src/curl/lib/curlx/inet_ntop.c:160,1
    - Dst: curlx_strcopy
      Src: /src/curl/lib/curlx/inet_ntop.c:195,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 60
    argCount: 3
    argNames:
    - src
    - dst
    - size
    argTypes:
    - unsigned char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 197
    functionName: inet_ntop6
    functionSourceFile: /src/curl/lib/curlx/inet_ntop.c
    functionUses: 0
    functionsReached:
    - strlen
    - inet_ntop4
    - curlx_strcopy
    - memset
    linkageType: ''
    returnType: char
    signature: char *inet_ntop6(const unsigned char *src, char *dst, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop4
      Src: /src/curl/lib/curlx/inet_ntop.c:214,1
    - Dst: inet_ntop6
      Src: /src/curl/lib/curlx/inet_ntop.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - af
    - src
    - buf
    - size
    argTypes:
    - int
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 221
    functionName: curlx_inet_ntop
    functionSourceFile: /src/curl/lib/curlx/inet_ntop.c
    functionUses: 8
    functionsReached:
    - inet_ntop4
    - inet_ntop6
    linkageType: ''
    returnType: char
    signature: char *curlx_inet_ntop(int af, const void *src, char *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/curl/lib/curlx/strdup.c:45,1
    - Dst: curlx_memdup
      Src: /src/curl/lib/curlx/strdup.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: curlx_wcsdup
    functionSourceFile: /src/curl/lib/curlx/strdup.c
    functionUses: 0
    functionsReached:
    - curlx_memdup
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *curlx_wcsdup(const wchar_t *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/curlx/strdup.c:66,1
    - Dst: memcpy
      Src: /src/curl/lib/curlx/strdup.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - src
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: curlx_memdup
    functionSourceFile: /src/curl/lib/curlx/strdup.c
    functionUses: 10
    functionsReached:
    - curlx_malloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *curlx_memdup(const void *src, size_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_malloc
      Src: /src/curl/lib/curlx/strdup.c:87,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strdup.c:91,1
    - Dst: memcpy
      Src: /src/curl/lib/curlx/strdup.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - src
    - length
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: curlx_memdup0
    functionSourceFile: /src/curl/lib/curlx/strdup.c
    functionUses: 42
    functionsReached:
    - curlx_malloc
    - memcpy
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void *curlx_memdup0(const char *src, size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p_curlx_memset
      Src: /src/curl/lib/curlx/strdup.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: curlx_memzero
    functionSourceFile: /src/curl/lib/curlx/strdup.c
    functionUses: 1
    functionsReached:
    - p_curlx_memset
    linkageType: ''
    returnType: void
    signature: void curlx_memzero(void *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_memzero
      Src: /src/curl/lib/curlx/strdup.c:115,1
    - Dst: curlx_free
      Src: /src/curl/lib/curlx/strdup.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: curlx_freezero
    functionSourceFile: /src/curl/lib/curlx/strdup.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_memzero
    linkageType: ''
    returnType: void
    signature: void curlx_freezero(void *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curlx_memzero
      Src: /src/curl/lib/curlx/strdup.c:123,1
    - Dst: strlen
      Src: /src/curl/lib/curlx/strdup.c:123,1
    - Dst: curlx_free
      Src: /src/curl/lib/curlx/strdup.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: curlx_freezeroz
    functionSourceFile: /src/curl/lib/curlx/strdup.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - curlx_memzero
    - strlen
    linkageType: ''
    returnType: void
    signature: void curlx_freezeroz(void *buf)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: curlx_strcopy
      Src: /src/curl/lib/curlx/strerr.c:223,1
    - Dst: strlen
      Src: /src/curl/lib/curlx/strerr.c:223,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 164
    argCount: 3
    argNames:
    - err
    - buf
    - len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 226
    functionName: get_winsock_error
    functionSourceFile: /src/curl/lib/curlx/strerr.c
    functionUses: 0
    functionsReached:
    - strlen
    - curlx_strcopy
    linkageType: ''
    returnType: char
    signature: char *get_winsock_error(int err, char *buf, size_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/curl/lib/curlx/strerr.c:251,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/curlx/strerr.c:260,1
    - Dst: strerror_s
      Src: /src/curl/lib/curlx/strerr.c:266,1
    - Dst: strcmp
      Src: /src/curl/lib/curlx/strerr.c:266,1
    - Dst: get_winsock_error
      Src: /src/curl/lib/curlx/strerr.c:268,1
    - Dst: curlx_get_winapi_error
      Src: /src/curl/lib/curlx/strerr.c:270,1
    - Dst: SNPRINTF
      Src: /src/curl/lib/curlx/strerr.c:271,1
    - Dst: strerror_r
      Src: /src/curl/lib/curlx/strerr.c:280,1
    - Dst: SNPRINTF
      Src: /src/curl/lib/curlx/strerr.c:283,1
    - Dst: strerror_r
      Src: /src/curl/lib/curlx/strerr.c:293,1
    - Dst: SNPRINTF
      Src: /src/curl/lib/curlx/strerr.c:295,1
    - Dst: SNPRINTF
      Src: /src/curl/lib/curlx/strerr.c:297,1
    - Dst: strerror
      Src: /src/curl/lib/curlx/strerr.c:302,1
    - Dst: SNPRINTF
      Src: /src/curl/lib/curlx/strerr.c:304,1
    - Dst: SNPRINTF
      Src: /src/curl/lib/curlx/strerr.c:306,1
    - Dst: strrchr
      Src: /src/curl/lib/curlx/strerr.c:313,1
    - Dst: strrchr
      Src: /src/curl/lib/curlx/strerr.c:316,1
    - Dst: GetLastError
      Src: /src/curl/lib/curlx/strerr.c:324,1
    - Dst: SetLastError
      Src: /src/curl/lib/curlx/strerr.c:325,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 31
    argCount: 3
    argNames:
    - err
    - buf
    - buflen
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 329
    functionName: curlx_strerror
    functionSourceFile: /src/curl/lib/curlx/strerr.c
    functionUses: 79
    functionsReached:
    - DEBUGASSERT
    - get_winsock_error
    - curlx_get_winapi_error
    - strrchr
    - strcmp
    - SetLastError
    - strerror_r
    - GetLastError
    - SNPRINTF
    - strerror_s
    - strerror
    linkageType: ''
    returnType: char
    signature: char *curlx_strerror(int err, char *buf, size_t buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_version
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:108,1
    - Dst: nghttp3_version
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:109,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 7
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: Curl_ngtcp2_ver
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - ngtcp2_version
    - curl_msnprintf
    - nghttp3_version
    linkageType: ''
    returnType: void
    signature: void Curl_ngtcp2_ver(char *p, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: CF_CTX_CALL_DATA
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_CTX_CALL_DATA(cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:163,1
    - Dst: Curl_bufcp_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:168,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:170,1
    - Dst: Curl_uint32_hash_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_ngtcp2_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: cf_ngtcp2_ctx_init
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - Curl_bufcp_init
    - Curl_uint32_hash_init
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void cf_ngtcp2_ctx_init(struct cf_ngtcp2_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_vquic_tls_cleanup
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:178,1
    - Dst: vquic_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:179,1
    - Dst: Curl_bufcp_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:180,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:181,1
    - Dst: Curl_uint32_hash_destroy
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:182,1
    - Dst: Curl_ssl_peer_cleanup
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:183,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:184,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_ngtcp2_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 5
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: cf_ngtcp2_ctx_free
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_ssl_peer_cleanup
    - Curl_bufcp_free
    - curlx_dyn_free
    - Curl_vquic_tls_cleanup
    - curlx_free
    - vquic_ctx_free
    - Curl_uint32_hash_destroy
    linkageType: ''
    returnType: void
    signature: void cf_ngtcp2_ctx_free(struct cf_ngtcp2_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_get_remote_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:207,1
    - Dst: ngtcp2_conn_set_keep_alive_timeout
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:209,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:210,1
    - Dst: Curl_uint32_hash_count
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:212,1
    - Dst: ngtcp2_conn_set_keep_alive_timeout
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:213,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:214,1
    - Dst: ngtcp2_conn_set_keep_alive_timeout
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:219,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 225
    functionName: cf_ngtcp2_setup_keep_alive
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_hash_count
    - CURL_TRC_CF
    - ngtcp2_conn_get_remote_transport_params
    - ngtcp2_conn_set_keep_alive_timeout
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_setup_keep_alive(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:259,1
    - Dst: Curl_h1_req_parse_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:260,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct h3_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: h3_stream_ctx_free
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_h1_req_parse_free
    - curlx_free
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void h3_stream_ctx_free(struct h3_stream_ctx *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:267,1
    - Dst: h3_stream_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - stream
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: h3_stream_hash_free
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - h3_stream_ctx_free
    linkageType: ''
    returnType: void
    signature: void h3_stream_hash_free(unsigned int id, void *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:275,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:283,1
    - Dst: Curl_bufq_initp
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:292,1
    - Dst: Curl_h1_req_parse_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:296,1
    - Dst: Curl_uint32_hash_set
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:298,1
    - Dst: h3_stream_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:299,1
    - Dst: Curl_uint32_hash_count
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:303,1
    - Dst: cf_ngtcp2_setup_keep_alive
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 307
    functionName: h3_data_setup
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_initp
    - Curl_h1_req_parse_init
    - H3_STREAM_CTX
    - curlx_calloc
    - Curl_uint32_hash_count
    - Curl_uint32_hash_set
    - h3_stream_ctx_free
    - cf_ngtcp2_setup_keep_alive
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_data_setup(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mid
    - value
    - user_data
    argTypes:
    - uint32_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: cf_ngtcp2_sfind
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_ngtcp2_sfind(uint32_t mid, void *value, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_hash_visit
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - stream_id
    argTypes:
    - struct cf_ngtcp2_ctx*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: cf_ngtcp2_get_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_hash_visit
    linkageType: ''
    returnType: struct h3_stream_ctx
    signature: "struct h3_stream_ctx *cf_ngtcp2_get_stream(struct cf_ngtcp2_ctx *ctx,\n
      \                                                 int64_t stream_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_get_stream_user_data
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:343,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - stream_id
    argTypes:
    - struct cf_ngtcp2_ctx*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 350
    functionName: cf_ngtcp2_get_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - H3_STREAM_CTX
    - ngtcp2_conn_get_stream_user_data
    linkageType: ''
    returnType: struct h3_stream_ctx
    signature: "struct h3_stream_ctx *cf_ngtcp2_get_stream(struct cf_ngtcp2_ctx *ctx,\n
      \                                                 int64_t stream_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:358,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:359,1
    - Dst: nghttp3_conn_set_stream_user_data
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:363,1
    - Dst: ngtcp2_conn_set_stream_user_data
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:364,1
    - Dst: ngtcp2_conn_shutdown_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:366,1
    - Dst: cf_progress_egress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:368,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - cf
    - data
    - stream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 373
    functionName: cf_ngtcp2_stream_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - ngtcp2_conn_shutdown_stream
    - ngtcp2_conn_set_stream_user_data
    - nghttp3_conn_set_stream_user_data
    - cf_progress_egress
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_stream_close(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   struct h3_stream_ctx *stream)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:378,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:381,1
    - Dst: cf_ngtcp2_stream_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:382,1
    - Dst: Curl_uint32_hash_remove
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:383,1
    - Dst: Curl_uint32_hash_count
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:384,1
    - Dst: cf_ngtcp2_setup_keep_alive
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 387
    functionName: h3_data_done
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - cf_ngtcp2_stream_close
    - H3_STREAM_CTX
    - Curl_uint32_hash_count
    - Curl_uint32_hash_remove
    - cf_ngtcp2_setup_keep_alive
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: void h3_data_done(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:401,1
    - Dst: vquic_ctx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - pktx
    - cf
    argTypes:
    - struct Curl_easy*
    - struct pkt_io_ctx*
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 406
    functionName: pktx_update_time
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - vquic_ctx_update_time
    linkageType: ''
    returnType: void
    signature: "void pktx_update_time(struct Curl_easy *data,\n                             struct
      pkt_io_ctx *pktx,\n                             struct Curl_cfilter *cf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:413,1
    - Dst: ngtcp2_path_storage_zero
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:417,1
    - Dst: vquic_ctx_set_time
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pktx
    - cf
    - data
    argTypes:
    - struct pkt_io_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 421
    functionName: pktx_init
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - vquic_ctx_set_time
    - ngtcp2_path_storage_zero
    linkageType: ''
    returnType: void
    signature: "void pktx_init(struct pkt_io_ctx *pktx,\n                      struct
      Curl_cfilter *cf,\n                      struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn_ref
    argTypes:
    - ngtcp2_crypto_conn_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: get_conn
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ngtcp2_conn
    signature: ngtcp2_conn *get_conn(ngtcp2_crypto_conn_ref *conn_ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:439,1
    - Dst: curl_mvfprintf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:440,1
    - Dst: va_end
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:441,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - user_data
    - fmt
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 435
    functionDepth: 6
    functionLinenumber: 435
    functionLinenumberEnd: 443
    functionName: quic_printf
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - curl_mvfprintf
    - va_start
    - va_end
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void quic_printf(void *user_data, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:453,1
    - Dst: curlx_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - user_data
    - flags
    - data
    - datalen
    argTypes:
    - void*
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 460
    functionName: qlog_callback
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - curlx_close
    - write
    linkageType: ''
    returnType: void
    signature: "void qlog_callback(void *user_data, uint32_t flags,\n                          const
      void *data, size_t datalen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_settings_default
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:469,1
    - Dst: ngtcp2_transport_params_default
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - data
    - pktx
    argTypes:
    - struct cf_ngtcp2_ctx*
    - struct Curl_easy*
    - struct pkt_io_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 498
    functionName: quic_settings
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - ngtcp2_settings_default
    - ngtcp2_transport_params_default
    linkageType: ''
    returnType: void
    signature: "void quic_settings(struct cf_ngtcp2_ctx *ctx,\n                          struct
      Curl_easy *data,\n                          struct pkt_io_ctx *pktx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:510,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:511,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:512,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:516,1
    - Dst: Curl_vquic_report_handshake
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:518,1
    - Dst: Curl_vquic_tls_verify_peer
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:520,1
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:526,1
    - Dst: ngtcp2_conn_get_remote_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:528,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:529,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:532,1
    - Dst: Curl_pgrsTimeWas
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:540,1
    - Dst: SSL_get_early_data_status
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:544,1
    - Dst: gnutls_session_get_flags
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:548,1
    - Dst: wolfSSL_get_early_data_status
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:554,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:557,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:561,1
    - Dst: Curl_pgrsEarlyData
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:563,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - tconn
    - user_data
    argTypes:
    - ngtcp2_conn*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 568
    functionName: cb_ngtcp2_handshake_completed
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_vquic_report_handshake
    - ngtcp2_conn_get_remote_transport_params
    - curlx_ptimediff_ms
    - wolfSSL_get_early_data_status
    - Curl_pgrsEarlyData
    - Curl_trc_is_verbose
    - SSL_get_early_data_status
    - gnutls_session_get_flags
    - Curl_pgrsTimeWas
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    - Curl_vquic_tls_verify_peer
    linkageType: ''
    returnType: int
    signature: int cb_ngtcp2_handshake_completed(ngtcp2_conn *tconn, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 578
    functionName: cf_ngtcp2_err_is_fatal
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_ngtcp2_err_is_fatal(int code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_ccerr_set_tls_alert
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:586,1
    - Dst: ngtcp2_conn_get_tls_alert
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:587,1
    - Dst: ngtcp2_ccerr_set_liberr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:591,1
    - Dst: cf_ngtcp2_err_is_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:594,1
    - Dst: cf_ngtcp2_conn_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - cf
    - data
    - code
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 596
    functionName: cf_ngtcp2_err_set
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - ngtcp2_conn_get_tls_alert
    - cf_ngtcp2_conn_close
    - ngtcp2_ccerr_set_tls_alert
    - cf_ngtcp2_err_is_fatal
    - ngtcp2_ccerr_set_liberr
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_err_set(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data, int code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: cf_ngtcp2_h3_err_is_fatal
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_ngtcp2_h3_err_is_fatal(int code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_ccerr_set_application_error
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:609,1
    - Dst: nghttp3_err_infer_quic_app_error_code
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:610,1
    - Dst: cf_ngtcp2_h3_err_is_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:612,1
    - Dst: cf_ngtcp2_conn_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cf
    - data
    - code
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 614
    functionName: cf_ngtcp2_h3_err_set
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - cf_ngtcp2_h3_err_is_fatal
    - nghttp3_err_infer_quic_app_error_code
    - ngtcp2_ccerr_set_application_error
    - cf_ngtcp2_conn_close
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_h3_err_set(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data, int code)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:627,1
    - Dst: nghttp3_conn_read_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:630,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:633,1
    - Dst: ngtcp2_conn_extend_max_stream_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:644,1
    - Dst: ngtcp2_conn_extend_max_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:645,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 8
    argNames:
    - tconn
    - flags
    - stream_id
    - offset
    - buf
    - buflen
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - uint32_t
    - int64_t
    - uint64_t
    - uint8_t*
    - size_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 652
    functionName: cb_recv_stream_data
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - nghttp3_conn_read_stream
    - H3_STREAM_CTX
    - ngtcp2_conn_extend_max_stream_offset
    - ngtcp2_conn_extend_max_offset
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_recv_stream_data(ngtcp2_conn *tconn, uint32_t flags,\n                               int64_t
      stream_id, uint64_t offset,\n                               const uint8_t *buf,
      size_t buflen,\n                               void *user_data, void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_conn_add_ack_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - tconn
    - stream_id
    - offset
    - datalen
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - int64_t
    - uint64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 673
    functionName: cb_acked_stream_data_offset
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - nghttp3_conn_add_ack_offset
    linkageType: ''
    returnType: int
    signature: "int cb_acked_stream_data_offset(ngtcp2_conn *tconn, int64_t stream_id,\n
      \                                      uint64_t offset, uint64_t datalen,\n
      \                                      void *user_data, void *stream_user_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:687,1
    - Dst: nghttp3_conn_close_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:695,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:696,1
    - Dst: cf_ngtcp2_h3_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:699,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - tconn
    - flags
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - uint32_t
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 704
    functionName: cb_stream_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - cf_ngtcp2_h3_err_set
    - CURL_TRC_CF
    - CF_DATA_CURRENT
    - nghttp3_conn_close_stream
    linkageType: ''
    returnType: int
    signature: "int cb_stream_close(ngtcp2_conn *tconn, uint32_t flags,\n                           int64_t
      stream_id, uint64_t app_error_code,\n                           void *user_data,
      void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_conn_shutdown_stream_read
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:718,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - tconn
    - stream_id
    - final_size
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - int64_t
    - uint64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 725
    functionName: cb_stream_reset
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - nghttp3_conn_shutdown_stream_read
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_stream_reset(ngtcp2_conn *tconn, int64_t stream_id,\n                           uint64_t
      final_size, uint64_t app_error_code,\n                           void *user_data,
      void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_conn_shutdown_stream_read
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - tconn
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 744
    functionName: cb_stream_stop_sending
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - nghttp3_conn_shutdown_stream_read
    linkageType: ''
    returnType: int
    signature: "int cb_stream_stop_sending(ngtcp2_conn *tconn, int64_t stream_id,\n
      \                                 uint64_t app_error_code, void *user_data,\n
      \                                 void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:752,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tconn
    - max_streams
    - user_data
    argTypes:
    - ngtcp2_conn*
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 760
    functionName: cb_extend_max_local_streams_bidi
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_extend_max_local_streams_bidi(ngtcp2_conn *tconn,\n                                            uint64_t
      max_streams,\n                                            void *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_conn_unblock_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:774,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:778,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:780,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - tconn
    - stream_id
    - max_data
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 785
    functionName: cb_extend_max_stream_data
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - H3_STREAM_CTX
    - CURL_TRC_CF
    - nghttp3_conn_unblock_stream
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: int
    signature: "int cb_extend_max_stream_data(ngtcp2_conn *tconn, int64_t stream_id,\n
      \                                    uint64_t max_data, void *user_data,\n                                     void
      *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:793,1
    - Dst: memset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - destlen
    - rand_ctx
    argTypes:
    - uint8_t*
    - size_t
    - ngtcp2_rand_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 799
    functionName: cb_rand
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_rand
    - memset
    linkageType: ''
    returnType: void
    signature: "void cb_rand(uint8_t *dest, size_t destlen,\n                    const
      ngtcp2_rand_ctx *rand_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:810,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - tconn
    - cid
    - token
    - cidlen
    - user_data
    argTypes:
    - ngtcp2_conn*
    - ngtcp2_cid*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 820
    functionName: cb_get_new_connection_id
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_rand
    linkageType: ''
    returnType: int
    signature: "int cb_get_new_connection_id(ngtcp2_conn *tconn, ngtcp2_cid *cid,\n
      \                                   uint8_t *token, size_t cidlen,\n                                    void
      *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:831,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - tconn
    - cid
    - token
    - cidlen
    - user_data
    argTypes:
    - ngtcp2_conn*
    - ngtcp2_cid*
    - struct ngtcp2_stateless_reset_token*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 841
    functionName: cb_get_new_connection_id2
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_rand
    linkageType: ''
    returnType: int
    signature: "int cb_get_new_connection_id2(\n  ngtcp2_conn *tconn, ngtcp2_cid *cid,\n
      \ struct ngtcp2_stateless_reset_token *token, size_t cidlen, void *user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:849,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:855,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:856,1
    - Dst: init_ngh3_conn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:858,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - tconn
    - level
    - user_data
    argTypes:
    - ngtcp2_conn*
    - ngtcp2_encryption_level
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 862
    functionName: cb_recv_rx_key
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - init_ngh3_conn
    - CF_DATA_CURRENT
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int cb_recv_rx_key(ngtcp2_conn *tconn, ngtcp2_encryption_level level,\n
      \                         void *user_data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:941,1
    - Dst: pktx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:945,1
    - Dst: ngtcp2_conn_get_expiry
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:948,1
    - Dst: ngtcp2_conn_handle_expiry
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:952,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:954,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:955,1
    - Dst: cf_ngtcp2_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:956,1
    - Dst: cf_progress_ingress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:959,1
    - Dst: cf_progress_egress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:962,1
    - Dst: ngtcp2_conn_get_expiry
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:966,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:974,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - cf
    - data
    - pktx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct pkt_io_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 932
    functionDepth: 7
    functionLinenumber: 932
    functionLinenumberEnd: 979
    functionName: check_and_set_expiry
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - ngtcp2_conn_get_expiry
    - ngtcp2_strerror
    - failf
    - cf_progress_ingress
    - pktx_init
    - cf_ngtcp2_err_set
    - Curl_expire
    - cf_progress_egress
    - ngtcp2_conn_handle_expiry
    - pktx_update_time
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode check_and_set_expiry(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data,\n                                     struct pkt_io_ctx *pktx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::adjust_pollset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:994,1
    - Dst: Curl_pollset_check
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:997,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:998,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1002,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1006,1
    - Dst: ngtcp2_conn_get_cwnd_left
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1007,1
    - Dst: ngtcp2_conn_get_max_data_left
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1008,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1013,1
    - Dst: Curl_pollset_set
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1015,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1016,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 1019
    functionName: cf_ngtcp2_adjust_pollset
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - Curl_pollset_check
    - H3_STREAM_CTX
    - struct Curl_cfilter*::next::cft::adjust_pollset
    - ngtcp2_conn_get_max_data_left
    - Curl_pollset_set
    - Curl_bufq_is_empty
    - ngtcp2_conn_get_cwnd_left
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_adjust_pollset(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data,\n                                         struct easy_pollset
      *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1028,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1041,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1045,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - conn
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1021
    functionDepth: 2
    functionLinenumber: 1021
    functionLinenumberEnd: 1049
    functionName: cb_h3_stream_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - H3_STREAM_CTX
    - CURL_TRC_CF
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: int
    signature: "int cb_h3_stream_close(nghttp3_conn *conn, int64_t stream_id,\n                              uint64_t
      app_error_code, void *user_data,\n                              void *stream_user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_write_resp_hd
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1063,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - cf
    - data
    - stream
    - buf
    - buflen
    - eos
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1051
    functionDepth: 3
    functionLinenumber: 1051
    functionLinenumberEnd: 1068
    functionName: h3_xfer_write_resp_hd
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_write_resp_hd
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void h3_xfer_write_resp_hd(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  struct h3_stream_ctx *stream,\n
      \                                 const char *buf, size_t buflen, bool eos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_write_resp
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1082,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - cf
    - data
    - stream
    - buf
    - buflen
    - eos
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1070
    functionDepth: 2
    functionLinenumber: 1070
    functionLinenumberEnd: 1089
    functionName: h3_xfer_write_resp
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_write_resp
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void h3_xfer_write_resp(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               struct h3_stream_ctx *stream,\n
      \                              const char *buf, size_t buflen, bool eos)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_active
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1099,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1106,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1106,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1109,1
    - Dst: CURLMIN
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1113,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1117,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1128,1
    - Dst: ngtcp2_conn_extend_max_stream_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - cf
    - data
    - stream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1134
    functionName: cf_ngtcp2_upd_rx_win
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_rlimit_avail
    - CURLMIN
    - ngtcp2_conn_extend_max_stream_offset
    - Curl_rlimit_active
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_upd_rx_win(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct h3_stream_ctx *stream)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1143,1
    - Dst: h3_xfer_write_resp
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1151,1
    - Dst: ngtcp2_conn_extend_max_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1153,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1158,1
    - Dst: cf_ngtcp2_upd_rx_win
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - conn
    - stream3_id
    - buf
    - buflen
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint8_t*
    - size_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1136
    functionDepth: 4
    functionLinenumber: 1136
    functionLinenumberEnd: 1162
    functionName: cb_h3_recv_data
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - h3_xfer_write_resp
    - H3_STREAM_CTX
    - cf_ngtcp2_upd_rx_win
    - ngtcp2_conn_extend_max_offset
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_h3_recv_data(nghttp3_conn *conn, int64_t stream3_id,\n                           const
      uint8_t *buf, size_t buflen,\n                           void *user_data, void
      *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1171,1
    - Dst: ngtcp2_conn_extend_max_stream_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1176,1
    - Dst: ngtcp2_conn_extend_max_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - conn
    - stream3_id
    - consumed
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - size_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1183
    functionName: cb_h3_deferred_consume
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - H3_STREAM_CTX
    - ngtcp2_conn_extend_max_offset
    - ngtcp2_conn_extend_max_stream_offset
    linkageType: ''
    returnType: int
    signature: "int cb_h3_deferred_consume(nghttp3_conn *conn, int64_t stream3_id,\n
      \                                 size_t consumed, void *user_data,\n                                  void
      *stream_user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1191,1
    - Dst: h3_xfer_write_resp_hd
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1200,1
    - Dst: STRCONST
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1200,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1203,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - conn
    - stream_id
    - fin
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1185
    functionDepth: 4
    functionLinenumber: 1185
    functionLinenumberEnd: 1210
    functionName: cb_h3_end_headers
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - STRCONST
    - Curl_multi_mark_dirty
    - H3_STREAM_CTX
    - h3_xfer_write_resp_hd
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_h3_end_headers(nghttp3_conn *conn, int64_t stream_id,\n                             int
      fin, void *user_data, void *stream_user_data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_rcbuf_get_buf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1219,1
    - Dst: nghttp3_rcbuf_get_buf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1220,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1222,1
    - Dst: Curl_http_decode_status
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1236,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1240,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1241,1
    - Dst: STRCONST
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1241,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1243,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1246,1
    - Dst: STRCONST
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1246,1
    - Dst: h3_xfer_write_resp_hd
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1248,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1248,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1249,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1250,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1251,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1258,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1261,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1262,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1265,1
    - Dst: STRCONST
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1265,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1267,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1270,1
    - Dst: STRCONST
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1270,1
    - Dst: h3_xfer_write_resp_hd
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1272,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1272,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1273,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 8
    argNames:
    - conn
    - stream_id
    - token
    - name
    - value
    - flags
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - int32_t
    - nghttp3_rcbuf*
    - nghttp3_rcbuf*
    - uint8_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1212
    functionDepth: 4
    functionLinenumber: 1212
    functionLinenumberEnd: 1276
    functionName: cb_h3_recv_header
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - STRCONST
    - curlx_dyn_addn
    - curlx_dyn_len
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - H3_STREAM_CTX
    - h3_xfer_write_resp_hd
    - nghttp3_rcbuf_get_buf
    - Curl_http_decode_status
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_h3_recv_header(nghttp3_conn *conn, int64_t stream_id,\n                             int32_t
      token, nghttp3_rcbuf *name,\n                             nghttp3_rcbuf *value,
      uint8_t flags,\n                             void *user_data, void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_shutdown_stream_read
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - conn
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1295
    functionName: cb_h3_stop_sending
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - ngtcp2_conn_shutdown_stream_read
    linkageType: ''
    returnType: int
    signature: "int cb_h3_stop_sending(nghttp3_conn *conn, int64_t stream_id,\n                              uint64_t
      app_error_code, void *user_data,\n                              void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_shutdown_stream_write
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1307,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - conn
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1315
    functionName: cb_h3_reset_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - ngtcp2_conn_shutdown_stream_write
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_h3_reset_stream(nghttp3_conn *conn, int64_t stream_id,\n                              uint64_t
      app_error_code, void *user_data,\n                              void *stream_user_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_get_streams_uni_left
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1350,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1351,1
    - Dst: nghttp3_settings_default
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1355,1
    - Dst: nghttp3_conn_client_new
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1357,1
    - Dst: Curl_nghttp3_mem
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1360,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1363,1
    - Dst: ngtcp2_conn_open_uni_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1367,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1369,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1370,1
    - Dst: nghttp3_conn_bind_control_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1374,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1376,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1377,1
    - Dst: ngtcp2_conn_open_uni_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1381,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1383,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1384,1
    - Dst: ngtcp2_conn_open_uni_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1388,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1390,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1391,1
    - Dst: nghttp3_conn_bind_qpack_streams
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1395,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1398,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1398,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1403
    functionName: init_ngh3_conn
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 1
    functionsReached:
    - ngtcp2_conn_open_uni_stream
    - nghttp3_conn_bind_control_stream
    - ngtcp2_strerror
    - failf
    - nghttp3_conn_client_new
    - nghttp3_conn_bind_qpack_streams
    - ngtcp2_conn_get_streams_uni_left
    - nghttp3_settings_default
    - Curl_nghttp3_mem
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode init_ngh3_conn(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1414,1
    - Dst: connclose
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1416,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1421,1
    - Dst: vquic_h3_err_str
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1424,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1427,1
    - Dst: vquic_h3_err_str
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1429,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - cf
    - data
    - stream
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1440
    functionName: recv_closed_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - vquic_h3_err_str
    - failf
    - infof
    - connclose
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode recv_closed_stream(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   struct h3_stream_ctx *stream,\n
      \                                  size_t *pnread)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1447,1
    - Dst: NOVERBOSE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1455,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1457,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1458,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1459,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1460,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1461,1
    - Dst: pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1470,1
    - Dst: cf_ngtcp2_upd_rx_win
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1477,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1486,1
    - Dst: cf_ngtcp2_stream_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1487,1
    - Dst: recv_closed_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1492,1
    - Dst: cf_progress_ingress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1496,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1505,1
    - Dst: cf_progress_egress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1505,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1506,1
    - Dst: check_and_set_expiry
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1506,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1510,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1512,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - buflen
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1443
    functionDepth: 8
    functionLinenumber: 1443
    functionLinenumberEnd: 1514
    functionName: cf_ngtcp2_recv
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - Curl_1st_fatal
    - DEBUGASSERT
    - cf_ngtcp2_stream_close
    - cf_progress_ingress
    - pktx_init
    - check_and_set_expiry
    - H3_STREAM_CTX
    - cf_progress_egress
    - cf_ngtcp2_upd_rx_win
    - NOVERBOSE
    - recv_closed_stream
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_recv(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                               char *buf, size_t buflen, size_t *pnread)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1523,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1536,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1540,1
    - Dst: nghttp3_conn_resume_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - conn
    - stream_id
    - datalen
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1516
    functionDepth: 4
    functionLinenumber: 1516
    functionLinenumberEnd: 1547
    functionName: cb_h3_acked_req_body
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - H3_STREAM_CTX
    - Curl_bufq_skip
    - nghttp3_conn_resume_stream
    linkageType: ''
    returnType: int
    signature: "int cb_h3_acked_req_body(nghttp3_conn *conn, int64_t stream_id,\n
      \                               uint64_t datalen, void *user_data,\n                                void
      *stream_user_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1557,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1575,1
    - Dst: Curl_bufq_peek_at
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1578,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1580,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1586,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1600,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1604,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1608,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 7
    argNames:
    - conn
    - stream_id
    - vec
    - veccnt
    - pflags
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - nghttp3_vec*
    - size_t
    - uint32_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1549
    functionDepth: 3
    functionLinenumber: 1549
    functionLinenumberEnd: 1611
    functionName: cb_h3_read_req_body
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - DEBUGASSERT
    - Curl_bufq_peek_at
    - CURL_UNCONST
    - H3_STREAM_CTX
    - CURL_TRC_CF
    linkageType: ''
    returnType: nghttp3_ssize
    signature: "nghttp3_ssize cb_h3_read_req_body(nghttp3_conn *conn, int64_t stream_id,\n
      \                                        nghttp3_vec *vec, size_t veccnt,\n
      \                                        uint32_t *pflags, void *user_data,\n
      \                                        void *stream_user_data)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1631,1
    - Dst: h3_data_setup
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1633,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1636,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1637,1
    - Dst: Curl_h1_req_parse_read
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1643,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1653,1
    - Dst: Curl_http_req_to_h2
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1655,1
    - Dst: Curl_h1_req_parse_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1660,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1662,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1663,1
    - Dst: Curl_dynhds_getn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1670,1
    - Dst: ngtcp2_conn_open_bidi_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1678,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1680,1
    - Dst: nghttp3_conn_submit_request
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1711,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1716,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1720,1
    - Dst: nghttp3_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1721,1
    - Dst: cf_ngtcp2_stream_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1724,1
    - Dst: cf_ngtcp2_upd_rx_win
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1729,1
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1731,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1732,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1733,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1735,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1742,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1743,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 96
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1613
    functionDepth: 5
    functionLinenumber: 1613
    functionLinenumberEnd: 1745
    functionName: h3_stream_open
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - h3_data_setup
    - ngtcp2_conn_open_bidi_stream
    - cf_ngtcp2_upd_rx_win
    - CURL_TRC_CF
    - Curl_http_req_to_h2
    - Curl_h1_req_parse_read
    - Curl_dynhds_count
    - Curl_bufref_ptr
    - Curl_dynhds_free
    - failf
    - cf_ngtcp2_stream_close
    - Curl_trc_is_verbose
    - curlx_malloc
    - curlx_free
    - H3_STREAM_CTX
    - nghttp3_conn_submit_request
    - nghttp3_strerror
    - Curl_h1_req_parse_free
    - Curl_dynhds_getn
    - infof
    - Curl_dynhds_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_stream_open(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               const uint8_t *buf, size_t
      len,\n                               size_t *pnwritten)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1752,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1757,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1758,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1759,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1760,1
    - Dst: pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1761,1
    - Dst: cf_progress_ingress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1771,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1777,1
    - Dst: h3_stream_open
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1781,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1783,1
    - Dst: VERBOSE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1786,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1786,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1789,1
    - Dst: cf_ngtcp2_stream_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1790,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1801,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1807,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1813,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1818,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1819,1
    - Dst: nghttp3_conn_resume_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1824,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1830,1
    - Dst: cf_progress_egress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1831,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1834,1
    - Dst: check_and_set_expiry
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1834,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1838,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1840,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1747
    functionDepth: 8
    functionLinenumber: 1747
    functionLinenumberEnd: 1842
    functionName: cf_ngtcp2_send
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - Curl_1st_fatal
    - DEBUGASSERT
    - cf_ngtcp2_stream_close
    - cf_progress_ingress
    - pktx_init
    - VERBOSE
    - H3_STREAM_CTX
    - check_and_set_expiry
    - Curl_bufq_write
    - cf_progress_egress
    - nghttp3_conn_resume_stream
    - h3_stream_open
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_send(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                               const uint8_t *buf, size_t len, bool
      eos,\n                               size_t *pnwritten)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pktx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1864,1
    - Dst: ngtcp2_path_storage_zero
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1865,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1869,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1871,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1873,1
    - Dst: ngtcp2_conn_read_pkt
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1880,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1883,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1884,1
    - Dst: cf_ngtcp2_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1885,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 7
    argNames:
    - buf
    - buflen
    - gso_size
    - remote_addr
    - remote_addrlen
    - ecn
    - userp
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    - struct sockaddr_storage*
    - socklen_t
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1849
    functionDepth: 3
    functionLinenumber: 1849
    functionLinenumberEnd: 1895
    functionName: cf_ngtcp2_recv_pkts
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - ngtcp2_strerror
    - ngtcp2_conn_read_pkt
    - ngtcp2_addr_init
    - cf_ngtcp2_err_set
    - ngtcp2_path_storage_zero
    - pktx_update_time
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_recv_pkts(const unsigned char *buf, size_t buflen,\n
      \                                   size_t gso_size,\n                                    struct
      sockaddr_storage *remote_addr,\n                                    socklen_t
      remote_addrlen, int ecn,\n                                    void *userp)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1907,1
    - Dst: Curl_vquic_tls_before_recv
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1911,1
    - Dst: vquic_recv_packets
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1920,1
    - Dst: ngtcp2_conn_get_path_max_tx_udp_payload_size
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1935,1
    - Dst: curlx_realloc
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1941,1
    - Dst: Curl_conn_cf_recv
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1951,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1958,1
    - Dst: memcpy
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1966,1
    - Dst: cf_ngtcp2_recv_pkts
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:1969,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - cf
    - data
    - pktx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct pkt_io_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1897
    functionDepth: 4
    functionLinenumber: 1897
    functionLinenumberEnd: 1982
    functionName: cf_progress_ingress
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 3
    functionsReached:
    - memcpy
    - cf_ngtcp2_recv_pkts
    - vquic_recv_packets
    - pktx_init
    - ngtcp2_conn_get_path_max_tx_udp_payload_size
    - Curl_vquic_tls_before_recv
    - Curl_conn_cf_recv
    - CURL_TRC_CF
    - curlx_realloc
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_progress_ingress(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    struct pkt_io_ctx *pktx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_get_max_data_left
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2016,1
    - Dst: nghttp3_conn_writev_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2017,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2018,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2020,1
    - Dst: nghttp3_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2021,1
    - Dst: cf_ngtcp2_h3_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2022,1
    - Dst: ngtcp2_conn_writev_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2029,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2041,1
    - Dst: nghttp3_conn_block_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2042,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2043,1
    - Dst: cf_ngtcp2_get_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2045,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2052,1
    - Dst: nghttp3_conn_shutdown_stream_write
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2053,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2059,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2063,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2064,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2065,1
    - Dst: cf_ngtcp2_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2066,1
    - Dst: nghttp3_conn_add_write_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2073,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2075,1
    - Dst: nghttp3_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2076,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 4
    argNames:
    - userp
    - buf
    - buflen
    - pnread
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 1988
    functionDepth: 4
    functionLinenumber: 1988
    functionLinenumberEnd: 2087
    functionName: read_pkt_to_send
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - nghttp3_conn_add_write_offset
    - nghttp3_strerror
    - failf
    - CURL_ARRAYSIZE
    - ngtcp2_conn_writev_stream
    - nghttp3_conn_writev_stream
    - DEBUGASSERT
    - cf_ngtcp2_get_stream
    - ngtcp2_strerror
    - cf_ngtcp2_h3_err_set
    - ngtcp2_conn_get_max_data_left
    - cf_ngtcp2_err_set
    - nghttp3_conn_shutdown_stream_write
    - CURL_TRC_CF
    - nghttp3_conn_block_stream
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode read_pkt_to_send(void *userp,\n                                 unsigned
      char *buf, size_t buflen,\n                                 size_t *pnread)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2103,1
    - Dst: pktx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2107,1
    - Dst: ngtcp2_path_storage_zero
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2108,1
    - Dst: vquic_flush
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2111,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2114,1
    - Dst: ngtcp2_conn_get_max_tx_udp_payload_size
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2131,1
    - Dst: ngtcp2_conn_get_path_max_tx_udp_payload_size
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2133,1
    - Dst: ngtcp2_conn_get_send_quantum
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2134,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2135,1
    - Dst: Curl_bufq_sipn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2139,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2146,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2150,1
    - Dst: vquic_send_tail_split
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2162,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2166,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2181,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2183,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2184,1
    - Dst: vquic_send
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2185,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2188,1
    - Dst: pktx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2193,1
    - Dst: ngtcp2_conn_update_pkt_tx_time
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2194,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 3
    argNames:
    - cf
    - data
    - pktx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct pkt_io_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2089
    functionDepth: 7
    functionLinenumber: 2089
    functionLinenumberEnd: 2197
    functionName: cf_progress_egress
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 4
    functionsReached:
    - Curl_bufq_len
    - ngtcp2_conn_get_send_quantum
    - DEBUGASSERT
    - vquic_send_tail_split
    - Curl_bufq_sipn
    - pktx_init
    - ngtcp2_conn_get_path_max_tx_udp_payload_size
    - Curl_expire
    - CURL_TRC_CF
    - vquic_send
    - Curl_bufq_is_empty
    - ngtcp2_conn_get_max_tx_udp_payload_size
    - vquic_flush
    - ngtcp2_conn_update_pkt_tx_time
    - pktx_update_time
    - ngtcp2_path_storage_zero
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_progress_egress(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   struct pkt_io_ctx *pktx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cf
    - data
    - pause
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2199
    functionDepth: 2
    functionLinenumber: 2199
    functionLinenumberEnd: 2209
    functionName: h3_data_pause
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_data_pause(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              bool pause)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2219,1
    - Dst: h3_data_pause
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2226,1
    - Dst: h3_data_done
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2229,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2232,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2235,1
    - Dst: nghttp3_conn_resume_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2237,1
    - Dst: Curl_conn_set_multiplex
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2244,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2211
    functionDepth: 2
    functionLinenumber: 2211
    functionLinenumberEnd: 2252
    functionName: cf_ngtcp2_cntrl
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_bufq_len
    - CF_DATA_RESTORE
    - Curl_conn_set_multiplex
    - h3_data_pause
    - H3_STREAM_CTX
    - nghttp3_conn_resume_stream
    - h3_data_done
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_cntrl(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                int event, int arg1, void
      *arg2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2261,1
    - Dst: Curl_vquic_tls_cleanup
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2264,1
    - Dst: Curl_ssl_peer_cleanup
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2265,1
    - Dst: vquic_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2266,1
    - Dst: nghttp3_conn_del
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2268,1
    - Dst: ngtcp2_conn_del
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2272,1
    - Dst: ngtcp2_crypto_ossl_ctx_del
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_ngtcp2_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2254
    functionDepth: 3
    functionLinenumber: 2254
    functionLinenumberEnd: 2282
    functionName: cf_ngtcp2_ctx_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - curlx_close
    - ngtcp2_crypto_ossl_ctx_del
    - Curl_ssl_peer_cleanup
    - nghttp3_conn_del
    - Curl_vquic_tls_cleanup
    - vquic_ctx_free
    - ngtcp2_conn_del
    linkageType: ''
    returnType: void
    signature: void cf_ngtcp2_ctx_close(struct cf_ngtcp2_ctx *ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2298,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2303,1
    - Dst: pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2305,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2311,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2312,1
    - Dst: cf_progress_egress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2313,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2314,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2315,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2320,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2326,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2326,1
    - Dst: ngtcp2_conn_write_connection_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2328,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2333,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2344,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2347,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2358,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2359,1
    - Dst: vquic_flush
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2360,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2362,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2367,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2373,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2376,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2381,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2284
    functionDepth: 8
    functionLinenumber: 2284
    functionLinenumberEnd: 2383
    functionName: cf_ngtcp2_shutdown
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_bufq_reset
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - ngtcp2_conn_write_connection_close
    - pktx_init
    - cf_progress_egress
    - Curl_bufq_write
    - Curl_bufq_is_empty
    - vquic_flush
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_shutdown(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data, bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ngtcp2_shutdown
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2385
    functionDepth: 9
    functionLinenumber: 2385
    functionLinenumberEnd: 2390
    functionName: cf_ngtcp2_conn_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 2
    functionsReached:
    - cf_ngtcp2_shutdown
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_conn_close(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2396,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2400,1
    - Dst: cf_ngtcp2_conn_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2401,1
    - Dst: cf_ngtcp2_ctx_close
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2402,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2403,1
    - Dst: cf_ngtcp2_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2392
    functionDepth: 10
    functionLinenumber: 2392
    functionLinenumberEnd: 2408
    functionName: cf_ngtcp2_destroy
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - cf_ngtcp2_conn_close
    - cf_ngtcp2_ctx_free
    - cf_ngtcp2_ctx_close
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: void cf_ngtcp2_destroy(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_app_data
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2421,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2424,1
    - Dst: ngtcp2_conn_encode_0rtt_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2432,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2435,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2436,1
    - Dst: Curl_ossl_add_session
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2442,1
    - Dst: SSL_version
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ssl
    - ssl_sessionid
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2414
    functionDepth: 11
    functionLinenumber: 2414
    functionLinenumberEnd: 2446
    functionName: quic_ossl_new_session_cb
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_ossl_add_session
    - ngtcp2_strerror
    - ngtcp2_conn_encode_0rtt_transport_params
    - SSL_get_app_data
    - SSL_version
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: int quic_ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - mtype
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2452
    functionDepth: 0
    functionLinenumber: 2452
    functionLinenumberEnd: 2477
    functionName: gtls_hs_msg_name
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *gtls_hs_msg_name(int mtype)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_session_get_ptr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2484,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2491,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2492,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2495,1
    - Dst: gtls_hs_msg_name
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2496,1
    - Dst: ngtcp2_conn_encode_0rtt_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2504,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2507,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2508,1
    - Dst: Curl_gtls_cache_session
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - session
    - htype
    - when
    - incoming
    - msg
    argTypes:
    - gnutls_session_t
    - unsigned int
    - unsigned
    - unsigned int
    - gnutls_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2480
    functionDepth: 2
    functionLinenumber: 2480
    functionLinenumberEnd: 2522
    functionName: quic_gtls_handshake_cb
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - ngtcp2_strerror
    - DEBUGASSERT
    - gnutls_session_get_ptr
    - ngtcp2_conn_encode_0rtt_transport_params
    - Curl_gtls_cache_session
    - gtls_hs_msg_name
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int quic_gtls_handshake_cb(gnutls_session_t session, unsigned int
      htype,\n                                  unsigned when, unsigned int incoming,\n
      \                                 const gnutls_datum_t *msg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_get_app_data
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2528,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2531,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2534,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2535,1
    - Dst: ngtcp2_conn_encode_0rtt_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2542,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2545,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2546,1
    - Dst: Curl_wssl_cache_session
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2551,1
    - Dst: wolfSSL_version
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2552,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ssl
    - session
    argTypes:
    - WOLFSSL*
    - WOLFSSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2526
    functionDepth: 2
    functionLinenumber: 2526
    functionLinenumberEnd: 2557
    functionName: wssl_quic_new_session_cb
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - wolfSSL_get_app_data
    - DEBUGASSERT
    - ngtcp2_conn_encode_0rtt_transport_params
    - ngtcp2_strerror
    - wolfSSL_version
    - Curl_wssl_cache_session
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: int wssl_quic_new_session_cb(WOLFSSL *ssl, WOLFSSL_SESSION *session)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_crypto_boringssl_configure_client_context
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2568,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2570,1
    - Dst: ngtcp2_crypto_quictls_configure_client_context
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2576,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2577,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2581,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2586,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2589,1
    - Dst: ngtcp2_crypto_gnutls_configure_client_session
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2593,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2594,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2597,1
    - Dst: gnutls_handshake_set_hook_function
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2598,1
    - Dst: ngtcp2_crypto_wolfssl_configure_client_context
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2604,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2605,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2608,1
    - Dst: wolfSSL_CTX_sess_set_new_cb
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2610,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - cf
    - data
    - user_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2560
    functionDepth: 3
    functionLinenumber: 2560
    functionLinenumberEnd: 2614
    functionName: cf_ngtcp2_tls_ctx_setup
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_scache_use
    - gnutls_handshake_set_hook_function
    - failf
    - SSL_CTX_sess_set_new_cb
    - wolfSSL_CTX_sess_set_new_cb
    - ngtcp2_crypto_wolfssl_configure_client_context
    - ngtcp2_crypto_quictls_configure_client_context
    - SSL_CTX_set_session_cache_mode
    - ngtcp2_crypto_boringssl_configure_client_context
    - ngtcp2_crypto_gnutls_configure_client_session
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_tls_ctx_setup(struct Curl_cfilter *cf,\n                                        struct
      Curl_easy *data,\n                                        void *user_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_record_get_max_early_data_size
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2631,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2643,1
    - Dst: Curl_alpn_contains_proto
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2645,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2646,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2649,1
    - Dst: ngtcp2_conn_decode_and_set_0rtt_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2653,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2656,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2657,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2659,1
    - Dst: init_ngh3_conn
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2661,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 5
    argNames:
    - cf
    - data
    - alpns
    - scs
    - do_early_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct alpn_spec*
    - struct Curl_ssl_session*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2616
    functionDepth: 2
    functionLinenumber: 2616
    functionLinenumberEnd: 2676
    functionName: cf_ngtcp2_on_session_reuse
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - ngtcp2_strerror
    - gnutls_record_get_max_early_data_size
    - init_ngh3_conn
    - infof
    - Curl_alpn_contains_proto
    - CURL_TRC_CF
    - ngtcp2_conn_decode_and_set_0rtt_transport_params
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_on_session_reuse(struct Curl_cfilter *cf,\n                                           struct
      Curl_easy *data,\n                                           struct alpn_spec
      *alpns,\n                                           struct Curl_ssl_session
      *scs,\n                                           bool *do_early_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ossl_need_httpsrr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2681,1
    - Dst: Curl_wssl_need_httpsrr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2678
    functionDepth: 2
    functionLinenumber: 2678
    functionLinenumberEnd: 2688
    functionName: cf_ngtcp2_need_httpsrr
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_ossl_need_httpsrr
    - Curl_wssl_need_httpsrr
    linkageType: ''
    returnType: bool
    signature: bool cf_ngtcp2_need_httpsrr(struct Curl_easy *data)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2705,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2707,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2712,1
    - Dst: Curl_qlogdir
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2716,1
    - Dst: quic_settings
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2718,1
    - Dst: vquic_ctx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2720,1
    - Dst: Curl_cf_socket_peek
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2725,1
    - Dst: getsockname
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2733,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2738,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2741,1
    - Dst: ngtcp2_conn_client_new
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2744,1
    - Dst: Curl_ngtcp2_mem
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2748,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2759,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2760,1
    - Dst: memset
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2765,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2781,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2784,1
    - Dst: ngtcp2_conn_client_new
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2788,1
    - Dst: Curl_ngtcp2_mem
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2792,1
    - Dst: Curl_vquic_tls_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2800,1
    - Dst: ngtcp2_crypto_ossl_ctx_new
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2808,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2809,1
    - Dst: ngtcp2_conn_set_tls_native_handle
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2812,1
    - Dst: ngtcp2_crypto_ossl_configure_client_session
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2813,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2814,1
    - Dst: SSL_set_quic_use_legacy_codepoint
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2818,1
    - Dst: ngtcp2_conn_set_tls_native_handle
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2819,1
    - Dst: ngtcp2_conn_set_tls_native_handle
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2821,1
    - Dst: ngtcp2_conn_set_tls_native_handle
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2823,1
    - Dst: ngtcp2_ccerr_default
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2828,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    argCount: 3
    argNames:
    - cf
    - data
    - pktx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct pkt_io_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2693
    functionDepth: 2
    functionLinenumber: 2693
    functionLinenumberEnd: 2831
    functionName: cf_connect_start
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - getsockname
    - CURL_UNCONST
    - ngtcp2_conn_client_new
    - Curl_ngtcp2_mem
    - Curl_qlogdir
    - Curl_rand
    - SSL_set_quic_use_legacy_codepoint
    - failf
    - Curl_vquic_tls_init
    - ngtcp2_addr_init
    - quic_settings
    - memset
    - ngtcp2_crypto_ossl_ctx_new
    - ngtcp2_ccerr_default
    - ngtcp2_crypto_ossl_configure_client_session
    - Curl_cf_socket_peek
    - ngtcp2_conn_set_tls_native_handle
    - struct Curl_cfilter*::next::cft::query
    - vquic_ctx_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_connect_start(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct pkt_io_ctx *pktx)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2849,1
    - Dst: cf_ngtcp2_need_httpsrr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2856,1
    - Dst: Curl_conn_dns_resolved_https
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2857,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2858,1
    - Dst: pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2862,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2863,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2866,1
    - Dst: cf_connect_start
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2867,1
    - Dst: cf_progress_egress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2874,1
    - Dst: cf_progress_ingress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2879,1
    - Dst: cf_progress_egress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2883,1
    - Dst: ngtcp2_conn_get_handshake_completed
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2887,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2890,1
    - Dst: ngtcp2_conn_in_draining_period
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2901,1
    - Dst: ngtcp2_conn_get_ccerr
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2902,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2906,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2910,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2914,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2918,1
    - Dst: Curl_cf_socket_peek
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2934,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2935,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2936,1
    - Dst: check_and_set_expiry
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2941,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2944,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2945,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 84
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2833
    functionDepth: 8
    functionLinenumber: 2833
    functionLinenumberEnd: 2947
    functionName: cf_ngtcp2_connect
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_pgrs_now
    - CF_DATA_RESTORE
    - ngtcp2_conn_get_handshake_completed
    - Curl_cf_socket_peek
    - Curl_conn_dns_resolved_https
    - ngtcp2_conn_get_ccerr
    - cf_progress_ingress
    - curl_easy_strerror
    - Curl_conn_cf_connect
    - pktx_init
    - infof
    - cf_progress_egress
    - check_and_set_expiry
    - ngtcp2_conn_in_draining_period
    - cf_connect_start
    - cf_ngtcp2_need_httpsrr
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_connect(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  bool *done)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2958,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2959,1
    - Dst: Curl_multi_max_concurrent_streams
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2976,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2977,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2980,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:2985,1
    - Dst: Curl_vquic_tls_get_ssl_info
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3010,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3017,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3025,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 2949
    functionDepth: 2
    functionLinenumber: 2949
    functionLinenumberEnd: 3027
    functionName: cf_ngtcp2_query
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - Curl_vquic_tls_get_ssl_info
    - DEBUGASSERT
    - Curl_multi_max_concurrent_streams
    - struct Curl_cfilter*::next::cft::query
    - curlx_ptimediff_ms
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_query(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                int query, int *pres1, void
      *pres2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3038,1
    - Dst: ngtcp2_conn_get_remote_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3045,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3048,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3048,1
    - Dst: struct Curl_cfilter*::next::cft::is_alive
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3057,1
    - Dst: cf_progress_ingress
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3067,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3068,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3073,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3029
    functionDepth: 5
    functionLinenumber: 3029
    functionLinenumberEnd: 3075
    functionName: cf_ngtcp2_conn_is_alive
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_pgrs_now
    - CF_DATA_RESTORE
    - ngtcp2_conn_get_remote_transport_params
    - struct Curl_cfilter*::next::cft::is_alive
    - cf_progress_ingress
    - curlx_ptimediff_ms
    - CURL_TRC_CF
    linkageType: ''
    returnType: bool
    signature: "bool cf_ngtcp2_conn_is_alive(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    bool *input_pending)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3103,1
    - Dst: cf_ngtcp2_ctx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3108,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3110,1
    - Dst: Curl_cf_udp_create
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3115,1
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3126,1
    - Dst: cf_ngtcp2_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - pcf
    - data
    - conn
    - addr
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_ex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3094
    functionDepth: 6
    functionLinenumber: 3094
    functionLinenumberEnd: 3131
    functionName: Curl_cf_ngtcp2_create
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - Curl_conn_cf_discard_chain
    - cf_ngtcp2_ctx_free
    - cf_ngtcp2_ctx_init
    - curlx_calloc
    - Curl_cf_udp_create
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_ngtcp2_create(struct Curl_cfilter **pcf,\n                               struct
      Curl_easy *data,\n                               struct connectdata *conn,\n
      \                              struct Curl_sockaddr_ex *addr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3139,1
    - Dst: cf_ngtcp2_ctx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3144,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3146,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3149,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3153,1
    - Dst: cf_ngtcp2_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2.c:3154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - cf_at
    argTypes:
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3133
    functionDepth: 6
    functionLinenumber: 3133
    functionLinenumberEnd: 3157
    functionName: Curl_cf_ngtcp2_insert_after
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_cf_create
    - cf_ngtcp2_ctx_free
    - Curl_conn_cf_insert_after
    - cf_ngtcp2_ctx_init
    - curlx_calloc
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_cf_ngtcp2_insert_after(struct Curl_cfilter *cf_at)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vquic/cf-quiche.c:73,1
    - Dst: quiche_version
      Src: /src/curl/lib/vquic/cf-quiche.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 7
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Curl_quiche_ver
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - quiche_version
    - curl_msnprintf
    linkageType: ''
    returnType: void
    signature: void Curl_quiche_ver(char *p, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vquic/cf-quiche.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - line
    - argp
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: quiche_debug_log
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void quiche_debug_log(const char *line, void *argp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:111,1
    - Dst: quiche_enable_debug_logging
      Src: /src/curl/lib/vquic/cf-quiche.c:114,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vquic/cf-quiche.c:118,1
    - Dst: Curl_uint32_hash_init
      Src: /src/curl/lib/vquic/cf-quiche.c:119,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/vquic/cf-quiche.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_quiche_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: cf_quiche_ctx_init
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - DEBUGASSERT
    - quiche_enable_debug_logging
    - Curl_uint32_hash_init
    - Curl_bufq_init2
    linkageType: ''
    returnType: void
    signature: void cf_quiche_ctx_init(struct cf_quiche_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_vquic_tls_cleanup
      Src: /src/curl/lib/vquic/cf-quiche.c:131,1
    - Dst: Curl_ssl_peer_cleanup
      Src: /src/curl/lib/vquic/cf-quiche.c:132,1
    - Dst: vquic_ctx_free
      Src: /src/curl/lib/vquic/cf-quiche.c:133,1
    - Dst: Curl_uint32_hash_destroy
      Src: /src/curl/lib/vquic/cf-quiche.c:134,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vquic/cf-quiche.c:135,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/vquic/cf-quiche.c:136,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-quiche.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_quiche_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: cf_quiche_ctx_free
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_peer_cleanup
    - curlx_dyn_free
    - Curl_vquic_tls_cleanup
    - curlx_free
    - Curl_bufq_free
    - vquic_ctx_free
    - Curl_uint32_hash_destroy
    linkageType: ''
    returnType: void
    signature: void cf_quiche_ctx_free(struct cf_quiche_ctx *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quiche_h3_conn_free
      Src: /src/curl/lib/vquic/cf-quiche.c:144,1
    - Dst: quiche_h3_config_free
      Src: /src/curl/lib/vquic/cf-quiche.c:148,1
    - Dst: quiche_conn_free
      Src: /src/curl/lib/vquic/cf-quiche.c:152,1
    - Dst: quiche_config_free
      Src: /src/curl/lib/vquic/cf-quiche.c:156,1
    - Dst: Curl_ssl_peer_cleanup
      Src: /src/curl/lib/vquic/cf-quiche.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_quiche_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 160
    functionName: cf_quiche_ctx_close
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_peer_cleanup
    - quiche_config_free
    - quiche_conn_free
    - quiche_h3_conn_free
    - quiche_h3_config_free
    linkageType: ''
    returnType: void
    signature: void cf_quiche_ctx_close(struct cf_quiche_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_h1_req_parse_free
      Src: /src/curl/lib/vquic/cf-quiche.c:185,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-quiche.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct h3_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: h3_stream_ctx_free
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 2
    functionsReached:
    - Curl_h1_req_parse_free
    - curlx_free
    linkageType: ''
    returnType: void
    signature: void h3_stream_ctx_free(struct h3_stream_ctx *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:192,1
    - Dst: h3_stream_ctx_free
      Src: /src/curl/lib/vquic/cf-quiche.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - stream
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: h3_stream_hash_free
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - h3_stream_ctx_free
    linkageType: ''
    returnType: void
    signature: void h3_stream_hash_free(unsigned int id, void *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/vquic/cf-quiche.c:212,1
    - Dst: struct cf_quiche_visit_ctx*::cb
      Src: /src/curl/lib/vquic/cf-quiche.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mid
    - val
    - user_data
    argTypes:
    - uint32_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: cf_quiche_stream_do
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - struct cf_quiche_visit_ctx*::cb
    - Curl_multi_get_easy
    linkageType: ''
    returnType: bool
    signature: bool cf_quiche_stream_do(uint32_t mid, void *val, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_hash_visit
      Src: /src/curl/lib/vquic/cf-quiche.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - cf
    - multi
    - do_cb
    - user_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_multi*
    - cf_quiche_svisit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: cf_quiche_for_all_streams
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_hash_visit
    linkageType: ''
    returnType: void
    signature: "void cf_quiche_for_all_streams(struct Curl_cfilter *cf,\n                                      struct
      Curl_multi *multi,\n                                      cf_quiche_svisit *do_cb,\n
      \                                     void *user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-quiche.c:240,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - cf
    - sdata
    - stream
    - user_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 244
    functionName: cf_quiche_do_resume
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: bool
    signature: "bool cf_quiche_do_resume(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *sdata,\n                                struct h3_stream_ctx *stream,\n
      \                               void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:253,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-quiche.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - cf
    - sdata
    - stream
    - user_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 257
    functionName: cf_quiche_do_expire
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: bool
    signature: "bool cf_quiche_do_expire(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *sdata,\n                                struct h3_stream_ctx *stream,\n
      \                               void *user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:263,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-quiche.c:268,1
    - Dst: Curl_h1_req_parse_init
      Src: /src/curl/lib/vquic/cf-quiche.c:273,1
    - Dst: Curl_uint32_hash_set
      Src: /src/curl/lib/vquic/cf-quiche.c:275,1
    - Dst: h3_stream_ctx_free
      Src: /src/curl/lib/vquic/cf-quiche.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 281
    functionName: h3_data_setup
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 1
    functionsReached:
    - Curl_h1_req_parse_init
    - H3_STREAM_CTX
    - curlx_calloc
    - Curl_uint32_hash_set
    - h3_stream_ctx_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_data_setup(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quiche_conn_stream_shutdown
      Src: /src/curl/lib/vquic/cf-quiche.c:291,1
    - Dst: quiche_conn_stream_shutdown
      Src: /src/curl/lib/vquic/cf-quiche.c:294,1
    - Dst: cf_flush_egress
      Src: /src/curl/lib/vquic/cf-quiche.c:299,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - cf
    - data
    - stream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 304
    functionName: cf_quiche_stream_close
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - quiche_conn_stream_shutdown
    - cf_flush_egress
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_quiche_stream_close(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   struct h3_stream_ctx *stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:309,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:313,1
    - Dst: cf_quiche_stream_close
      Src: /src/curl/lib/vquic/cf-quiche.c:314,1
    - Dst: Curl_uint32_hash_remove
      Src: /src/curl/lib/vquic/cf-quiche.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 317
    functionName: h3_data_done
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 1
    functionsReached:
    - cf_quiche_stream_close
    - H3_STREAM_CTX
    - Curl_uint32_hash_remove
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: void h3_data_done(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:322,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:323,1
    - Dst: cf_quiche_for_all_streams
      Src: /src/curl/lib/vquic/cf-quiche.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 325
    functionName: cf_quiche_expire_conn_closed
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - CURL_TRC_CF
    - DEBUGASSERT
    - cf_quiche_for_all_streams
    linkageType: ''
    returnType: void
    signature: "void cf_quiche_expire_conn_closed(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_xfer_write_resp_hd
      Src: /src/curl/lib/vquic/cf-quiche.c:339,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - cf
    - data
    - stream
    - buf
    - blen
    - eos
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 344
    functionName: cf_quiche_write_hd
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_xfer_write_resp_hd
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_quiche_write_hd(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               struct h3_stream_ctx *stream,\n
      \                              const char *buf, size_t blen, bool eos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - hdr
    - hlen
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: is_valid_h3_header
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid_h3_header(const uint8_t *hdr, size_t hlen)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/curl/lib/vquic/cf-quiche.c:379,1
    - Dst: is_valid_h3_header
      Src: /src/curl/lib/vquic/cf-quiche.c:380,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vquic/cf-quiche.c:381,1
    - Dst: Curl_http_decode_status
      Src: /src/curl/lib/vquic/cf-quiche.c:382,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-quiche.c:385,1
    - Dst: STRCONST
      Src: /src/curl/lib/vquic/cf-quiche.c:385,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-quiche.c:387,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-quiche.c:389,1
    - Dst: STRCONST
      Src: /src/curl/lib/vquic/cf-quiche.c:389,1
    - Dst: cf_quiche_write_hd
      Src: /src/curl/lib/vquic/cf-quiche.c:391,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vquic/cf-quiche.c:391,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vquic/cf-quiche.c:392,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:393,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vquic/cf-quiche.c:394,1
    - Dst: is_valid_h3_header
      Src: /src/curl/lib/vquic/cf-quiche.c:397,1
    - Dst: is_valid_h3_header
      Src: /src/curl/lib/vquic/cf-quiche.c:398,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:400,1
    - Dst: curlx_dyn_reset
      Src: /src/curl/lib/vquic/cf-quiche.c:403,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-quiche.c:404,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-quiche.c:406,1
    - Dst: STRCONST
      Src: /src/curl/lib/vquic/cf-quiche.c:406,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-quiche.c:408,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/cf-quiche.c:410,1
    - Dst: STRCONST
      Src: /src/curl/lib/vquic/cf-quiche.c:410,1
    - Dst: cf_quiche_write_hd
      Src: /src/curl/lib/vquic/cf-quiche.c:412,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vquic/cf-quiche.c:412,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vquic/cf-quiche.c:413,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:416,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:421,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 5
    argNames:
    - name
    - name_len
    - value
    - value_len
    - argp
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 427
    functionName: cb_each_header
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - STRCONST
    - curlx_dyn_addn
    - curlx_dyn_len
    - curlx_dyn_reset
    - curlx_dyn_ptr
    - is_valid_h3_header
    - strncmp
    - cf_quiche_write_hd
    - Curl_http_decode_status
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_each_header(uint8_t *name, size_t name_len,\n                          uint8_t
      *value, size_t value_len,\n                          void *argp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:435,1
    - Dst: quiche_h3_recv_body
      Src: /src/curl/lib/vquic/cf-quiche.c:442,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/vquic/cf-quiche.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - reader_ctx
    - buf
    - len
    - pnread
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 446
    functionName: stream_resp_read
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - curlx_sztouz
    - H3_STREAM_CTX
    - quiche_h3_recv_body
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode stream_resp_read(void *reader_ctx,\n                                 unsigned
      char *buf, size_t len,\n                                 size_t *pnread)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/vquic/cf-quiche.c:457,1
    - Dst: Curl_xfer_write_resp
      Src: /src/curl/lib/vquic/cf-quiche.c:458,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/cf-quiche.c:460,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:462,1
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/vquic/cf-quiche.c:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - cf
    - data
    - stream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 448
    functionDepth: 4
    functionLinenumber: 448
    functionLinenumberEnd: 470
    functionName: cf_quiche_flush_body
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_reset
    - Curl_xfer_write_resp
    - Curl_bufq_skip
    - Curl_bufq_peek
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_quiche_flush_body(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct h3_stream_ctx *stream)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/vquic/cf-quiche.c:490,1
    - Dst: Curl_bufq_slurp
      Src: /src/curl/lib/vquic/cf-quiche.c:492,1
    - Dst: cf_quiche_flush_body
      Src: /src/curl/lib/vquic/cf-quiche.c:495,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:499,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:501,1
    - Dst: cf_quiche_flush_body
      Src: /src/curl/lib/vquic/cf-quiche.c:510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - cf
    - data
    - stream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 472
    functionDepth: 7
    functionLinenumber: 472
    functionLinenumberEnd: 511
    functionName: cf_quiche_recv_body
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_reset
    - cf_quiche_flush_body
    - Curl_bufq_slurp
    - failf
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_quiche_recv_body(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                struct h3_stream_ctx *stream)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: quiche_h3_event_type
      Src: /src/curl/lib/vquic/cf-quiche.c:521,1
    - Dst: quiche_h3_event_for_each_header
      Src: /src/curl/lib/vquic/cf-quiche.c:528,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:529,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-quiche.c:530,1
    - Dst: cf_quiche_write_hd
      Src: /src/curl/lib/vquic/cf-quiche.c:536,1
    - Dst: cf_quiche_recv_body
      Src: /src/curl/lib/vquic/cf-quiche.c:538,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:539,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-quiche.c:540,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:544,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-quiche.c:548,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:552,1
    - Dst: cf_quiche_write_hd
      Src: /src/curl/lib/vquic/cf-quiche.c:555,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-quiche.c:558,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:562,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:566,1
    - Dst: quiche_h3_event_type
      Src: /src/curl/lib/vquic/cf-quiche.c:567,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - cf
    - data
    - stream
    - ev
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    - quiche_h3_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 513
    functionDepth: 8
    functionLinenumber: 513
    functionLinenumberEnd: 570
    functionName: cf_quiche_process_ev
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_multi_mark_dirty
    - quiche_h3_event_type
    - quiche_h3_event_for_each_header
    - cf_quiche_recv_body
    - cf_quiche_write_hd
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_quiche_process_ev(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct h3_stream_ctx *stream,\n
      \                                quiche_h3_event *ev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_get_easy
      Src: /src/curl/lib/vquic/cf-quiche.c:585,1
    - Dst: cf_quiche_process_ev
      Src: /src/curl/lib/vquic/cf-quiche.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - mid
    - val
    - user_data
    argTypes:
    - uint32_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 579
    functionDepth: 9
    functionLinenumber: 579
    functionLinenumberEnd: 591
    functionName: cf_quiche_disp_event
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - cf_quiche_process_ev
    - Curl_multi_get_easy
    linkageType: ''
    returnType: bool
    signature: bool cf_quiche_disp_event(uint32_t mid, void *val, void *user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quiche_h3_conn_poll
      Src: /src/curl/lib/vquic/cf-quiche.c:602,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:607,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:611,1
    - Dst: cf_quiche_process_ev
      Src: /src/curl/lib/vquic/cf-quiche.c:614,1
    - Dst: quiche_h3_event_free
      Src: /src/curl/lib/vquic/cf-quiche.c:615,1
    - Dst: Curl_uint32_hash_visit
      Src: /src/curl/lib/vquic/cf-quiche.c:627,1
    - Dst: quiche_h3_event_free
      Src: /src/curl/lib/vquic/cf-quiche.c:628,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 593
    functionDepth: 9
    functionLinenumber: 593
    functionLinenumberEnd: 633
    functionName: cf_poll_events
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_hash_visit
    - quiche_h3_conn_poll
    - H3_STREAM_CTX
    - cf_quiche_process_ev
    - quiche_h3_event_free
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_poll_events(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: quiche_conn_recv
      Src: /src/curl/lib/vquic/cf-quiche.c:662,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vquic/cf-quiche.c:663,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/vquic/cf-quiche.c:665,1
    - Dst: quiche_conn_is_draining
      Src: /src/curl/lib/vquic/cf-quiche.c:667,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:668,1
    - Dst: quiche_conn_is_closed
      Src: /src/curl/lib/vquic/cf-quiche.c:671,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:672,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:675,1
    - Dst: SSL_get_verify_result
      Src: /src/curl/lib/vquic/cf-quiche.c:679,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:681,1
    - Dst: X509_verify_cert_error_string
      Src: /src/curl/lib/vquic/cf-quiche.c:682,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:685,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:689,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:694,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 7
    argNames:
    - buf
    - buflen
    - gso_size
    - remote_addr
    - remote_addrlen
    - ecn
    - userp
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    - struct sockaddr_storage*
    - socklen_t
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 701
    functionName: cf_quiche_recv_pkts
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - failf
    - quiche_conn_is_closed
    - CURL_UNCONST
    - quiche_conn_is_draining
    - quiche_conn_recv
    - SSL_get_verify_result
    - curlx_sztouz
    - X509_verify_cert_error_string
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_recv_pkts(const unsigned char *buf, size_t buflen,\n
      \                                   size_t gso_size,\n                                    struct
      sockaddr_storage *remote_addr,\n                                    socklen_t
      remote_addrlen, int ecn,\n                                    void *userp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:710,1
    - Dst: Curl_vquic_tls_before_recv
      Src: /src/curl/lib/vquic/cf-quiche.c:711,1
    - Dst: vquic_recv_packets
      Src: /src/curl/lib/vquic/cf-quiche.c:719,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:727,1
    - Dst: cf_quiche_for_all_streams
      Src: /src/curl/lib/vquic/cf-quiche.c:728,1
    - Dst: cf_poll_events
      Src: /src/curl/lib/vquic/cf-quiche.c:730,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 703
    functionDepth: 10
    functionLinenumber: 703
    functionLinenumberEnd: 731
    functionName: cf_process_ingress
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - cf_quiche_for_all_streams
    - DEBUGASSERT
    - vquic_recv_packets
    - cf_poll_events
    - Curl_vquic_tls_before_recv
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_process_ingress(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quiche_conn_send
      Src: /src/curl/lib/vquic/cf-quiche.c:748,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/vquic/cf-quiche.c:752,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - userp
    - buf
    - buflen
    - pnread
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 757
    functionName: read_pkt_to_send
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - quiche_conn_send
    - curlx_sztouz
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode read_pkt_to_send(void *userp,\n                                 unsigned
      char *buf, size_t buflen,\n                                 size_t *pnread)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: quiche_conn_timeout_as_nanos
      Src: /src/curl/lib/vquic/cf-quiche.c:774,1
    - Dst: quiche_conn_on_timeout
      Src: /src/curl/lib/vquic/cf-quiche.c:776,1
    - Dst: quiche_conn_is_closed
      Src: /src/curl/lib/vquic/cf-quiche.c:777,1
    - Dst: quiche_conn_is_timed_out
      Src: /src/curl/lib/vquic/cf-quiche.c:778,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:779,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:781,1
    - Dst: cf_quiche_expire_conn_closed
      Src: /src/curl/lib/vquic/cf-quiche.c:784,1
    - Dst: vquic_flush
      Src: /src/curl/lib/vquic/cf-quiche.c:789,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-quiche.c:792,1
    - Dst: memset
      Src: /src/curl/lib/vquic/cf-quiche.c:800,1
    - Dst: quiche_conn_max_send_udp_payload_size
      Src: /src/curl/lib/vquic/cf-quiche.c:802,1
    - Dst: Curl_bufq_sipn
      Src: /src/curl/lib/vquic/cf-quiche.c:805,1
    - Dst: vquic_send
      Src: /src/curl/lib/vquic/cf-quiche.c:811,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-quiche.c:814,1
    - Dst: vquic_send
      Src: /src/curl/lib/vquic/cf-quiche.c:824,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-quiche.c:827,1
    - Dst: quiche_conn_timeout_as_nanos
      Src: /src/curl/lib/vquic/cf-quiche.c:837,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-quiche.c:841,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 763
    functionDepth: 7
    functionLinenumber: 763
    functionLinenumberEnd: 843
    functionName: cf_flush_egress
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 1
    functionsReached:
    - cf_quiche_expire_conn_closed
    - failf
    - quiche_conn_is_closed
    - quiche_conn_timeout_as_nanos
    - Curl_bufq_sipn
    - quiche_conn_is_timed_out
    - quiche_conn_on_timeout
    - Curl_expire
    - vquic_send
    - memset
    - quiche_conn_max_send_udp_payload_size
    - vquic_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_flush_egress(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:850,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:853,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-quiche.c:857,1
    - Dst: connclose
      Src: /src/curl/lib/vquic/cf-quiche.c:859,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:864,1
    - Dst: vquic_h3_err_str
      Src: /src/curl/lib/vquic/cf-quiche.c:867,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:870,1
    - Dst: vquic_h3_err_str
      Src: /src/curl/lib/vquic/cf-quiche.c:872,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:874,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:878,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - cf
    - data
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 884
    functionName: recv_closed_stream
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 1
    functionsReached:
    - vquic_h3_err_str
    - DEBUGASSERT
    - failf
    - infof
    - H3_STREAM_CTX
    - connclose
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode recv_closed_stream(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   size_t *pnread)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:890,1
    - Dst: vquic_ctx_update_time
      Src: /src/curl/lib/vquic/cf-quiche.c:896,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-quiche.c:896,1
    - Dst: cf_process_ingress
      Src: /src/curl/lib/vquic/cf-quiche.c:901,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:903,1
    - Dst: cf_quiche_stream_close
      Src: /src/curl/lib/vquic/cf-quiche.c:908,1
    - Dst: recv_closed_stream
      Src: /src/curl/lib/vquic/cf-quiche.c:913,1
    - Dst: quiche_conn_is_draining
      Src: /src/curl/lib/vquic/cf-quiche.c:914,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:915,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/vquic/cf-quiche.c:922,1
    - Dst: cf_flush_egress
      Src: /src/curl/lib/vquic/cf-quiche.c:922,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:925,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - blen
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 886
    functionDepth: 11
    functionLinenumber: 886
    functionLinenumberEnd: 928
    functionName: cf_quiche_recv
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - Curl_1st_fatal
    - failf
    - cf_quiche_stream_close
    - vquic_ctx_update_time
    - cf_flush_egress
    - quiche_conn_is_draining
    - H3_STREAM_CTX
    - recv_closed_stream
    - CURL_TRC_CF
    - cf_process_ingress
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_recv(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                               char *buf, size_t blen, size_t *pnread)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quiche_h3_send_body
      Src: /src/curl/lib/vquic/cf-quiche.c:940,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vquic/cf-quiche.c:941,1
    - Dst: quiche_conn_stream_writable
      Src: /src/curl/lib/vquic/cf-quiche.c:945,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:946,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:953,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:958,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/vquic/cf-quiche.c:962,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:963,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:970,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 7
    argNames:
    - cf
    - data
    - stream
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_stream_ctx*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 974
    functionName: cf_quiche_send_body
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - CURL_UNCONST
    - quiche_conn_stream_writable
    - curlx_sztouz
    - quiche_h3_send_body
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_send_body(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    struct h3_stream_ctx *stream,\n
      \                                   const uint8_t *buf, size_t len, bool eos,\n
      \                                   size_t *pnwritten)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:982,1
    - Dst: h3_data_setup
      Src: /src/curl/lib/vquic/cf-quiche.c:991,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:994,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:995,1
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/vquic/cf-quiche.c:998,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:1000,1
    - Dst: Curl_h1_req_parse_read
      Src: /src/curl/lib/vquic/cf-quiche.c:1002,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:1012,1
    - Dst: Curl_http_req_to_h2
      Src: /src/curl/lib/vquic/cf-quiche.c:1014,1
    - Dst: Curl_h1_req_parse_free
      Src: /src/curl/lib/vquic/cf-quiche.c:1019,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/lib/vquic/cf-quiche.c:1021,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vquic/cf-quiche.c:1022,1
    - Dst: Curl_dynhds_getn
      Src: /src/curl/lib/vquic/cf-quiche.c:1029,1
    - Dst: quiche_h3_send_request
      Src: /src/curl/lib/vquic/cf-quiche.c:1042,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1044,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1049,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1055,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vquic/cf-quiche.c:1056,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:1062,1
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vquic/cf-quiche.c:1068,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-quiche.c:1069,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vquic/cf-quiche.c:1070,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-quiche.c:1072,1
    - Dst: cf_quiche_send_body
      Src: /src/curl/lib/vquic/cf-quiche.c:1082,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-quiche.c:1092,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/vquic/cf-quiche.c:1093,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - blen
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 976
    functionDepth: 5
    functionLinenumber: 976
    functionLinenumberEnd: 1095
    functionName: h3_open_stream
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_http_req_to_h2
    - DEBUGASSERT
    - Curl_h1_req_parse_free
    - h3_data_setup
    - Curl_h1_req_parse_read
    - Curl_dynhds_getn
    - Curl_dynhds_count
    - Curl_trc_is_verbose
    - curlx_malloc
    - infof
    - H3_STREAM_CTX
    - quiche_h3_send_request
    - Curl_bufref_ptr
    - cf_quiche_send_body
    - curlx_free
    - Curl_dynhds_free
    - Curl_dynhds_init
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_open_stream(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data,\n                               const uint8_t *buf, size_t
      blen, bool eos,\n                               size_t *pnwritten)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:1102,1
    - Dst: vquic_ctx_update_time
      Src: /src/curl/lib/vquic/cf-quiche.c:1106,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-quiche.c:1106,1
    - Dst: cf_process_ingress
      Src: /src/curl/lib/vquic/cf-quiche.c:1108,1
    - Dst: h3_open_stream
      Src: /src/curl/lib/vquic/cf-quiche.c:1113,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:1116,1
    - Dst: cf_quiche_stream_close
      Src: /src/curl/lib/vquic/cf-quiche.c:1119,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1132,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1138,1
    - Dst: cf_quiche_send_body
      Src: /src/curl/lib/vquic/cf-quiche.c:1144,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/vquic/cf-quiche.c:1148,1
    - Dst: cf_flush_egress
      Src: /src/curl/lib/vquic/cf-quiche.c:1148,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1150,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1097
    functionDepth: 11
    functionLinenumber: 1097
    functionLinenumberEnd: 1154
    functionName: cf_quiche_send
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - h3_open_stream
    - Curl_1st_fatal
    - cf_quiche_stream_close
    - vquic_ctx_update_time
    - cf_flush_egress
    - H3_STREAM_CTX
    - cf_quiche_send_body
    - CURL_TRC_CF
    - cf_process_ingress
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_send(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                               const uint8_t *buf, size_t len, bool
      eos,\n                               size_t *pnwritten)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:1160,1
    - Dst: quiche_conn_stream_writable
      Src: /src/curl/lib/vquic/cf-quiche.c:1162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1164
    functionName: stream_is_writable
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - H3_STREAM_CTX
    - quiche_conn_stream_writable
    linkageType: ''
    returnType: bool
    signature: "bool stream_is_writable(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_check
      Src: /src/curl/lib/vquic/cf-quiche.c:1177,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:1179,1
    - Dst: stream_is_writable
      Src: /src/curl/lib/vquic/cf-quiche.c:1185,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-quiche.c:1188,1
    - Dst: Curl_pollset_set
      Src: /src/curl/lib/vquic/cf-quiche.c:1190,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1166
    functionDepth: 3
    functionLinenumber: 1166
    functionLinenumberEnd: 1193
    functionName: cf_quiche_adjust_pollset
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_pollset_check
    - H3_STREAM_CTX
    - Curl_pollset_set
    - Curl_bufq_is_empty
    - stream_is_writable
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_adjust_pollset(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data,\n                                         struct easy_pollset
      *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-quiche.c:1203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cf
    - data
    - pause
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1206
    functionName: h3_data_pause
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 1
    functionsReached:
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_data_pause(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              bool pause)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h3_data_pause
      Src: /src/curl/lib/vquic/cf-quiche.c:1221,1
    - Dst: h3_data_done
      Src: /src/curl/lib/vquic/cf-quiche.c:1224,1
    - Dst: H3_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-quiche.c:1227,1
    - Dst: cf_quiche_send
      Src: /src/curl/lib/vquic/cf-quiche.c:1234,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1235,1
    - Dst: Curl_conn_set_multiplex
      Src: /src/curl/lib/vquic/cf-quiche.c:1243,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1208
    functionDepth: 12
    functionLinenumber: 1208
    functionLinenumberEnd: 1250
    functionName: cf_quiche_cntrl
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - cf_quiche_send
    - Curl_conn_set_multiplex
    - h3_data_pause
    - H3_STREAM_CTX
    - h3_data_done
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_cntrl(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                int event, int arg1, void
      *arg2)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:1261,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:1262,1
    - Dst: vquic_ctx_init
      Src: /src/curl/lib/vquic/cf-quiche.c:1264,1
    - Dst: quiche_config_new
      Src: /src/curl/lib/vquic/cf-quiche.c:1268,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:1270,1
    - Dst: quiche_config_enable_pacing
      Src: /src/curl/lib/vquic/cf-quiche.c:1273,1
    - Dst: quiche_config_set_initial_max_data
      Src: /src/curl/lib/vquic/cf-quiche.c:1274,1
    - Dst: quiche_config_set_initial_max_streams_bidi
      Src: /src/curl/lib/vquic/cf-quiche.c:1276,1
    - Dst: quiche_config_set_initial_max_streams_uni
      Src: /src/curl/lib/vquic/cf-quiche.c:1277,1
    - Dst: quiche_config_set_initial_max_stream_data_bidi_local
      Src: /src/curl/lib/vquic/cf-quiche.c:1278,1
    - Dst: quiche_config_set_initial_max_stream_data_bidi_remote
      Src: /src/curl/lib/vquic/cf-quiche.c:1280,1
    - Dst: quiche_config_set_initial_max_stream_data_uni
      Src: /src/curl/lib/vquic/cf-quiche.c:1282,1
    - Dst: quiche_config_set_disable_active_migration
      Src: /src/curl/lib/vquic/cf-quiche.c:1284,1
    - Dst: quiche_config_set_max_connection_window
      Src: /src/curl/lib/vquic/cf-quiche.c:1286,1
    - Dst: quiche_config_set_max_stream_window
      Src: /src/curl/lib/vquic/cf-quiche.c:1288,1
    - Dst: quiche_config_set_application_protos
      Src: /src/curl/lib/vquic/cf-quiche.c:1289,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vquic/cf-quiche.c:1290,1
    - Dst: Curl_vquic_tls_init
      Src: /src/curl/lib/vquic/cf-quiche.c:1294,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-quiche.c:1299,1
    - Dst: Curl_cf_socket_peek
      Src: /src/curl/lib/vquic/cf-quiche.c:1303,1
    - Dst: getsockname
      Src: /src/curl/lib/vquic/cf-quiche.c:1307,1
    - Dst: quiche_conn_new_with_tls
      Src: /src/curl/lib/vquic/cf-quiche.c:1312,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-quiche.c:1320,1
    - Dst: Curl_qlogdir
      Src: /src/curl/lib/vquic/cf-quiche.c:1328,1
    - Dst: quiche_conn_set_qlog_fd
      Src: /src/curl/lib/vquic/cf-quiche.c:1330,1
    - Dst: cf_flush_egress
      Src: /src/curl/lib/vquic/cf-quiche.c:1334,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1349,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1252
    functionDepth: 8
    functionLinenumber: 1252
    functionLinenumberEnd: 1354
    functionName: cf_quiche_ctx_open
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - quiche_config_set_disable_active_migration
    - quiche_config_set_initial_max_streams_uni
    - getsockname
    - CURL_UNCONST
    - quiche_config_new
    - CURL_TRC_CF
    - Curl_qlogdir
    - quiche_config_set_initial_max_stream_data_uni
    - quiche_config_set_max_stream_window
    - quiche_config_set_initial_max_data
    - quiche_conn_set_qlog_fd
    - quiche_config_enable_pacing
    - quiche_config_set_initial_max_streams_bidi
    - Curl_rand
    - failf
    - Curl_vquic_tls_init
    - cf_flush_egress
    - quiche_config_set_initial_max_stream_data_bidi_remote
    - quiche_config_set_application_protos
    - Curl_cf_socket_peek
    - quiche_config_set_initial_max_stream_data_bidi_local
    - quiche_config_set_max_connection_window
    - vquic_ctx_init
    - quiche_conn_new_with_tls
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_ctx_open(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_vquic_tls_verify_peer
      Src: /src/curl/lib/vquic/cf-quiche.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1361
    functionName: cf_quiche_verify_peer
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_vquic_tls_verify_peer
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_verify_peer(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/vquic/cf-quiche.c:1377,1
    - Dst: Curl_ossl_need_httpsrr
      Src: /src/curl/lib/vquic/cf-quiche.c:1383,1
    - Dst: Curl_conn_dns_resolved_https
      Src: /src/curl/lib/vquic/cf-quiche.c:1384,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1385,1
    - Dst: vquic_ctx_update_time
      Src: /src/curl/lib/vquic/cf-quiche.c:1389,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-quiche.c:1389,1
    - Dst: cf_quiche_ctx_open
      Src: /src/curl/lib/vquic/cf-quiche.c:1392,1
    - Dst: cf_flush_egress
      Src: /src/curl/lib/vquic/cf-quiche.c:1396,1
    - Dst: cf_process_ingress
      Src: /src/curl/lib/vquic/cf-quiche.c:1401,1
    - Dst: cf_flush_egress
      Src: /src/curl/lib/vquic/cf-quiche.c:1405,1
    - Dst: quiche_conn_is_established
      Src: /src/curl/lib/vquic/cf-quiche.c:1409,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1411,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vquic/cf-quiche.c:1412,1
    - Dst: cf_quiche_verify_peer
      Src: /src/curl/lib/vquic/cf-quiche.c:1413,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1415,1
    - Dst: quiche_h3_config_new
      Src: /src/curl/lib/vquic/cf-quiche.c:1416,1
    - Dst: quiche_h3_conn_new_with_transport
      Src: /src/curl/lib/vquic/cf-quiche.c:1423,1
    - Dst: quiche_conn_is_draining
      Src: /src/curl/lib/vquic/cf-quiche.c:1432,1
    - Dst: Curl_cf_socket_peek
      Src: /src/curl/lib/vquic/cf-quiche.c:1445,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-quiche.c:1446,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/vquic/cf-quiche.c:1447,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-quiche.c:1449,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/vquic/cf-quiche.c:1449,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1363
    functionDepth: 11
    functionLinenumber: 1363
    functionLinenumberEnd: 1453
    functionName: cf_quiche_connect
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - quiche_conn_is_established
    - Curl_cf_socket_peek
    - Curl_conn_dns_resolved_https
    - vquic_ctx_update_time
    - cf_flush_egress
    - quiche_h3_config_new
    - quiche_h3_conn_new_with_transport
    - curl_easy_strerror
    - Curl_conn_cf_connect
    - infof
    - Curl_ossl_need_httpsrr
    - quiche_conn_is_draining
    - cf_quiche_verify_peer
    - cf_quiche_ctx_open
    - curlx_ptimediff_ms
    - CURL_TRC_CF
    - cf_process_ingress
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_connect(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  bool *done)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vquic_ctx_update_time
      Src: /src/curl/lib/vquic/cf-quiche.c:1471,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-quiche.c:1471,1
    - Dst: quiche_conn_close
      Src: /src/curl/lib/vquic/cf-quiche.c:1472,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1474,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-quiche.c:1481,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1482,1
    - Dst: cf_flush_egress
      Src: /src/curl/lib/vquic/cf-quiche.c:1483,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-quiche.c:1488,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1491,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1495,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1455
    functionDepth: 8
    functionLinenumber: 1455
    functionLinenumberEnd: 1500
    functionName: cf_quiche_shutdown
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - quiche_conn_close
    - vquic_ctx_update_time
    - cf_flush_egress
    - Curl_bufq_is_empty
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_shutdown(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data, bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_quiche_ctx_close
      Src: /src/curl/lib/vquic/cf-quiche.c:1506,1
    - Dst: cf_quiche_ctx_free
      Src: /src/curl/lib/vquic/cf-quiche.c:1507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1502
    functionDepth: 6
    functionLinenumber: 1502
    functionLinenumberEnd: 1510
    functionName: cf_quiche_destroy
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - cf_quiche_ctx_close
    - cf_quiche_ctx_free
    linkageType: ''
    returnType: void
    signature: void cf_quiche_destroy(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: quiche_conn_peer_streams_left_bidi
      Src: /src/curl/lib/vquic/cf-quiche.c:1522,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1525,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vquic/cf-quiche.c:1532,1
    - Dst: Curl_vquic_tls_get_ssl_info
      Src: /src/curl/lib/vquic/cf-quiche.c:1557,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-quiche.c:1564,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/vquic/cf-quiche.c:1572,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1512
    functionDepth: 1
    functionLinenumber: 1512
    functionLinenumberEnd: 1574
    functionName: cf_quiche_query
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_vquic_tls_get_ssl_info
    - DEBUGASSERT
    - quiche_conn_peer_streams_left_bidi
    - struct Curl_cfilter*::next::cft::query
    - curlx_ptimediff_ms
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_quiche_query(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                int query, int *pres1, void
      *pres2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quiche_conn_is_closed
      Src: /src/curl/lib/vquic/cf-quiche.c:1587,1
    - Dst: quiche_conn_is_timed_out
      Src: /src/curl/lib/vquic/cf-quiche.c:1588,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1589,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-quiche.c:1591,1
    - Dst: struct Curl_cfilter*::next::cft::is_alive
      Src: /src/curl/lib/vquic/cf-quiche.c:1595,1
    - Dst: cf_process_ingress
      Src: /src/curl/lib/vquic/cf-quiche.c:1603,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1576
    functionDepth: 11
    functionLinenumber: 1576
    functionLinenumberEnd: 1611
    functionName: cf_quiche_conn_is_alive
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::is_alive
    - quiche_conn_is_closed
    - quiche_conn_is_timed_out
    - CURL_TRC_CF
    - cf_process_ingress
    linkageType: ''
    returnType: bool
    signature: "bool cf_quiche_conn_is_alive(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    bool *input_pending)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-quiche.c:1639,1
    - Dst: cf_quiche_ctx_init
      Src: /src/curl/lib/vquic/cf-quiche.c:1644,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/vquic/cf-quiche.c:1646,1
    - Dst: Curl_cf_udp_create
      Src: /src/curl/lib/vquic/cf-quiche.c:1651,1
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/vquic/cf-quiche.c:1662,1
    - Dst: cf_quiche_ctx_free
      Src: /src/curl/lib/vquic/cf-quiche.c:1664,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - pcf
    - data
    - conn
    - addr
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_ex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1630
    functionDepth: 6
    functionLinenumber: 1630
    functionLinenumberEnd: 1668
    functionName: Curl_cf_quiche_create
    functionSourceFile: /src/curl/lib/vquic/cf-quiche.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - Curl_conn_cf_discard_chain
    - cf_quiche_ctx_free
    - curlx_calloc
    - Curl_cf_udp_create
    - cf_quiche_ctx_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_quiche_create(struct Curl_cfilter **pcf,\n                               struct
      Curl_easy *data,\n                               struct connectdata *conn,\n
      \                              struct Curl_sockaddr_ex *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: Curl_vquic_init
    functionSourceFile: /src/curl/lib/vquic/vquic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Curl_vquic_init()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ossl_version
      Src: /src/curl/lib/vquic/vquic-tls.c:65,1
    - Dst: Curl_gtls_version
      Src: /src/curl/lib/vquic/vquic-tls.c:67,1
    - Dst: Curl_wssl_version
      Src: /src/curl/lib/vquic/vquic-tls.c:69,1
    - Dst: Curl_ssl_peer_cleanup
      Src: /src/curl/lib/vquic/vquic-tls.c:76,1
    - Dst: Curl_ssl_peer_init
      Src: /src/curl/lib/vquic/vquic-tls.c:77,1
    - Dst: Curl_ossl_ctx_init
      Src: /src/curl/lib/vquic/vquic-tls.c:83,1
    - Dst: Curl_gtls_ctx_init
      Src: /src/curl/lib/vquic/vquic-tls.c:87,1
    - Dst: Curl_wssl_ctx_init
      Src: /src/curl/lib/vquic/vquic-tls.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 9
    argNames:
    - ctx
    - cf
    - data
    - peer
    - alpns
    - cb_setup
    - cb_user_data
    - ssl_user_data
    - session_reuse_cb
    argTypes:
    - struct curl_tls_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    - struct alpn_spec*
    - Curl_vquic_tls_ctx_setup*
    - void*
    - void*
    - Curl_vquic_session_reuse_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 52
    functionDepth: 8
    functionLinenumber: 52
    functionLinenumberEnd: 98
    functionName: Curl_vquic_tls_init
    functionSourceFile: /src/curl/lib/vquic/vquic-tls.c
    functionUses: 2
    functionsReached:
    - Curl_ossl_version
    - Curl_ssl_peer_cleanup
    - Curl_ossl_ctx_init
    - Curl_gtls_version
    - Curl_gtls_ctx_init
    - Curl_wssl_version
    - Curl_ssl_peer_init
    - Curl_wssl_ctx_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_vquic_tls_init(struct curl_tls_ctx *ctx,\n                             struct
      Curl_cfilter *cf,\n                             struct Curl_easy *data,\n                             struct
      ssl_peer *peer,\n                             const struct alpn_spec *alpns,\n
      \                            Curl_vquic_tls_ctx_setup *cb_setup,\n                             void
      *cb_user_data, void *ssl_user_data,\n                             Curl_vquic_session_reuse_cb
      *session_reuse_cb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/curl/lib/vquic/vquic-tls.c:104,1
    - Dst: SSL_CTX_free
      Src: /src/curl/lib/vquic/vquic-tls.c:106,1
    - Dst: gnutls_deinit
      Src: /src/curl/lib/vquic/vquic-tls.c:109,1
    - Dst: Curl_gtls_shared_creds_free
      Src: /src/curl/lib/vquic/vquic-tls.c:110,1
    - Dst: wolfSSL_free
      Src: /src/curl/lib/vquic/vquic-tls.c:113,1
    - Dst: wolfSSL_CTX_free
      Src: /src/curl/lib/vquic/vquic-tls.c:115,1
    - Dst: memset
      Src: /src/curl/lib/vquic/vquic-tls.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct curl_tls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: Curl_vquic_tls_cleanup
    functionSourceFile: /src/curl/lib/vquic/vquic-tls.c
    functionUses: 3
    functionsReached:
    - Curl_gtls_shared_creds_free
    - SSL_CTX_free
    - wolfSSL_CTX_free
    - gnutls_deinit
    - SSL_free
    - wolfSSL_free
    - memset
    linkageType: ''
    returnType: void
    signature: void Curl_vquic_tls_cleanup(struct curl_tls_ctx *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_setup_x509_store
      Src: /src/curl/lib/vquic/vquic-tls.c:126,1
    - Dst: Curl_wssl_setup_x509_store
      Src: /src/curl/lib/vquic/vquic-tls.c:133,1
    - Dst: Curl_gtls_client_trust_setup
      Src: /src/curl/lib/vquic/vquic-tls.c:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - cf
    - data
    argTypes:
    - struct curl_tls_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 149
    functionName: Curl_vquic_tls_before_recv
    functionSourceFile: /src/curl/lib/vquic/vquic-tls.c
    functionUses: 2
    functionsReached:
    - Curl_wssl_setup_x509_store
    - Curl_gtls_client_trust_setup
    - Curl_ssl_setup_x509_store
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_vquic_tls_before_recv(struct curl_tls_ctx *ctx,\n                                    struct
      Curl_cfilter *cf,\n                                    struct Curl_easy *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ssl_cf_get_primary_config
      Src: /src/curl/lib/vquic/vquic-tls.c:159,1
    - Dst: Curl_ossl_check_peer_cert
      Src: /src/curl/lib/vquic/vquic-tls.c:165,1
    - Dst: Curl_gtls_verifyserver
      Src: /src/curl/lib/vquic/vquic-tls.c:167,1
    - Dst: wolfSSL_get_peer_certificate
      Src: /src/curl/lib/vquic/vquic-tls.c:175,1
    - Dst: wolfSSL_X509_check_host
      Src: /src/curl/lib/vquic/vquic-tls.c:179,1
    - Dst: strlen
      Src: /src/curl/lib/vquic/vquic-tls.c:179,1
    - Dst: wolfSSL_X509_check_ip_asc
      Src: /src/curl/lib/vquic/vquic-tls.c:183,1
    - Dst: wolfSSL_X509_free
      Src: /src/curl/lib/vquic/vquic-tls.c:186,1
    - Dst: Curl_wssl_verify_pinned
      Src: /src/curl/lib/vquic/vquic-tls.c:189,1
    - Dst: Curl_ssl_scache_remove_all
      Src: /src/curl/lib/vquic/vquic-tls.c:193,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - cf
    - data
    - peer
    argTypes:
    - struct curl_tls_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct ssl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 151
    functionDepth: 10
    functionLinenumber: 151
    functionLinenumberEnd: 195
    functionName: Curl_vquic_tls_verify_peer
    functionSourceFile: /src/curl/lib/vquic/vquic-tls.c
    functionUses: 2
    functionsReached:
    - strlen
    - wolfSSL_X509_free
    - Curl_ssl_scache_remove_all
    - Curl_gtls_verifyserver
    - Curl_ossl_check_peer_cert
    - wolfSSL_X509_check_ip_asc
    - Curl_ssl_cf_get_primary_config
    - wolfSSL_get_peer_certificate
    - Curl_wssl_verify_pinned
    - wolfSSL_X509_check_host
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_vquic_tls_verify_peer(struct curl_tls_ctx *ctx,\n                                    struct
      Curl_cfilter *cf,\n                                    struct Curl_easy *data,\n
      \                                   struct ssl_peer *peer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - give_ssl_ctx
    - info
    argTypes:
    - struct curl_tls_ctx*
    - bool
    - struct curl_tlssessioninfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 219
    functionName: Curl_vquic_tls_get_ssl_info
    functionSourceFile: /src/curl/lib/vquic/vquic-tls.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool Curl_vquic_tls_get_ssl_info(struct curl_tls_ctx *ctx,\n                                 bool
      give_ssl_ctx,\n                                 struct curl_tlssessioninfo *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ossl_report_handshake
      Src: /src/curl/lib/vquic/vquic-tls.c:228,1
    - Dst: Curl_gtls_report_handshake
      Src: /src/curl/lib/vquic/vquic-tls.c:230,1
    - Dst: Curl_wssl_report_handshake
      Src: /src/curl/lib/vquic/vquic-tls.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - cf
    - data
    argTypes:
    - struct curl_tls_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: Curl_vquic_report_handshake
    functionSourceFile: /src/curl/lib/vquic/vquic-tls.c
    functionUses: 1
    functionsReached:
    - Curl_wssl_report_handshake
    - Curl_gtls_report_handshake
    - Curl_ossl_report_handshake
    linkageType: ''
    returnType: void
    signature: "void Curl_vquic_report_handshake(struct curl_tls_ctx *ctx,\n                                 struct
      Curl_cfilter *cf,\n                                 struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: vquic_h3_err_str
    functionSourceFile: /src/curl/lib/vquic/vquic_int.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vquic_h3_err_str(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: H3_STREAM_CTX
    functionSourceFile: /src/curl/lib/vquic/vquic_int.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H3_STREAM_CTX(ctx, data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_crypto_ossl_init
      Src: /src/curl/lib/vquic/vquic.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: Curl_vquic_init
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 1
    functionsReached:
    - ngtcp2_crypto_ossl_init
    linkageType: ''
    returnType: int
    signature: int Curl_vquic_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ngtcp2_ver
      Src: /src/curl/lib/vquic/vquic.c:71,1
    - Dst: Curl_quiche_ver
      Src: /src/curl/lib/vquic/vquic.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 8
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: Curl_quic_ver
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 2
    functionsReached:
    - Curl_ngtcp2_ver
    - Curl_quiche_ver
    linkageType: ''
    returnType: void
    signature: void Curl_quic_ver(char *p, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/vquic/vquic.c:80,1
    - Dst: getenv
      Src: /src/curl/lib/vquic/vquic.c:89,1
    - Dst: curlx_str_number
      Src: /src/curl/lib/vquic/vquic.c:92,1
    - Dst: vquic_ctx_set_time
      Src: /src/curl/lib/vquic/vquic.c:97,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/vquic.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - qctx
    argTypes:
    - struct Curl_easy*
    - struct cf_quic_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: vquic_ctx_init
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 2
    functionsReached:
    - Curl_pgrs_now
    - vquic_ctx_set_time
    - getenv
    - curlx_str_number
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode vquic_ctx_init(struct Curl_easy *data,\n                        struct
      cf_quic_ctx *qctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/vquic/vquic.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qctx
    argTypes:
    - struct cf_quic_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: vquic_ctx_free
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 3
    functionsReached:
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void vquic_ctx_free(struct cf_quic_ctx *qctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qctx
    - pnow
    argTypes:
    - struct cf_quic_ctx*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: vquic_ctx_set_time
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vquic_ctx_set_time(struct cf_quic_ctx *qctx,\n                        const
      struct curltime *pnow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qctx
    - pnow
    argTypes:
    - struct cf_quic_ctx*
    - struct curltime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: vquic_ctx_update_time
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vquic_ctx_update_time(struct cf_quic_ctx *qctx,\n                           const
      struct curltime *pnow)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vquic/vquic.c:142,1
    - Dst: memset
      Src: /src/curl/lib/vquic/vquic.c:151,1
    - Dst: assert
      Src: /src/curl/lib/vquic/vquic.c:153,1
    - Dst: CMSG_SPACE
      Src: /src/curl/lib/vquic/vquic.c:153,1
    - Dst: CMSG_SPACE
      Src: /src/curl/lib/vquic/vquic.c:154,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/curl/lib/vquic/vquic.c:155,1
    - Dst: CMSG_LEN
      Src: /src/curl/lib/vquic/vquic.c:158,1
    - Dst: CMSG_DATA
      Src: /src/curl/lib/vquic/vquic.c:159,1
    - Dst: sendmsg
      Src: /src/curl/lib/vquic/vquic.c:163,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/vquic/vquic.c:166,1
    - Dst: infof
      Src: /src/curl/lib/vquic/vquic.c:180,1
    - Dst: send_packet_no_gso
      Src: /src/curl/lib/vquic/vquic.c:183,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vquic/vquic.c:185,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:187,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:193,1
    - Dst: swrite
      Src: /src/curl/lib/vquic/vquic.c:203,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/vquic/vquic.c:207,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:214,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 7
    argNames:
    - cf
    - data
    - qctx
    - pkt
    - pktlen
    - gsolen
    - psent
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    - uint8_t*
    - size_t
    - size_t
    - size_t*
    assertStmts:
    - condition: (sizeof(msg_ctrl) >= CMSG_SPACE(sizeof(int)))
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/curl/lib/vquic/vquic.c
    constantsTouched: []
    func_position:
      end: 227
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 227
    functionName: do_sendmsg
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - failf
    - CMSG_DATA
    - sendmsg
    - CURL_UNCONST
    - infof
    - CMSG_LEN
    - CMSG_FIRSTHDR
    - CMSG_SPACE
    - assert
    - memset
    - send_packet_no_gso
    - curlx_sztouz
    - swrite
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode do_sendmsg(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data,\n                           struct cf_quic_ctx *qctx,\n                           const
      uint8_t *pkt, size_t pktlen, size_t gsolen,\n                           size_t
      *psent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURLMIN
      Src: /src/curl/lib/vquic/vquic.c:251,1
    - Dst: do_sendmsg
      Src: /src/curl/lib/vquic/vquic.c:252,1
    - Dst: VERBOSE
      Src: /src/curl/lib/vquic/vquic.c:256,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - cf
    - data
    - qctx
    - pkt
    - pktlen
    - gsolen
    - psent
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    - uint8_t*
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 263
    functionName: send_packet_no_gso
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 1
    functionsReached:
    - VERBOSE
    - CURLMIN
    - do_sendmsg
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode send_packet_no_gso(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   struct cf_quic_ctx *qctx,\n
      \                                  const uint8_t *pkt, size_t pktlen,\n                                   size_t
      gsolen, size_t *psent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURLMIN
      Src: /src/curl/lib/vquic/vquic.c:281,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vquic/vquic.c:282,1
    - Dst: VERBOSE
      Src: /src/curl/lib/vquic/vquic.c:285,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - cf
    - data
    - pkt
    - pktlen
    - gsolen
    - psent
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 301
    functionName: send_packet_no_gso_cf
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_conn_cf_send
    - CURLMIN
    - VERBOSE
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode send_packet_no_gso_cf(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      const uint8_t *pkt,
      size_t pktlen,\n                                      size_t gsolen, size_t
      *psent)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/vquic.c:315,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:317,1
    - Dst: send_packet_no_gso
      Src: /src/curl/lib/vquic/vquic.c:323,1
    - Dst: do_sendmsg
      Src: /src/curl/lib/vquic/vquic.c:326,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 7
    argNames:
    - cf
    - data
    - qctx
    - pkt
    - pktlen
    - gsolen
    - psent
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    - uint8_t*
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 334
    functionName: vquic_send_packets
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_rand
    - do_sendmsg
    - send_packet_no_gso
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode vquic_send_packets(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   struct cf_quic_ctx *qctx,\n
      \                                  const uint8_t *pkt, size_t pktlen,\n                                   size_t
      gsolen, size_t *psent)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/vquic/vquic.c:344,1
    - Dst: vquic_send_packets
      Src: /src/curl/lib/vquic/vquic.c:354,1
    - Dst: send_packet_no_gso_cf
      Src: /src/curl/lib/vquic/vquic.c:360,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vquic/vquic.c:364,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/vquic.c:370,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/vquic.c:376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - cf
    - data
    - qctx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 381
    functionName: vquic_flush
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 3
    functionsReached:
    - send_packet_no_gso_cf
    - Curl_conn_cf_send
    - Curl_bufq_skip
    - Curl_bufq_peek
    - vquic_send_packets
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode vquic_flush(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                    struct cf_quic_ctx *qctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vquic_flush
      Src: /src/curl/lib/vquic/vquic.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cf
    - data
    - qctx
    - gsolen
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 383
    functionDepth: 5
    functionLinenumber: 383
    functionLinenumberEnd: 388
    functionName: vquic_send
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 2
    functionsReached:
    - vquic_flush
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode vquic_send(struct Curl_cfilter *cf, struct Curl_easy *data,\n
      \                   struct cf_quic_ctx *qctx, size_t gsolen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/vquic.c:394,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/vquic.c:394,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/vquic.c:395,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:398,1
    - Dst: vquic_flush
      Src: /src/curl/lib/vquic/vquic.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - cf
    - data
    - qctx
    - gsolen
    - tail_len
    - tail_gsolen
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 390
    functionDepth: 5
    functionLinenumber: 390
    functionLinenumberEnd: 401
    functionName: vquic_send_tail_split
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 1
    functionsReached:
    - Curl_bufq_len
    - CURL_TRC_CF
    - vquic_flush
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode vquic_send_tail_split(struct Curl_cfilter *cf, struct Curl_easy
      *data,\n                               struct cf_quic_ctx *qctx, size_t gsolen,\n
      \                              size_t tail_len, size_t tail_gsolen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_FIRSTHDR
      Src: /src/curl/lib/vquic/vquic.c:416,1
    - Dst: CMSG_NXTHDR
      Src: /src/curl/lib/vquic/vquic.c:416,1
    - Dst: memcpy
      Src: /src/curl/lib/vquic/vquic.c:421,1
    - Dst: CMSG_DATA
      Src: /src/curl/lib/vquic/vquic.c:421,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct msghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 430
    functionName: vquic_msghdr_get_udp_gro
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - CMSG_DATA
    - memcpy
    - CMSG_FIRSTHDR
    - CMSG_NXTHDR
    linkageType: ''
    returnType: size_t
    signature: size_t vquic_msghdr_get_udp_gro(struct msghdr *msg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/curl/lib/vquic/vquic.c:450,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/vquic.c:463,1
    - Dst: Curl_multi_xfer_sockbuf_borrow
      Src: /src/curl/lib/vquic/vquic.c:464,1
    - Dst: CURLMIN
      Src: /src/curl/lib/vquic/vquic.c:472,1
    - Dst: CURLMIN
      Src: /src/curl/lib/vquic/vquic.c:472,1
    - Dst: memset
      Src: /src/curl/lib/vquic/vquic.c:473,1
    - Dst: CMSG_SPACE
      Src: /src/curl/lib/vquic/vquic.c:481,1
    - Dst: CMSG_SPACE
      Src: /src/curl/lib/vquic/vquic.c:482,1
    - Dst: recvmmsg
      Src: /src/curl/lib/vquic/vquic.c:485,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:490,1
    - Dst: Curl_cf_socket_peek
      Src: /src/curl/lib/vquic/vquic.c:495,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:496,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vquic/vquic.c:501,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:502,1
    - Dst: VERBOSE
      Src: /src/curl/lib/vquic/vquic.c:508,1
    - Dst: vquic_msghdr_get_udp_gro
      Src: /src/curl/lib/vquic/vquic.c:517,1
    - Dst: recv_cb
      Src: /src/curl/lib/vquic/vquic.c:521,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:532,1
    - Dst: Curl_multi_xfer_sockbuf_release
      Src: /src/curl/lib/vquic/vquic.c:535,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 6
    argNames:
    - cf
    - data
    - qctx
    - max_pkts
    - recv_cb
    - userp
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    - size_t
    - vquic_recv_pkts_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 537
    functionName: recvmmsg_packets
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_cf_socket_peek
    - DEBUGASSERT
    - failf
    - vquic_msghdr_get_udp_gro
    - CURLMIN
    - recv_cb
    - curlx_strerror
    - Curl_multi_xfer_sockbuf_borrow
    - VERBOSE
    - CURL_TRC_CF
    - CMSG_SPACE
    - Curl_multi_xfer_sockbuf_release
    - memset
    - recvmmsg
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode recvmmsg_packets(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct cf_quic_ctx *qctx,\n
      \                                size_t max_pkts,\n                                 vquic_recv_pkts_cb
      *recv_cb, void *userp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/curl/lib/vquic/vquic.c:555,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/vquic.c:558,1
    - Dst: memset
      Src: /src/curl/lib/vquic/vquic.c:562,1
    - Dst: recvmsg
      Src: /src/curl/lib/vquic/vquic.c:572,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/vquic/vquic.c:575,1
    - Dst: Curl_cf_socket_peek
      Src: /src/curl/lib/vquic/vquic.c:581,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:582,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vquic/vquic.c:587,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:588,1
    - Dst: vquic_msghdr_get_udp_gro
      Src: /src/curl/lib/vquic/vquic.c:603,1
    - Dst: recv_cb
      Src: /src/curl/lib/vquic/vquic.c:607,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:616,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 6
    argNames:
    - cf
    - data
    - qctx
    - max_pkts
    - recv_cb
    - userp
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    - size_t
    - vquic_recv_pkts_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 620
    functionName: recvmsg_packets
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - recvmsg
    - Curl_cf_socket_peek
    - DEBUGASSERT
    - failf
    - vquic_msghdr_get_udp_gro
    - recv_cb
    - curlx_strerror
    - CMSG_SPACE
    - memset
    - curlx_sztouz
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode recvmsg_packets(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                struct cf_quic_ctx *qctx,\n
      \                               size_t max_pkts,\n                                vquic_recv_pkts_cb
      *recv_cb, void *userp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/vquic.c:638,1
    - Dst: recvfrom
      Src: /src/curl/lib/vquic/vquic.c:640,1
    - Dst: curlx_sztouz
      Src: /src/curl/lib/vquic/vquic.c:645,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:647,1
    - Dst: Curl_cf_socket_peek
      Src: /src/curl/lib/vquic/vquic.c:652,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:653,1
    - Dst: curlx_strerror
      Src: /src/curl/lib/vquic/vquic.c:658,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:659,1
    - Dst: recv_cb
      Src: /src/curl/lib/vquic/vquic.c:673,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/vquic.c:681,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 6
    argNames:
    - cf
    - data
    - qctx
    - max_pkts
    - recv_cb
    - userp
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    - size_t
    - vquic_recv_pkts_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 623
    functionDepth: 4
    functionLinenumber: 623
    functionLinenumberEnd: 685
    functionName: recvfrom_packets
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_cf_socket_peek
    - DEBUGASSERT
    - failf
    - recv_cb
    - curlx_strerror
    - curlx_sztouz
    - recvfrom
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode recvfrom_packets(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 struct cf_quic_ctx *qctx,\n
      \                                size_t max_pkts,\n                                 vquic_recv_pkts_cb
      *recv_cb, void *userp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: recvmmsg_packets
      Src: /src/curl/lib/vquic/vquic.c:696,1
    - Dst: recvmsg_packets
      Src: /src/curl/lib/vquic/vquic.c:698,1
    - Dst: recvfrom_packets
      Src: /src/curl/lib/vquic/vquic.c:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - cf
    - data
    - qctx
    - max_pkts
    - recv_cb
    - userp
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct cf_quic_ctx*
    - size_t
    - vquic_recv_pkts_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 688
    functionDepth: 5
    functionLinenumber: 688
    functionLinenumberEnd: 710
    functionName: vquic_recv_packets
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 2
    functionsReached:
    - recvfrom_packets
    - recvmsg_packets
    - recvmmsg_packets
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode vquic_recv_packets(struct Curl_cfilter *cf,\n                            struct
      Curl_easy *data,\n                            struct cf_quic_ctx *qctx,\n                            size_t
      max_pkts,\n                            vquic_recv_pkts_cb *recv_cb, void *userp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: curl_getenv
      Src: /src/curl/lib/vquic/vquic.c:725,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vquic/vquic.c:731,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vquic/vquic.c:732,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vquic/vquic.c:734,1
    - Dst: curl_msnprintf
      Src: /src/curl/lib/vquic/vquic.c:737,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vquic/vquic.c:738,1
    - Dst: curlx_dyn_add
      Src: /src/curl/lib/vquic/vquic.c:741,1
    - Dst: curlx_open
      Src: /src/curl/lib/vquic/vquic.c:744,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vquic/vquic.c:744,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vquic/vquic.c:754,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/vquic.c:755,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - data
    - scid
    - scidlen
    - qlogfdp
    argTypes:
    - struct Curl_easy*
    - unsigned char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 720
    functionDepth: 7
    functionLinenumber: 720
    functionLinenumberEnd: 761
    functionName: Curl_qlogdir
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 2
    functionsReached:
    - curlx_dyn_init
    - curl_msnprintf
    - curlx_dyn_add
    - curl_getenv
    - curlx_dyn_free
    - curlx_dyn_ptr
    - curlx_free
    - curlx_open
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_qlogdir(struct Curl_easy *data,\n                      unsigned
      char *scid,\n                      size_t scidlen,\n                      int
      *qlogfdp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cf_ngtcp2_insert_after
      Src: /src/curl/lib/vquic/vquic.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cf_at
    argTypes:
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 763
    functionDepth: 7
    functionLinenumber: 763
    functionLinenumberEnd: 771
    functionName: Curl_cf_quic_insert_after
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 1
    functionsReached:
    - Curl_cf_ngtcp2_insert_after
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode Curl_cf_quic_insert_after(struct Curl_cfilter *cf_at)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/vquic.c:782,1
    - Dst: Curl_cf_ngtcp2_create
      Src: /src/curl/lib/vquic/vquic.c:784,1
    - Dst: Curl_cf_quiche_create
      Src: /src/curl/lib/vquic/vquic.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - pcf
    - data
    - conn
    - addr
    - transport_in
    - transport_out
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_ex*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 773
    functionDepth: 7
    functionLinenumber: 773
    functionLinenumberEnd: 794
    functionName: Curl_cf_quic_create
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_cf_quiche_create
    - Curl_cf_ngtcp2_create
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_quic_create(struct Curl_cfilter **pcf,\n                             struct
      Curl_easy *data,\n                             struct connectdata *conn,\n                             struct
      Curl_sockaddr_ex *addr,\n                             uint8_t transport_in,\n
      \                            uint8_t transport_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cf_ngtcp2_proxy_insert_after
      Src: /src/curl/lib/vquic/vquic.c:804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - cf_at
    - data
    - dest
    - udp_tunnel
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 809
    functionName: Curl_cf_h3_proxy_insert_after
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 1
    functionsReached:
    - Curl_cf_ngtcp2_proxy_insert_after
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_h3_proxy_insert_after(struct Curl_cfilter *cf_at,\n
      \                                      struct Curl_easy *data,\n                                       struct
      Curl_peer *dest,\n                                       bool udp_tunnel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/vquic.c:820,1
    - Dst: Curl_cf_ngtcp2_proxy_create
      Src: /src/curl/lib/vquic/vquic.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - pcf
    - data
    - conn
    - addr
    - transport_in
    - transport_out
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_ex*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 831
    functionName: Curl_cf_h3_proxy_create
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_cf_ngtcp2_proxy_create
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_h3_proxy_create(struct Curl_cfilter **pcf,\n                                 struct
      Curl_easy *data,\n                                 struct connectdata *conn,\n
      \                                struct Curl_sockaddr_ex *addr,\n                                 uint8_t
      transport_in,\n                                 uint8_t transport_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:840,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:844,1
    - Dst: failf
      Src: /src/curl/lib/vquic/vquic.c:849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - data
    - conn
    - transport
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 855
    functionName: Curl_conn_may_http3
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 2
    functionsReached:
    - failf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_may_http3(struct Curl_easy *data,\n                             const
      struct connectdata *conn,\n                             unsigned char transport)"
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 1
    argNames:
    - error_code
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 904
    functionName: vquic_h3_err_str
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *vquic_h3_err_str(uint64_t error_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cmalloc
      Src: /src/curl/lib/vquic/vquic.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - user_data
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 913
    functionName: vquic_ngtcp2_malloc
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_cmalloc
    linkageType: ''
    returnType: void
    signature: void *vquic_ngtcp2_malloc(size_t size, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cfree
      Src: /src/curl/lib/vquic/vquic.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - user_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 919
    functionName: vquic_ngtcp2_free
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_cfree
    linkageType: ''
    returnType: void
    signature: void vquic_ngtcp2_free(void *ptr, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_ccalloc
      Src: /src/curl/lib/vquic/vquic.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nmemb
    - size
    - user_data
    argTypes:
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 925
    functionName: vquic_ngtcp2_calloc
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_ccalloc
    linkageType: ''
    returnType: void
    signature: void *vquic_ngtcp2_calloc(size_t nmemb, size_t size, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_crealloc
      Src: /src/curl/lib/vquic/vquic.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - size
    - user_data
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 931
    functionName: vquic_ngtcp2_realloc
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 0
    functionsReached:
    - Curl_crealloc
    linkageType: ''
    returnType: void
    signature: void *vquic_ngtcp2_realloc(void *ptr, size_t size, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 944
    functionName: Curl_ngtcp2_mem
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct ngtcp2_mem
    signature: struct ngtcp2_mem *Curl_ngtcp2_mem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: Curl_nghttp3_mem
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct nghttp3_mem
    signature: struct nghttp3_mem *Curl_nghttp3_mem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGF
      Src: /src/curl/lib/vquic/vquic.c:972,1
    - Dst: infof
      Src: /src/curl/lib/vquic/vquic.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - data
    - conn
    - transport
    argTypes:
    - struct Curl_easy*
    - struct connectdata*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 974
    functionName: Curl_conn_may_http3
    functionSourceFile: /src/curl/lib/vquic/vquic.c
    functionUses: 2
    functionsReached:
    - DEBUGF
    - infof
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_conn_may_http3(struct Curl_easy *data,\n                             const
      struct connectdata *conn,\n                             unsigned char transport)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap64
      Src: /src/curl/lib/vquic/capsule.c:51,1
    - Dst: ntohl
      Src: /src/curl/lib/vquic/capsule.c:59,1
    - Dst: ntohl
      Src: /src/curl/lib/vquic/capsule.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 63
    functionName: capsule_ntohll
    functionSourceFile: /src/curl/lib/vquic/capsule.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap64
    - ntohl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t capsule_ntohll(uint64_t value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/capsule.c:73,1
    - Dst: ntohs
      Src: /src/curl/lib/vquic/capsule.c:81,1
    - Dst: memcpy
      Src: /src/curl/lib/vquic/capsule.c:82,1
    - Dst: ntohl
      Src: /src/curl/lib/vquic/capsule.c:87,1
    - Dst: memcpy
      Src: /src/curl/lib/vquic/capsule.c:88,1
    - Dst: capsule_ntohll
      Src: /src/curl/lib/vquic/capsule.c:93,1
    - Dst: memcpy
      Src: /src/curl/lib/vquic/capsule.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 97
    functionName: capsule_encode_varint_buf
    functionSourceFile: /src/curl/lib/vquic/capsule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEBUGASSERT
    - ntohs
    - ntohl
    - capsule_ntohll
    linkageType: ''
    returnType: size_t
    signature: size_t capsule_encode_varint_buf(uint8_t *buf, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_peek_at
      Src: /src/curl/lib/vquic/capsule.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - recvbufq
    - offset
    - pbyte
    argTypes:
    - struct bufq*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: capsule_peek_u8
    functionSourceFile: /src/curl/lib/vquic/capsule.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_peek_at
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode capsule_peek_u8(struct bufq *recvbufq,\n                                size_t
      offset,\n                                uint8_t *pbyte)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: capsule_peek_u8
      Src: /src/curl/lib/vquic/capsule.c:123,1
    - Dst: capsule_peek_u8
      Src: /src/curl/lib/vquic/capsule.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - recvbufq
    - offset
    - pvalue
    - pconsumed
    argTypes:
    - struct bufq*
    - size_t
    - uint64_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 140
    functionName: capsule_decode_varint_at
    functionSourceFile: /src/curl/lib/vquic/capsule.c
    functionUses: 0
    functionsReached:
    - capsule_peek_u8
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode capsule_decode_varint_at(struct bufq *recvbufq,\n                                         size_t
      offset,\n                                         uint64_t *pvalue,\n                                         size_t
      *pconsumed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/capsule.c:157,1
    - Dst: capsule_encode_varint_buf
      Src: /src/curl/lib/vquic/capsule.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hdr
    - hdrlen
    - payload_len
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: capsule_encap_udp_hdr
    functionSourceFile: /src/curl/lib/vquic/capsule.c
    functionUses: 1
    functionsReached:
    - capsule_encode_varint_buf
    - DEBUGASSERT
    linkageType: ''
    returnType: UNITTEST
    signature: "UNITTEST capsule_encap_udp_hdr(uint8_t *hdr, size_t hdrlen,\n                                      size_t
      payload_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vquic/capsule.c:173,1
    - Dst: capsule_encap_udp_hdr
      Src: /src/curl/lib/vquic/capsule.c:174,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/capsule.c:175,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/capsule.c:179,1
    - Dst: curlx_dyn_addn
      Src: /src/curl/lib/vquic/capsule.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dyn
    - buf
    - blen
    argTypes:
    - struct dynbuf*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 184
    functionName: Curl_capsule_encap_udp_datagram
    functionSourceFile: /src/curl/lib/vquic/capsule.c
    functionUses: 1
    functionsReached:
    - curlx_dyn_addn
    - curlx_dyn_init
    - capsule_encap_udp_hdr
    - DEBUGASSERT
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_capsule_encap_udp_datagram(struct dynbuf *dyn,\n                                         const
      void *buf, size_t blen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/capsule.c:204,1
    - Dst: Curl_bufq_peek
      Src: /src/curl/lib/vquic/capsule.c:209,1
    - Dst: infof
      Src: /src/curl/lib/vquic/capsule.c:215,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/capsule.c:216,1
    - Dst: capsule_decode_varint_at
      Src: /src/curl/lib/vquic/capsule.c:222,1
    - Dst: Curl_bufq_peek_at
      Src: /src/curl/lib/vquic/capsule.c:234,1
    - Dst: infof
      Src: /src/curl/lib/vquic/capsule.c:241,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/capsule.c:242,1
    - Dst: infof
      Src: /src/curl/lib/vquic/capsule.c:249,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/capsule.c:250,1
    - Dst: infof
      Src: /src/curl/lib/vquic/capsule.c:255,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/capsule.c:262,1
    - Dst: infof
      Src: /src/curl/lib/vquic/capsule.c:268,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/capsule.c:270,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/capsule.c:275,1
    - Dst: Curl_bufq_read
      Src: /src/curl/lib/vquic/capsule.c:280,1
    - Dst: infof
      Src: /src/curl/lib/vquic/capsule.c:282,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/capsule.c:289,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/capsule.c:290,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 6
    argNames:
    - cf
    - data
    - recvbufq
    - buf
    - len
    - err
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct bufq*
    - unsigned char*
    - size_t
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 294
    functionName: Curl_capsule_process_udp_raw
    functionSourceFile: /src/curl/lib/vquic/capsule.c
    functionUses: 4
    functionsReached:
    - Curl_bufq_len
    - Curl_bufq_peek_at
    - infof
    - Curl_bufq_skip
    - Curl_bufq_peek
    - Curl_bufq_is_empty
    - capsule_decode_varint_at
    - Curl_bufq_read
    - CURL_TRC_CF
    linkageType: ''
    returnType: size_t
    signature: "size_t Curl_capsule_process_udp_raw(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data,\n                                    struct bufq *recvbufq,\n
      \                                   unsigned char *buf, size_t len,\n                                    CURLcode
      *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_maprintf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ts
    - dest
    argTypes:
    - struct h3_tunnel_stream*
    - struct Curl_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 7
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: h3_tunnel_stream_init
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - curl_maprintf
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_tunnel_stream_init(struct h3_tunnel_stream *ts,\n                                      struct
      Curl_peer *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_resp_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct h3_tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: h3_tunnel_stream_reset
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_http_resp_free
    linkageType: ''
    returnType: void
    signature: void h3_tunnel_stream_reset(struct h3_tunnel_stream *ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_resp_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:148,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:149,1
    - Dst: memset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct h3_tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: h3_tunnel_stream_clear
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - Curl_http_resp_free
    - memset
    linkageType: ''
    returnType: void
    signature: void h3_tunnel_stream_clear(struct h3_tunnel_stream *ts)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:176,1
    - Dst: h3_tunnel_stream_reset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:178,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:182,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:188,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:194,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:196,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:200,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:203,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:209,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - cf
    - ts
    - new_state
    - data
    - udp_tunnel
    argTypes:
    - struct Curl_cfilter*
    - struct h3_tunnel_stream*
    - h3_tunnel_state
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 212
    functionName: h3_tunnel_go_state
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - h3_tunnel_stream_reset
    - infof
    - CURL_TRC_CF
    - FALLTHROUGH
    linkageType: ''
    returnType: void
    signature: "void h3_tunnel_go_state(struct Curl_cfilter *cf,\n                               struct
      h3_tunnel_stream *ts,\n                               h3_tunnel_state new_state,\n
      \                              struct Curl_easy *data,\n                               bool
      udp_tunnel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: H3_PROXY_STREAM_CTX
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H3_PROXY_STREAM_CTX(ctx, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: H3_STREAM_ID
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H3_STREAM_ID(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:292,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct h3_proxy_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 294
    functionName: h3_proxy_stream_ctx_free
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: void h3_proxy_stream_ctx_free(struct h3_proxy_stream_ctx *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:299,1
    - Dst: h3_proxy_stream_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - stream
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: h3_proxy_stream_hash_free
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - h3_proxy_stream_ctx_free
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void h3_proxy_stream_hash_free(unsigned int id, void *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:305,1
    - Dst: Curl_bufcp_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:309,1
    - Dst: curlx_dyn_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:311,1
    - Dst: Curl_uint32_hash_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_ngtcp2_proxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 314
    functionName: cf_ngtcp2_proxy_ctx_init
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_dyn_init
    - Curl_bufcp_init
    - Curl_uint32_hash_init
    - DEBUGASSERT
    linkageType: ''
    returnType: void
    signature: void cf_ngtcp2_proxy_ctx_init(struct cf_ngtcp2_proxy_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_vquic_tls_cleanup
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:319,1
    - Dst: vquic_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:320,1
    - Dst: Curl_bufcp_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:321,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:322,1
    - Dst: Curl_uint32_hash_destroy
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:323,1
    - Dst: Curl_ssl_peer_cleanup
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:324,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_ngtcp2_proxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: cf_ngtcp2_proxy_ctx_free
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_peer_cleanup
    - Curl_bufcp_free
    - curlx_dyn_free
    - Curl_vquic_tls_cleanup
    - curlx_free
    - vquic_ctx_free
    - Curl_uint32_hash_destroy
    linkageType: ''
    returnType: void
    signature: void cf_ngtcp2_proxy_ctx_free(struct cf_ngtcp2_proxy_ctx *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:336,1
    - Dst: Curl_vquic_tls_cleanup
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:339,1
    - Dst: Curl_ssl_peer_cleanup
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:340,1
    - Dst: vquic_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:341,1
    - Dst: nghttp3_conn_del
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:343,1
    - Dst: ngtcp2_conn_del
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:347,1
    - Dst: ngtcp2_crypto_ossl_ctx_del
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_ngtcp2_proxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 357
    functionName: cf_ngtcp2_proxy_ctx_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_close
    - ngtcp2_crypto_ossl_ctx_del
    - Curl_ssl_peer_cleanup
    - nghttp3_conn_del
    - Curl_vquic_tls_cleanup
    - vquic_ctx_free
    - ngtcp2_conn_del
    linkageType: ''
    returnType: void
    signature: void cf_ngtcp2_proxy_ctx_close(struct cf_ngtcp2_proxy_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_get_remote_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:377,1
    - Dst: ngtcp2_conn_set_keep_alive_timeout
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:379,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:380,1
    - Dst: Curl_uint32_hash_count
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:382,1
    - Dst: ngtcp2_conn_set_keep_alive_timeout
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:383,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:384,1
    - Dst: ngtcp2_conn_set_keep_alive_timeout
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:389,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 395
    functionName: cf_ngtcp2_proxy_setup_keep_alive
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_hash_count
    - CURL_TRC_CF
    - ngtcp2_conn_get_remote_transport_params
    - ngtcp2_conn_set_keep_alive_timeout
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_proxy_setup_keep_alive(struct Curl_cfilter *cf,\n                                             struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:409,1
    - Dst: vquic_ctx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pktx
    - cf
    argTypes:
    - struct proxy_pkt_io_ctx*
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: proxy_pktx_update_time
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - vquic_ctx_update_time
    linkageType: ''
    returnType: void
    signature: "void proxy_pktx_update_time(struct proxy_pkt_io_ctx *pktx,\n                                   struct
      Curl_cfilter *cf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:422,1
    - Dst: ngtcp2_path_storage_zero
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:426,1
    - Dst: vquic_ctx_set_time
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pktx
    - cf
    - data
    argTypes:
    - struct proxy_pkt_io_ctx*
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 430
    functionName: proxy_pktx_init
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - vquic_ctx_set_time
    - ngtcp2_path_storage_zero
    linkageType: ''
    returnType: void
    signature: "void proxy_pktx_init(struct proxy_pkt_io_ctx *pktx,\n                            struct
      Curl_cfilter *cf,\n                            struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn_ref
    argTypes:
    - ngtcp2_crypto_conn_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: proxy_get_conn
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ngtcp2_conn
    signature: ngtcp2_conn *proxy_get_conn(ngtcp2_crypto_conn_ref *conn_ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:445,1
    - Dst: curl_mvfprintf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:446,1
    - Dst: va_end
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:447,1
    - Dst: curl_mfprintf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - user_data
    - fmt
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: proxy_quic_printf
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - curl_mvfprintf
    - va_start
    - va_end
    - curl_mfprintf
    linkageType: ''
    returnType: void
    signature: void proxy_quic_printf(void *user_data, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:460,1
    - Dst: curlx_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - user_data
    - flags
    - data
    - datalen
    argTypes:
    - void*
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 467
    functionName: proxy_qlog_callback
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_close
    - write
    linkageType: ''
    returnType: void
    signature: "void proxy_qlog_callback(void *user_data, uint32_t flags,\n                                const
      void *data, size_t datalen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_settings_default
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:476,1
    - Dst: ngtcp2_transport_params_default
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - data
    - pktx
    argTypes:
    - struct cf_ngtcp2_proxy_ctx*
    - struct Curl_easy*
    - struct proxy_pkt_io_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 506
    functionName: quic_settings_proxy
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - ngtcp2_settings_default
    - ngtcp2_transport_params_default
    linkageType: ''
    returnType: void
    signature: "void quic_settings_proxy(struct cf_ngtcp2_proxy_ctx *ctx,\n                                struct
      Curl_easy *data,\n                                struct proxy_pkt_io_ctx *pktx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: cf_ngtcp2_proxy_err_is_fatal
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_ngtcp2_proxy_err_is_fatal(int code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_ccerr_set_tls_alert
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:525,1
    - Dst: ngtcp2_conn_get_tls_alert
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:526,1
    - Dst: ngtcp2_ccerr_set_liberr
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:530,1
    - Dst: cf_ngtcp2_proxy_err_is_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:533,1
    - Dst: cf_ngtcp2_proxy_conn_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - cf
    - data
    - code
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 535
    functionName: cf_ngtcp2_proxy_err_set
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - cf_ngtcp2_proxy_err_is_fatal
    - ngtcp2_conn_get_tls_alert
    - ngtcp2_ccerr_set_tls_alert
    - ngtcp2_ccerr_set_liberr
    - cf_ngtcp2_proxy_conn_close
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_proxy_err_set(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data, int code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: cf_ngtcp2_proxy_h3_err_is_fatal
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_ngtcp2_proxy_h3_err_is_fatal(int code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_ccerr_set_application_error
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:549,1
    - Dst: nghttp3_err_infer_quic_app_error_code
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:550,1
    - Dst: cf_ngtcp2_proxy_h3_err_is_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:552,1
    - Dst: cf_ngtcp2_proxy_conn_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cf
    - data
    - code
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 554
    functionName: cf_ngtcp2_proxy_h3_err_set
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp3_err_infer_quic_app_error_code
    - cf_ngtcp2_proxy_conn_close
    - ngtcp2_ccerr_set_application_error
    - cf_ngtcp2_proxy_h3_err_is_fatal
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_proxy_h3_err_set(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data, int code)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct Curl_cfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 567
    functionName: cf_h3_proxy_call_data
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct cf_call_data
    signature: struct cf_call_data *cf_h3_proxy_call_data(struct Curl_cfilter *cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: CF_CTX_CALL_DATA
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_CTX_CALL_DATA(cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:574,1
    - Dst: Curl_peer_unlink
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:575,1
    - Dst: h3_tunnel_stream_clear
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:576,1
    - Dst: memset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_h3_proxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: cf_h3_proxy_ctx_clear
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_peer_unlink
    - h3_tunnel_stream_clear
    - Curl_bufq_free
    - memset
    linkageType: ''
    returnType: void
    signature: void cf_h3_proxy_ctx_clear(struct cf_h3_proxy_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_h3_proxy_ctx_clear
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:583,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cf_h3_proxy_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 4
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: cf_h3_proxy_ctx_free
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - curlx_free
    - cf_h3_proxy_ctx_clear
    linkageType: ''
    returnType: void
    signature: void cf_h3_proxy_ctx_free(struct cf_h3_proxy_ctx *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:601,1
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:605,1
    - Dst: Curl_bufq_initp
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:613,1
    - Dst: Curl_uint32_hash_set
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:618,1
    - Dst: h3_proxy_stream_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:619,1
    - Dst: Curl_uint32_hash_count
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:623,1
    - Dst: cf_ngtcp2_proxy_setup_keep_alive
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:624,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 588
    functionDepth: 4
    functionLinenumber: 588
    functionLinenumberEnd: 627
    functionName: h3_proxy_data_setup
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - h3_proxy_stream_ctx_free
    - Curl_bufq_initp
    - H3_PROXY_STREAM_CTX
    - cf_ngtcp2_proxy_setup_keep_alive
    - curlx_calloc
    - Curl_uint32_hash_count
    - Curl_uint32_hash_set
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_proxy_data_setup(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:642,1
    - Dst: Curl_bufq_skip
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:652,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:656,1
    - Dst: nghttp3_conn_resume_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - conn
    - stream_id
    - datalen
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 663
    functionName: cb_h3_proxy_acked_req_body
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - H3_PROXY_STREAM_CTX
    - Curl_bufq_skip
    - nghttp3_conn_resume_stream
    - Curl_bufq_len
    linkageType: ''
    returnType: int
    signature: "int cb_h3_proxy_acked_req_body(nghttp3_conn *conn, int64_t stream_id,\n
      \                                     uint64_t datalen, void *user_data,\n                                      void
      *stream_user_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:679,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:695,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:696,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:699,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:699,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - conn
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 707
    functionName: cb_h3_proxy_stream_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - H3_STREAM_ID
    - H3_PROXY_STREAM_CTX
    - CURL_TRC_CF
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: int
    signature: "int cb_h3_proxy_stream_close(nghttp3_conn *conn, int64_t stream_id,\n
      \                                   uint64_t app_error_code, void *user_data,\n
      \                                   void *stream_user_data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rlimit_active
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:718,1
    - Dst: Curl_rlimit_avail
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:725,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:725,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:728,1
    - Dst: CURLMIN
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:732,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:736,1
    - Dst: ngtcp2_conn_extend_max_stream_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:745,1
    - Dst: ngtcp2_conn_extend_max_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:746,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:750,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:753,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - cf
    - data
    - stream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_proxy_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 709
    functionDepth: 3
    functionLinenumber: 709
    functionLinenumberEnd: 757
    functionName: cf_h3_proxy_upd_rx_win
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_rlimit_avail
    - CURLMIN
    - ngtcp2_conn_extend_max_stream_offset
    - ngtcp2_conn_extend_max_offset
    - Curl_rlimit_active
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_h3_proxy_upd_rx_win(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   struct h3_proxy_stream_ctx
      *stream)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:775,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:781,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:783,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:785,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:797,1
    - Dst: cf_h3_proxy_upd_rx_win
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:799,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:801,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - conn
    - stream3_id
    - buf
    - buflen
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint8_t*
    - size_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 759
    functionDepth: 5
    functionLinenumber: 759
    functionLinenumberEnd: 803
    functionName: cb_h3_proxy_recv_data
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_multi_mark_dirty
    - H3_PROXY_STREAM_CTX
    - H3_STREAM_ID
    - Curl_bufq_write
    - CURL_TRC_CF
    - cf_h3_proxy_upd_rx_win
    linkageType: ''
    returnType: int
    signature: "int cb_h3_proxy_recv_data(nghttp3_conn *conn, int64_t stream3_id,\n
      \                                const uint8_t *buf, size_t buflen,\n                                 void
      *user_data, void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_extend_max_stream_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:820,1
    - Dst: ngtcp2_conn_extend_max_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - conn
    - stream_id
    - consumed
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - size_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 824
    functionName: cb_h3_proxy_deferred_consume
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - ngtcp2_conn_extend_max_offset
    - ngtcp2_conn_extend_max_stream_offset
    linkageType: ''
    returnType: int
    signature: "int cb_h3_proxy_deferred_consume(nghttp3_conn *conn, int64_t stream_id,\n
      \                                       size_t consumed, void *user_data,\n
      \                                       void *stream_user_data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_rcbuf_get_buf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:834,1
    - Dst: nghttp3_rcbuf_get_buf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:835,1
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:854,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:856,1
    - Dst: Curl_http_decode_status
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:871,1
    - Dst: Curl_http_resp_make
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:876,1
    - Dst: Curl_http_resp_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:880,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:885,1
    - Dst: Curl_dynhds_add
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:887,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 8
    argNames:
    - conn
    - stream_id
    - token
    - name
    - value
    - flags
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - int32_t
    - nghttp3_rcbuf*
    - nghttp3_rcbuf*
    - uint8_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 826
    functionDepth: 3
    functionLinenumber: 826
    functionLinenumberEnd: 895
    functionName: cb_h3_proxy_recv_header
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_dynhds_add
    - Curl_http_resp_make
    - H3_PROXY_STREAM_CTX
    - Curl_http_resp_free
    - nghttp3_rcbuf_get_buf
    - Curl_http_decode_status
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_h3_proxy_recv_header(nghttp3_conn *conn, int64_t stream_id,\n
      \                                  int32_t token, nghttp3_rcbuf *name,\n                                   nghttp3_rcbuf
      *value, uint8_t flags,\n                                   void *user_data,
      void *stream_user_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:918,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:920,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:928,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:941,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - conn
    - stream_id
    - fin
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 943
    functionName: cb_h3_proxy_end_headers
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - H3_PROXY_STREAM_CTX
    - CURL_TRC_CF
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: int
    signature: "int cb_h3_proxy_end_headers(nghttp3_conn *conn, int64_t stream_id,\n
      \                                  int fin, void *user_data,\n                                   void
      *stream_user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_shutdown_stream_read
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:957,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - conn
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 966
    functionName: cb_h3_proxy_stop_sending
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - ngtcp2_conn_shutdown_stream_read
    linkageType: ''
    returnType: int
    signature: "int cb_h3_proxy_stop_sending(nghttp3_conn *conn, int64_t stream_id,\n
      \                                   uint64_t app_error_code, void *user_data,\n
      \                                   void *stream_user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_shutdown_stream_write
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:982,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - conn
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 994
    functionName: cb_h3_proxy_reset_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - ngtcp2_conn_shutdown_stream_write
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_h3_proxy_reset_stream(nghttp3_conn *conn, int64_t stream_id,\n
      \                                   uint64_t app_error_code, void *user_data,\n
      \                                   void *stream_user_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1018,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1029,1
    - Dst: Curl_bufq_peek_at
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1032,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1042,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1047,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1054,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1061,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1062,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1066,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1068,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1070,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 7
    argNames:
    - conn
    - stream_id
    - vec
    - veccnt
    - pflags
    - user_data
    - stream_user_data
    argTypes:
    - nghttp3_conn*
    - int64_t
    - nghttp3_vec*
    - size_t
    - uint32_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1073
    functionName: cb_h3_read_data_for_tunnel_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - DEBUGASSERT
    - H3_PROXY_STREAM_CTX
    - Curl_bufq_peek_at
    - H3_STREAM_ID
    - CURL_TRC_CF
    linkageType: ''
    returnType: nghttp3_ssize
    signature: "nghttp3_ssize cb_h3_read_data_for_tunnel_stream(nghttp3_conn *conn,\n
      \                                                      int64_t stream_id,\n
      \                                                      nghttp3_vec *vec,\n                                                       size_t
      veccnt,\n                                                       uint32_t *pflags,\n
      \                                                      void *user_data,\n                                                       void
      *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mid
    - value
    - user_data
    argTypes:
    - uint32_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1119
    functionName: cf_ngtcp2_proxy_sfind
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - H3_STREAM_ID
    linkageType: ''
    returnType: bool
    signature: bool cf_ngtcp2_proxy_sfind(uint32_t mid, void *value, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_uint32_hash_visit
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - stream_id
    argTypes:
    - struct cf_ngtcp2_proxy_ctx*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1121
    functionDepth: 3
    functionLinenumber: 1121
    functionLinenumberEnd: 1129
    functionName: cf_ngtcp2_proxy_get_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_uint32_hash_visit
    linkageType: ''
    returnType: struct h3_proxy_stream_ctx
    signature: "struct h3_proxy_stream_ctx *cf_ngtcp2_proxy_get_stream(\n  struct
      cf_ngtcp2_proxy_ctx *ctx, int64_t stream_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_get_stream_user_data
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1135,1
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - stream_id
    argTypes:
    - struct cf_ngtcp2_proxy_ctx*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1141
    functionName: cf_ngtcp2_proxy_get_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - H3_PROXY_STREAM_CTX
    - ngtcp2_conn_get_stream_user_data
    linkageType: ''
    returnType: struct h3_proxy_stream_ctx
    signature: "struct h3_proxy_stream_ctx *cf_ngtcp2_proxy_get_stream(\n  struct
      cf_ngtcp2_proxy_ctx *ctx, int64_t stream_id)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_get_streams_uni_left
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1152,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1153,1
    - Dst: nghttp3_settings_default
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1157,1
    - Dst: nghttp3_conn_client_new
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1159,1
    - Dst: Curl_nghttp3_mem
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1162,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1165,1
    - Dst: ngtcp2_conn_open_uni_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1169,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1171,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1172,1
    - Dst: nghttp3_conn_bind_control_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1176,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1178,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1179,1
    - Dst: ngtcp2_conn_open_uni_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1183,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1185,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1186,1
    - Dst: ngtcp2_conn_open_uni_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1190,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1192,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1193,1
    - Dst: nghttp3_conn_bind_qpack_streams
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1197,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1200,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1200,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1206
    functionName: cf_ngtcp2_h3conn_init
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - ngtcp2_conn_open_uni_stream
    - nghttp3_conn_bind_control_stream
    - ngtcp2_strerror
    - failf
    - nghttp3_conn_client_new
    - nghttp3_conn_bind_qpack_streams
    - ngtcp2_conn_get_streams_uni_left
    - nghttp3_settings_default
    - CURL_TRC_CF
    - Curl_nghttp3_mem
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_h3conn_init(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1217,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1218,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1219,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1223,1
    - Dst: Curl_vquic_report_handshake
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1225,1
    - Dst: Curl_vquic_tls_verify_peer
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1227,1
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1230,1
    - Dst: ngtcp2_conn_get_remote_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1232,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1233,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1236,1
    - Dst: Curl_pgrsTimeWas
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1244,1
    - Dst: SSL_get_early_data_status
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1248,1
    - Dst: gnutls_session_get_flags
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1252,1
    - Dst: wolfSSL_get_early_data_status
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1258,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1261,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1265,1
    - Dst: Curl_pgrsEarlyData
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1267,1
    - Dst: cf_ngtcp2_h3conn_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1274,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - tconn
    - user_data
    argTypes:
    - ngtcp2_conn*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1208
    functionDepth: 11
    functionLinenumber: 1208
    functionLinenumberEnd: 1282
    functionName: cb_ngtcp2_proxy_handshake_completed
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - DEBUGASSERT
    - Curl_vquic_report_handshake
    - ngtcp2_conn_get_remote_transport_params
    - curlx_ptimediff_ms
    - wolfSSL_get_early_data_status
    - Curl_pgrsEarlyData
    - cf_ngtcp2_h3conn_init
    - Curl_trc_is_verbose
    - SSL_get_early_data_status
    - gnutls_session_get_flags
    - Curl_pgrsTimeWas
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    - Curl_vquic_tls_verify_peer
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_proxy_handshake_completed(ngtcp2_conn *tconn,\n                                               void
      *user_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_conn_read_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1299,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1301,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1303,1
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1306,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1308,1
    - Dst: ngtcp2_conn_extend_max_stream_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1319,1
    - Dst: ngtcp2_conn_extend_max_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 8
    argNames:
    - tconn
    - flags
    - stream_id
    - offset
    - buf
    - buflen
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - uint32_t
    - int64_t
    - uint64_t
    - uint8_t*
    - size_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1324
    functionName: cb_ngtcp2_recv_stream_data
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - H3_PROXY_STREAM_CTX
    - nghttp3_conn_read_stream
    - ngtcp2_conn_extend_max_stream_offset
    - ngtcp2_conn_extend_max_offset
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_recv_stream_data(ngtcp2_conn *tconn, uint32_t flags,\n
      \                                     int64_t stream_id, uint64_t offset,\n
      \                                     const uint8_t *buf, size_t buflen,\n                                      void
      *user_data, void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_conn_add_ack_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - tconn
    - stream_id
    - offset
    - datalen
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - int64_t
    - uint64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1348
    functionName: cb_ngtcp2_acked_stream_data_offset
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp3_conn_add_ack_offset
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_acked_stream_data_offset(ngtcp2_conn *tconn,\n                                              int64_t
      stream_id,\n                                              uint64_t offset,\n
      \                                             uint64_t datalen,\n                                              void
      *user_data,\n                                              void *stream_user_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1363,1
    - Dst: nghttp3_conn_close_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1371,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1372,1
    - Dst: cf_ngtcp2_proxy_h3_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - tconn
    - flags
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - uint32_t
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1350
    functionDepth: 2
    functionLinenumber: 1350
    functionLinenumberEnd: 1379
    functionName: cb_ngtcp2_stream_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - cf_ngtcp2_proxy_h3_err_set
    - CURL_TRC_CF
    - CF_DATA_CURRENT
    - nghttp3_conn_close_stream
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_stream_close(ngtcp2_conn *tconn, uint32_t flags,\n                                  int64_t
      stream_id, uint64_t app_error_code,\n                                  void
      *user_data, void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1388,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tconn
    - max_streams
    - user_data
    argTypes:
    - ngtcp2_conn*
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1396
    functionName: cb_ngtcp2_extend_max_local_streams_bidi
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_extend_max_local_streams_bidi(ngtcp2_conn *tconn,\n
      \                                                  uint64_t max_streams,\n                                                   void
      *user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1404,1
    - Dst: memset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - destlen
    - rand_ctx
    argTypes:
    - uint8_t*
    - size_t
    - ngtcp2_rand_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1410
    functionName: cb_ngtcp2_rand
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_rand
    - memset
    linkageType: ''
    returnType: void
    signature: "void cb_ngtcp2_rand(uint8_t *dest, size_t destlen,\n                           const
      ngtcp2_rand_ctx *rand_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1421,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - tconn
    - cid
    - token
    - cidlen
    - user_data
    argTypes:
    - ngtcp2_conn*
    - ngtcp2_cid*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1431
    functionName: cb_ngtcp2_get_new_connection_id
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_rand
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_get_new_connection_id(ngtcp2_conn *tconn, ngtcp2_cid
      *cid,\n                                           uint8_t *token, size_t cidlen,\n
      \                                          void *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1442,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - tconn
    - cid
    - token
    - cidlen
    - user_data
    argTypes:
    - ngtcp2_conn*
    - ngtcp2_cid*
    - struct ngtcp2_stateless_reset_token*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1452
    functionName: cb_ngtcp2_get_new_connection_id2
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_rand
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_get_new_connection_id2(ngtcp2_conn *tconn,\n  ngtcp2_cid
      *cid, struct ngtcp2_stateless_reset_token *token,\n  size_t cidlen, void *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_conn_shutdown_stream_read
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1469,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - tconn
    - stream_id
    - final_size
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - int64_t
    - uint64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1479
    functionName: cb_ngtcp2_stream_reset
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp3_conn_shutdown_stream_read
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_stream_reset(ngtcp2_conn *tconn, int64_t stream_id,\n
      \                                 uint64_t final_size, uint64_t app_error_code,\n
      \                                 void *user_data, void *stream_user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_conn_unblock_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1495,1
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1499,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1501,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - tconn
    - stream_id
    - max_data
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1481
    functionDepth: 2
    functionLinenumber: 1481
    functionLinenumberEnd: 1506
    functionName: cb_ngtcp2_extend_max_stream_data
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - H3_PROXY_STREAM_CTX
    - CURL_TRC_CF
    - nghttp3_conn_unblock_stream
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_extend_max_stream_data(ngtcp2_conn *tconn,\n                                            int64_t
      stream_id,\n                                            uint64_t max_data, void
      *user_data,\n                                            void *stream_user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nghttp3_conn_shutdown_stream_read
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - tconn
    - stream_id
    - app_error_code
    - user_data
    - stream_user_data
    argTypes:
    - ngtcp2_conn*
    - int64_t
    - uint64_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1526
    functionName: cb_ngtcp2_stream_stop_sending
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp3_conn_shutdown_stream_read
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_stream_stop_sending(ngtcp2_conn *tconn, int64_t stream_id,\n
      \                                        uint64_t app_error_code,\n                                         void
      *user_data,\n                                         void *stream_user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1535,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1541,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1542,1
    - Dst: cf_ngtcp2_h3conn_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - tconn
    - level
    - user_data
    argTypes:
    - ngtcp2_conn*
    - ngtcp2_encryption_level
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1528
    functionDepth: 2
    functionLinenumber: 1528
    functionLinenumberEnd: 1548
    functionName: cb_ngtcp2_recv_rx_key
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - cf_ngtcp2_h3conn_init
    - CF_DATA_CURRENT
    - DEBUGASSERT
    linkageType: ''
    returnType: int
    signature: "int cb_ngtcp2_recv_rx_key(ngtcp2_conn *tconn,\n                                 ngtcp2_encryption_level
      level,\n                                 void *user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1626,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1628,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1630,1
    - Dst: ngtcp2_conn_read_pkt
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1636,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1639,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1640,1
    - Dst: cf_ngtcp2_proxy_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - buf
    - buflen
    - gso_size
    - remote_addr
    - remote_addrlen
    - ecn
    - userp
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    - struct sockaddr_storage*
    - socklen_t
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1611
    functionDepth: 2
    functionLinenumber: 1611
    functionLinenumberEnd: 1651
    functionName: cf_ngtcp2_recv_pkts_proxy
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - ngtcp2_strerror
    - ngtcp2_conn_read_pkt
    - ngtcp2_addr_init
    - cf_ngtcp2_proxy_err_set
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_recv_pkts_proxy(const unsigned char *buf,\n                                          size_t
      buflen, size_t gso_size,\n                                          struct sockaddr_storage
      *remote_addr,\n                                          socklen_t remote_addrlen,
      int ecn,\n                                          void *userp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: proxy_pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1668,1
    - Dst: proxy_pktx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1672,1
    - Dst: ngtcp2_path_storage_zero
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1673,1
    - Dst: Curl_vquic_tls_before_recv
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1676,1
    - Dst: vquic_recv_packets
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - cf
    - data
    - pktx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct proxy_pkt_io_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1653
    functionDepth: 7
    functionLinenumber: 1653
    functionLinenumberEnd: 1685
    functionName: proxy_h3_progress_ingress_ngtcp2
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - vquic_recv_packets
    - proxy_pktx_init
    - Curl_vquic_tls_before_recv
    - proxy_pktx_update_time
    - ngtcp2_path_storage_zero
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode proxy_h3_progress_ingress_ngtcp2(struct Curl_cfilter *cf,\n
      \                                                struct Curl_easy *data,\n                                                 struct
      proxy_pkt_io_ctx *pktx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_conn_get_max_data_left
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1720,1
    - Dst: nghttp3_conn_writev_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1721,1
    - Dst: CURL_ARRAYSIZE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1722,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1724,1
    - Dst: nghttp3_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1725,1
    - Dst: cf_ngtcp2_proxy_h3_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1726,1
    - Dst: ngtcp2_conn_writev_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1733,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1745,1
    - Dst: nghttp3_conn_block_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1746,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1747,1
    - Dst: cf_ngtcp2_proxy_get_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1749,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1756,1
    - Dst: nghttp3_conn_shutdown_stream_write
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1757,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1763,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1767,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1768,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1769,1
    - Dst: cf_ngtcp2_proxy_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1770,1
    - Dst: nghttp3_conn_add_write_offset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1777,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1779,1
    - Dst: nghttp3_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1780,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 4
    argNames:
    - userp
    - buf
    - buflen
    - pnread
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1791
    functionName: proxy_read_pkt_to_send
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - nghttp3_conn_add_write_offset
    - nghttp3_strerror
    - failf
    - CURL_ARRAYSIZE
    - ngtcp2_conn_writev_stream
    - nghttp3_conn_writev_stream
    - DEBUGASSERT
    - ngtcp2_strerror
    - cf_ngtcp2_proxy_h3_err_set
    - ngtcp2_conn_get_max_data_left
    - cf_ngtcp2_proxy_get_stream
    - cf_ngtcp2_proxy_err_set
    - nghttp3_conn_shutdown_stream_write
    - CURL_TRC_CF
    - nghttp3_conn_block_stream
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode proxy_read_pkt_to_send(void *userp,\n                                       unsigned
      char *buf, size_t buflen,\n                                       size_t *pnread)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: proxy_pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1808,1
    - Dst: proxy_pktx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1812,1
    - Dst: ngtcp2_path_storage_zero
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1813,1
    - Dst: vquic_flush
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1816,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1819,1
    - Dst: ngtcp2_conn_get_max_tx_udp_payload_size
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1836,1
    - Dst: ngtcp2_conn_get_path_max_tx_udp_payload_size
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1838,1
    - Dst: ngtcp2_conn_get_send_quantum
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1839,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1840,1
    - Dst: Curl_bufq_sipn
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1844,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1851,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1855,1
    - Dst: vquic_send_tail_split
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1867,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1871,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1886,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1888,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1889,1
    - Dst: vquic_send
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1890,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1893,1
    - Dst: proxy_pktx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1898,1
    - Dst: ngtcp2_conn_update_pkt_tx_time
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1899,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 3
    argNames:
    - cf
    - data
    - pktx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct proxy_pkt_io_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1793
    functionDepth: 7
    functionLinenumber: 1793
    functionLinenumberEnd: 1902
    functionName: proxy_h3_progress_egress_ngtcp2
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_len
    - ngtcp2_conn_get_send_quantum
    - DEBUGASSERT
    - vquic_send_tail_split
    - Curl_bufq_sipn
    - ngtcp2_conn_get_path_max_tx_udp_payload_size
    - Curl_expire
    - proxy_pktx_init
    - CURL_TRC_CF
    - proxy_pktx_update_time
    - Curl_bufq_is_empty
    - vquic_send
    - ngtcp2_conn_get_max_tx_udp_payload_size
    - vquic_flush
    - ngtcp2_conn_update_pkt_tx_time
    - ngtcp2_path_storage_zero
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode proxy_h3_progress_egress_ngtcp2(struct Curl_cfilter *cf,\n
      \                                               struct Curl_easy *data,\n                                                struct
      proxy_pkt_io_ctx *pktx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_reset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1919,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1924,1
    - Dst: proxy_pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1926,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1932,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1933,1
    - Dst: proxy_h3_progress_egress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1934,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1935,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1936,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1941,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1947,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1947,1
    - Dst: ngtcp2_conn_write_connection_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1949,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1954,1
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1965,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1968,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1979,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1980,1
    - Dst: vquic_flush
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1981,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1983,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1988,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1994,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:1997,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2002,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1904
    functionDepth: 8
    functionLinenumber: 1904
    functionLinenumberEnd: 2004
    functionName: cf_ngtcp2_proxy_shutdown
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_bufq_reset
    - CF_DATA_RESTORE
    - DEBUGASSERT
    - ngtcp2_conn_write_connection_close
    - proxy_h3_progress_egress_ngtcp2
    - proxy_pktx_init
    - Curl_bufq_write
    - Curl_bufq_is_empty
    - vquic_flush
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_proxy_shutdown(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data, bool *done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ngtcp2_proxy_shutdown
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 2006
    functionDepth: 9
    functionLinenumber: 2006
    functionLinenumberEnd: 2011
    functionName: cf_ngtcp2_proxy_conn_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 2
    functionsReached:
    - cf_ngtcp2_proxy_shutdown
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_proxy_conn_close(struct Curl_cfilter *cf,\n                                       struct
      Curl_easy *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2020,1
    - Dst: cf_ngtcp2_proxy_conn_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2022,1
    - Dst: cf_ngtcp2_proxy_ctx_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2023,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2024,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2013
    functionDepth: 10
    functionLinenumber: 2013
    functionLinenumberEnd: 2028
    functionName: cf_ngtcp2_proxy_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - cf_ngtcp2_proxy_ctx_close
    - cf_ngtcp2_proxy_conn_close
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_proxy_close(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2036,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2037,1
    - Dst: nghttp3_conn_set_stream_user_data
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2045,1
    - Dst: ngtcp2_conn_set_stream_user_data
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2047,1
    - Dst: ngtcp2_conn_shutdown_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2053,1
    - Dst: proxy_h3_progress_egress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2055,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2057,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - cf
    - data
    - stream
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_proxy_stream_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2030
    functionDepth: 8
    functionLinenumber: 2030
    functionLinenumberEnd: 2060
    functionName: cf_ngtcp2_proxy_stream_close
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - ngtcp2_conn_shutdown_stream
    - ngtcp2_conn_set_stream_user_data
    - nghttp3_conn_set_stream_user_data
    - proxy_h3_progress_egress_ngtcp2
    - CURL_TRC_CF
    linkageType: ''
    returnType: void
    signature: "void cf_ngtcp2_proxy_stream_close(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data,\n                                         struct h3_proxy_stream_ctx
      *stream)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: proxy_pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2082,1
    - Dst: proxy_pktx_update_time
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2086,1
    - Dst: ngtcp2_conn_get_expiry
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2089,1
    - Dst: ngtcp2_conn_handle_expiry
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2093,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2095,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2096,1
    - Dst: cf_ngtcp2_proxy_err_set
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2097,1
    - Dst: proxy_h3_progress_ingress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2100,1
    - Dst: proxy_h3_progress_egress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2103,1
    - Dst: ngtcp2_conn_get_expiry
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2107,1
    - Dst: Curl_expire
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - cf
    - data
    - pktx
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct proxy_pkt_io_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2069
    functionDepth: 8
    functionLinenumber: 2069
    functionLinenumberEnd: 2120
    functionName: check_and_set_expiry_ngtcp2
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - ngtcp2_conn_get_expiry
    - ngtcp2_strerror
    - failf
    - proxy_h3_progress_ingress_ngtcp2
    - proxy_h3_progress_egress_ngtcp2
    - proxy_pktx_init
    - cf_ngtcp2_proxy_err_set
    - Curl_expire
    - ngtcp2_conn_handle_expiry
    - proxy_pktx_update_time
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode check_and_set_expiry_ngtcp2(struct Curl_cfilter *cf,\n                                            struct
      Curl_easy *data,\n                                            struct proxy_pkt_io_ctx
      *pktx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2132,1
    - Dst: connclose
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2134,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2140,1
    - Dst: vquic_h3_err_str
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2143,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2147,1
    - Dst: vquic_h3_err_str
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2149,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2154,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - cf
    - data
    - stream
    - err
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_proxy_stream_ctx*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2122
    functionDepth: 1
    functionLinenumber: 2122
    functionLinenumberEnd: 2165
    functionName: proxy_recv_closed_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - vquic_h3_err_str
    - failf
    - infof
    - connclose
    - CURL_TRC_CF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t proxy_recv_closed_stream(struct Curl_cfilter *cf,\n                                        struct
      Curl_easy *data,\n                                        struct h3_proxy_stream_ctx
      *stream,\n                                        CURLcode *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - proxy_ctx
    - ctx
    - data
    argTypes:
    - struct cf_h3_proxy_ctx*
    - struct cf_ngtcp2_proxy_ctx*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2167
    functionDepth: 1
    functionLinenumber: 2167
    functionLinenumberEnd: 2182
    functionName: h3_proxy_resolve_send_stream
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - H3_PROXY_STREAM_CTX
    linkageType: ''
    returnType: struct h3_proxy_stream_ctx
    signature: "struct h3_proxy_stream_ctx *h3_proxy_resolve_send_stream(\n  struct
      cf_h3_proxy_ctx *proxy_ctx,\n  struct cf_ngtcp2_proxy_ctx *ctx,\n  struct Curl_easy
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_write
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - data
    - stream
    - buf
    - len
    - pnwritten
    argTypes:
    - struct Curl_easy*
    - struct h3_proxy_stream_ctx*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2184
    functionDepth: 5
    functionLinenumber: 2184
    functionLinenumberEnd: 2195
    functionName: h3_proxy_sendbuf_add
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_bufq_write
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_proxy_sendbuf_add(struct Curl_easy *data,\n                                     struct
      h3_proxy_stream_ctx *stream,\n                                     const uint8_t
      *buf, size_t len,\n                                     size_t *pnwritten)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2209,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2210,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2211,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2212,1
    - Dst: proxy_pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2213,1
    - Dst: proxy_h3_progress_ingress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2223,1
    - Dst: h3_proxy_resolve_send_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2227,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2245,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2251,1
    - Dst: h3_proxy_sendbuf_add
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2257,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2258,1
    - Dst: nghttp3_conn_resume_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2263,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2269,1
    - Dst: proxy_h3_progress_egress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2270,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2273,1
    - Dst: check_and_set_expiry_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2274,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2276,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2278,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2197
    functionDepth: 9
    functionLinenumber: 2197
    functionLinenumberEnd: 2280
    functionName: cf_h3_proxy_send
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - Curl_1st_fatal
    - DEBUGASSERT
    - proxy_h3_progress_ingress_ngtcp2
    - h3_proxy_resolve_send_stream
    - check_and_set_expiry_ngtcp2
    - proxy_h3_progress_egress_ngtcp2
    - proxy_pktx_init
    - nghttp3_conn_resume_stream
    - h3_proxy_sendbuf_add
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h3_proxy_send(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 const uint8_t *buf, size_t
      len,\n                                 bool eos, size_t *pnwritten)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2289,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2294,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2295,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2296,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2297,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2298,1
    - Dst: proxy_pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2307,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2314,1
    - Dst: Curl_bufq_cread
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2315,1
    - Dst: proxy_h3_progress_ingress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2320,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2325,1
    - Dst: Curl_bufq_cread
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2326,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2328,1
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2335,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2339,1
    - Dst: cf_ngtcp2_proxy_stream_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2340,1
    - Dst: proxy_recv_closed_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2345,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2354,1
    - Dst: proxy_h3_progress_egress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2355,1
    - Dst: Curl_1st_fatal
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2356,1
    - Dst: check_and_set_expiry_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2357,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2359,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2361,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2283
    functionDepth: 9
    functionLinenumber: 2283
    functionLinenumberEnd: 2363
    functionName: cf_h3_proxy_recv
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - proxy_recv_closed_stream
    - Curl_1st_fatal
    - DEBUGASSERT
    - Curl_multi_mark_dirty
    - H3_PROXY_STREAM_CTX
    - proxy_h3_progress_ingress_ngtcp2
    - Curl_bufq_cread
    - check_and_set_expiry_ngtcp2
    - proxy_h3_progress_egress_ngtcp2
    - proxy_pktx_init
    - Curl_bufq_is_empty
    - CURL_TRC_CF
    - cf_ngtcp2_proxy_stream_close
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h3_proxy_recv(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 char *buf, size_t len, size_t
      *pnread)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Curl_dynhds_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2384,1
    - Dst: Curl_http_req_to_h2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2385,1
    - Dst: h3_proxy_data_setup
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2389,1
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2398,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2400,1
    - Dst: Curl_dynhds_count
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2406,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2407,1
    - Dst: Curl_dynhds_getn
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2414,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2427,1
    - Dst: ngtcp2_conn_open_bidi_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2428,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2430,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2430,1
    - Dst: ngtcp2_conn_set_stream_user_data
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2438,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2440,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2440,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2445,1
    - Dst: nghttp3_conn_submit_request
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2454,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2454,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2460,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2461,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2464,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2465,1
    - Dst: nghttp3_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2465,1
    - Dst: Curl_trc_is_verbose
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2472,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2473,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2474,1
    - Dst: Curl_bufref_ptr
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2475,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2479,1
    - Dst: Curl_dynhds_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2480,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2482,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 84
    argCount: 5
    argNames:
    - pstream_id
    - cf
    - data
    - req
    - err
    argTypes:
    - int64_t*
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct httpreq*
    - CURLcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2365
    functionDepth: 5
    functionLinenumber: 2365
    functionLinenumberEnd: 2484
    functionName: proxy_h3_submit
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - DEBUGASSERT
    - ngtcp2_conn_open_bidi_stream
    - CURL_TRC_CF
    - h3_proxy_data_setup
    - Curl_http_req_to_h2
    - ngtcp2_strerror
    - H3_PROXY_STREAM_CTX
    - Curl_dynhds_count
    - H3_STREAM_ID
    - Curl_bufref_ptr
    - Curl_dynhds_free
    - failf
    - ngtcp2_conn_set_stream_user_data
    - Curl_trc_is_verbose
    - curlx_malloc
    - curlx_free
    - nghttp3_conn_submit_request
    - nghttp3_strerror
    - Curl_dynhds_getn
    - Curl_dynhds_init
    linkageType: ''
    returnType: void
    signature: "void proxy_h3_submit(int64_t *pstream_id,\n                            struct
      Curl_cfilter *cf,\n                            struct Curl_easy *data,\n                            struct
      httpreq *req,\n                            CURLcode *err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2496,1
    - Dst: ngtcp2_conn_get_remote_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2506,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2509,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2509,1
    - Dst: struct Curl_cfilter*::next::cft::is_alive
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2518,1
    - Dst: proxy_h3_progress_ingress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2532,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2533,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2538,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 3
    argNames:
    - cf
    - data
    - input_pending
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2540
      start: 2486
    functionDepth: 8
    functionLinenumber: 2486
    functionLinenumberEnd: 2540
    functionName: cf_h3_proxy_is_alive
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_pgrs_now
    - CF_DATA_RESTORE
    - ngtcp2_conn_get_remote_transport_params
    - struct Curl_cfilter*::next::cft::is_alive
    - proxy_h3_progress_ingress_ngtcp2
    - curlx_ptimediff_ms
    - CURL_TRC_CF
    linkageType: ''
    returnType: bool
    signature: "bool cf_h3_proxy_is_alive(struct Curl_cfilter *cf,\n                                 struct
      Curl_easy *data,\n                                 bool *input_pending)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2552,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2557,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2558,1
    - Dst: Curl_multi_max_concurrent_streams
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2575,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2576,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2579,1
    - Dst: curlx_ptimediff_ms
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2584,1
    - Dst: Curl_vquic_tls_get_ssl_info
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2609,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2616,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2624,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2542
    functionDepth: 2
    functionLinenumber: 2542
    functionLinenumberEnd: 2626
    functionName: cf_ngtcp2_proxy_query
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - Curl_vquic_tls_get_ssl_info
    - DEBUGASSERT
    - Curl_multi_max_concurrent_streams
    - struct Curl_cfilter*::next::cft::query
    - curlx_ptimediff_ms
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_proxy_query(struct Curl_cfilter *cf,\n                                      struct
      Curl_easy *data,\n                                      int query, int *pres1,
      void *pres2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_pollset_check
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2640,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2641,1
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2645,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2649,1
    - Dst: ngtcp2_conn_get_cwnd_left
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2651,1
    - Dst: ngtcp2_conn_get_max_data_left
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2652,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2653,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2657,1
    - Dst: Curl_pollset_set
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2659,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2660,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2628
    functionDepth: 3
    functionLinenumber: 2628
    functionLinenumberEnd: 2663
    functionName: cf_ngtcp2_proxy_adjust_pollset
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - Curl_pollset_check
    - H3_PROXY_STREAM_CTX
    - H3_STREAM_ID
    - ngtcp2_conn_get_max_data_left
    - Curl_pollset_set
    - Curl_bufq_is_empty
    - ngtcp2_conn_get_cwnd_left
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_proxy_adjust_pollset(struct Curl_cfilter *cf,\n
      \                                              struct Curl_easy *data,\n                                               struct
      easy_pollset *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2673,1
    - Dst: cf_ngtcp2_proxy_query
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - cf
    - data
    - query
    - pres1
    - pres2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2665
    functionDepth: 3
    functionLinenumber: 2665
    functionLinenumberEnd: 2676
    functionName: cf_h3_proxy_query
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::query
    - cf_ngtcp2_proxy_query
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h3_proxy_query(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   int query, int *pres1,
      void *pres2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::adjust_pollset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2686,1
    - Dst: cf_ngtcp2_proxy_adjust_pollset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cf
    - data
    - ps
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct easy_pollset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2678
    functionDepth: 4
    functionLinenumber: 2678
    functionLinenumberEnd: 2689
    functionName: cf_h3_proxy_adjust_pollset
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - cf_ngtcp2_proxy_adjust_pollset
    - struct Curl_cfilter*::next::cft::adjust_pollset
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h3_proxy_adjust_pollset(struct Curl_cfilter *cf,\n                                           struct
      Curl_easy *data,\n                                           struct easy_pollset
      *ps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2697,1
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2698,1
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2691
    functionDepth: 2
    functionLinenumber: 2691
    functionLinenumberEnd: 2702
    functionName: cf_h3_proxy_data_pending
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::has_data_pending
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: bool
    signature: "bool cf_h3_proxy_data_pending(struct Curl_cfilter *cf,\n                                     const
      struct Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_app_data
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2713,1
    - Dst: CF_DATA_CURRENT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2717,1
    - Dst: ngtcp2_conn_encode_0rtt_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2725,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2728,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2729,1
    - Dst: Curl_ossl_add_session
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2735,1
    - Dst: SSL_version
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2736,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ssl
    - ssl_sessionid
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2705
    functionDepth: 11
    functionLinenumber: 2705
    functionLinenumberEnd: 2739
    functionName: proxy_quic_ossl_new_session_cb
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_ossl_add_session
    - ngtcp2_strerror
    - ngtcp2_conn_encode_0rtt_transport_params
    - SSL_get_app_data
    - SSL_version
    - CF_DATA_CURRENT
    - CURL_TRC_CF
    linkageType: ''
    returnType: int
    signature: int proxy_quic_ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ngtcp2_crypto_boringssl_configure_client_context
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2750,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2752,1
    - Dst: ngtcp2_crypto_quictls_configure_client_context
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2758,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2759,1
    - Dst: Curl_ssl_scache_use
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2763,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2764,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2767,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - cf
    - data
    - user_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2742
    functionDepth: 3
    functionLinenumber: 2742
    functionLinenumberEnd: 2775
    functionName: cf_ngtcp2_proxy_tls_ctx_setup
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_ssl_scache_use
    - failf
    - SSL_CTX_sess_set_new_cb
    - ngtcp2_crypto_quictls_configure_client_context
    - SSL_CTX_set_session_cache_mode
    - ngtcp2_crypto_boringssl_configure_client_context
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_proxy_tls_ctx_setup(struct Curl_cfilter *cf,\n
      \                                             struct Curl_easy *data,\n                                              void
      *user_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_record_get_max_early_data_size
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2793,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2805,1
    - Dst: Curl_alpn_contains_proto
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2807,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2808,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2811,1
    - Dst: ngtcp2_conn_decode_and_set_0rtt_transport_params
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2815,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2818,1
    - Dst: ngtcp2_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2819,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2821,1
    - Dst: cf_ngtcp2_h3conn_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2823,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 5
    argNames:
    - cf
    - data
    - alpns
    - scs
    - do_early_data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct alpn_spec*
    - struct Curl_ssl_session*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2838
      start: 2777
    functionDepth: 2
    functionLinenumber: 2777
    functionLinenumberEnd: 2838
    functionName: cf_ngtcp2_proxy_on_session_reuse
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - ngtcp2_strerror
    - gnutls_record_get_max_early_data_size
    - infof
    - Curl_alpn_contains_proto
    - cf_ngtcp2_h3conn_init
    - CURL_TRC_CF
    - ngtcp2_conn_decode_and_set_0rtt_transport_params
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_ngtcp2_proxy_on_session_reuse(struct Curl_cfilter *cf,\n
      \                                                struct Curl_easy *data,\n                                                 struct
      alpn_spec *alpns,\n                                                 struct Curl_ssl_session
      *scs,\n                                                 bool *do_early_data)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2853,1
    - Dst: cf_ngtcp2_proxy_ctx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2858,1
    - Dst: memset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2860,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2862,1
    - Dst: h3_tunnel_stream_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2865,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2869,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2870,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2874,1
    - Dst: Curl_rand
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2879,1
    - Dst: Curl_qlogdir
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2883,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2888,1
    - Dst: Curl_conn_cf_get_socket
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2891,1
    - Dst: struct Curl_cfilter*::next::cft::query
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2895,1
    - Dst: CURL_UNCONST
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2896,1
    - Dst: getsockname
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2901,1
    - Dst: vquic_ctx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2907,1
    - Dst: proxy_pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2915,1
    - Dst: quic_settings_proxy
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2916,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2918,1
    - Dst: ngtcp2_addr_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2921,1
    - Dst: ngtcp2_conn_client_new
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2924,1
    - Dst: Curl_ngtcp2_mem
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2928,1
    - Dst: Curl_vquic_tls_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2937,1
    - Dst: ngtcp2_crypto_ossl_ctx_new
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2945,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2946,1
    - Dst: ngtcp2_conn_set_tls_native_handle
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2950,1
    - Dst: ngtcp2_crypto_ossl_configure_client_session
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2951,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2952,1
    - Dst: SSL_set_quic_use_legacy_codepoint
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2957,1
    - Dst: ngtcp2_conn_set_tls_native_handle
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2958,1
    - Dst: ngtcp2_ccerr_default
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2963,1
    - Dst: cf_ngtcp2_proxy_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2971,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2974,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 97
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2840
    functionDepth: 9
    functionLinenumber: 2840
    functionLinenumberEnd: 2976
    functionName: cf_h3_proxy_ctx_init
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - h3_tunnel_stream_init
    - DEBUGASSERT
    - getsockname
    - cf_ngtcp2_proxy_ctx_init
    - CURL_UNCONST
    - quic_settings_proxy
    - CURL_TRC_CF
    - ngtcp2_conn_client_new
    - Curl_ngtcp2_mem
    - Curl_qlogdir
    - cf_ngtcp2_proxy_ctx_free
    - Curl_rand
    - SSL_set_quic_use_legacy_codepoint
    - failf
    - Curl_vquic_tls_init
    - ngtcp2_addr_init
    - curlx_calloc
    - memset
    - ngtcp2_crypto_ossl_ctx_new
    - ngtcp2_ccerr_default
    - ngtcp2_crypto_ossl_configure_client_session
    - ngtcp2_conn_set_tls_native_handle
    - proxy_pktx_init
    - Curl_conn_cf_get_socket
    - struct Curl_cfilter*::next::cft::query
    - vquic_ctx_init
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h3_proxy_ctx_init(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_proxy_create_tunnel_request
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2986,1
    - Dst: Curl_creader_set_null
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2992,1
    - Dst: proxy_h3_submit
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:2996,1
    - Dst: Curl_http_req_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3000,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3002,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3004
      start: 2978
    functionDepth: 9
    functionLinenumber: 2978
    functionLinenumberEnd: 3004
    functionName: h3_submit_CONNECT
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - failf
    - Curl_http_req_free
    - Curl_http_proxy_create_tunnel_request
    - Curl_creader_set_null
    - proxy_h3_submit
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_submit_CONNECT(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  struct h3_tunnel_stream
      *ts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Curl_http_proxy_inspect_tunnel_response
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3014,1
    - Dst: h3_tunnel_go_state
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3020,1
    - Dst: h3_tunnel_go_state
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3024,1
    - Dst: h3_tunnel_go_state
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3029,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 3006
    functionDepth: 4
    functionLinenumber: 3006
    functionLinenumberEnd: 3034
    functionName: h3_proxy_inspect_response
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_http_proxy_inspect_tunnel_response
    - h3_tunnel_go_state
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_proxy_inspect_response(struct Curl_cfilter *cf,\n                                          struct
      Curl_easy *data,\n                                          struct h3_tunnel_stream
      *ts)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_connect
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3052,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3059,1
    - Dst: Curl_conn_get_destination
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3060,1
    - Dst: cf_h3_proxy_ctx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3064,1
    - Dst: proxy_pktx_init
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3070,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3072,1
    - Dst: Curl_pgrs_now
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3075,1
    - Dst: proxy_h3_progress_egress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3080,1
    - Dst: proxy_h3_progress_ingress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3085,1
    - Dst: proxy_h3_progress_egress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3089,1
    - Dst: ngtcp2_conn_get_handshake_completed
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3093,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3096,1
    - Dst: connkeep
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3099,1
    - Dst: ngtcp2_conn_in_draining_period
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3106,1
    - Dst: ngtcp2_conn_get_ccerr
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3108,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3112,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3116,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3120,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3124,1
    - Dst: Curl_conn_cf_get_ip_info
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3138,1
    - Dst: infof
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3139,1
    - Dst: curl_easy_strerror
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3140,1
    - Dst: check_and_set_expiry_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3144,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3147,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3148,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 81
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3150
      start: 3036
    functionDepth: 10
    functionLinenumber: 3036
    functionLinenumberEnd: 3150
    functionName: cf_h3_proxy_quic_connect
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_pgrs_now
    - CF_DATA_RESTORE
    - cf_h3_proxy_ctx_init
    - ngtcp2_conn_in_draining_period
    - CURL_TRC_CF
    - Curl_conn_cf_connect
    - connkeep
    - Curl_conn_cf_get_ip_info
    - ngtcp2_conn_get_ccerr
    - Curl_peer_link
    - curl_easy_strerror
    - check_and_set_expiry_ngtcp2
    - CF_DATA_SAVE
    - Curl_conn_get_destination
    - ngtcp2_conn_get_handshake_completed
    - proxy_h3_progress_ingress_ngtcp2
    - infof
    - proxy_h3_progress_egress_ngtcp2
    - proxy_pktx_init
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h3_proxy_quic_connect(struct Curl_cfilter *cf,\n                                         struct
      Curl_easy *data,\n                                         bool *done)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3159,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3160,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3165,1
    - Dst: h3_submit_CONNECT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3166,1
    - Dst: h3_tunnel_go_state
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3169,1
    - Dst: proxy_h3_progress_egress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3172,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3175,1
    - Dst: proxy_h3_progress_ingress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3180,1
    - Dst: proxy_h3_progress_egress_ngtcp2
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3183,1
    - Dst: h3_tunnel_go_state
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3185,1
    - Dst: h3_tunnel_go_state
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3191,1
    - Dst: FALLTHROUGH
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3199,1
    - Dst: DEBUGASSERT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3202,1
    - Dst: h3_proxy_inspect_response
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3203,1
    - Dst: h3_tunnel_go_state
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3223,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 3
    argNames:
    - cf
    - data
    - ts
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct h3_tunnel_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3152
    functionDepth: 10
    functionLinenumber: 3152
    functionLinenumberEnd: 3225
    functionName: H3_CONNECT
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - h3_proxy_inspect_response
    - DEBUGASSERT
    - proxy_h3_progress_ingress_ngtcp2
    - h3_tunnel_go_state
    - proxy_h3_progress_egress_ngtcp2
    - h3_submit_CONNECT
    - FALLTHROUGH
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode H3_CONNECT(struct Curl_cfilter *cf,\n                           struct
      Curl_easy *data,\n                           struct h3_tunnel_stream *ts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Curl_timeleft_ms
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3245,1
    - Dst: failf
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3247,1
    - Dst: cf_h3_proxy_quic_connect
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3252,1
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3256,1
    - Dst: H3_CONNECT
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3262,1
    - Dst: Curl_req_soft_reset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3269,1
    - Dst: Curl_client_reset
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3270,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3274,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3276
      start: 3227
    functionDepth: 11
    functionLinenumber: 3227
    functionLinenumberEnd: 3276
    functionName: cf_h3_proxy_connect
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - CF_DATA_RESTORE
    - failf
    - H3_CONNECT
    - Curl_req_soft_reset
    - cf_h3_proxy_quic_connect
    - Curl_client_reset
    - Curl_timeleft_ms
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h3_proxy_connect(struct Curl_cfilter *cf,\n                                    struct
      Curl_easy *data, bool *done)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_multi_mark_dirty
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cf
    - data
    - pause
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3288
      start: 3278
    functionDepth: 2
    functionLinenumber: 3278
    functionLinenumberEnd: 3288
    functionName: h3_proxy_data_pause
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - Curl_multi_mark_dirty
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode h3_proxy_data_pause(struct Curl_cfilter *cf,\n                              struct
      Curl_easy *data,\n                              bool pause)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3299,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3301,1
    - Dst: cf_ngtcp2_proxy_stream_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3302,1
    - Dst: Curl_uint32_hash_remove
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3303,1
    - Dst: Curl_uint32_hash_count
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3304,1
    - Dst: cf_ngtcp2_proxy_setup_keep_alive
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3307
      start: 3290
    functionDepth: 9
    functionLinenumber: 3290
    functionLinenumberEnd: 3307
    functionName: h3_proxy_data_done
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - H3_PROXY_STREAM_CTX
    - cf_ngtcp2_proxy_setup_keep_alive
    - Curl_uint32_hash_count
    - Curl_uint32_hash_remove
    - CURL_TRC_CF
    - cf_ngtcp2_proxy_stream_close
    linkageType: ''
    returnType: void
    signature: void h3_proxy_data_done(struct Curl_cfilter *cf, struct Curl_easy *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CF_DATA_SAVE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3317,1
    - Dst: h3_proxy_data_pause
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3325,1
    - Dst: h3_proxy_data_done
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3328,1
    - Dst: H3_PROXY_STREAM_CTX
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3334,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3336,1
    - Dst: Curl_bufq_len
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3338,1
    - Dst: nghttp3_conn_resume_stream
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3340,1
    - Dst: H3_STREAM_ID
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3340,1
    - Dst: Curl_conn_set_multiplex
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3348,1
    - Dst: CF_DATA_RESTORE
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3355,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 5
    argNames:
    - cf
    - data
    - event
    - arg1
    - arg2
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3309
    functionDepth: 10
    functionLinenumber: 3309
    functionLinenumberEnd: 3357
    functionName: cf_h3_proxy_cntrl
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - CF_DATA_SAVE
    - Curl_bufq_len
    - CF_DATA_RESTORE
    - h3_proxy_data_done
    - H3_PROXY_STREAM_CTX
    - H3_STREAM_ID
    - Curl_conn_set_multiplex
    - nghttp3_conn_resume_stream
    - h3_proxy_data_pause
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h3_proxy_cntrl(struct Curl_cfilter *cf,\n                                  struct
      Curl_easy *data,\n                                  int event, int arg1, void
      *arg2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3367,1
    - Dst: cf_ngtcp2_proxy_close
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3368,1
    - Dst: cf_ngtcp2_proxy_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3369,1
    - Dst: cf_h3_proxy_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3359
    functionDepth: 11
    functionLinenumber: 3359
    functionLinenumberEnd: 3375
    functionName: cf_h3_proxy_destroy
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - cf_ngtcp2_proxy_close
    - cf_h3_proxy_ctx_free
    - CURL_TRC_CF
    - cf_ngtcp2_proxy_ctx_free
    linkageType: ''
    returnType: void
    signature: "void cf_h3_proxy_destroy(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_ngtcp2_proxy_shutdown
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3377
    functionDepth: 9
    functionLinenumber: 3377
    functionLinenumberEnd: 3381
    functionName: cf_h3_proxy_shutdown
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 0
    functionsReached:
    - cf_ngtcp2_proxy_shutdown
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode cf_h3_proxy_shutdown(struct Curl_cfilter *cf,\n                                     struct
      Curl_easy *data, bool *done)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3414,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3421,1
    - Dst: Curl_cf_udp_create
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3426,1
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3437,1
    - Dst: cf_h3_proxy_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3439,1
    - Dst: CURL_TRC_CF
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3442,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 6
    argNames:
    - pcf
    - data
    - conn
    - addr
    - transport_in
    - transport_out
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    - struct Curl_sockaddr_ex*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3444
      start: 3400
    functionDepth: 5
    functionLinenumber: 3400
    functionLinenumberEnd: 3444
    functionName: Curl_cf_ngtcp2_proxy_create
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 1
    functionsReached:
    - Curl_cf_create
    - Curl_conn_cf_discard_chain
    - curlx_calloc
    - Curl_cf_udp_create
    - cf_h3_proxy_ctx_free
    - CURL_TRC_CF
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_ngtcp2_proxy_create(struct Curl_cfilter **pcf,\n
      \                                    struct Curl_easy *data,\n                                     struct
      connectdata *conn,\n                                     struct Curl_sockaddr_ex
      *addr,\n                                     uint8_t transport_in,\n                                     uint8_t
      transport_out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3456,1
    - Dst: Curl_peer_link
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3459,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3462,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3469,1
    - Dst: Curl_conn_cf_discard_chain
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3474,1
    - Dst: cf_h3_proxy_ctx_free
      Src: /src/curl/lib/vquic/cf-ngtcp2-proxy.c:3476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - cf_at
    - data
    - dest
    - udp_tunnel
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - struct Curl_peer*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3479
      start: 3446
    functionDepth: 5
    functionLinenumber: 3446
    functionLinenumberEnd: 3479
    functionName: Curl_cf_ngtcp2_proxy_insert_after
    functionSourceFile: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    functionUses: 1
    functionsReached:
    - Curl_cf_create
    - Curl_peer_link
    - Curl_conn_cf_discard_chain
    - Curl_conn_cf_insert_after
    - curlx_calloc
    - cf_h3_proxy_ctx_free
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_ngtcp2_proxy_insert_after(struct Curl_cfilter *cf_at,\n
      \                                          struct Curl_easy *data,\n                                           struct
      Curl_peer *dest,\n                                           bool udp_tunnel)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/vquic/cf-capsule.c:56,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-capsule.c:57,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vquic/cf-capsule.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: capsule_cf_destroy
    functionSourceFile: /src/curl/lib/vquic/cf-capsule.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - curlx_free
    - Curl_bufq_free
    linkageType: ''
    returnType: void
    signature: "void capsule_cf_destroy(struct Curl_cfilter *cf,\n                               struct
      Curl_easy *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct Curl_cfilter*::next::cft::do_connect
      Src: /src/curl/lib/vquic/cf-capsule.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - cf
    - data
    - done
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: capsule_cf_connect
    functionSourceFile: /src/curl/lib/vquic/cf-capsule.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::do_connect
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode capsule_cf_connect(struct Curl_cfilter *cf,\n                                   struct
      Curl_easy *data,\n                                   bool *done)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vquic/cf-capsule.c:98,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vquic/cf-capsule.c:102,1
    - Dst: curlx_safefree
      Src: /src/curl/lib/vquic/cf-capsule.c:110,1
    - Dst: Curl_capsule_encap_udp_datagram
      Src: /src/curl/lib/vquic/cf-capsule.c:115,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vquic/cf-capsule.c:117,1
    - Dst: curlx_dyn_len
      Src: /src/curl/lib/vquic/cf-capsule.c:120,1
    - Dst: Curl_conn_cf_send
      Src: /src/curl/lib/vquic/cf-capsule.c:122,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vquic/cf-capsule.c:123,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vquic/cf-capsule.c:126,1
    - Dst: curlx_malloc
      Src: /src/curl/lib/vquic/cf-capsule.c:133,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vquic/cf-capsule.c:135,1
    - Dst: memcpy
      Src: /src/curl/lib/vquic/cf-capsule.c:138,1
    - Dst: curlx_dyn_ptr
      Src: /src/curl/lib/vquic/cf-capsule.c:138,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vquic/cf-capsule.c:142,1
    - Dst: curlx_dyn_free
      Src: /src/curl/lib/vquic/cf-capsule.c:147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 6
    argNames:
    - cf
    - data
    - buf
    - len
    - eos
    - pnwritten
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - uint8_t*
    - size_t
    - bool
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 150
    functionName: capsule_cf_send
    functionSourceFile: /src/curl/lib/vquic/cf-capsule.c
    functionUses: 0
    functionsReached:
    - curlx_safefree
    - memcpy
    - curlx_dyn_free
    - curlx_dyn_len
    - Curl_conn_cf_send
    - curlx_dyn_ptr
    - curlx_malloc
    - Curl_capsule_encap_udp_datagram
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode capsule_cf_send(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                const uint8_t *buf, size_t
      len,\n                                bool eos, size_t *pnwritten)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_full
      Src: /src/curl/lib/vquic/cf-capsule.c:164,1
    - Dst: Curl_cf_recv_bufq
      Src: /src/curl/lib/vquic/cf-capsule.c:165,1
    - Dst: Curl_capsule_process_udp_raw
      Src: /src/curl/lib/vquic/cf-capsule.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - cf
    - data
    - buf
    - len
    - pnread
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 179
    functionName: capsule_cf_recv
    functionSourceFile: /src/curl/lib/vquic/cf-capsule.c
    functionUses: 0
    functionsReached:
    - Curl_capsule_process_udp_raw
    - Curl_bufq_is_full
    - Curl_cf_recv_bufq
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode capsule_cf_recv(struct Curl_cfilter *cf,\n                                struct
      Curl_easy *data,\n                                char *buf, size_t len,\n                                size_t
      *pnread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_bufq_is_empty
      Src: /src/curl/lib/vquic/cf-capsule.c:186,1
    - Dst: struct Curl_cfilter*::next::cft::has_data_pending
      Src: /src/curl/lib/vquic/cf-capsule.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: capsule_cf_data_pending
    functionSourceFile: /src/curl/lib/vquic/cf-capsule.c
    functionUses: 0
    functionsReached:
    - struct Curl_cfilter*::next::cft::has_data_pending
    - Curl_bufq_is_empty
    linkageType: ''
    returnType: bool
    signature: "bool capsule_cf_data_pending(struct Curl_cfilter *cf,\n                                    const
      struct Curl_easy *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curlx_calloc
      Src: /src/curl/lib/vquic/cf-capsule.c:219,1
    - Dst: Curl_bufq_init2
      Src: /src/curl/lib/vquic/cf-capsule.c:225,1
    - Dst: Curl_cf_create
      Src: /src/curl/lib/vquic/cf-capsule.c:228,1
    - Dst: Curl_bufq_free
      Src: /src/curl/lib/vquic/cf-capsule.c:233,1
    - Dst: curlx_free
      Src: /src/curl/lib/vquic/cf-capsule.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - pcf
    - data
    - conn
    argTypes:
    - struct Curl_cfilter**
    - struct Curl_easy*
    - struct connectdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 237
    functionName: Curl_cf_capsule_create
    functionSourceFile: /src/curl/lib/vquic/cf-capsule.c
    functionUses: 0
    functionsReached:
    - Curl_cf_create
    - curlx_free
    - curlx_calloc
    - Curl_bufq_free
    - Curl_bufq_init2
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_capsule_create(struct Curl_cfilter **pcf,\n                                struct
      Curl_easy *data,\n                                struct connectdata *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_cf_capsule_create
      Src: /src/curl/lib/vquic/cf-capsule.c:245,1
    - Dst: Curl_conn_cf_insert_after
      Src: /src/curl/lib/vquic/cf-capsule.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cf_at
    - data
    argTypes:
    - struct Curl_cfilter*
    - struct Curl_easy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: Curl_cf_capsule_insert_after
    functionSourceFile: /src/curl/lib/vquic/cf-capsule.c
    functionUses: 1
    functionsReached:
    - Curl_conn_cf_insert_after
    - Curl_cf_capsule_create
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode Curl_cf_capsule_insert_after(struct Curl_cfilter *cf_at,\n
      \                                     struct Curl_easy *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iconv_open
      Src: /src/curl/projects/OS400/curlmain.c:71,1
    - Dst: iconv
      Src: /src/curl/projects/OS400/curlmain.c:80,1
    - Dst: iconv
      Src: /src/curl/projects/OS400/curlmain.c:85,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/curlmain.c:89,1
    - Dst: iconv
      Src: /src/curl/projects/OS400/curlmain.c:99,1
    - Dst: iconv
      Src: /src/curl/projects/OS400/curlmain.c:100,1
    - Dst: iconv_close
      Src: /src/curl/projects/OS400/curlmain.c:103,1
    - Dst: setlocale_a
      Src: /src/curl/projects/OS400/curlmain.c:107,1
    - Dst: main_a
      Src: /src/curl/projects/OS400/curlmain.c:110,1
    - Dst: free
      Src: /src/curl/projects/OS400/curlmain.c:113,1
    - Dst: QadrtFreeConversionTable
      Src: /src/curl/projects/OS400/curlmain.c:114,1
    - Dst: QadrtFreeEnviron
      Src: /src/curl/projects/OS400/curlmain.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 119
    functionName: main
    functionSourceFile: /src/curl/projects/OS400/curlmain.c
    functionUses: 7
    functionsReached:
    - QadrtFreeEnviron
    - iconv_close
    - setlocale_a
    - free
    - iconv_open
    - iconv
    - malloc
    - main_a
    - QadrtFreeConversionTable
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: is_ifs
    functionSourceFile: /src/curl/projects/OS400/curlcl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_ifs(char c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_ifs
      Src: /src/curl/projects/OS400/curlcl.c:71,1
    - Dst: fputs
      Src: /src/curl/projects/OS400/curlcl.c:90,1
    - Dst: is_ifs
      Src: /src/curl/projects/OS400/curlcl.c:95,1
    - Dst: fprintf
      Src: /src/curl/projects/OS400/curlcl.c:108,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 6
    argNames:
    - cmdargs
    - len
    - argc
    - argv
    - argsize
    - argbuf
    argTypes:
    - char*
    - size_t
    - size_t*
    - char**
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 124
    functionName: parse_command_line
    functionSourceFile: /src/curl/projects/OS400/curlcl.c
    functionUses: 0
    functionsReached:
    - is_ifs
    - fputs
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int parse_command_line(const char *cmdargs, size_t len, size_t *argc,\n
      \                             char **argv, size_t *argsize, char *argbuf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_command_line
      Src: /src/curl/projects/OS400/curlcl.c:147,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/curlcl.c:152,1
    - Dst: fputs
      Src: /src/curl/projects/OS400/curlcl.c:154,1
    - Dst: rslvsp
      Src: /src/curl/projects/OS400/curlcl.c:158,1
    - Dst: _LUWRKA
      Src: /src/curl/projects/OS400/curlcl.c:159,1
    - Dst: parse_command_line
      Src: /src/curl/projects/OS400/curlcl.c:161,1
    - Dst: _CALLPGMV
      Src: /src/curl/projects/OS400/curlcl.c:165,1
    - Dst: free
      Src: /src/curl/projects/OS400/curlcl.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - argsc
    - args
    argTypes:
    - int
    - struct arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 173
    functionName: main
    functionSourceFile: /src/curl/projects/OS400/curlcl.c
    functionUses: 7
    functionsReached:
    - fputs
    - _CALLPGMV
    - parse_command_line
    - free
    - rslvsp
    - malloc
    - _LUWRKA
    linkageType: ''
    returnType: int
    signature: int main(int argsc, struct arguments *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: ICONV_OPEN_ERROR
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ICONV_OPEN_ERROR(t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/curl/projects/OS400/ccsidcurl.c:74,1
    - Dst: curl_msprintf
      Src: /src/curl/projects/OS400/ccsidcurl.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - ccsid
    argTypes:
    - char[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: makeOS400IconvCode
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_msprintf
    - memset
    linkageType: ''
    returnType: void
    signature: void makeOS400IconvCode(char buf[ICONV_ID_SIZE], unsigned int ccsid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: makeOS400IconvCode
      Src: /src/curl/projects/OS400/ccsidcurl.c:91,1
    - Dst: makeOS400IconvCode
      Src: /src/curl/projects/OS400/ccsidcurl.c:92,1
    - Dst: memset
      Src: /src/curl/projects/OS400/ccsidcurl.c:93,1
    - Dst: iconv_open
      Src: /src/curl/projects/OS400/ccsidcurl.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ccsidout
    - ccsidin
    - cstr
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 78
    functionDepth: 7
    functionLinenumber: 78
    functionLinenumberEnd: 99
    functionName: iconv_open_CCSID
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - makeOS400IconvCode
    - iconv_open
    - memset
    linkageType: ''
    returnType: iconv_t
    signature: "iconv_t iconv_open_CCSID(unsigned int ccsidout, unsigned int ccsidin,\n
      \                               unsigned int cstr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/OS400/ccsidcurl.c:123,1
    - Dst: memcpy
      Src: /src/curl/projects/OS400/ccsidcurl.c:127,1
    - Dst: iconv_open_CCSID
      Src: /src/curl/projects/OS400/ccsidcurl.c:134,1
    - Dst: iconv_open_CCSID
      Src: /src/curl/projects/OS400/ccsidcurl.c:138,1
    - Dst: ICONV_OPEN_ERROR
      Src: /src/curl/projects/OS400/ccsidcurl.c:141,1
    - Dst: iconv
      Src: /src/curl/projects/OS400/ccsidcurl.c:146,1
    - Dst: iconv_close
      Src: /src/curl/projects/OS400/ccsidcurl.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - d
    - dlen
    - dccsid
    - s
    - slen
    - sccsid
    argTypes:
    - char*
    - size_t
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 101
    functionDepth: 8
    functionLinenumber: 101
    functionLinenumberEnd: 153
    functionName: convert
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - iconv_close
    - ICONV_OPEN_ERROR
    - iconv
    - strlen
    - iconv_open_CCSID
    linkageType: ''
    returnType: int
    signature: "int convert(char *d, size_t dlen, int dccsid, const char *s, int slen,\n
      \                  int sccsid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/OS400/ccsidcurl.c:166,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:168,1
    - Dst: convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:173,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:176,1
    - Dst: convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:185,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:188,1
    - Dst: realloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:196,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - dccsid
    - s
    - slen
    - sccsid
    - olen
    argTypes:
    - int
    - char*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 155
    functionDepth: 9
    functionLinenumber: 155
    functionLinenumberEnd: 205
    functionName: dynconvert
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - realloc
    - convert
    - free
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *dynconvert(int dccsid, const char *s, int slen, int sccsid,\n
      \                       int *olen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:214,1
    - Dst: curl_slist_free_all
      Src: /src/curl/projects/OS400/ccsidcurl.c:217,1
    - Dst: Curl_slist_append_nodup
      Src: /src/curl/projects/OS400/ccsidcurl.c:220,1
    - Dst: curl_slist_free_all
      Src: /src/curl/projects/OS400/ccsidcurl.c:222,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - dccsid
    - from
    - sccsid
    argTypes:
    - int
    - struct curl_slist*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 207
    functionDepth: 10
    functionLinenumber: 207
    functionLinenumberEnd: 229
    functionName: slist_convert
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - free
    - Curl_slist_append_nodup
    - curl_slist_free_all
    - dynconvert
    linkageType: ''
    returnType: struct curl_slist
    signature: "struct curl_slist *slist_convert(int dccsid, struct curl_slist *from,\n
      \                                       int sccsid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/OS400/ccsidcurl.c:240,1
    - Dst: Curl_thread_buffer
      Src: /src/curl/projects/OS400/ccsidcurl.c:242,1
    - Dst: convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - key
    - ascii
    - ccsid
    argTypes:
    - localkey_t
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 231
    functionDepth: 9
    functionLinenumber: 231
    functionLinenumberEnd: 250
    functionName: keyed_string
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_thread_buffer
    - convert
    linkageType: ''
    returnType: char
    signature: "char *keyed_string(localkey_t key, const char *ascii,\n                          unsigned
      int ccsid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - ccsid
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 10
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: curl_to_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - dynconvert
    linkageType: ''
    returnType: char
    signature: char *curl_to_ccsid(const char *s, unsigned int ccsid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - ccsid
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 10
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: curl_from_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - dynconvert
    linkageType: ''
    returnType: char
    signature: char *curl_from_ccsid(const char *s, unsigned int ccsid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyed_string
      Src: /src/curl/projects/OS400/ccsidcurl.c:268,1
    - Dst: curl_version
      Src: /src/curl/projects/OS400/ccsidcurl.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ccsid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 10
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: curl_version_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_version
    - keyed_string
    linkageType: ''
    returnType: char
    signature: char *curl_version_ccsid(unsigned int ccsid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:283,1
    - Dst: curl_easy_escape
      Src: /src/curl/projects/OS400/ccsidcurl.c:288,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:289,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:294,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - handle
    - string
    - length
    - sccsid
    - dccsid
    argTypes:
    - CURL*
    - char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 271
    functionDepth: 10
    functionLinenumber: 271
    functionLinenumberEnd: 297
    functionName: curl_easy_escape_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - free
    - curl_easy_escape
    - dynconvert
    linkageType: ''
    returnType: char
    signature: "char *curl_easy_escape_ccsid(CURL *handle, const char *string, int
      length,\n                             unsigned int sccsid, unsigned int dccsid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:312,1
    - Dst: curl_easy_unescape
      Src: /src/curl/projects/OS400/ccsidcurl.c:317,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:318,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:323,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:324,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/ccsidcurl.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 6
    argNames:
    - handle
    - string
    - length
    - outlength
    - sccsid
    - dccsid
    argTypes:
    - CURL*
    - char*
    - int
    - int*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 299
    functionDepth: 10
    functionLinenumber: 299
    functionLinenumberEnd: 330
    functionName: curl_easy_unescape_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_easy_unescape
    - free
    - strlen
    - dynconvert
    linkageType: ''
    returnType: char
    signature: "char *curl_easy_unescape_ccsid(CURL *handle, const char *string, int
      length,\n                               int *outlength, unsigned int sccsid,\n
      \                              unsigned int dccsid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/curl/projects/OS400/ccsidcurl.c:341,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:343,1
    - Dst: curl_slist_append
      Src: /src/curl/projects/OS400/ccsidcurl.c:348,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - list
    - data
    - ccsid
    argTypes:
    - struct curl_slist*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 332
    functionDepth: 10
    functionLinenumber: 332
    functionLinenumberEnd: 351
    functionName: curl_slist_append_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_slist_append
    - free
    - dynconvert
    linkageType: ''
    returnType: struct curl_slist
    signature: "struct curl_slist *curl_slist_append_ccsid(struct curl_slist *list,\n
      \                                          const char *data,\n                                           unsigned
      int ccsid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_getdate
      Src: /src/curl/projects/OS400/ccsidcurl.c:360,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:362,1
    - Dst: curl_getdate
      Src: /src/curl/projects/OS400/ccsidcurl.c:367,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - p
    - unused
    - ccsid
    argTypes:
    - char*
    - time_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 353
    functionDepth: 10
    functionLinenumber: 353
    functionLinenumberEnd: 370
    functionName: curl_getdate_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - free
    - curl_getdate
    - dynconvert
    linkageType: ''
    returnType: time_t
    signature: "time_t curl_getdate_ccsid(const char *p, const time_t *unused,\n                          unsigned
      int ccsid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - stringp
    - bufp
    - left
    - ccsid
    argTypes:
    - char**
    - char**
    - int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 372
    functionDepth: 9
    functionLinenumber: 372
    functionLinenumberEnd: 392
    functionName: convert_version_info_string
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - convert
    linkageType: ''
    returnType: int
    signature: "int convert_version_info_string(const char **stringp, char **bufp,\n
      \                                      int *left, unsigned int ccsid)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_version_info
      Src: /src/curl/projects/OS400/ccsidcurl.c:437,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/ccsidcurl.c:449,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/ccsidcurl.c:457,1
    - Dst: Curl_thread_buffer
      Src: /src/curl/projects/OS400/ccsidcurl.c:467,1
    - Dst: Curl_thread_buffer
      Src: /src/curl/projects/OS400/ccsidcurl.c:468,1
    - Dst: memcpy
      Src: /src/curl/projects/OS400/ccsidcurl.c:476,1
    - Dst: memcpy
      Src: /src/curl/projects/OS400/ccsidcurl.c:482,1
    - Dst: convert_version_info_string
      Src: /src/curl/projects/OS400/ccsidcurl.c:487,1
    - Dst: convert_version_info_string
      Src: /src/curl/projects/OS400/ccsidcurl.c:494,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - stamp
    - ccsid
    argTypes:
    - CURLversion
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 394
    functionDepth: 10
    functionLinenumber: 394
    functionLinenumberEnd: 499
    functionName: curl_version_info_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - Curl_thread_buffer
    - memcpy
    - convert_version_info_string
    - curl_version_info
    - strlen
    linkageType: ''
    returnType: curl_version_info_data
    signature: "curl_version_info_data *curl_version_info_ccsid(CURLversion stamp,\n
      \                                               unsigned int ccsid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyed_string
      Src: /src/curl/projects/OS400/ccsidcurl.c:503,1
    - Dst: curl_easy_strerror
      Src: /src/curl/projects/OS400/ccsidcurl.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - error
    - ccsid
    argTypes:
    - CURLcode
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 10
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: curl_easy_strerror_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - keyed_string
    - curl_easy_strerror
    linkageType: ''
    returnType: char
    signature: char *curl_easy_strerror_ccsid(CURLcode error, unsigned int ccsid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyed_string
      Src: /src/curl/projects/OS400/ccsidcurl.c:508,1
    - Dst: curl_share_strerror
      Src: /src/curl/projects/OS400/ccsidcurl.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - error
    - ccsid
    argTypes:
    - CURLSHcode
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 10
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: curl_share_strerror_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - keyed_string
    - curl_share_strerror
    linkageType: ''
    returnType: char
    signature: char *curl_share_strerror_ccsid(CURLSHcode error, unsigned int ccsid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyed_string
      Src: /src/curl/projects/OS400/ccsidcurl.c:513,1
    - Dst: curl_multi_strerror
      Src: /src/curl/projects/OS400/ccsidcurl.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - error
    - ccsid
    argTypes:
    - CURLMcode
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 10
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: curl_multi_strerror_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - keyed_string
    - curl_multi_strerror
    linkageType: ''
    returnType: char
    signature: char *curl_multi_strerror_ccsid(CURLMcode error, unsigned int ccsid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyed_string
      Src: /src/curl/projects/OS400/ccsidcurl.c:518,1
    - Dst: curl_url_strerror
      Src: /src/curl/projects/OS400/ccsidcurl.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - error
    - ccsid
    argTypes:
    - CURLUcode
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 10
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: curl_url_strerror_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - keyed_string
    - curl_url_strerror
    linkageType: ''
    returnType: char
    signature: char *curl_url_strerror_ccsid(CURLUcode error, unsigned int ccsid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_free_all
      Src: /src/curl/projects/OS400/ccsidcurl.c:529,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:530,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct curl_certinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 534
    functionName: curl_certinfo_free_all
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_slist_free_all
    - free
    linkageType: ''
    returnType: void
    signature: void curl_certinfo_free_all(struct curl_certinfo *info)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/projects/OS400/ccsidcurl.c:547,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:548,1
    - Dst: Curl_getinfo
      Src: /src/curl/projects/OS400/ccsidcurl.c:549,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:561,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:565,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:574,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:579,1
    - Dst: calloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:583,1
    - Dst: slist_convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:593,1
    - Dst: curl_certinfo_free_all
      Src: /src/curl/projects/OS400/ccsidcurl.c:603,1
    - Dst: slist_convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:620,1
    - Dst: va_end
      Src: /src/curl/projects/OS400/ccsidcurl.c:629,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 2
    argNames:
    - curl
    - info
    argTypes:
    - CURL*
    - CURLINFO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 536
    functionDepth: 11
    functionLinenumber: 536
    functionLinenumberEnd: 631
    functionName: curl_easy_getinfo_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - Curl_getinfo
    - va_arg
    - slist_convert
    - va_start
    - calloc
    - va_end
    - curl_certinfo_free_all
    - dynconvert
    - malloc
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_getinfo_ccsid(CURL *curl, CURLINFO info, ...)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - option
    argTypes:
    - CURLformoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 648
    functionName: Curl_is_formadd_string
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Curl_is_formadd_string(CURLformoption option)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_is_formadd_string
      Src: /src/curl/projects/OS400/ccsidcurl.c:655,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:657,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - forms
    - nargs
    - skip
    argTypes:
    - struct curl_forms*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 660
    functionName: Curl_formadd_release_local
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - Curl_is_formadd_string
    - free
    linkageType: ''
    returnType: void
    signature: "void Curl_formadd_release_local(struct curl_forms *forms, int nargs,\n
      \                                      int skip)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/OS400/ccsidcurl.c:675,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:677,1
    - Dst: convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:682,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:686,1
    - Dst: realloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:690,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - forms
    - formx
    - lengthx
    - ccsid
    argTypes:
    - struct curl_forms*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 662
    functionDepth: 9
    functionLinenumber: 662
    functionLinenumberEnd: 701
    functionName: Curl_formadd_convert
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - realloc
    - convert
    - free
    - malloc
    - strlen
    linkageType: ''
    returnType: int
    signature: "int Curl_formadd_convert(struct curl_forms *forms, int formx,\n                                int
      lengthx, unsigned int ccsid)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:741,1
    - Dst: va_start
      Src: /src/curl/projects/OS400/ccsidcurl.c:756,1
    - Dst: realloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:763,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:785,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:801,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:818,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:819,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:835,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:836,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:848,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:856,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:864,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:872,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:878,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:884,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:890,1
    - Dst: Curl_formadd_convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:897,1
    - Dst: Curl_is_formadd_string
      Src: /src/curl/projects/OS400/ccsidcurl.c:909,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:915,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:916,1
    - Dst: Curl_formadd_convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:927,1
    - Dst: va_end
      Src: /src/curl/projects/OS400/ccsidcurl.c:942,1
    - Dst: Curl_formadd_convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:947,1
    - Dst: Curl_formadd_convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:954,1
    - Dst: curl_formadd
      Src: /src/curl/projects/OS400/ccsidcurl.c:964,1
    - Dst: Curl_formadd_release_local
      Src: /src/curl/projects/OS400/ccsidcurl.c:970,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 149
    argCount: 2
    argNames:
    - httppost
    - last_post
    argTypes:
    - struct curl_httppost**
    - struct curl_httppost**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 703
    functionDepth: 10
    functionLinenumber: 703
    functionLinenumberEnd: 972
    functionName: curl_formadd_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - Curl_formadd_release_local
    - va_arg
    - realloc
    - curl_formadd
    - Curl_formadd_convert
    - va_start
    - va_end
    - Curl_is_formadd_string
    - malloc
    linkageType: ''
    returnType: CURLFORMcode
    signature: "CURLFORMcode curl_formadd_ccsid(struct curl_httppost **httppost,\n
      \                               struct curl_httppost **last_post, ...)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:993,1
    - Dst: convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:998,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1001,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 980
    functionDepth: 9
    functionLinenumber: 980
    functionLinenumberEnd: 1008
    functionName: Curl_formget_callback_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - convert
    linkageType: ''
    returnType: size_t
    signature: "size_t Curl_formget_callback_ccsid(void *arg, const char *buf,\n                                          size_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_formget
      Src: /src/curl/projects/OS400/ccsidcurl.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - form
    - arg
    - append
    - ccsid
    argTypes:
    - struct curl_httppost*
    - void*
    - curl_formget_callback
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1010
    functionDepth: 6
    functionLinenumber: 1010
    functionLinenumberEnd: 1019
    functionName: curl_formget_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_formget
    linkageType: ''
    returnType: int
    signature: "int curl_formget_ccsid(struct curl_httppost *form, void *arg,\n                       curl_formget_callback
      append, unsigned int ccsid)"
  - BBCount: 110
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/curl/projects/OS400/ccsidcurl.c:1031,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:1131,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:1132,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1135,1
    - Dst: curl_easy_setopt
      Src: /src/curl/projects/OS400/ccsidcurl.c:1143,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1144,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:1151,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:1152,1
    - Dst: curl_easy_setopt
      Src: /src/curl/projects/OS400/ccsidcurl.c:1157,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1163,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:1185,1
    - Dst: convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1192,1
    - Dst: curl_easy_setopt
      Src: /src/curl/projects/OS400/ccsidcurl.c:1204,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:1210,1
    - Dst: va_arg
      Src: /src/curl/projects/OS400/ccsidcurl.c:1213,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/ccsidcurl.c:1222,1
    - Dst: convert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1229,1
    - Dst: curl_easy_setopt
      Src: /src/curl/projects/OS400/ccsidcurl.c:1241,1
    - Dst: FALLTHROUGH
      Src: /src/curl/projects/OS400/ccsidcurl.c:1244,1
    - Dst: Curl_vsetopt
      Src: /src/curl/projects/OS400/ccsidcurl.c:1246,1
    - Dst: va_end
      Src: /src/curl/projects/OS400/ccsidcurl.c:1250,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1251,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 180
    argCount: 2
    argNames:
    - easy
    - tag
    argTypes:
    - CURL*
    - CURLoption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1021
    functionDepth: 10
    functionLinenumber: 1021
    functionLinenumberEnd: 1253
    functionName: curl_easy_setopt_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - va_arg
    - convert
    - Curl_vsetopt
    - va_start
    - free
    - va_end
    - curl_easy_setopt
    - dynconvert
    - malloc
    - FALLTHROUGH
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_setopt_ccsid(CURL *easy, CURLoption tag, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1262
    functionName: curl_form_long_value
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *curl_form_long_value(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/curl/projects/OS400/ccsidcurl.c:1271,1
    - Dst: curl_easy_setopt
      Src: /src/curl/projects/OS400/ccsidcurl.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - easy
    - tag
    - arg
    argTypes:
    - CURL*
    - CURLoption
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1273
    functionName: curl_easy_setopt_RPGnum_
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curl_easy_setopt_RPGnum_(CURL *easy, CURLoption tag, curl_off_t
      arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_setopt
      Src: /src/curl/projects/OS400/ccsidcurl.c:1280,1
    - Dst: curl_multi_setopt
      Src: /src/curl/projects/OS400/ccsidcurl.c:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - multi
    - tag
    - arg
    argTypes:
    - CURLM*
    - CURLMoption
    - curl_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1282
    functionName: curl_multi_setopt_RPGnum_
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_multi_setopt
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_multi_setopt_RPGnum_(CURLM *multi, CURLMoption tag,\n
      \                                  curl_off_t arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_pushheader_bynum
      Src: /src/curl/projects/OS400/ccsidcurl.c:1288,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h
    - num
    - ccsid
    argTypes:
    - struct curl_pushheaders*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1284
    functionDepth: 10
    functionLinenumber: 1284
    functionLinenumberEnd: 1294
    functionName: curl_pushheader_bynum_cssid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_pushheader_bynum
    - dynconvert
    linkageType: ''
    returnType: char
    signature: "char *curl_pushheader_bynum_cssid(struct curl_pushheaders *h, size_t
      num,\n                                  unsigned int ccsid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1303,1
    - Dst: curl_pushheader_byname
      Src: /src/curl/projects/OS400/ccsidcurl.c:1306,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1307,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - h
    - header
    - ccsidin
    - ccsidout
    argTypes:
    - struct curl_pushheaders*
    - char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1296
    functionDepth: 10
    functionLinenumber: 1296
    functionLinenumberEnd: 1315
    functionName: curl_pushheader_byname_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_pushheader_byname
    - free
    - dynconvert
    linkageType: ''
    returnType: char
    signature: "char *curl_pushheader_byname_ccsid(struct curl_pushheaders *h,\n                                   const
      char *header, unsigned int ccsidin,\n                                   unsigned
      int ccsidout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mimefunc
      Src: /src/curl/projects/OS400/ccsidcurl.c:1325,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1326,1
    - Dst: mimefunc
      Src: /src/curl/projects/OS400/ccsidcurl.c:1330,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - part
    - string
    - ccsid
    argTypes:
    - curl_mimepart*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1317
    functionDepth: 10
    functionLinenumber: 1317
    functionLinenumberEnd: 1333
    functionName: mime_string_call
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - free
    - mimefunc
    - dynconvert
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode mime_string_call(curl_mimepart *part, const char *string,
      unsigned int ccsid,\n                 CURLcode (*mimefunc)(curl_mimepart *part,
      const char *string))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mime_string_call
      Src: /src/curl/projects/OS400/ccsidcurl.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - part
    - name
    - ccsid
    argTypes:
    - curl_mimepart*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1335
    functionDepth: 11
    functionLinenumber: 1335
    functionLinenumberEnd: 1339
    functionName: curl_mime_name_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - mime_string_call
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_name_ccsid(curl_mimepart *part, const char *name,\n
      \                             unsigned int ccsid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mime_string_call
      Src: /src/curl/projects/OS400/ccsidcurl.c:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - part
    - filename
    - ccsid
    argTypes:
    - curl_mimepart*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1341
    functionDepth: 11
    functionLinenumber: 1341
    functionLinenumberEnd: 1345
    functionName: curl_mime_filename_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - mime_string_call
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_filename_ccsid(curl_mimepart *part, const char
      *filename,\n                                  unsigned int ccsid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mime_string_call
      Src: /src/curl/projects/OS400/ccsidcurl.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - part
    - mimetype
    - ccsid
    argTypes:
    - curl_mimepart*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1347
    functionDepth: 11
    functionLinenumber: 1347
    functionLinenumberEnd: 1351
    functionName: curl_mime_type_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - mime_string_call
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_type_ccsid(curl_mimepart *part, const char *mimetype,\n
      \                             unsigned int ccsid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mime_string_call
      Src: /src/curl/projects/OS400/ccsidcurl.c:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - part
    - encoding
    - ccsid
    argTypes:
    - curl_mimepart*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1353
    functionDepth: 11
    functionLinenumber: 1353
    functionLinenumberEnd: 1357
    functionName: curl_mime_encoder_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - mime_string_call
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_encoder_ccsid(curl_mimepart *part, const char *encoding,\n
      \                                unsigned int ccsid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mime_string_call
      Src: /src/curl/projects/OS400/ccsidcurl.c:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - part
    - filename
    - ccsid
    argTypes:
    - curl_mimepart*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1359
    functionDepth: 11
    functionLinenumber: 1359
    functionLinenumberEnd: 1363
    functionName: curl_mime_filedata_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - mime_string_call
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_filedata_ccsid(curl_mimepart *part, const char
      *filename,\n                                  unsigned int ccsid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_mime_data
      Src: /src/curl/projects/OS400/ccsidcurl.c:1373,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1374,1
    - Dst: curl_mime_data
      Src: /src/curl/projects/OS400/ccsidcurl.c:1378,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - part
    - data
    - datasize
    - ccsid
    argTypes:
    - curl_mimepart*
    - char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1365
    functionDepth: 10
    functionLinenumber: 1365
    functionLinenumberEnd: 1381
    functionName: curl_mime_data_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - free
    - dynconvert
    - curl_mime_data
    linkageType: ''
    returnType: CURLcode
    signature: "CURLcode curl_mime_data_ccsid(curl_mimepart *part, const char *data,\n
      \                             size_t datasize, unsigned int ccsid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: curl_url_get
      Src: /src/curl/projects/OS400/ccsidcurl.c:1393,1
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1396,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - handle
    - what
    - part
    - flags
    - ccsid
    argTypes:
    - CURLU*
    - CURLUPart
    - char**
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1383
    functionDepth: 10
    functionLinenumber: 1383
    functionLinenumberEnd: 1404
    functionName: curl_url_get_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - free
    - curl_url_get
    - dynconvert
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode curl_url_get_ccsid(CURLU *handle, CURLUPart what, char **part,\n
      \                            unsigned int flags, unsigned int ccsid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1413,1
    - Dst: curl_url_set
      Src: /src/curl/projects/OS400/ccsidcurl.c:1417,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - handle
    - what
    - part
    - flags
    - ccsid
    argTypes:
    - CURLU*
    - CURLUPart
    - char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1406
    functionDepth: 10
    functionLinenumber: 1406
    functionLinenumberEnd: 1421
    functionName: curl_url_set_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - free
    - dynconvert
    linkageType: ''
    returnType: CURLUcode
    signature: "CURLUcode curl_url_set_ccsid(CURLU *handle, CURLUPart what, const
      char *part,\n                             unsigned int flags, unsigned int ccsid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1429,1
    - Dst: curl_easy_option_by_name
      Src: /src/curl/projects/OS400/ccsidcurl.c:1432,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - name
    - ccsid
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1423
    functionDepth: 10
    functionLinenumber: 1423
    functionLinenumberEnd: 1438
    functionName: curl_easy_option_by_name_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - curl_easy_option_by_name
    - free
    - dynconvert
    linkageType: ''
    returnType: struct curl_easyoption
    signature: 'struct curl_easyoption *

      curl_easy_option_by_name_ccsid(const char *name, unsigned int ccsid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - option
    - ccsid
    argTypes:
    - struct curl_easyoption*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1441
    functionDepth: 10
    functionLinenumber: 1441
    functionLinenumberEnd: 1451
    functionName: curl_easy_option_get_name_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - dynconvert
    linkageType: ''
    returnType: char
    signature: "char *\ncurl_easy_option_get_name_ccsid(const struct curl_easyoption
      *option,\n                                unsigned int ccsid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynconvert
      Src: /src/curl/projects/OS400/ccsidcurl.c:1461,1
    - Dst: curl_easy_header
      Src: /src/curl/projects/OS400/ccsidcurl.c:1465,1
    - Dst: free
      Src: /src/curl/projects/OS400/ccsidcurl.c:1466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - easy
    - name
    - index
    - origin
    - request
    - hout
    - ccsid
    argTypes:
    - CURL*
    - char*
    - size_t
    - unsigned int
    - int
    - struct curl_header**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1454
    functionDepth: 10
    functionLinenumber: 1454
    functionLinenumberEnd: 1471
    functionName: curl_easy_header_ccsid
    functionSourceFile: /src/curl/projects/OS400/ccsidcurl.c
    functionUses: 0
    functionsReached:
    - free
    - curl_easy_header
    - dynconvert
    linkageType: ''
    returnType: CURLHcode
    signature: "CURLHcode curl_easy_header_ccsid(CURL *easy, const char *name, size_t
      index,\n                                 unsigned int origin, int request,\n
      \                                struct curl_header **hout, unsigned int ccsid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:92,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - private
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: thdbufdestroy
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void thdbufdestroy(void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/curl/projects/OS400/os400sys.c:103,1
    - Dst: pthread_setspecific
      Src: /src/curl/projects/OS400/os400sys.c:104,1
    - Dst: pthread_key_delete
      Src: /src/curl/projects/OS400/os400sys.c:105,1
    - Dst: thdbufdestroy
      Src: /src/curl/projects/OS400/os400sys.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: terminate
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 16
    functionsReached:
    - pthread_key_delete
    - pthread_getspecific
    - pthread_setspecific
    - thdbufdestroy
    linkageType: ''
    returnType: void
    signature: void terminate(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:127,1
    - Dst: realloc
      Src: /src/curl/projects/OS400/os400sys.c:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - struct buffer_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 153
    functionName: get_buffer
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - malloc
    - realloc
    linkageType: ''
    returnType: char
    signature: char *get_buffer(struct buffer_t *buf, long size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/curl/projects/OS400/os400sys.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - size
    argTypes:
    - localkey_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: buffer_unthreaded
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - get_buffer
    linkageType: ''
    returnType: char
    signature: char *buffer_unthreaded(localkey_t key, long size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/curl/projects/OS400/os400sys.c:179,1
    - Dst: calloc
      Src: /src/curl/projects/OS400/os400sys.c:187,1
    - Dst: pthread_setspecific
      Src: /src/curl/projects/OS400/os400sys.c:191,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:192,1
    - Dst: get_buffer
      Src: /src/curl/projects/OS400/os400sys.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - key
    - size
    argTypes:
    - localkey_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 198
    functionName: buffer_threaded
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - calloc
    - get_buffer
    - free
    - pthread_setspecific
    - pthread_getspecific
    linkageType: ''
    returnType: char
    signature: char *buffer_threaded(localkey_t key, long size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/curl/projects/OS400/os400sys.c:206,1
    - Dst: pthread_key_create
      Src: /src/curl/projects/OS400/os400sys.c:212,1
    - Dst: calloc
      Src: /src/curl/projects/OS400/os400sys.c:219,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/projects/OS400/os400sys.c:221,1
    - Dst: atexit
      Src: /src/curl/projects/OS400/os400sys.c:228,1
    - Dst: pthread_mutex_unlock
      Src: /src/curl/projects/OS400/os400sys.c:231,1
    - Dst: Curl_thread_buffer
      Src: /src/curl/projects/OS400/os400sys.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - key
    - size
    argTypes:
    - localkey_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 233
    functionName: buffer_undef
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    - Curl_thread_buffer
    - calloc
    - pthread_mutex_unlock
    - atexit
    - pthread_mutex_lock
    linkageType: ''
    returnType: char
    signature: char *buffer_undef(localkey_t key, long size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:243,1
    - Dst: Curl_thread_buffer
      Src: /src/curl/projects/OS400/os400sys.c:244,1
    - Dst: QadrtConvertE2A
      Src: /src/curl/projects/OS400/os400sys.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - key
    - s
    argTypes:
    - localkey_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 252
    functionName: set_thread_string
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - strlen
    - Curl_thread_buffer
    - QadrtConvertE2A
    linkageType: ''
    returnType: char
    signature: char *set_thread_string(localkey_t key, const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:264,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:270,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:272,1
    - Dst: getnameinfo
      Src: /src/curl/projects/OS400/os400sys.c:277,1
    - Dst: QadrtConvertE2A
      Src: /src/curl/projects/OS400/os400sys.c:283,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:284,1
    - Dst: QadrtConvertE2A
      Src: /src/curl/projects/OS400/os400sys.c:289,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:290,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:295,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:296,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 7
    argNames:
    - sa
    - salen
    - nodename
    - nodenamelen
    - servname
    - servnamelen
    - flags
    argTypes:
    - struct sockaddr*
    - socklen_t
    - char*
    - socklen_t
    - char*
    - socklen_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 298
    functionName: Curl_getnameinfo_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - QadrtConvertE2A
    - free
    - getnameinfo
    - malloc
    - strlen
    linkageType: ''
    returnType: int
    signature: "int Curl_getnameinfo_a(const struct sockaddr *sa, socklen_t salen,\n
      \                      char *nodename, socklen_t nodenamelen,\n                       char
      *servname, socklen_t servnamelen,\n                       int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:312,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:314,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:318,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:323,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:325,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:327,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:331,1
    - Dst: getaddrinfo
      Src: /src/curl/projects/OS400/os400sys.c:336,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:337,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - nodename
    - servname
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 340
    functionName: Curl_getaddrinfo_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - QadrtConvertA2E
    - free
    - getaddrinfo
    - malloc
    - strlen
    linkageType: ''
    returnType: int
    signature: "int Curl_getaddrinfo_a(const char *nodename, const char *servname,\n
      \                      const struct addrinfo *hints, struct addrinfo **res)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:354,1
    - Dst: gss_release_buffer
      Src: /src/curl/projects/OS400/os400sys.c:356,1
    - Dst: QadrtConvertE2A
      Src: /src/curl/projects/OS400/os400sys.c:365,1
    - Dst: memcpy
      Src: /src/curl/projects/OS400/os400sys.c:366,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - minor_status
    - buf
    argTypes:
    - OM_uint32*
    - gss_buffer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 371
    functionName: Curl_gss_convert_in_place
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - memcpy
    - QadrtConvertE2A
    - free
    - malloc
    - gss_release_buffer
    linkageType: ''
    returnType: int
    signature: int Curl_gss_convert_in_place(OM_uint32 *minor_status, gss_buffer_t
      buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gss_import_name
      Src: /src/curl/projects/OS400/os400sys.c:385,1
    - Dst: memcpy
      Src: /src/curl/projects/OS400/os400sys.c:387,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:397,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:406,1
    - Dst: gss_import_name
      Src: /src/curl/projects/OS400/os400sys.c:408,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:409,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - minor_status
    - in_name
    - in_name_type
    - out_name
    argTypes:
    - OM_uint32*
    - gss_buffer_t
    - gss_OID
    - gss_name_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 411
    functionName: Curl_gss_import_name_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - QadrtConvertA2E
    - memcpy
    - free
    - malloc
    - gss_import_name
    linkageType: ''
    returnType: OM_uint32
    signature: "OM_uint32 Curl_gss_import_name_a(OM_uint32 *minor_status, gss_buffer_t
      in_name,\n                                 gss_OID in_name_type, gss_name_t
      *out_name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gss_display_status
      Src: /src/curl/projects/OS400/os400sys.c:421,1
    - Dst: Curl_gss_convert_in_place
      Src: /src/curl/projects/OS400/os400sys.c:432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 6
    argNames:
    - minor_status
    - status_value
    - status_type
    - mech_type
    - message_context
    - status_string
    argTypes:
    - OM_uint32*
    - OM_uint32
    - int
    - gss_OID
    - gss_msg_ctx_t*
    - gss_buffer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 436
    functionName: Curl_gss_display_status_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - Curl_gss_convert_in_place
    - gss_display_status
    linkageType: ''
    returnType: OM_uint32
    signature: "OM_uint32 Curl_gss_display_status_a(OM_uint32 *minor_status,\n                                    OM_uint32
      status_value, int status_type,\n                                    gss_OID
      mech_type,\n                                    gss_msg_ctx_t *message_context,\n
      \                                   gss_buffer_t status_string)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:468,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:477,1
    - Dst: gss_init_sec_context
      Src: /src/curl/projects/OS400/os400sys.c:484,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:488,1
    - Dst: Curl_gss_convert_in_place
      Src: /src/curl/projects/OS400/os400sys.c:498,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 13
    argNames:
    - minor_status
    - cred_handle
    - context_handle
    - target_name
    - mech_type
    - req_flags
    - time_req
    - input_chan_bindings
    - input_token
    - actual_mech_type
    - output_token
    - ret_flags
    - time_rec
    argTypes:
    - OM_uint32*
    - gss_cred_id_t
    - gss_ctx_id_t*
    - gss_name_t
    - gss_OID
    - gss_flags_t
    - OM_uint32
    - gss_channel_bindings_t
    - gss_buffer_t
    - gss_OID*
    - gss_buffer_t
    - gss_flags_t*
    - OM_uint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 502
    functionName: Curl_gss_init_sec_context_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - QadrtConvertA2E
    - free
    - gss_init_sec_context
    - malloc
    - Curl_gss_convert_in_place
    linkageType: ''
    returnType: OM_uint32
    signature: "OM_uint32 Curl_gss_init_sec_context_a(\n  OM_uint32 *minor_status,\n
      \ gss_cred_id_t cred_handle,\n  gss_ctx_id_t *context_handle,\n  gss_name_t
      target_name, gss_OID mech_type,\n  gss_flags_t req_flags, OM_uint32 time_req,\n
      \ gss_channel_bindings_t input_chan_bindings,\n  gss_buffer_t input_token,\n
      \ gss_OID *actual_mech_type,\n  gss_buffer_t output_token, gss_flags_t *ret_flags,\n
      \ OM_uint32 *time_rec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gss_delete_sec_context
      Src: /src/curl/projects/OS400/os400sys.c:510,1
    - Dst: Curl_gss_convert_in_place
      Src: /src/curl/projects/OS400/os400sys.c:520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - minor_status
    - context_handle
    - output_token
    argTypes:
    - OM_uint32*
    - gss_ctx_id_t*
    - gss_buffer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 524
    functionName: Curl_gss_delete_sec_context_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - gss_delete_sec_context
    - Curl_gss_convert_in_place
    linkageType: ''
    returnType: OM_uint32
    signature: "OM_uint32 Curl_gss_delete_sec_context_a(OM_uint32 *minor_status,\n
      \                                       gss_ctx_id_t *context_handle,\n                                        gss_buffer_t
      output_token)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ldap_init
      Src: /src/curl/projects/OS400/os400sys.c:539,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:541,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:543,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:547,1
    - Dst: ldap_init
      Src: /src/curl/projects/OS400/os400sys.c:549,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 552
    functionName: Curl_ldap_init_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - QadrtConvertA2E
    - free
    - ldap_init
    - malloc
    - strlen
    linkageType: ''
    returnType: void
    signature: void *Curl_ldap_init_a(char *host, int port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:564,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:566,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:570,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:575,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:577,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:579,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:583,1
    - Dst: ldap_simple_bind_s
      Src: /src/curl/projects/OS400/os400sys.c:587,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:588,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - ld
    - dn
    - passwd
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 591
    functionName: Curl_ldap_simple_bind_s_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - QadrtConvertA2E
    - free
    - ldap_simple_bind_s
    - malloc
    - strlen
    linkageType: ''
    returnType: int
    signature: int Curl_ldap_simple_bind_s_a(void *ld, char *dn, char *passwd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:609,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:611,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:615,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:621,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:623,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:627,1
    - Dst: calloc
      Src: /src/curl/projects/OS400/os400sys.c:636,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:641,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:643,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:649,1
    - Dst: ldap_search_s
      Src: /src/curl/projects/OS400/os400sys.c:656,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:662,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:664,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:667,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:668,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 7
    argNames:
    - ld
    - base
    - scope
    - filter
    - attrs
    - attrsonly
    - res
    argTypes:
    - void*
    - char*
    - int
    - char*
    - char**
    - int
    - LDAPMessage**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 670
    functionName: Curl_ldap_search_s_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - QadrtConvertA2E
    - ldap_search_s
    - calloc
    - free
    - malloc
    - strlen
    linkageType: ''
    returnType: int
    signature: "int Curl_ldap_search_s_a(void *ld, char *base, int scope, char *filter,\n
      \                        char **attrs, int attrsonly, LDAPMessage **res)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:681,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:683,1
    - Dst: ldap_set_lderrno
      Src: /src/curl/projects/OS400/os400sys.c:685,1
    - Dst: ldap_err2string
      Src: /src/curl/projects/OS400/os400sys.c:686,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:690,1
    - Dst: ldap_get_values_len
      Src: /src/curl/projects/OS400/os400sys.c:694,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 701
    functionName: Curl_ldap_get_values_len_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - ldap_get_values_len
    - QadrtConvertA2E
    - ldap_err2string
    - free
    - ldap_set_lderrno
    - malloc
    - strlen
    linkageType: ''
    returnType: struct berval
    signature: "struct berval **Curl_ldap_get_values_len_a(void *ld, LDAPMessage *entry,\n
      \                                          const char *attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_thread_string
      Src: /src/curl/projects/OS400/os400sys.c:705,1
    - Dst: ldap_err2string
      Src: /src/curl/projects/OS400/os400sys.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: Curl_ldap_err2string_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - set_thread_string
    - ldap_err2string
    linkageType: ''
    returnType: char
    signature: char *Curl_ldap_err2string_a(int error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ldap_get_dn
      Src: /src/curl/projects/OS400/os400sys.c:714,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:719,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:721,1
    - Dst: QadrtConvertE2A
      Src: /src/curl/projects/OS400/os400sys.c:725,1
    - Dst: memcpy
      Src: /src/curl/projects/OS400/os400sys.c:733,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ld
    - entry
    argTypes:
    - void*
    - LDAPMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 736
    functionName: Curl_ldap_get_dn_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - ldap_get_dn
    - memcpy
    - QadrtConvertE2A
    - free
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char *Curl_ldap_get_dn_a(void *ld, LDAPMessage *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ldap_first_attribute
      Src: /src/curl/projects/OS400/os400sys.c:745,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:750,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:752,1
    - Dst: QadrtConvertE2A
      Src: /src/curl/projects/OS400/os400sys.c:756,1
    - Dst: memcpy
      Src: /src/curl/projects/OS400/os400sys.c:764,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ld
    - entry
    - berptr
    argTypes:
    - void*
    - LDAPMessage*
    - BerElement**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 767
    functionName: Curl_ldap_first_attribute_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ldap_first_attribute
    - QadrtConvertE2A
    - free
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *Curl_ldap_first_attribute_a(void *ld, LDAPMessage *entry,\n
      \                                 BerElement **berptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ldap_next_attribute
      Src: /src/curl/projects/OS400/os400sys.c:776,1
    - Dst: strlen
      Src: /src/curl/projects/OS400/os400sys.c:781,1
    - Dst: malloc
      Src: /src/curl/projects/OS400/os400sys.c:783,1
    - Dst: QadrtConvertE2A
      Src: /src/curl/projects/OS400/os400sys.c:787,1
    - Dst: memcpy
      Src: /src/curl/projects/OS400/os400sys.c:795,1
    - Dst: free
      Src: /src/curl/projects/OS400/os400sys.c:796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ld
    - entry
    - berptr
    argTypes:
    - void*
    - LDAPMessage*
    - BerElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 798
    functionName: Curl_ldap_next_attribute_a
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - memcpy
    - QadrtConvertE2A
    - ldap_next_attribute
    - free
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *Curl_ldap_next_attribute_a(void *ld, LDAPMessage *entry,\n                                 BerElement
      *berptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/projects/OS400/os400sys.c:819,1
    - Dst: QadrtConvertA2E
      Src: /src/curl/projects/OS400/os400sys.c:828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - dstaddr
    - srcaddr
    - srclen
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 834
    functionName: sockaddr2ebcdic
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - QadrtConvertA2E
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int sockaddr2ebcdic(struct sockaddr_storage *dstaddr,\n                           const
      struct sockaddr *srcaddr, int srclen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/curl/projects/OS400/os400sys.c:855,1
    - Dst: QadrtConvertE2A
      Src: /src/curl/projects/OS400/os400sys.c:867,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - dstaddr
    - dstlen
    - srcaddr
    - srclen
    argTypes:
    - struct sockaddr*
    - int
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 876
    functionName: sockaddr2ascii
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - memcpy
    - QadrtConvertE2A
    linkageType: ''
    returnType: int
    signature: "int sockaddr2ascii(struct sockaddr *dstaddr, int dstlen,\n                          const
      struct sockaddr_storage *srcaddr, int srclen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr2ebcdic
      Src: /src/curl/projects/OS400/os400sys.c:883,1
    - Dst: connect
      Src: /src/curl/projects/OS400/os400sys.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sd
    - destaddr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 889
    functionName: Curl_os400_connect
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - connect
    - sockaddr2ebcdic
    linkageType: ''
    returnType: int
    signature: int Curl_os400_connect(int sd, struct sockaddr *destaddr, int addrlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr2ebcdic
      Src: /src/curl/projects/OS400/os400sys.c:896,1
    - Dst: bind
      Src: /src/curl/projects/OS400/os400sys.c:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sd
    - localaddr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 902
    functionName: Curl_os400_bind
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - bind
    - sockaddr2ebcdic
    linkageType: ''
    returnType: int
    signature: int Curl_os400_bind(int sd, struct sockaddr *localaddr, int addrlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr2ebcdic
      Src: /src/curl/projects/OS400/os400sys.c:910,1
    - Dst: sendto
      Src: /src/curl/projects/OS400/os400sys.c:915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - sd
    - buffer
    - buflen
    - flags
    - dstaddr
    - addrlen
    argTypes:
    - int
    - char*
    - int
    - int
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 916
    functionName: Curl_os400_sendto
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - sockaddr2ebcdic
    - sendto
    linkageType: ''
    returnType: int
    signature: "int Curl_os400_sendto(int sd, char *buffer, int buflen, int flags,\n
      \                     const struct sockaddr *dstaddr, int addrlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: recvfrom
      Src: /src/curl/projects/OS400/os400sys.c:926,1
    - Dst: recvfrom
      Src: /src/curl/projects/OS400/os400sys.c:929,1
    - Dst: sockaddr2ascii
      Src: /src/curl/projects/OS400/os400sys.c:938,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - sd
    - buffer
    - buflen
    - flags
    - fromaddr
    - addrlen
    argTypes:
    - int
    - char*
    - int
    - int
    - struct sockaddr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 944
    functionName: Curl_os400_recvfrom
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - sockaddr2ascii
    - recvfrom
    linkageType: ''
    returnType: int
    signature: "int Curl_os400_recvfrom(int sd, char *buffer, int buflen, int flags,\n
      \                       struct sockaddr *fromaddr, int *addrlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getpeername
      Src: /src/curl/projects/OS400/os400sys.c:950,1
    - Dst: sockaddr2ascii
      Src: /src/curl/projects/OS400/os400sys.c:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sd
    - addr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 960
    functionName: Curl_os400_getpeername
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - getpeername
    - sockaddr2ascii
    linkageType: ''
    returnType: int
    signature: int Curl_os400_getpeername(int sd, struct sockaddr *addr, int *addrlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/curl/projects/OS400/os400sys.c:966,1
    - Dst: sockaddr2ascii
      Src: /src/curl/projects/OS400/os400sys.c:969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sd
    - addr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 976
    functionName: Curl_os400_getsockname
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - sockaddr2ascii
    - getsockname
    linkageType: ''
    returnType: int
    signature: int Curl_os400_getsockname(int sd, struct sockaddr *addr, int *addrlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_thread_string
      Src: /src/curl/projects/OS400/os400sys.c:981,1
    - Dst: zlibVersion
      Src: /src/curl/projects/OS400/os400sys.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: Curl_os400_zlibVersion
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - set_thread_string
    - zlibVersion
    linkageType: ''
    returnType: char
    signature: char *Curl_os400_zlibVersion(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit
      Src: /src/curl/projects/OS400/os400sys.c:990,1
    - Dst: set_thread_string
      Src: /src/curl/projects/OS400/os400sys.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - strm
    - version
    - stream_size
    argTypes:
    - z_streamp
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 996
    functionName: Curl_os400_inflateInit_
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - set_thread_string
    - inflateInit
    linkageType: ''
    returnType: int
    signature: "int Curl_os400_inflateInit_(z_streamp strm, const char *version,\n
      \                           int stream_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit2
      Src: /src/curl/projects/OS400/os400sys.c:1004,1
    - Dst: set_thread_string
      Src: /src/curl/projects/OS400/os400sys.c:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - strm
    - windowBits
    - version
    - stream_size
    argTypes:
    - z_streamp
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1010
    functionName: Curl_os400_inflateInit2_
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - set_thread_string
    - inflateInit2
    linkageType: ''
    returnType: int
    signature: "int Curl_os400_inflateInit2_(z_streamp strm, int windowBits,\n                             const
      char *version, int stream_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflate
      Src: /src/curl/projects/OS400/os400sys.c:1017,1
    - Dst: set_thread_string
      Src: /src/curl/projects/OS400/os400sys.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strm
    - flush
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1023
    functionName: Curl_os400_inflate
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - set_thread_string
    - inflate
    linkageType: ''
    returnType: int
    signature: int Curl_os400_inflate(z_streamp strm, int flush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/curl/projects/OS400/os400sys.c:1030,1
    - Dst: set_thread_string
      Src: /src/curl/projects/OS400/os400sys.c:1033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1036
    functionName: Curl_os400_inflateEnd
    functionSourceFile: /src/curl/projects/OS400/os400sys.c
    functionUses: 0
    functionsReached:
    - set_thread_string
    - inflateEnd
    linkageType: ''
    returnType: int
    signature: int Curl_os400_inflateEnd(z_streamp strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/vms/curl_crtl_init.c:120,1
    - Dst: SYS$TRNLNM
      Src: /src/curl/projects/vms/curl_crtl_init.c:125,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/curl/projects/vms/curl_crtl_init.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - logname
    - value
    - value_len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 135
    functionName: sys_trnlnm
    functionSourceFile: /src/curl/projects/vms/curl_crtl_init.c
    functionUses: 0
    functionsReached:
    - $VMS_STATUS_SUCCESS
    - strlen
    - SYS$TRNLNM
    linkageType: ''
    returnType: int
    signature: int sys_trnlnm(const char *logname, char *value, int value_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/vms/curl_crtl_init.c:120,1
    - Dst: SYS$TRNLNM
      Src: /src/curl/projects/vms/curl_crtl_init.c:125,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/curl/projects/vms/curl_crtl_init.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 132
    functionName: $DESCRIPTOR
    functionSourceFile: /src/curl/projects/vms/curl_crtl_init.c
    functionUses: 1
    functionsReached:
    - $VMS_STATUS_SUCCESS
    - strlen
    - SYS$TRNLNM
    linkageType: ''
    returnType: void
    signature: "void $DESCRIPTOR(table_dsc, \"LNM$FILE_DEV\");\n  const unsigned long
      attr = LNM$M_CASE_BLIND;\n  struct dsc$descriptor_s name_dsc;\n  int status;\n
      \ unsigned short result;\n  struct itmlst_3 itlst[2];\n\n  itlst[0].buflen =
      value_len;\n  itlst[0].itmcode = LNM$_STRING;\n  itlst[0].bufadr = value;\n
      \ itlst[0].retlen = &result;\n\n  itlst[1].buflen = 0;\n  itlst[1].itmcode =
      0;\n\n  name_dsc.dsc$w_length = strlen(logname);\n  name_dsc.dsc$a_pointer =
      (char *)logname;\n  name_dsc.dsc$b_dtype = DSC$K_DTYPE_T;\n  name_dsc.dsc$b_class
      = DSC$K_CLASS_S;\n\n  status = SYS$TRNLNM(&attr, &table_dsc, &name_dsc, 0, itlst);\n\n
      \ if($VMS_STATUS_SUCCESS(status))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/curl/projects/vms/curl_crtl_init.c:147,1
    - Dst: strlen
      Src: /src/curl/projects/vms/curl_crtl_init.c:152,1
    - Dst: strlen
      Src: /src/curl/projects/vms/curl_crtl_init.c:156,1
    - Dst: SYS$CRELNM
      Src: /src/curl/projects/vms/curl_crtl_init.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - logname
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 167
    functionName: sys_crelnm
    functionSourceFile: /src/curl/projects/vms/curl_crtl_init.c
    functionUses: 0
    functionsReached:
    - strlen
    - SYS$CRELNM
    linkageType: ''
    returnType: int
    signature: int sys_crelnm(const char *logname, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_crelnm
      Src: /src/curl/projects/vms/curl_crtl_init.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: set_feature_default
    functionSourceFile: /src/curl/projects/vms/curl_crtl_init.c
    functionUses: 0
    functionsReached:
    - sys_crelnm
    linkageType: ''
    returnType: void
    signature: void set_feature_default(const char *name, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decc$feature_get_index
      Src: /src/curl/projects/vms/curl_crtl_init.c:184,1
    - Dst: decc$feature_set_value
      Src: /src/curl/projects/vms/curl_crtl_init.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: set_feature_default
    functionSourceFile: /src/curl/projects/vms/curl_crtl_init.c
    functionUses: 0
    functionsReached:
    - decc$feature_set_value
    - decc$feature_get_index
    linkageType: ''
    returnType: void
    signature: void set_feature_default(const char *name, int value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sys_trnlnm
      Src: /src/curl/projects/vms/curl_crtl_init.c:197,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/curl/projects/vms/curl_crtl_init.c:199,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:204,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:207,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:212,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:216,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:217,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:220,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:223,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:227,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:229,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:233,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:237,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:240,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:245,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:248,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:252,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:254,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:256,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:257,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:260,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:264,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:268,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:272,1
    - Dst: set_feature_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:275,1
    - Dst: do_not_set_default
      Src: /src/curl/projects/vms/curl_crtl_init.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 283
    functionName: set_features
    functionSourceFile: /src/curl/projects/vms/curl_crtl_init.c
    functionUses: 0
    functionsReached:
    - set_feature_default
    - do_not_set_default
    - $VMS_STATUS_SUCCESS
    - sys_trnlnm
    linkageType: ''
    returnType: void
    signature: void set_features(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/curl/projects/vms/report_openssl_version.c:49,1
    - Dst: dlopen
      Src: /src/curl/projects/vms/report_openssl_version.c:53,1
    - Dst: dlsym
      Src: /src/curl/projects/vms/report_openssl_version.c:55,1
    - Dst: dlsym
      Src: /src/curl/projects/vms/report_openssl_version.c:57,1
    - Dst: dlsym
      Src: /src/curl/projects/vms/report_openssl_version.c:59,1
    - Dst: dlclose
      Src: /src/curl/projects/vms/report_openssl_version.c:63,1
    - Dst: puts
      Src: /src/curl/projects/vms/report_openssl_version.c:66,1
    - Dst: ssl_version
      Src: /src/curl/projects/vms/report_openssl_version.c:70,1
    - Dst: puts
      Src: /src/curl/projects/vms/report_openssl_version.c:72,1
    - Dst: strlen
      Src: /src/curl/projects/vms/report_openssl_version.c:82,1
    - Dst: strlen
      Src: /src/curl/projects/vms/report_openssl_version.c:87,1
    - Dst: LIB$SET_SYMBOL
      Src: /src/curl/projects/vms/report_openssl_version.c:91,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/curl/projects/vms/report_openssl_version.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 98
    functionName: main
    functionSourceFile: /src/curl/projects/vms/report_openssl_version.c
    functionUses: 7
    functionsReached:
    - LIB$SET_SYMBOL
    - $VMS_STATUS_SUCCESS
    - dlopen
    - ssl_version
    - strlen
    - dlclose
    - dlsym
    - puts
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
Fuzzer filename: /src/curl_fuzzer/fuzz_doh.cc
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- uv.h
- mbedtls/x509.h
- multi_ntfy.h
- ngtcp2/ngtcp2_crypto_ossl.h
- winapifamily.h
- proto/exec.h
- mbedtls/ctr_drbg.h
- uint-bset.h
- ngtcp2/ngtcp2.h
- curl_fuzzer_option_manifest.inc
- exec/execbase.h
- vtls/vtls_int.h
- netdb.h
- nghttp3/nghttp3.h
- qsoasync.h
- float.h
- curlx/strcopy.h
- dnscache.h
- libclidef.h
- easy.h
- stdint.h
- signal.h
- gnutls/crypto.h
- vector
- setup-os400.h
- first.h
- curlx/snprintf.h
- fake_addrinfo.h
- openssl/err.h
- inttypes.h
- sys/utime.h
- sched.h
- ngtcp2/ngtcp2_crypto_quictls.h
- httpsrr.h
- curl_config.h
- termios.h
- tool_cb_see.h
- http1.h
- poll.h
- macos.h
- curlx/fopen.h
- mbedtls/psa_util.h
- curl_sasl.h
- curl/urlapi.h
- setjmp.h
- ngtcp2/ngtcp2_crypto.h
- http_aws_sigv4.h
- ratelimit.h
- curl_printf.h
- multi_ev.h
- stdlib.h
- tool_doswin.h
- stropts.h
- ifaddrs.h
- bufq.h
- setup-win32.h
- curl_memrchr.h
- nghttp2/nghttp2.h
- iostream
- socks.h
- dos.h
- afunix.h
- vtls/wolfssl.h
- openssl/pkcs12.h
- quiche.h
- libxml/HTMLparser.h
- tool_getpass.h
- proto_fuzzer/ws_accept_key.h
- urlapi-int.h
- request.h
- mbedtls/des.h
- extra/stricmp.h
- proto_fuzzer/option_apply.h
- fcntl.h
- http_chunks.h
- vtls/mbedtls.h
- qadrt.h
- zstd.h
- altsvc.h
- openssl/bn.h
- event2/event.h
- curlx/strparse.h
- tool_parsecfg.h
- vtls/cipher_suite.h
- tool_setup.h
- slist.h
- openssl/ossl_typ.h
- sys/select.h
- hsts.h
- curl_fuzzer.h
- cw-pause.h
- socketpair.h
- tool_msgs.h
- subauth.h
- proto_fuzzer/scenario_runner.h
- apr_optional.h
- amitcp/socketbasetags.h
- tool_help.h
- libxml/uri.h
- vtls/vtls_config.h
- gssapi.h
- curlx/warnless.h
- curl_fopen.h
- lwip/init.h
- tool_xattr.h
- filesystem
- wolfssl/wolfcrypt/md5.h
- tidy/tidy.h
- curlx/dynbuf.h
- protocol.h
- libprotobuf-mutator/src/libfuzzer/libfuzzer_macro.h
- setopt.h
- http_negotiate.h
- proto_fuzzer/mock_server.h
- proto_fuzzer/mock_server_base.h
- tool_cb_prg.h
- nettle/sha2.h
- url.h
- mbedtls/debug.h
- curl_sha512_256.h
- ConditionalMacros.h
- sspi.h
- cipher.mih
- apr_optional_hooks.h
- netinet/tcp.h
- tool_dirhie.h
- assert.h
- openssl/ssl.h
- uint-hash.h
- dict.h
- sys/xattr.h
- gtk/gtk.h
- sys/types.h
- openssl/ui.h
- cf-dns.h
- openssl/opensslv.h
- multi.h
- sys/mman.h
- config-mac.h
- config-win32.h
- SystemConfiguration/SCDynamicStoreCopySpecific.h
- gsasl.h
- cstddef
- conio.h
- curl_trc.h
- uint-table.h
- escape.h
- mih/callpgmv.h
- hash.h
- tool_ssls.h
- openssl/tls1.h
- lber.h
- tool_util.h
- tool_urlglob.h
- tcp.h
- unitprotos.h
- io.h
- cookie.h
- sys/un.h
- curl_hmac.h
- time.h
- sys/param.h
- getinfo.h
- tool_writeout.h
- ws2tcpip.h
- curl/curl.h
- vquic/cf-capsule.h
- ngtcp2/ngtcp2_crypto_wolfssl.h
- openssl/opensslconf.h
- curl/websockets.h
- tool_hugehelp.h
- formdata.h
- tool_easysrc.h
- curlx/timeval.h
- sys/timerfd.h
- if2ip.h
- curlx/strerr.h
- stdbool.h
- toolx/tool_time.h
- vquic/cf-quiche.h
- tool_stderr.h
- sys/extattr.h
- terminal.h
- peer.h
- vssh/vssh.h
- lwip/netdb.h
- proto/bsdsocket.h
- descrip
- curl_md4.h
- noproxy.h
- gnutls/abstract.h
- sys/cdefs.h
- gssapi/gssapi.h
- sys/socket.h
- hostip.h
- idn2.h
- vquic/cf-ngtcp2-proxy.h
- tool_paramhlp.h
- vtls/openssl.h
- apr_cstr.h
- vtls/schannel_int.h
- ngtcp2/ngtcp2_crypto_gnutls.h
- testtrace.h
- winerror.h
- pthread.h
- mprintf.h
- curl_md5.h
- testinput.h
- urlapi.h
- curl_share.h
- config-riscos.h
- wincrypt.h
- share.h
- curlx/inet_ntop.h
- tool_operate.h
- linux/tcp.h
- _mingw.h
- strerror.h
- cw-out.h
- starlet
- apr_want.h
- mbedtls/error.h
- rtsp.h
- curl.h
- nettle/md5.h
- curlx/timediff.h
- select.h
- sys/time.h
- winsock2.h
- vquic/capsule.h
- mqtt.h
- TargetConditionals.h
- curlx/basename.h
- mbedtls/ssl.h
- sockaddr.h
- doh.h
- cfilters.h
- sys/filio.h
- http2.h
- event2/event_struct.h
- proto_fuzzer/ws_frame.h
- cf-https-connect.h
- string.h
- ctype.h
- fileinfo.h
- vtls/apple.h
- descrip.h
- curl/stdcheaders.h
- psa/crypto.h
- thrdpool.h
- utime.h
- asyn.h
- vtls/hostcheck.h
- array
- curlx/strdup.h
- http.h
- gssapi/gssapi_alloc.h
- sys/resource.h
- Iphlpapi.h
- tidy/tidybuffio.h
- openssl/engine.h
- curlmsg.h
- cstdint
- ftp.h
- openssl/evp.h
- vtls/rustls.h
- unistd.h
- dirent.h
- libgen.h
- algorithm
- cf-h1-proxy.h
- tool_libinfo.h
- libssh2.h
- curlx/nonblock.h
- brotli/decode.h
- headers.h
- proto_fuzzer/websocket_mock_server.h
- netrc.h
- ccsidcurl.h
- curlx/multibyte.h
- cshutdn.h
- curl_fuzzer.pb.h
- openssl/conf.h
- lwip/sockets.h
- tool_cb_dbg.h
- config2setopts.h
- utility
- curl/curlver.h
- exec/types.h
- transfer.h
- pop3.h
- sys/poll.h
- ev.h
- dlfcn.h
- tool_cfgable.h
- sec_api/time_s.h
- expat.h
- sendf.h
- system_win32.h
- nettle/des.h
- wolfssl/quic.h
- cf-capsule.h
- sys/ioctl.h
- vtls/vtls_spack.h
- wolfssl/ssl.h
- curl/system.h
- tftp.h
- curl/mprintf.h
- openssl/dh.h
- curl_ldap.h
- vtls/vtls.h
- openssl/md5.h
- vquic/vquic.h
- windows.h
- cf-socket.h
- stddef.h
- tool_cb_rea.h
- multihandle.h
- tlhelp32.h
- sys/stat.h
- config-os400.h
- curlx/inet_pton.h
- openssl/ech.h
- milib.h
- capsule.h
- ftp-int.h
- cf-ip-happy.h
- vtls/keylog.h
- tool_sdecls.h
- netinet/in6.h
- idn.h
- sys/sockio.h
- termio.h
- splay.h
- vauth/vauth.h
- easyif.h
- pwd.h
- tool_progress.h
- wolfssl/wolfcrypt/sha512.h
- ftplistparser.h
- tool_cb_hdr.h
- gopher.h
- vquic/vquic-tls.h
- system_error
- pingpong.h
- websockets.h
- mach/mach_time.h
- http_request.h
- gnutls/gnutls.h
- strings.h
- tool_ipfs.h
- system.h
- amigaos.h
- CommonCrypto/CommonDigest.h
- stdio.h
- curlver.h
- strcase.h
- tool_operhlp.h
- vssh/ssh.h
- string
- smb.h
- conncache.h
- winber.h
- fuzz_bufq.h
- openssl/rsa.h
- inet.h
- mbedtls/net_sockets.h
- thrdqueue.h
- http_proxy.h
- vtls/vtls_scache.h
- smtp.h
- var.h
- stsdef.h
- miptrnam.h
- tool_getparam.h
- tool_cb_soc.h
- winldap.h
- extra/strdup.h
- ldap.h
- psa/crypto_config.h
- netinet/in.h
- easy_lock.h
- openssl/md4.h
- net/if.h
- schannel.h
- openssl/rand.h
- sigpipe.h
- curl_sspi.h
- progress.h
- dynhds.h
- functypes.h
- nettle/md4.h
- mbedtls/entropy.h
- mbedtls/version.h
- curl_ctype.h
- glib.h
- content_encoding.h
- openssl/core_names.h
- math.h
- libpsl.h
- curl_fnmatch.h
- gskssl.h
- curlx/version_win32.h
- vauth/digest.h
- backtrace.h
- memory
- rand.h
- openssl/crypto.h
- openssl/provider.h
- limits.h
- curl_get_line.h
- slist_wc.h
- imap.h
- tool_setopt.h
- curl_setup.h
- options.h
- libssh/sftp.h
- vquic/vquic_int.h
- cstring
- curl_addrinfo.h
- rustls.h
- apr_strings.h
- fuzzer/FuzzedDataProvider.h
- uint-spbset.h
- wolfssl/wolfcrypt/des3.h
- cstdlib
- os400sys.h
- httpd.h
- tool_formparse.h
- curl_gssapi.h
- zlib.h
- wolfssl/wolfcrypt/sha256.h
- curlx/winapi.h
- mime.h
- openssl/des.h
- typecheck-gcc.h
- cstdio
- tool_writeout_json.h
- gnutls/ocsp.h
- lnmdef.h
- netinet/udp.h
- fnmatch.h
- openssl/bio.h
- openssl/dsa.h
- curlx/base64.h
- tool_version.h
- wolfssl/options.h
- iodef
- curl_ntlm_core.h
- tool_cb_wrt.h
- tool_main.h
- wolfssl/wolfcrypt/md4.h
- tchar.h
- openssl/ocsp.h
- ngtcp2/ngtcp2_crypto_boringssl.h
- cf-h2-proxy.h
- sys/epoll.h
- gnutls/x509.h
- locale.h
- libssh2_sftp.h
- tool_filetime.h
- setup-vms.h
- sys/eventfd.h
- openssl/store.h
- file.h
- bcrypt.h
- testutil.h
- tool_vms.h
- unicode/uidna.h
- curl_range.h
- vtls/schannel.h
- nettle/version.h
- curl/multi.h
- psl.h
- arpa_telnet.h
- wolfssl/error-ssl.h
- curl_gethostname.h
- errno.h
- langinfo.h
- stdatomic.h
- gss.h
- wchar.h
- easyoptions.h
- curlx/wait.h
- in.h
- multiif.h
- proto/dos.h
- ldap_ssl.h
- openssl/x509v3.h
- http_log.h
- stdarg.h
- arpa/inet.h
- curl_threads.h
- fabdef.h
- http_protocol.h
- tool_findfile.h
- cf-haproxy.h
- vquic/cf-ngtcp2.h
- telnet.h
- direct.h
- http_ntlm.h
- libxml/xpath.h
- connect.h
- vtls/x509asn1.h
- curlmsg_vms.h
- iphlpapi.h
- tool_helpers.h
- creds.h
- iconv.h
- http_digest.h
- floss.h
- ares.h
- bsdsocket/socketbasetags.h
- apr_time.h
- unitcheck.h
- unixlib.h
- ws.h
- wolfssl/version.h
- gssapi/gssapi_krb5.h
- curl_sha256.h
- bufref.h
- header.h
- curl_endian.h
- vtls/gtls.h
- Security/Security.h
- libssh/libssh.h
- stabs.h
- parsedate.h
- llist.h
- urldata.h
report: name
sources:
- function_names:
  - RunDecode
  - RunEncode
  - RunDecode
  - RunEncode
  - LLVMFuzzerTestOneInput
  source_file: /src/curl_fuzzer/fuzz_doh.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUZZ_DOH_MAX_DNSREQ_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl_fuzzer/fuzz_doh.cc
      type_or_value: (256 + 16)
    structs: []
    typedefs: []
    union: []
- function_names:
  - timeout_handler
  - install_timeout_handler
  - run_one_file
  - process_directory
  - main
  source_file: /src/curl_fuzzer/standalone_fuzz_target_runner.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/curl_fuzzer/fuzz_fnmatch.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FV_PRINTF
  source_file: /src/curl_fuzzer/fuzz_bufq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUZZ_MAX_CHUNK_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: (16 * 1024)
    - item_type: preproc_def
      name: FUZZ_MAX_CHUNKS_QTY
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: (1 * 1024)
    - item_type: preproc_def
      name: FUZZ_MAX_MAX_SPARE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: (1 * 1024)
    - item_type: preproc_def
      name: FUZZ_MAX_RW_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: (FUZZ_MAX_CHUNKS_QTY * FUZZ_MAX_CHUNK_SIZE)
    - item_type: preproc_def
      name: OP_TYPE_WRITE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OP_TYPE_READ
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OP_TYPE_SKIP
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OP_TYPE_RESET
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OP_TYPE_PEEK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '4'
    - item_type: preproc_def
      name: OP_TYPE_PEEK_AT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '5'
    - item_type: preproc_def
      name: OP_TYPE_SIPN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '6'
    - item_type: preproc_def
      name: OP_TYPE_SLURP
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '7'
    - item_type: preproc_def
      name: OP_TYPE_PASS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '8'
    - item_type: preproc_def
      name: OP_TYPE_MAX
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl_fuzzer/fuzz_bufq.h
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl_fuzzer/testinput.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FTRY
  - FCHECK
  - FSET_OPTION
  - FCHECK_OPTION_UNSET
  - FSINGLETONTLV
  - FRESPONSETLV
  - FU32TLV
  - FV_PRINTF
  - FUZZ_MAX
  source_file: /src/curl_fuzzer/curl_fuzzer.h
  types:
    enum:
    - enumerators:
      - name: FUZZ_SOCK_CLOSED
      - name: FUZZ_SOCK_SHUTDOWN
      - name: FUZZ_SOCK_OPEN
      item_type: enum
      name: fuzz_sock_state
      pos:
        line_end: 312
        line_start: 308
        source_file: /src/curl_fuzzer/curl_fuzzer.h
    preproc_defs:
    - item_type: preproc_def
      name: TLV_TYPE_URL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE0
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TLV_TYPE_USERNAME
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TLV_TYPE_PASSWORD
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TLV_TYPE_POSTFIELDS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TLV_TYPE_HEADER
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TLV_TYPE_COOKIE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TLV_TYPE_UPLOAD1
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TLV_TYPE_RANGE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '9'
    - item_type: preproc_def
      name: TLV_TYPE_CUSTOMREQUEST
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '10'
    - item_type: preproc_def
      name: TLV_TYPE_MAIL_RECIPIENT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '11'
    - item_type: preproc_def
      name: TLV_TYPE_MAIL_FROM
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '12'
    - item_type: preproc_def
      name: TLV_TYPE_MIME_PART
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '13'
    - item_type: preproc_def
      name: TLV_TYPE_MIME_PART_NAME
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '14'
    - item_type: preproc_def
      name: TLV_TYPE_MIME_PART_DATA
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '15'
    - item_type: preproc_def
      name: TLV_TYPE_HTTPAUTH
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE1
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '17'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE2
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '18'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE3
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '19'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE4
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE5
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '21'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE6
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '22'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE7
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '23'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE8
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '24'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE9
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '25'
    - item_type: preproc_def
      name: TLV_TYPE_RESPONSE10
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '26'
    - item_type: preproc_def
      name: TLV_TYPE_OPTHEADER
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '27'
    - item_type: preproc_def
      name: TLV_TYPE_NOBODY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '28'
    - item_type: preproc_def
      name: TLV_TYPE_FOLLOWLOCATION
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '29'
    - item_type: preproc_def
      name: TLV_TYPE_ACCEPTENCODING
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '30'
    - item_type: preproc_def
      name: TLV_TYPE_SECOND_RESPONSE0
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '31'
    - item_type: preproc_def
      name: TLV_TYPE_SECOND_RESPONSE1
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '32'
    - item_type: preproc_def
      name: TLV_TYPE_WILDCARDMATCH
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '33'
    - item_type: preproc_def
      name: TLV_TYPE_RTSP_REQUEST
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '34'
    - item_type: preproc_def
      name: TLV_TYPE_RTSP_SESSION_ID
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '35'
    - item_type: preproc_def
      name: TLV_TYPE_RTSP_STREAM_URI
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '36'
    - item_type: preproc_def
      name: TLV_TYPE_RTSP_TRANSPORT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '37'
    - item_type: preproc_def
      name: TLV_TYPE_RTSP_CLIENT_CSEQ
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '38'
    - item_type: preproc_def
      name: TLV_TYPE_MAIL_AUTH
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '39'
    - item_type: preproc_def
      name: TLV_TYPE_HTTP_VERSION
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '40'
    - item_type: preproc_def
      name: TLV_TYPE_DOH_URL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '41'
    - item_type: preproc_def
      name: TLV_TYPE_LOGIN_OPTIONS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '42'
    - item_type: preproc_def
      name: TLV_TYPE_XOAUTH2_BEARER
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '43'
    - item_type: preproc_def
      name: TLV_TYPE_USERPWD
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '44'
    - item_type: preproc_def
      name: TLV_TYPE_USERAGENT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '45'
    - item_type: preproc_def
      name: TLV_TYPE_NETRC
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '46'
    - item_type: preproc_def
      name: TLV_TYPE_SSH_HOST_PUBLIC_KEY_SHA256
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '47'
    - item_type: preproc_def
      name: TLV_TYPE_POST
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '48'
    - item_type: preproc_def
      name: TLV_TYPE_WS_OPTIONS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '49'
    - item_type: preproc_def
      name: TLV_TYPE_CONNECT_ONLY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '50'
    - item_type: preproc_def
      name: TLV_TYPE_HSTS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '51'
    - item_type: preproc_def
      name: TLV_TYPE_HTTPPOSTBODY
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '52'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '53'
    - item_type: preproc_def
      name: TLV_TYPE_PROXYTYPE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '54'
    - item_type: preproc_def
      name: TLV_TYPE_PROXYUSERPWD
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '100'
    - item_type: preproc_def
      name: TLV_TYPE_REFERER
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '101'
    - item_type: preproc_def
      name: TLV_TYPE_FTPPORT
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '102'
    - item_type: preproc_def
      name: TLV_TYPE_SSLCERT
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '103'
    - item_type: preproc_def
      name: TLV_TYPE_KEYPASSWD
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '104'
    - item_type: preproc_def
      name: TLV_TYPE_INTERFACE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '105'
    - item_type: preproc_def
      name: TLV_TYPE_KRBLEVEL
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '106'
    - item_type: preproc_def
      name: TLV_TYPE_CAINFO
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '107'
    - item_type: preproc_def
      name: TLV_TYPE_SSL_CIPHER_LIST
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '108'
    - item_type: preproc_def
      name: TLV_TYPE_SSLCERTTYPE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '109'
    - item_type: preproc_def
      name: TLV_TYPE_SSLKEY
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '110'
    - item_type: preproc_def
      name: TLV_TYPE_SSLKEYTYPE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '111'
    - item_type: preproc_def
      name: TLV_TYPE_SSLENGINE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '112'
    - item_type: preproc_def
      name: TLV_TYPE_CAPATH
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '113'
    - item_type: preproc_def
      name: TLV_TYPE_FTP_ACCOUNT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '114'
    - item_type: preproc_def
      name: TLV_TYPE_COOKIELIST
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '115'
    - item_type: preproc_def
      name: TLV_TYPE_FTP_ALTERNATIVE_TO_USER
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '116'
    - item_type: preproc_def
      name: TLV_TYPE_SSH_PUBLIC_KEYFILE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '117'
    - item_type: preproc_def
      name: TLV_TYPE_SSH_PRIVATE_KEYFILE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '118'
    - item_type: preproc_def
      name: TLV_TYPE_SSH_HOST_PUBLIC_KEY_MD5
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '119'
    - item_type: preproc_def
      name: TLV_TYPE_ISSUERCERT
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '120'
    - item_type: preproc_def
      name: TLV_TYPE_PROXYUSERNAME
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '121'
    - item_type: preproc_def
      name: TLV_TYPE_PROXYPASSWORD
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '122'
    - item_type: preproc_def
      name: TLV_TYPE_NOPROXY
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '123'
    - item_type: preproc_def
      name: TLV_TYPE_SSH_KNOWNHOSTS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '124'
    - item_type: preproc_def
      name: TLV_TYPE_TLSAUTH_USERNAME
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '125'
    - item_type: preproc_def
      name: TLV_TYPE_TLSAUTH_PASSWORD
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '126'
    - item_type: preproc_def
      name: TLV_TYPE_TLSAUTH_TYPE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '127'
    - item_type: preproc_def
      name: TLV_TYPE_DNS_SERVERS
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '128'
    - item_type: preproc_def
      name: TLV_TYPE_DNS_INTERFACE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '129'
    - item_type: preproc_def
      name: TLV_TYPE_DNS_LOCAL_IP4
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '130'
    - item_type: preproc_def
      name: TLV_TYPE_DNS_LOCAL_IP6
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '131'
    - item_type: preproc_def
      name: TLV_TYPE_PINNEDPUBLICKEY
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '132'
    - item_type: preproc_def
      name: TLV_TYPE_UNIX_SOCKET_PATH
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '133'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SERVICE_NAME
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '134'
    - item_type: preproc_def
      name: TLV_TYPE_SERVICE_NAME
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '135'
    - item_type: preproc_def
      name: TLV_TYPE_DEFAULT_PROTOCOL
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '136'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_CAINFO
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '137'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_CAPATH
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '138'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_TLSAUTH_USERNAME
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '139'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_TLSAUTH_PASSWORD
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '140'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_TLSAUTH_TYPE
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '141'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SSLCERT
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '142'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SSLCERTTYPE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '143'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SSLKEY
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '144'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SSLKEYTYPE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '145'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_KEYPASSWD
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '146'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SSL_CIPHER_LIST
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '147'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_CRLFILE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '148'
    - item_type: preproc_def
      name: TLV_TYPE_PRE_PROXY
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '149'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_PINNEDPUBLICKEY
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '150'
    - item_type: preproc_def
      name: TLV_TYPE_ABSTRACT_UNIX_SOCKET
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '151'
    - item_type: preproc_def
      name: TLV_TYPE_REQUEST_TARGET
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '152'
    - item_type: preproc_def
      name: TLV_TYPE_TLS13_CIPHERS
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '153'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_TLS13_CIPHERS
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '154'
    - item_type: preproc_def
      name: TLV_TYPE_SASL_AUTHZID
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '155'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_ISSUERCERT
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '156'
    - item_type: preproc_def
      name: TLV_TYPE_SSL_EC_CURVES
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '157'
    - item_type: preproc_def
      name: TLV_TYPE_AWS_SIGV4
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '158'
    - item_type: preproc_def
      name: TLV_TYPE_REDIR_PROTOCOLS_STR
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '159'
    - item_type: preproc_def
      name: TLV_TYPE_HAPROXY_CLIENT_IP
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '160'
    - item_type: preproc_def
      name: TLV_TYPE_ECH
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '161'
    - item_type: preproc_def
      name: TLV_TYPE_PORT
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '200'
    - item_type: preproc_def
      name: TLV_TYPE_LOW_SPEED_LIMIT
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '201'
    - item_type: preproc_def
      name: TLV_TYPE_LOW_SPEED_TIME
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '202'
    - item_type: preproc_def
      name: TLV_TYPE_RESUME_FROM
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '203'
    - item_type: preproc_def
      name: TLV_TYPE_TIMEVALUE
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '204'
    - item_type: preproc_def
      name: TLV_TYPE_NOPROGRESS
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '205'
    - item_type: preproc_def
      name: TLV_TYPE_FAILONERROR
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '206'
    - item_type: preproc_def
      name: TLV_TYPE_DIRLISTONLY
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '207'
    - item_type: preproc_def
      name: TLV_TYPE_APPEND
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '208'
    - item_type: preproc_def
      name: TLV_TYPE_TRANSFERTEXT
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '209'
    - item_type: preproc_def
      name: TLV_TYPE_AUTOREFERER
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '210'
    - item_type: preproc_def
      name: TLV_TYPE_PROXYPORT
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '211'
    - item_type: preproc_def
      name: TLV_TYPE_POSTFIELDSIZE
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '212'
    - item_type: preproc_def
      name: TLV_TYPE_HTTPPROXYTUNNEL
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '213'
    - item_type: preproc_def
      name: TLV_TYPE_SSL_VERIFYPEER
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '214'
    - item_type: preproc_def
      name: TLV_TYPE_MAXREDIRS
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '215'
    - item_type: preproc_def
      name: TLV_TYPE_FILETIME
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '216'
    - item_type: preproc_def
      name: TLV_TYPE_MAXCONNECTS
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '217'
    - item_type: preproc_def
      name: TLV_TYPE_FRESH_CONNECT
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '218'
    - item_type: preproc_def
      name: TLV_TYPE_FORBID_REUSE
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '219'
    - item_type: preproc_def
      name: TLV_TYPE_CONNECTTIMEOUT
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '220'
    - item_type: preproc_def
      name: TLV_TYPE_HTTPGET
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '221'
    - item_type: preproc_def
      name: TLV_TYPE_SSL_VERIFYHOST
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '222'
    - item_type: preproc_def
      name: TLV_TYPE_FTP_USE_EPSV
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '223'
    - item_type: preproc_def
      name: TLV_TYPE_SSLENGINE_DEFAULT
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '224'
    - item_type: preproc_def
      name: TLV_TYPE_DNS_CACHE_TIMEOUT
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '225'
    - item_type: preproc_def
      name: TLV_TYPE_COOKIESESSION
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '226'
    - item_type: preproc_def
      name: TLV_TYPE_BUFFERSIZE
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '227'
    - item_type: preproc_def
      name: TLV_TYPE_NOSIGNAL
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '228'
    - item_type: preproc_def
      name: TLV_TYPE_UNRESTRICTED_AUTH
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '229'
    - item_type: preproc_def
      name: TLV_TYPE_FTP_USE_EPRT
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '230'
    - item_type: preproc_def
      name: TLV_TYPE_FTP_CREATE_MISSING_DIRS
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '231'
    - item_type: preproc_def
      name: TLV_TYPE_MAXFILESIZE
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '232'
    - item_type: preproc_def
      name: TLV_TYPE_TCP_NODELAY
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '233'
    - item_type: preproc_def
      name: TLV_TYPE_IGNORE_CONTENT_LENGTH
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '234'
    - item_type: preproc_def
      name: TLV_TYPE_FTP_SKIP_PASV_IP
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '235'
    - item_type: preproc_def
      name: TLV_TYPE_LOCALPORT
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '236'
    - item_type: preproc_def
      name: TLV_TYPE_LOCALPORTRANGE
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '237'
    - item_type: preproc_def
      name: TLV_TYPE_SSL_SESSIONID_CACHE
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '238'
    - item_type: preproc_def
      name: TLV_TYPE_FTP_SSL_CCC
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '239'
    - item_type: preproc_def
      name: TLV_TYPE_CONNECTTIMEOUT_MS
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '240'
    - item_type: preproc_def
      name: TLV_TYPE_HTTP_TRANSFER_DECODING
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '241'
    - item_type: preproc_def
      name: TLV_TYPE_HTTP_CONTENT_DECODING
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '242'
    - item_type: preproc_def
      name: TLV_TYPE_NEW_FILE_PERMS
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '243'
    - item_type: preproc_def
      name: TLV_TYPE_NEW_DIRECTORY_PERMS
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '244'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_TRANSFER_MODE
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '245'
    - item_type: preproc_def
      name: TLV_TYPE_ADDRESS_SCOPE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '246'
    - item_type: preproc_def
      name: TLV_TYPE_CERTINFO
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '247'
    - item_type: preproc_def
      name: TLV_TYPE_TFTP_BLKSIZE
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '248'
    - item_type: preproc_def
      name: TLV_TYPE_SOCKS5_GSSAPI_NEC
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '249'
    - item_type: preproc_def
      name: TLV_TYPE_FTP_USE_PRET
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '250'
    - item_type: preproc_def
      name: TLV_TYPE_RTSP_SERVER_CSEQ
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '251'
    - item_type: preproc_def
      name: TLV_TYPE_TRANSFER_ENCODING
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '252'
    - item_type: preproc_def
      name: TLV_TYPE_ACCEPTTIMEOUT_MS
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '253'
    - item_type: preproc_def
      name: TLV_TYPE_TCP_KEEPALIVE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '254'
    - item_type: preproc_def
      name: TLV_TYPE_TCP_KEEPIDLE
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '255'
    - item_type: preproc_def
      name: TLV_TYPE_TCP_KEEPINTVL
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '256'
    - item_type: preproc_def
      name: TLV_TYPE_SASL_IR
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '257'
    - item_type: preproc_def
      name: TLV_TYPE_SSL_ENABLE_ALPN
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '258'
    - item_type: preproc_def
      name: TLV_TYPE_EXPECT_100_TIMEOUT_MS
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '259'
    - item_type: preproc_def
      name: TLV_TYPE_SSL_VERIFYSTATUS
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '260'
    - item_type: preproc_def
      name: TLV_TYPE_SSL_FALSESTART
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '261'
    - item_type: preproc_def
      name: TLV_TYPE_PATH_AS_IS
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '262'
    - item_type: preproc_def
      name: TLV_TYPE_PIPEWAIT
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '263'
    - item_type: preproc_def
      name: TLV_TYPE_STREAM_WEIGHT
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '264'
    - item_type: preproc_def
      name: TLV_TYPE_TFTP_NO_OPTIONS
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '265'
    - item_type: preproc_def
      name: TLV_TYPE_TCP_FASTOPEN
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '266'
    - item_type: preproc_def
      name: TLV_TYPE_KEEP_SENDING_ON_ERROR
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '267'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SSL_VERIFYPEER
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '268'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SSL_VERIFYHOST
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '269'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SSL_OPTIONS
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '270'
    - item_type: preproc_def
      name: TLV_TYPE_SUPPRESS_CONNECT_HEADERS
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '271'
    - item_type: preproc_def
      name: TLV_TYPE_SOCKS5_AUTH
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '272'
    - item_type: preproc_def
      name: TLV_TYPE_SSH_COMPRESSION
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '273'
    - item_type: preproc_def
      name: TLV_TYPE_HAPPY_EYEBALLS_TIMEOUT_MS
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '274'
    - item_type: preproc_def
      name: TLV_TYPE_HAPROXYPROTOCOL
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '275'
    - item_type: preproc_def
      name: TLV_TYPE_DNS_SHUFFLE_ADDRESSES
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '276'
    - item_type: preproc_def
      name: TLV_TYPE_DISALLOW_USERNAME_IN_URL
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '277'
    - item_type: preproc_def
      name: TLV_TYPE_UPLOAD_BUFFERSIZE
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '278'
    - item_type: preproc_def
      name: TLV_TYPE_UPKEEP_INTERVAL_MS
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '279'
    - item_type: preproc_def
      name: TLV_TYPE_HTTP09_ALLOWED
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '280'
    - item_type: preproc_def
      name: TLV_TYPE_ALTSVC_CTRL
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '281'
    - item_type: preproc_def
      name: TLV_TYPE_MAXAGE_CONN
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '282'
    - item_type: preproc_def
      name: TLV_TYPE_MAIL_RCPT_ALLOWFAILS
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '283'
    - item_type: preproc_def
      name: TLV_TYPE_HSTS_CTRL
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '284'
    - item_type: preproc_def
      name: TLV_TYPE_DOH_SSL_VERIFYPEER
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '285'
    - item_type: preproc_def
      name: TLV_TYPE_DOH_SSL_VERIFYHOST
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '286'
    - item_type: preproc_def
      name: TLV_TYPE_DOH_SSL_VERIFYSTATUS
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '287'
    - item_type: preproc_def
      name: TLV_TYPE_MAXLIFETIME_CONN
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '288'
    - item_type: preproc_def
      name: TLV_TYPE_MIME_OPTIONS
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '289'
    - item_type: preproc_def
      name: TLV_TYPE_CA_CACHE_TIMEOUT
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '290'
    - item_type: preproc_def
      name: TLV_TYPE_QUICK_EXIT
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '291'
    - item_type: preproc_def
      name: TLV_TYPE_SERVER_RESPONSE_TIMEOUT_MS
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '292'
    - item_type: preproc_def
      name: TLV_TYPE_TCP_KEEPCNT
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '293'
    - item_type: preproc_def
      name: TLV_TYPE_SSLVERSION
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '300'
    - item_type: preproc_def
      name: TLV_TYPE_TIMECONDITION
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '301'
    - item_type: preproc_def
      name: TLV_TYPE_PROXYAUTH
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '302'
    - item_type: preproc_def
      name: TLV_TYPE_IPRESOLVE
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '303'
    - item_type: preproc_def
      name: TLV_TYPE_USE_SSL
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '304'
    - item_type: preproc_def
      name: TLV_TYPE_FTPSSLAUTH
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '305'
    - item_type: preproc_def
      name: TLV_TYPE_FTP_FILEMETHOD
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '306'
    - item_type: preproc_def
      name: TLV_TYPE_SSH_AUTH_TYPES
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '307'
    - item_type: preproc_def
      name: TLV_TYPE_POSTREDIR
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '308'
    - item_type: preproc_def
      name: TLV_TYPE_GSSAPI_DELEGATION
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '309'
    - item_type: preproc_def
      name: TLV_TYPE_SSL_OPTIONS
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '310'
    - item_type: preproc_def
      name: TLV_TYPE_HEADEROPT
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '311'
    - item_type: preproc_def
      name: TLV_TYPE_PROXY_SSLVERSION
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '312'
    - item_type: preproc_def
      name: TLV_TYPE_RESUME_FROM_LARGE
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '320'
    - item_type: preproc_def
      name: TLV_TYPE_MAXFILESIZE_LARGE
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '321'
    - item_type: preproc_def
      name: TLV_TYPE_POSTFIELDSIZE_LARGE
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '322'
    - item_type: preproc_def
      name: TLV_TYPE_MAX_SEND_SPEED_LARGE
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '323'
    - item_type: preproc_def
      name: TLV_TYPE_MAX_RECV_SPEED_LARGE
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '324'
    - item_type: preproc_def
      name: TLV_TYPE_TIMEVALUE_LARGE
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '325'
    - item_type: preproc_def
      name: TLV_RC_NO_ERROR
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TLV_RC_NO_MORE_TLVS
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TLV_RC_SIZE_ERROR
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TEMP_WRITE_ARRAY_SIZE
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '10'
    - item_type: preproc_def
      name: MAXIMUM_WRITE_LENGTH
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '52428800'
    - item_type: preproc_def
      name: FUZZ_HTTPPOST_NAME
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '"test"'
    - item_type: preproc_def
      name: FUZZ_COOKIE_JAR_PATH
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: FUZZ_RO_COOKIE_FILE_PATH
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: FUZZ_ALT_SVC_HEADER_CACHE_PATH
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: FUZZ_HSTS_HEADER_CACHE_PATH
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: FUZZ_CRL_FILE_PATH
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: FUZZ_NETRC_FILE_PATH
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: TLV_MAX_NUM_RESPONSES
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '11'
    - item_type: preproc_def
      name: TLV_MAX_NUM_CURLOPT_HEADER
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: FUZZ_CURLOPT_TRACKER_SPACE
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '500'
    - item_type: preproc_def
      name: FUZZ_NUM_CONNECTIONS
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/curl_fuzzer/curl_fuzzer.h
      type_or_value: '2'
    structs:
    - fields:
      - name: raw_type[2]
        type: uint8_t
      - name: raw_length[4]
        type: uint8_t
      item_type: struct
      name: tlv_raw
      pos:
        line_end: 326
        line_start: 318
        source_file: /src/curl_fuzzer/curl_fuzzer.h
    - fields:
      - name: type
        type: uint16_t
      - name: length
        type: uint32_t
      - name: '*value'
        type: uint8_t
      item_type: struct
      name: tlv
      pos:
        line_end: 339
        line_start: 328
        source_file: /src/curl_fuzzer/curl_fuzzer.h
    - fields:
      - name: '*data'
        type: uint8_t
      - name: data_len
        type: size_t
      - name: data_pos
        type: size_t
      item_type: struct
      name: fuzz_parse_state
      pos:
        line_end: 353
        line_start: 344
        source_file: /src/curl_fuzzer/curl_fuzzer.h
    - fields:
      - name: '*data'
        type: uint8_t
      - name: data_len
        type: size_t
      item_type: struct
      name: fuzz_response
      pos:
        line_end: 364
        line_start: 358
        source_file: /src/curl_fuzzer/curl_fuzzer.h
    - fields:
      - name: index
        type: unsigned char
      - name: responses[TLV_MAX_NUM_RESPONSES]
        type: FUZZ_RESPONSE
      - name: response_index
        type: int
      - name: fd_state
        type: FUZZ_SOCK_STATE
      - name: fd
        type: curl_socket_t
      item_type: struct
      name: fuzz_socket_manager
      pos:
        line_end: 379
        line_start: 366
        source_file: /src/curl_fuzzer/curl_fuzzer.h
    - fields:
      - name: '*easy'
        type: CURL
      - name: state
        type: FUZZ_PARSE_STATE
      - name: write_array[TEMP_WRITE_ARRAY_SIZE]
        type: char
      - name: written_data
        type: size_t
      - name: '*upload1_data'
        type: uint8_t
      - name: upload1_data_len
        type: size_t
      - name: upload1_data_written
        type: size_t
      - name: options[FUZZ_CURLOPT_TRACKER_SPACE]
        type: unsigned char
      - name: '*postfields'
        type: char
      - name: header_list_count
        type: int
      - name: '*header_list'
        type: struct curl_slist
      - name: '*mail_recipients_list'
        type: struct curl_slist
      - name: '*connect_to_list'
        type: struct curl_slist
      - name: '*mime'
        type: curl_mime
      - name: '*part'
        type: curl_mimepart
      - name: '*httppost'
        type: struct curl_httppost
      - name: '*last_post_part'
        type: struct curl_httppost
      - name: '*post_body'
        type: char
      - name: sockman[FUZZ_NUM_CONNECTIONS]
        type: FUZZ_SOCKET_MANAGER
      - name: verbose
        type: int
      item_type: struct
      name: fuzz_data
      pos:
        line_end: 435
        line_start: 384
        source_file: /src/curl_fuzzer/curl_fuzzer.h
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  - to_u32
  - to_u16
  - fuzz_initialize_fuzz_data
  - fuzz_set_easy_options
  - fuzz_terminate_fuzz_data
  - fuzz_free
  - fuzz_handle_transfer
  - fuzz_send_next_response
  - fuzz_select
  - fuzz_set_allowed_protocols
  source_file: /src/curl_fuzzer/curl_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FUZZ_VALID_SOCK
  - fuzz_open_socket
  - fuzz_sockopt_callback
  - fuzz_read_callback
  - fuzz_write_callback
  source_file: /src/curl_fuzzer/curl_fuzzer_callback.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - allocate_template_buffer
  - compute_buffer
  - bufq_writer_cb
  - bufq_reader_cb
  - fuzz_handle_bufq
  - LLVMFuzzerTestOneInput
  source_file: /src/curl_fuzzer/fuzz_bufq.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: verbose
        type: bool
      - name: '*template_buf'
        type: unsigned char
      - name: read_len
        type: size_t
      - name: next_byte_read
        type: unsigned char
      item_type: struct
      name: writer_cb_ctx
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    - fields:
      - name: verbose
        type: bool
      - name: '*template_buf'
        type: unsigned char
      - name: write_len
        type: size_t
      - name: next_byte_write
        type: unsigned char
      item_type: struct
      name: reader_cb_ctx
      pos:
        line_end: 105
        line_start: 100
        source_file: /src/curl_fuzzer/fuzz_bufq.cc
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/curl_fuzzer/fuzz_url.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fuzz_get_first_tlv
  - fuzz_get_next_tlv
  - fuzz_get_tlv_comn
  - fuzz_parse_tlv
  - fuzz_tlv_to_string
  - fuzz_setup_http_post
  - fuzz_add_mime_part
  - fuzz_parse_mime_tlv
  source_file: /src/curl_fuzzer/curl_fuzzer_tlv.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proto_fuzzer::MockConnection::MockConnection
  - '& operator=(const MockConnection&)'
  - proto_fuzzer::MockConnection::MockConnection
  - '& operator=(const MockConnection&)'
  source_file: /src/curl_fuzzer/proto_fuzzer/mock_server.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CurlGlobalBootstrap
  - CurlGlobalBootstrap
  - DEFINE_BINARY_PROTO_FUZZER
  source_file: /src/curl_fuzzer/proto_fuzzer/fuzzer_main.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: CurlGlobalBootstrap
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/curl_fuzzer/proto_fuzzer/fuzzer_main.cc
    - fields: []
      item_type: struct
      name: CurlGlobalBootstrap
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/curl_fuzzer/proto_fuzzer/fuzzer_main.cc
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator()(CURL* h) const noexcept
  - proto_fuzzer::SchemePrefix
  - proto_fuzzer::MakeMockServerForScenario
  - operator()(CURL* h) const noexcept
  - proto_fuzzer::SchemePrefix
  - proto_fuzzer::MakeMockServerForScenario
  - proto_fuzzer::ScenarioRunner::ScenarioRunner
  - ScenarioRunner::~ScenarioRunner()
  - proto_fuzzer::ScenarioRunner::Run
  - operator()(CURL* h) const noexcept
  - proto_fuzzer::SchemePrefix
  - proto_fuzzer::MakeMockServerForScenario
  - operator()(CURL* h) const noexcept
  - proto_fuzzer::SchemePrefix
  - proto_fuzzer::MakeMockServerForScenario
  - proto_fuzzer::ScenarioRunner::ScenarioRunner
  - ScenarioRunner::~ScenarioRunner()
  - proto_fuzzer::ScenarioRunner::Run
  source_file: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: CurlEasyDeleter
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    - fields: []
      item_type: struct
      name: CurlEasyDeleter
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    - fields: []
      item_type: struct
      name: CurlEasyDeleter
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    - fields: []
      item_type: struct
      name: CurlEasyDeleter
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/curl_fuzzer/proto_fuzzer/scenario_runner.cc
    typedefs: []
    union: []
- function_names:
  - proto_fuzzer::ExtractWebSocketKey
  - proto_fuzzer::ComputeWebSocketAccept
  - proto_fuzzer::BuildFrameChunks
  - proto_fuzzer::ScenarioRequestsManualWsDrive
  - proto_fuzzer::WebSocketWriteCallback
  - proto_fuzzer::DrainWsRecv
  - proto_fuzzer::ExtractWebSocketKey
  - proto_fuzzer::ComputeWebSocketAccept
  - proto_fuzzer::BuildFrameChunks
  - proto_fuzzer::ScenarioRequestsManualWsDrive
  - proto_fuzzer::WebSocketWriteCallback
  - proto_fuzzer::DrainWsRecv
  - proto_fuzzer::WebSocketMockServer::WebSocketMockServer
  - WebSocketMockServer::~WebSocketMockServer()
  - proto_fuzzer::WebSocketMockServer::Install
  - proto_fuzzer::WebSocketMockServer::ws_probe_fired
  - proto_fuzzer::WebSocketMockServer::MarkWsProbeFired
  - proto_fuzzer::WebSocketMockServer::easy_handle
  - proto_fuzzer::WebSocketMockServer::SetFrames
  - proto_fuzzer::WebSocketMockServer::SetManualDelivery
  - proto_fuzzer::WebSocketMockServer::manual_delivery
  - proto_fuzzer::WebSocketMockServer::handshake_sent
  - proto_fuzzer::WebSocketMockServer::has_more_chunks
  - proto_fuzzer::WebSocketMockServer::remaining_chunks
  - '& WebSocketMockServer::PeekChunk(std::size_t index) const'
  - proto_fuzzer::WebSocketMockServer::ConsumeChunk
  - proto_fuzzer::WebSocketMockServer::HandleOpenSocket
  - proto_fuzzer::WebSocketMockServer::PushRawBytes
  - proto_fuzzer::WebSocketMockServer::DeliverNextChunk
  - proto_fuzzer::WebSocketMockServer::TryAdvanceHandshake
  - proto_fuzzer::WebSocketMockServer::RunLoop
  - proto_fuzzer::ExtractWebSocketKey
  - proto_fuzzer::ComputeWebSocketAccept
  - proto_fuzzer::BuildFrameChunks
  - proto_fuzzer::ScenarioRequestsManualWsDrive
  - proto_fuzzer::WebSocketWriteCallback
  - proto_fuzzer::DrainWsRecv
  - proto_fuzzer::ExtractWebSocketKey
  - proto_fuzzer::ComputeWebSocketAccept
  - proto_fuzzer::BuildFrameChunks
  - proto_fuzzer::ScenarioRequestsManualWsDrive
  - proto_fuzzer::WebSocketWriteCallback
  - proto_fuzzer::DrainWsRecv
  - proto_fuzzer::WebSocketMockServer::WebSocketMockServer
  - WebSocketMockServer::~WebSocketMockServer()
  - proto_fuzzer::WebSocketMockServer::Install
  - proto_fuzzer::WebSocketMockServer::ws_probe_fired
  - proto_fuzzer::WebSocketMockServer::MarkWsProbeFired
  - proto_fuzzer::WebSocketMockServer::easy_handle
  - proto_fuzzer::WebSocketMockServer::SetFrames
  - proto_fuzzer::WebSocketMockServer::SetManualDelivery
  - proto_fuzzer::WebSocketMockServer::manual_delivery
  - proto_fuzzer::WebSocketMockServer::handshake_sent
  - proto_fuzzer::WebSocketMockServer::has_more_chunks
  - proto_fuzzer::WebSocketMockServer::remaining_chunks
  - '& WebSocketMockServer::PeekChunk(std::size_t index) const'
  - proto_fuzzer::WebSocketMockServer::ConsumeChunk
  - proto_fuzzer::WebSocketMockServer::HandleOpenSocket
  - proto_fuzzer::WebSocketMockServer::PushRawBytes
  - proto_fuzzer::WebSocketMockServer::DeliverNextChunk
  - proto_fuzzer::WebSocketMockServer::TryAdvanceHandshake
  - proto_fuzzer::WebSocketMockServer::RunLoop
  source_file: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proto_fuzzer::MockServerBase::MockServerBase
  - '& operator=(const MockServerBase&)'
  - proto_fuzzer::MockServerBase::MockServerBase
  - '& operator=(const MockServerBase&)'
  source_file: /src/curl_fuzzer/proto_fuzzer/mock_server_base.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proto_fuzzer::FdFitsInFdSet
  - proto_fuzzer::BuildChunkList
  - proto_fuzzer::FdFitsInFdSet
  - proto_fuzzer::BuildChunkList
  - proto_fuzzer::MockConnection::MockConnection
  - MockConnection::~MockConnection()
  - proto_fuzzer::MockConnection::ok
  - proto_fuzzer::MockConnection::server_fd
  - proto_fuzzer::MockConnection::take_client_fd
  - proto_fuzzer::MockConnection::WriteAll
  - proto_fuzzer::MockConnection::DrainIncoming
  - proto_fuzzer::MockConnection::ApplyBackpressure
  - proto_fuzzer::MockConnection::ReadAvailable
  - proto_fuzzer::MockConnection::ShutdownWrite
  - proto_fuzzer::MockServer::MockServer
  - MockServer::~MockServer()
  - proto_fuzzer::MockServer::SetScript
  - proto_fuzzer::MockServer::has_more_chunks
  - proto_fuzzer::MockServer::HandleOpenSocket
  - proto_fuzzer::MockServer::DeliverNextChunk
  - proto_fuzzer::MockServer::RunLoop
  - proto_fuzzer::FdFitsInFdSet
  - proto_fuzzer::BuildChunkList
  - proto_fuzzer::FdFitsInFdSet
  - proto_fuzzer::BuildChunkList
  - proto_fuzzer::MockConnection::MockConnection
  - MockConnection::~MockConnection()
  - proto_fuzzer::MockConnection::ok
  - proto_fuzzer::MockConnection::server_fd
  - proto_fuzzer::MockConnection::take_client_fd
  - proto_fuzzer::MockConnection::WriteAll
  - proto_fuzzer::MockConnection::DrainIncoming
  - proto_fuzzer::MockConnection::ApplyBackpressure
  - proto_fuzzer::MockConnection::ReadAvailable
  - proto_fuzzer::MockConnection::ShutdownWrite
  - proto_fuzzer::MockServer::MockServer
  - MockServer::~MockServer()
  - proto_fuzzer::MockServer::SetScript
  - proto_fuzzer::MockServer::has_more_chunks
  - proto_fuzzer::MockServer::HandleOpenSocket
  - proto_fuzzer::MockServer::DeliverNextChunk
  - proto_fuzzer::MockServer::RunLoop
  source_file: /src/curl_fuzzer/proto_fuzzer/mock_server.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proto_fuzzer::ScenarioRunner::ScenarioRunner
  - '& operator=(const ScenarioRunner&)'
  - proto_fuzzer::ScenarioRunner::ScenarioRunner
  - '& operator=(const ScenarioRunner&)'
  source_file: /src/curl_fuzzer/proto_fuzzer/scenario_runner.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl_fuzzer/proto_fuzzer/ws_frame.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl_fuzzer/proto_fuzzer/websocket_mock_server.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proto_fuzzer::detail::Sha1
  - proto_fuzzer::detail::Base64Encode
  - proto_fuzzer::detail::Sha1
  - proto_fuzzer::detail::Base64Encode
  - proto_fuzzer::ComputeWebSocketAcceptKey
  - proto_fuzzer::detail::Sha1
  - proto_fuzzer::detail::Base64Encode
  - proto_fuzzer::detail::Sha1
  - proto_fuzzer::detail::Base64Encode
  - proto_fuzzer::ComputeWebSocketAcceptKey
  source_file: /src/curl_fuzzer/proto_fuzzer/ws_accept_key.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proto_fuzzer::SilentWriteCallback
  - proto_fuzzer::BoundedReadCallback
  - proto_fuzzer::Lookup
  - proto_fuzzer::SilentWriteCallback
  - proto_fuzzer::BoundedReadCallback
  - proto_fuzzer::Lookup
  - proto_fuzzer::ApplyBaselineOptions
  - proto_fuzzer::ApplySetOption
  - proto_fuzzer::SilentWriteCallback
  - proto_fuzzer::BoundedReadCallback
  - proto_fuzzer::Lookup
  - proto_fuzzer::SilentWriteCallback
  - proto_fuzzer::BoundedReadCallback
  - proto_fuzzer::Lookup
  - proto_fuzzer::ApplyBaselineOptions
  - proto_fuzzer::ApplySetOption
  source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
  types:
    enum:
    - enumerators:
      - name: kString
      - name: kBool
      - name: kUint
      item_type: enum
      name: OptionValueKind
      pos:
        line_end: 25
        line_start: 21
        source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    - enumerators:
      - name: kString
      - name: kBool
      - name: kUint
      item_type: enum
      name: OptionValueKind
      pos:
        line_end: 25
        line_start: 21
        source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: curl::fuzzer::proto::CurlOptionId
      - name: kind
        type: OptionValueKind
      - name: '* name'
        type: char
      - name: curlopt
        type: CURLoption
      item_type: struct
      name: OptionDescriptor
      pos:
        line_end: 38
        line_start: 29
        source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    - fields:
      - name: remaining
        type: std::size_t
      item_type: struct
      name: ReadState
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    - fields:
      - name: remaining
        type: std::size_t
      item_type: struct
      name: ReadState
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    - fields:
      - name: id
        type: curl::fuzzer::proto::CurlOptionId
      - name: kind
        type: OptionValueKind
      - name: '* name'
        type: char
      - name: curlopt
        type: CURLoption
      item_type: struct
      name: OptionDescriptor
      pos:
        line_end: 38
        line_start: 29
        source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    - fields:
      - name: remaining
        type: std::size_t
      item_type: struct
      name: ReadState
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    - fields:
      - name: remaining
        type: std::size_t
      item_type: struct
      name: ReadState
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/curl_fuzzer/proto_fuzzer/option_apply.cc
    typedefs: []
    union: []
- function_names:
  - proto_fuzzer::ResolveLengthForm
  - proto_fuzzer::AppendBigEndian
  - proto_fuzzer::ResolveLengthForm
  - proto_fuzzer::AppendBigEndian
  - proto_fuzzer::SerializeWebSocketFrame
  - proto_fuzzer::ResolveLengthForm
  - proto_fuzzer::AppendBigEndian
  - proto_fuzzer::ResolveLengthForm
  - proto_fuzzer::AppendBigEndian
  - proto_fuzzer::SerializeWebSocketFrame
  source_file: /src/curl_fuzzer/proto_fuzzer/ws_frame.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proto_fuzzer::SockOptTrampoline
  - proto_fuzzer::SockOptTrampoline
  - proto_fuzzer::MockServerBaseOpenSocketTrampoline
  - proto_fuzzer::MockServerBase::MockServerBase
  - MockServerBase::~MockServerBase()
  - proto_fuzzer::MockServerBase::connection
  - proto_fuzzer::MockServerBase::Install
  - proto_fuzzer::MockServerBase::DriveScenario
  - proto_fuzzer::MockServerBase::ApplyPendingBackpressure
  - proto_fuzzer::MockServerBase::WaitOnMultiFdset
  - proto_fuzzer::SockOptTrampoline
  - proto_fuzzer::SockOptTrampoline
  - proto_fuzzer::MockServerBaseOpenSocketTrampoline
  - proto_fuzzer::MockServerBase::MockServerBase
  - MockServerBase::~MockServerBase()
  - proto_fuzzer::MockServerBase::connection
  - proto_fuzzer::MockServerBase::Install
  - proto_fuzzer::MockServerBase::DriveScenario
  - proto_fuzzer::MockServerBase::ApplyPendingBackpressure
  - proto_fuzzer::MockServerBase::WaitOnMultiFdset
  source_file: /src/curl_fuzzer/proto_fuzzer/mock_server_base.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/cmake/test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CurlClass::curl_multi_setopt
  - main
  source_file: /src/curl/tests/cmake/test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - duration_parse
  - status_from_str
  - curltest_echo_handler
  - curltest_tweak_handler
  - curltest_put_handler
  - curltest_1_1_required
  - brigade_env_var
  - curltest_sslinfo_handler
  - curltest_limit_handler
  - curltest_post_config
  - curltest_hooks
  source_file: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SECS_PER_HOUR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
      type_or_value: (60 * 60)
    - item_type: preproc_def
      name: SECS_PER_DAY
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
      type_or_value: (24 * SECS_PER_HOUR)
    structs:
    - fields:
      - name: rcount
        type: int
      - name: rlimit
        type: int
      - name: end
        type: apr_time_t
      - name: duration_sec
        type: apr_time_t
      - name: '*lock'
        type: struct apr_thread_mutex_t
      item_type: struct
      name: curltest_limit_rec
      pos:
        line_end: 832
        line_start: 826
        source_file: /src/curl/tests/http/testenv/mod_curltest/mod_curltest.c
    typedefs: []
    union: []
- function_names:
  - t1518_write_cb
  - test_lib1518
  source_file: /src/curl/tests/libtest/lib1518.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - new_fnmatch
  - test_lib574
  source_file: /src/curl/tests/libtest/lib574.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tst_opensocket
  - tst_closesocket
  - setupcallbacks
  - test_lib500
  source_file: /src/curl/tests/libtest/lib500.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib573
  source_file: /src/curl/tests/libtest/lib573.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1956
  source_file: /src/curl/tests/libtest/lib1956.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib3010
  source_file: /src/curl/tests/libtest/lib3010.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - select_wrapper
  - cgetopt
  - memory_tracking_init
  - memory_tracking_init
  - hexdump
  - ws_send_ping
  - ws_recv_pong
  - ws_close
  - main
  source_file: /src/curl/tests/libtest/first.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib2502
  source_file: /src/curl/tests/libtest/lib2502.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1955
  source_file: /src/curl/tests/libtest/lib1955.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1939
  source_file: /src/curl/tests/libtest/lib1939.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init1649
  - run1649
  - test_lib1649
  source_file: /src/curl/tests/libtest/lib1649.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RTP_PKT_CHANNEL
  - RTP_PKT_LENGTH
  - rtp_write
  - test_lib571
  source_file: /src/curl/tests/libtest/lib571.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RTP_DATA_SIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/tests/libtest/lib571.c
      type_or_value: '12'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_setopt
  - test_multi_setopt
  - exe_easy_init
  - res_easy_init
  - chk_easy_init
  - easy_init
  - exe_multi_init
  - res_multi_init
  - chk_multi_init
  - multi_init
  - exe_easy_setopt
  - res_easy_setopt
  - chk_easy_setopt
  - easy_setopt
  - exe_multi_setopt
  - res_multi_setopt
  - chk_multi_setopt
  - multi_setopt
  - exe_multi_add_handle
  - res_multi_add_handle
  - chk_multi_add_handle
  - multi_add_handle
  - exe_multi_remove_handle
  - res_multi_remove_handle
  - chk_multi_remove_handle
  - multi_remove_handle
  - exe_multi_perform
  - res_multi_perform
  - chk_multi_perform
  - multi_perform
  - exe_multi_fdset
  - res_multi_fdset
  - chk_multi_fdset
  - multi_fdset
  - exe_multi_timeout
  - res_multi_timeout
  - chk_multi_timeout
  - multi_timeout
  - exe_multi_poll
  - res_multi_poll
  - chk_multi_poll
  - multi_poll
  - exe_multi_wakeup
  - res_multi_wakeup
  - chk_multi_wakeup
  - multi_wakeup
  - exe_select_test
  - res_select_test
  - chk_select_test
  - select_test
  - start_test_timing
  - exe_test_timedout
  - res_test_timedout
  - res_test_timedout_custom
  - chk_test_timedout
  - abort_on_test_timeout
  - abort_on_test_timeout_custom
  - res_global_init
  - exe_global_init
  - chk_global_init
  - global_init
  source_file: /src/curl/tests/libtest/first.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_ERR_MAJOR_BAD
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE20
    - item_type: preproc_def
      name: TEST_ERR_RUNS_FOREVER
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE24
    - item_type: preproc_def
      name: TEST_ERR_EASY_INIT
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE29
    - item_type: preproc_def
      name: TEST_ERR_MULTI
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE32
    - item_type: preproc_def
      name: TEST_ERR_NUM_HANDLES
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE34
    - item_type: preproc_def
      name: TEST_ERR_SELECT
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE40
    - item_type: preproc_def
      name: TEST_ERR_SUCCESS
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE41
    - item_type: preproc_def
      name: TEST_ERR_FAILURE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE44
    - item_type: preproc_def
      name: TEST_ERR_USAGE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE46
    - item_type: preproc_def
      name: TEST_ERR_FOPEN
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE50
    - item_type: preproc_def
      name: TEST_ERR_FSTAT
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE51
    - item_type: preproc_def
      name: TEST_ERR_BAD_TIMEOUT
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: CURLE_OBSOLETE57
    - item_type: preproc_def
      name: TEST_HANG_TIMEOUT
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: '(60 * 1000)  '
    - item_type: preproc_def
      name: NUM_HANDLES
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/curl/tests/libtest/first.h
      type_or_value: '4  '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: ptr
        type: entry_func_t
      item_type: struct
      name: entry_s
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/curl/tests/libtest/first.h
    typedefs:
    - item_type: typedef
      name: (*entry_func_t)(const char *)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/curl/tests/libtest/first.h
      type: CURLcode
    union: []
- function_names:
  - test_lib562
  source_file: /src/curl/tests/libtest/lib562.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - test_lib1587
  - test_lib1587
  source_file: /src/curl/tests/libtest/lib1587.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: opt1587
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/curl/tests/libtest/lib1587.c
      type: uint32_t
    - item_type: typedef
      name: opt1587
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/curl/tests/libtest/lib1587.c
      type: uint64_t
    union: []
- function_names:
  - test_lib661
  source_file: /src/curl/tests/libtest/lib661.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - descr_flags
  - send_header
  - recv_header
  - send_chunk
  - recv_chunk
  - recv_frame
  - test_lib2700
  source_file: /src/curl/tests/libtest/lib2700.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1937
  source_file: /src/curl/tests/libtest/lib1937.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - header
  - test_lib1556
  source_file: /src/curl/tests/libtest/lib1556.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: largest
        type: size_t
      item_type: struct
      name: headerinfo
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/curl/tests/libtest/lib1556.c
    typedefs: []
    union: []
- function_names:
  - test_lib1906
  source_file: /src/curl/tests/libtest/lib1906.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - prereq_callback
  - test_lib2082
  source_file: /src/curl/tests/libtest/lib2082.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: prereq_retcode
        type: int
      - name: ipv6
        type: int
      item_type: struct
      name: prcs
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/curl/tests/libtest/lib2082.c
    typedefs: []
    union: []
- function_names:
  - test_lib560
  source_file: /src/curl/tests/libtest/lib560.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t667_read_cb
  - test_lib667
  source_file: /src/curl/tests/libtest/lib667.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: curl_off_t
      item_type: struct
      name: t667_WriteThis
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/curl/tests/libtest/lib667.c
    typedefs: []
    union: []
- function_names:
  - test_lib658
  source_file: /src/curl/tests/libtest/lib658.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib567
  source_file: /src/curl/tests/libtest/lib567.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1517_read_cb
  - test_lib1517
  source_file: /src/curl/tests/libtest/lib1517.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: size_t
      item_type: struct
      name: t1517_WriteThis
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/curl/tests/libtest/lib1517.c
    typedefs: []
    union: []
- function_names:
  - test_lib1902
  source_file: /src/curl/tests/libtest/lib1902.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib543
  source_file: /src/curl/tests/libtest/lib543.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1911
  source_file: /src/curl/tests/libtest/lib1911.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_INPUT_LENGTH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/tests/libtest/lib1911.c
      type_or_value: '8000000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - KN
  - t1541_geterr
  - report_time
  - check_time
  - check_time0
  - t1541_header_callback
  - t1541_write_cb
  - test_lib1541
  source_file: /src/curl/tests/libtest/lib1541.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*curl'
        type: CURL
      - name: hd_count
        type: int
      - name: bd_count
        type: int
      item_type: struct
      name: t1541_transfer_status
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/curl/tests/libtest/lib1541.c
    typedefs: []
    union: []
- function_names:
  - test_lib1977
  source_file: /src/curl/tests/libtest/lib1977.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1500
  source_file: /src/curl/tests/libtest/lib1500.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib568
  source_file: /src/curl/tests/libtest/lib568.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1662_read_cb
  - test_lib1662
  source_file: /src/curl/tests/libtest/lib1662.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sizeleft
        type: size_t
      item_type: struct
      name: t1662_WriteThis
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/curl/tests/libtest/lib1662.c
    typedefs: []
    union: []
- function_names:
  - test_lib3103
  source_file: /src/curl/tests/libtest/lib3103.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib3027
  source_file: /src/curl/tests/libtest/lib3027.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1967
  source_file: /src/curl/tests/libtest/lib1967.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1598_trailers_callback
  - test_lib1598
  source_file: /src/curl/tests/libtest/lib1598.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib559
  source_file: /src/curl/tests/libtest/lib559.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1534
  source_file: /src/curl/tests/libtest/lib1534.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1528
  source_file: /src/curl/tests/libtest/lib1528.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t547_read_cb
  - t547_ioctl_callback
  - test_lib547
  source_file: /src/curl/tests/libtest/lib547.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - progressKiller
  - test_lib1513
  source_file: /src/curl/tests/libtest/lib1513.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1568
  source_file: /src/curl/tests/libtest/lib1568.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t670_read_cb
  - t670_xferinfo
  - test_lib670
  source_file: /src/curl/tests/libtest/lib670.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAUSE_TIME
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/curl/tests/libtest/lib670.c
      type_or_value: '5'
    structs:
    - fields:
      - name: '*curl'
        type: CURL
      - name: origin
        type: time_t
      - name: count
        type: int
      item_type: struct
      name: t670_ReadThis
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/curl/tests/libtest/lib670.c
    typedefs: []
    union: []
- function_names:
  - t3033_req_test
  - test_lib3033
  source_file: /src/curl/tests/libtest/lib3033.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1545
  source_file: /src/curl/tests/libtest/lib1545.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t599_progress_callback
  - test_lib599
  source_file: /src/curl/tests/libtest/lib599.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t3034_read_cb
  - test_lib3034
  source_file: /src/curl/tests/libtest/lib3034.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1531
  source_file: /src/curl/tests/libtest/lib1531.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - reset_data
  - t1533_read_cb
  - t1533_write_cb
  - perform_and_check_connections
  - test_lib1533
  source_file: /src/curl/tests/libtest/lib1533.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*curl'
        type: CURL
      - name: response_received
        type: int
      - name: paused
        type: int
      - name: remaining_bytes
        type: size_t
      item_type: struct
      name: cb_data
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/curl/tests/libtest/lib1533.c
    typedefs: []
    union: []
- function_names:
  - t537_store_errmsg
  - t537_close_file_descriptors
  - t537_fopen_works
  - test_lib537
  - test_lib537
  source_file: /src/curl/tests/libtest/lib537.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: T537_SAFETY_MARGIN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/tests/libtest/lib537.c
      type_or_value: '11'
    - item_type: preproc_def
      name: DEV_NULL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/tests/libtest/lib537.c
      type_or_value: '"NUL"'
    - item_type: preproc_def
      name: DEV_NULL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/tests/libtest/lib537.c
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: LIMIT_CAP
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/tests/libtest/lib537.c
      type_or_value: (256 * 1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_cli_ftp_upload_read
  - usage_ftp_upload
  - test_cli_ftp_upload
  source_file: /src/curl/tests/libtest/cli_ftp_upload.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: data_len
        type: size_t
      - name: offset
        type: size_t
      - name: done
        type: int
      item_type: struct
      name: test_cli_ftp_upload_data
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/curl/tests/libtest/cli_ftp_upload.c
    typedefs: []
    union: []
- function_names:
  - test_lib3208
  source_file: /src/curl/tests/libtest/lib3208.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1959
  source_file: /src/curl/tests/libtest/lib1959.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib589
  source_file: /src/curl/tests/libtest/lib589.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1970
  source_file: /src/curl/tests/libtest/lib1970.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init1648
  - run1648
  - test_lib1648
  source_file: /src/curl/tests/libtest/lib1648.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GET_THIS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/tests/libtest/lib1648.c
      type_or_value: '"http://example.com/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1502
  source_file: /src/curl/tests/libtest/lib1502.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib2402
  source_file: /src/curl/tests/libtest/lib2402.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_ws_data_m2_check_recv
  - test_ws_data_m2_echo
  - test_ws_data_m1_read
  - test_ws_data_m1_write
  - test_ws_data_m1_echo
  - test_ws_data_usage
  - test_cli_ws_data
  source_file: /src/curl/tests/libtest/cli_ws_data.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*curl'
        type: CURL
      - name: '*send_buf'
        type: char
      - name: '*recv_buf'
        type: char
      - name: send_len
        type: size_t
      - name: recv_len
        type: size_t
      - name: nframes
        type: int
      - name: read_calls
        type: int
      - name: write_calls
        type: int
      - name: frames_read
        type: int
      - name: frames_written
        type: int
      item_type: struct
      name: test_ws_m1_ctx
      pos:
        line_end: 201
        line_start: 189
        source_file: /src/curl/tests/libtest/cli_ws_data.c
    typedefs: []
    union: []
- function_names:
  - t1526_read_cb
  - test_lib1526
  source_file: /src/curl/tests/libtest/lib1526.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t506_test_lock
  - t506_test_unlock
  - sethost
  - t506_test_fire
  - test_lib506
  source_file: /src/curl/tests/libtest/lib506.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THREADS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/tests/libtest/lib506.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*share'
        type: CURLSH
      - name: '*url'
        type: char
      item_type: struct
      name: t506_Tdata
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/curl/tests/libtest/lib506.c
    - fields:
      - name: '*text'
        type: char
      - name: share_counter
        type: int
      - name: dns_counter
        type: int
      - name: cookie_counter
        type: int
      item_type: struct
      name: t506_userdata
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/curl/tests/libtest/lib506.c
    typedefs: []
    union: []
- function_names:
  - test_lib598
  source_file: /src/curl/tests/libtest/lib598.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1576_read_cb
  - t1576_seek_callback
  - test_lib1576
  source_file: /src/curl/tests/libtest/lib1576.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1972
  source_file: /src/curl/tests/libtest/lib1972.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib3104
  source_file: /src/curl/tests/libtest/lib3104.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1974
  source_file: /src/curl/tests/libtest/lib1974.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib3105
  source_file: /src/curl/tests/libtest/lib3105.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1538
  source_file: /src/curl/tests/libtest/lib1538.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib544
  source_file: /src/curl/tests/libtest/lib544.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1501
  source_file: /src/curl/tests/libtest/lib1501.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1553_xferinfo
  - test_lib1553
  source_file: /src/curl/tests/libtest/lib1553.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib526
  source_file: /src/curl/tests/libtest/lib526.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1905
  source_file: /src/curl/tests/libtest/lib1905.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib556
  source_file: /src/curl/tests/libtest/lib556.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1916
  source_file: /src/curl/tests/libtest/lib1916.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proxystat
  - test_lib536
  source_file: /src/curl/tests/libtest/lib536.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib502
  source_file: /src/curl/tests/libtest/lib502.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sink2504
  - dump_cookies2504
  - test_lib2504
  source_file: /src/curl/tests/libtest/lib2504.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1920
  source_file: /src/curl/tests/libtest/lib1920.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1542
  source_file: /src/curl/tests/libtest/lib1542.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t508_read_cb
  - test_lib508
  source_file: /src/curl/tests/libtest/lib508.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: size_t
      item_type: struct
      name: t508_WriteThis
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/curl/tests/libtest/lib508.c
    typedefs: []
    union: []
- function_names:
  - is_chain_in_order
  - wrfu
  - test_lib3102
  source_file: /src/curl/tests/libtest/lib3102.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1903
  source_file: /src/curl/tests/libtest/lib1903.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - debug_dump
  - libtest_debug_cb
  - log_line_start
  - cli_debug_cb
  source_file: /src/curl/tests/libtest/testtrace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1935
  source_file: /src/curl/tests/libtest/lib1935.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - loadfile
  - test_cert_blob
  - test_lib678
  source_file: /src/curl/tests/libtest/lib678.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib652
  source_file: /src/curl/tests/libtest/lib652.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1514_read_cb
  - test_lib1514
  source_file: /src/curl/tests/libtest/lib1514.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: size_t
      item_type: struct
      name: t1514_WriteThis
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/curl/tests/libtest/lib1514.c
    typedefs: []
    union: []
- function_names:
  - t1525_read_cb
  - test_lib1525
  source_file: /src/curl/tests/libtest/lib1525.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1933
  source_file: /src/curl/tests/libtest/lib1933.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1532
  source_file: /src/curl/tests/libtest/lib1532.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1900
  source_file: /src/curl/tests/libtest/lib1900.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - recv_any
  - t2304_websocket
  - test_lib2304
  source_file: /src/curl/tests/libtest/lib2304.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fail_if
  - fail_unless
  - verify_memory
  - fail
  - abort_if
  - abort_unless
  - unittest_abort
  - UNITTEST_BEGIN
  source_file: /src/curl/tests/libtest/unitcheck.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNITTEST_BEGIN_SIMPLE
      pos:
        line_end: 103
        line_start: 100
        source_file: /src/curl/tests/libtest/unitcheck.h
      type_or_value: "(void)arg;                                    \\\n  {"
    - item_type: preproc_def
      name: unit_test_abort
      pos:
        line_end: 109
        line_start: 104
        source_file: /src/curl/tests/libtest/unitcheck.h
      type_or_value: ":                                \\\n  return (CURLcode)unitfail;"
    - item_type: preproc_def
      name: unit_test_abort
      pos:
        line_end: 124
        line_start: 118
        source_file: /src/curl/tests/libtest/unitcheck.h
      type_or_value: ":                                \\\n  (stopfunc);                                   \\\n
        \ return (CURLcode)unitfail;"
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1599
  source_file: /src/curl/tests/libtest/lib1599.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1973
  source_file: /src/curl/tests/libtest/lib1973.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1571
  source_file: /src/curl/tests/libtest/lib1571.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib516
  source_file: /src/curl/tests/libtest/lib516.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib751
  source_file: /src/curl/tests/libtest/lib751.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1934
  source_file: /src/curl/tests/libtest/lib1934.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib520
  source_file: /src/curl/tests/libtest/lib520.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_transfer_for_easy_u
  - my_write_u_cb
  - my_read_cb
  - my_progress_u_cb
  - setup_hx_upload
  - usage_hx_upload
  - test_cli_hx_upload
  source_file: /src/curl/tests/libtest/cli_hx_upload.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: idx
        type: size_t
      - name: '*curl'
        type: CURL
      - name: '*method'
        type: char
      - name: filename[128]
        type: char
      - name: '*mime'
        type: curl_mime
      - name: '*out'
        type: FILE
      - name: send_total
        type: curl_off_t
      - name: recv_size
        type: curl_off_t
      - name: send_size
        type: curl_off_t
      - name: fail_at
        type: curl_off_t
      - name: pause_at
        type: curl_off_t
      - name: abort_at
        type: curl_off_t
      - name: started
        type: int
      - name: paused
        type: int
      - name: resumed
        type: int
      - name: done
        type: int
      item_type: struct
      name: transfer_u
      pos:
        line_end: 46
        line_start: 29
        source_file: /src/curl/tests/libtest/cli_hx_upload.c
    typedefs: []
    union: []
- function_names:
  - checkparts
  - checkurl
  - part2id
  - updateurl
  - set_url
  - setget_parts
  - set_parts
  - get_url
  - get_parts
  - append
  - scopeid
  - get_nothing
  - clear_url
  - huge
  - urldup
  - test_api_errors
  - test_lib1560
  source_file: /src/curl/tests/libtest/lib1560.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: part
        type: CURLUPart
      - name: '*name'
        type: char
      item_type: struct
      name: part
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/curl/tests/libtest/lib1560.c
    - fields:
      - name: '*in'
        type: char
      - name: '*set'
        type: char
      - name: '*out'
        type: char
      - name: urlflags
        type: unsigned int
      - name: setflags
        type: unsigned int
      - name: ucode
        type: CURLUcode
      item_type: struct
      name: redircase
      pos:
        line_end: 100
        line_start: 93
        source_file: /src/curl/tests/libtest/lib1560.c
    - fields:
      - name: '*in'
        type: char
      - name: '*set'
        type: char
      - name: '*out'
        type: char
      - name: urlflags
        type: unsigned int
      - name: setflags
        type: unsigned int
      - name: ucode
        type: CURLUcode
      - name: pcode
        type: CURLUcode
      item_type: struct
      name: setcase
      pos:
        line_end: 110
        line_start: 102
        source_file: /src/curl/tests/libtest/lib1560.c
    - fields:
      - name: '*in'
        type: char
      - name: '*set'
        type: char
      - name: '*out'
        type: char
      - name: urlflags
        type: unsigned int
      - name: setflags
        type: unsigned int
      - name: getflags
        type: unsigned int
      - name: pcode
        type: CURLUcode
      item_type: struct
      name: setgetcase
      pos:
        line_end: 120
        line_start: 112
        source_file: /src/curl/tests/libtest/lib1560.c
    - fields:
      - name: '*in'
        type: char
      - name: '*out'
        type: char
      - name: urlflags
        type: unsigned int
      - name: getflags
        type: unsigned int
      - name: ucode
        type: CURLUcode
      item_type: struct
      name: testcase
      pos:
        line_end: 128
        line_start: 122
        source_file: /src/curl/tests/libtest/lib1560.c
    - fields:
      - name: '*in'
        type: char
      - name: '*out'
        type: char
      - name: urlflags
        type: unsigned int
      - name: getflags
        type: unsigned int
      - name: ucode
        type: CURLUcode
      item_type: struct
      name: urltestcase
      pos:
        line_end: 136
        line_start: 130
        source_file: /src/curl/tests/libtest/lib1560.c
    - fields:
      - name: '*in'
        type: char
      - name: '*q'
        type: char
      - name: '*out'
        type: char
      - name: urlflags
        type: unsigned int
      - name: qflags
        type: unsigned int
      - name: ucode
        type: CURLUcode
      item_type: struct
      name: querycase
      pos:
        line_end: 145
        line_start: 138
        source_file: /src/curl/tests/libtest/lib1560.c
    - fields:
      - name: part
        type: CURLUPart
      - name: '*in'
        type: char
      - name: '*out'
        type: char
      - name: ucode
        type: CURLUcode
      item_type: struct
      name: clearurlcase
      pos:
        line_end: 152
        line_start: 147
        source_file: /src/curl/tests/libtest/lib1560.c
    typedefs: []
    union: []
- function_names:
  - hstsread
  - hstsreadfail
  - hstswrite
  - test_lib1915
  source_file: /src/curl/tests/libtest/lib1915.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: index
        type: int
      item_type: struct
      name: state
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/curl/tests/libtest/lib1915.c
    - fields:
      - name: '*name'
        type: char
      - name: '*exp'
        type: char
      item_type: struct
      name: entry
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/curl/tests/libtest/lib1915.c
    typedefs: []
    union: []
- function_names:
  - test_check
  - test_run_check
  - emptyWriteFunc
  - set_easy
  - test_run
  - empty_multi_test
  - test_lib2405
  source_file: /src/curl/tests/libtest/lib2405.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_it
  - test_lib695
  source_file: /src/curl/tests/libtest/lib695.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1551
  source_file: /src/curl/tests/libtest/lib1551.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1564
  source_file: /src/curl/tests/libtest/lib1564.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WAKEUP_NUM
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/curl/tests/libtest/lib1564.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1965
  source_file: /src/curl/tests/libtest/lib1965.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib504
  source_file: /src/curl/tests/libtest/lib504.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib597
  source_file: /src/curl/tests/libtest/lib597.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1597
  source_file: /src/curl/tests/libtest/lib1597.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*in'
        type: char
      - name: '*result_exp'
        type: CURLcode
      item_type: struct
      name: pair
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/curl/tests/libtest/lib1597.c
    typedefs: []
    union: []
- function_names:
  - test_lib525
  source_file: /src/curl/tests/libtest/lib525.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib570
  source_file: /src/curl/tests/libtest/lib570.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib549
  source_file: /src/curl/tests/libtest/lib549.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1908
  source_file: /src/curl/tests/libtest/lib1908.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WriteOutput
  - WriteHeader
  - test_lib1509
  source_file: /src/curl/tests/libtest/lib1509.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1947_write_cb
  - test_lib1947
  source_file: /src/curl/tests/libtest/lib1947.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_tse_cb
  - tse_add_transfer
  - test_cli_tls_session_reuse
  source_file: /src/curl/tests/libtest/cli_tls_session_reuse.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - callback
  - test_lib2032
  source_file: /src/curl/tests/libtest/lib2032.c
  types:
    enum:
    - enumerators:
      - name: ReadyForNewHandle
      - name: NoMoreHandles
      - name: NeedSocketForNewHandle
      item_type: enum
      name: HandleState
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/curl/tests/libtest/lib2032.c
    preproc_defs:
    - item_type: preproc_def
      name: MAX_EASY_HANDLES
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/curl/tests/libtest/lib2032.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tutil_suburl
  - tutil_rlim2str
  source_file: /src/curl/tests/libtest/testutil.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - free_callback
  - t654_read_cb
  - test_lib654
  source_file: /src/curl/tests/libtest/lib654.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: curl_off_t
      - name: freecount
        type: int
      item_type: struct
      name: t654_WriteThis
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/curl/tests/libtest/lib654.c
    typedefs: []
    union: []
- function_names:
  - test_lib514
  source_file: /src/curl/tests/libtest/lib514.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init1588
  - run1588
  - test_lib1588
  source_file: /src/curl/tests/libtest/lib1588.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1301_fail_unless
  - test_lib1301
  source_file: /src/curl/tests/libtest/lib1301.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib521
  source_file: /src/curl/tests/libtest/lib521.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib2404
  source_file: /src/curl/tests/libtest/lib2404.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1591_read_cb
  - t1591_trailers_callback
  - test_lib1591
  source_file: /src/curl/tests/libtest/lib1591.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pingpong
  - test_cli_ws_pingpong
  source_file: /src/curl/tests/libtest/cli_ws_pingpong.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dload_progress_cb
  - t1523_write_cb
  - run
  - test_lib1523
  source_file: /src/curl/tests/libtest/lib1523.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_httppost_callback
  - t1308_fail_unless
  - test_lib1308
  source_file: /src/curl/tests/libtest/lib1308.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - custom_calloc
  - custom_malloc
  - custom_strdup
  - custom_realloc
  - custom_free
  - test_lib509
  source_file: /src/curl/tests/libtest/lib509.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t2301_websocket
  - t2301_write_cb
  - test_lib2301
  source_file: /src/curl/tests/libtest/lib2301.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sink2505
  - test_lib2505
  source_file: /src/curl/tests/libtest/lib2505.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib512
  source_file: /src/curl/tests/libtest/lib512.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t530_tag
  - t530_msg
  - t530_removeFd
  - t530_addFd
  - t530_curlSocketCallback
  - t530_curlTimerCallback
  - t530_checkForCompletion
  - t530_getMicroSecondTimeout
  - t530_updateFdSet
  - socket_action
  - t530_checkFdSet
  - testone
  - test_lib530
  source_file: /src/curl/tests/libtest/lib530.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: socket_calls
        type: int
      - name: max_socket_calls
        type: int
      - name: timer_calls
        type: int
      - name: max_timer_calls
        type: int
      - name: buf[1024]
        type: char
      item_type: struct
      name: t530_ctx
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/curl/tests/libtest/lib530.c
    - fields:
      - name: '*sockets'
        type: curl_socket_t
      - name: count
        type: int
      - name: max_count
        type: int
      item_type: struct
      name: t530_Sockets
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/curl/tests/libtest/lib530.c
    - fields:
      - name: read
        type: struct t530_Sockets
      item_type: struct
      name: t530_ReadWriteSockets
      pos:
        line_end: 62
        line_start: 60
        source_file: /src/curl/tests/libtest/lib530.c
    typedefs: []
    union: []
- function_names:
  - test_lib1938
  source_file: /src/curl/tests/libtest/lib1938.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - myreadfunc
  - test_lib553
  source_file: /src/curl/tests/libtest/lib553.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POSTLEN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/tests/libtest/lib553.c
      type_or_value: '40960'
    - item_type: preproc_def
      name: NUM_HEADERS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/tests/libtest/lib553.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZE_HEADERS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/tests/libtest/lib553.c
      type_or_value: '5000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib674
  source_file: /src/curl/tests/libtest/lib674.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1535
  source_file: /src/curl/tests/libtest/lib1535.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_transfer_for_easy_d
  - my_write_d_cb
  - my_progress_d_cb
  - setup_hx_download
  - usage_hx_download
  - test_cli_hx_download
  source_file: /src/curl/tests/libtest/cli_hx_download.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: idx
        type: size_t
      - name: '*curl'
        type: CURL
      - name: filename[128]
        type: char
      - name: '*out'
        type: FILE
      - name: recv_size
        type: curl_off_t
      - name: fail_at
        type: curl_off_t
      - name: pause_at
        type: curl_off_t
      - name: abort_at
        type: curl_off_t
      - name: started
        type: int
      - name: paused
        type: int
      - name: resumed
        type: int
      - name: done
        type: int
      - name: checked_ssl
        type: int
      - name: result
        type: CURLcode
      item_type: struct
      name: transfer_d
      pos:
        line_end: 67
        line_start: 52
        source_file: /src/curl/tests/libtest/cli_hx_download.c
    typedefs: []
    union: []
- function_names:
  - send_request
  - send_wrong_password
  - send_right_password
  - parse_auth_name
  - test_lib2023
  source_file: /src/curl/tests/libtest/lib2023.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage_h2_pausing
  - cb
  - test_cli_h2_pausing
  source_file: /src/curl/tests/libtest/cli_h2_pausing.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: idx
        type: size_t
      - name: paused
        type: int
      - name: resumed
        type: int
      - name: errored
        type: int
      - name: fail_write
        type: int
      - name: '*curl'
        type: CURL
      item_type: struct
      name: handle
      pos:
        line_end: 47
        line_start: 40
        source_file: /src/curl/tests/libtest/cli_h2_pausing.c
    typedefs: []
    union: []
- function_names:
  - init1589
  - run1589
  - test_lib1589
  source_file: /src/curl/tests/libtest/lib1589.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - chunk_bgn
  - chunk_end
  - test_lib576
  source_file: /src/curl/tests/libtest/lib576.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: remains
        type: int
      - name: print_content
        type: int
      item_type: struct
      name: chunk_data
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/curl/tests/libtest/lib576.c
    typedefs: []
    union: []
- function_names:
  - test_lib539
  source_file: /src/curl/tests/libtest/lib539.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib590
  source_file: /src/curl/tests/libtest/lib590.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t518_store_errmsg
  - t518_close_file_descriptors
  - t518_fopen_works
  - t518_test_rlimit
  - test_lib518
  - test_lib518
  source_file: /src/curl/tests/libtest/lib518.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: T518_SAFETY_MARGIN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/tests/libtest/lib518.c
      type_or_value: '16'
    - item_type: preproc_def
      name: NUM_OPEN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/tests/libtest/lib518.c
      type_or_value: (FD_SETSIZE + 10)
    - item_type: preproc_def
      name: NUM_NEEDED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/tests/libtest/lib518.c
      type_or_value: (NUM_OPEN + T518_SAFETY_MARGIN)
    - item_type: preproc_def
      name: DEV_NULL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/tests/libtest/lib518.c
      type_or_value: '"NUL"'
    - item_type: preproc_def
      name: DEV_NULL
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/tests/libtest/lib518.c
      type_or_value: '"/dev/null"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib523
  source_file: /src/curl/tests/libtest/lib523.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib515
  source_file: /src/curl/tests/libtest/lib515.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib591
  source_file: /src/curl/tests/libtest/lib591.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - opensocket
  - test_lib1530
  source_file: /src/curl/tests/libtest/lib1530.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib507
  source_file: /src/curl/tests/libtest/lib507.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - resolver_alloc_cb_fail
  - resolver_alloc_cb_pass
  - test_lib655
  source_file: /src/curl/tests/libtest/lib655.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1557
  source_file: /src/curl/tests/libtest/lib1557.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1506
  source_file: /src/curl/tests/libtest/lib1506.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1552
  source_file: /src/curl/tests/libtest/lib1552.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib3100
  source_file: /src/curl/tests/libtest/lib3100.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib572
  source_file: /src/curl/tests/libtest/lib572.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1510
  source_file: /src/curl/tests/libtest/lib1510.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1593
  source_file: /src/curl/tests/libtest/lib1593.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sink2506
  - test_lib2506
  source_file: /src/curl/tests/libtest/lib2506.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1978
  source_file: /src/curl/tests/libtest/lib1978.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t555_read_cb
  - t555_ioctl_callback
  - test_lib555
  source_file: /src/curl/tests/libtest/lib555.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1936
  source_file: /src/curl/tests/libtest/lib1936.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1527_read_cb
  - test_lib1527
  source_file: /src/curl/tests/libtest/lib1527.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1964
  source_file: /src/curl/tests/libtest/lib1964.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init1647
  - run1647
  - test_lib1647
  source_file: /src/curl/tests/libtest/lib1647.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t513_read_cb
  - test_lib513
  source_file: /src/curl/tests/libtest/lib513.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/tests/libtest/testutil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_memory_callback
  - test_thread
  - t3207_test_lock
  - t3207_test_unlock
  - execute
  - execute
  - test_lib3207
  source_file: /src/curl/tests/libtest/lib3207.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THREAD_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/tests/libtest/lib3207.c
      type_or_value: '16'
    - item_type: preproc_def
      name: PER_THREAD_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/tests/libtest/lib3207.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*URL'
        type: char
      - name: '*share'
        type: CURLSH
      - name: result
        type: CURLcode
      - name: thread_id
        type: size_t
      - name: '*contents'
        type: struct curl_slist
      item_type: struct
      name: Ctx
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/curl/tests/libtest/lib3207.c
    typedefs: []
    union: []
- function_names:
  - please_continue
  - t1540_header_callback
  - t1540_write_cb
  - test_lib1540
  source_file: /src/curl/tests/libtest/lib1540.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*curl'
        type: CURL
      - name: halted
        type: int
      - name: counter
        type: int
      - name: please
        type: int
      item_type: struct
      name: t1540_transfer_status
      pos:
        line_end: 32
        line_start: 27
        source_file: /src/curl/tests/libtest/lib1540.c
    typedefs: []
    union: []
- function_names:
  - test_lib677
  source_file: /src/curl/tests/libtest/lib677.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1512
  source_file: /src/curl/tests/libtest/lib1512.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1958
  source_file: /src/curl/tests/libtest/lib1958.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1485_header_callback
  - t1485_write_cb
  - test_lib1485
  source_file: /src/curl/tests/libtest/lib1485.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*curl'
        type: CURL
      - name: out_len
        type: curl_off_t
      - name: hd_line
        type: size_t
      - name: result
        type: CURLcode
      - name: http_status
        type: int
      item_type: struct
      name: t1485_transfer_status
      pos:
        line_end: 31
        line_start: 25
        source_file: /src/curl/tests/libtest/lib1485.c
    typedefs: []
    union: []
- function_names:
  - test_lib583
  source_file: /src/curl/tests/libtest/lib583.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1582
  source_file: /src/curl/tests/libtest/lib1582.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/tests/libtest/memptr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1918
  source_file: /src/curl/tests/libtest/lib1918.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1507_read_cb
  - test_lib1507
  source_file: /src/curl/tests/libtest/lib1507.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1569
  source_file: /src/curl/tests/libtest/lib1569.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1558
  source_file: /src/curl/tests/libtest/lib1558.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib542
  source_file: /src/curl/tests/libtest/lib542.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_one_request
  - test_lib1515
  source_file: /src/curl/tests/libtest/lib1515.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DNS_TIMEOUT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/tests/libtest/lib1515.c
      type_or_value: 1L
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib501
  source_file: /src/curl/tests/libtest/lib501.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib3101
  source_file: /src/curl/tests/libtest/lib3101.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1910
  source_file: /src/curl/tests/libtest/lib1910.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sockopt_766
  - test_lib766
  source_file: /src/curl/tests/libtest/lib766.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t578_progress_callback
  - test_lib578
  source_file: /src/curl/tests/libtest/lib578.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib558
  source_file: /src/curl/tests/libtest/lib558.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1919
  source_file: /src/curl/tests/libtest/lib1919.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - progressCallback
  - test_lib1555
  source_file: /src/curl/tests/libtest/lib1555.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1537
  source_file: /src/curl/tests/libtest/lib1537.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t552_read_cb
  - t552_write_cb
  - ioctl_callback
  - test_lib552
  source_file: /src/curl/tests/libtest/lib552.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t582_removeFd
  - t582_addFd
  - t582_curlSocketCallback
  - t582_curlTimerCallback
  - t582_checkForCompletion
  - t582_getMicroSecondTimeout
  - t582_updateFdSet
  - notifyCurl
  - t582_checkFdSet
  - test_lib582
  source_file: /src/curl/tests/libtest/lib582.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*sockets'
        type: curl_socket_t
      - name: count
        type: int
      - name: max_count
        type: int
      item_type: struct
      name: t582_Sockets
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/curl/tests/libtest/lib582.c
    - fields:
      - name: read
        type: struct t582_Sockets
      item_type: struct
      name: t582_ReadWriteSockets
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/curl/tests/libtest/lib582.c
    typedefs: []
    union: []
- function_names:
  - test_lib1921
  source_file: /src/curl/tests/libtest/lib1921.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1529
  source_file: /src/curl/tests/libtest/lib1529.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1957
  source_file: /src/curl/tests/libtest/lib1957.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1565_run_thread
  - test_lib1565
  - test_lib1565
  source_file: /src/curl/tests/libtest/lib1565.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONN_NUM
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/tests/libtest/lib1565.c
      type_or_value: '3'
    - item_type: preproc_def
      name: TIME_BETWEEN_START_SECS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/tests/libtest/lib1565.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1940_write_cb
  - t1940_showem
  - test_lib1940
  source_file: /src/curl/tests/libtest/lib1940.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib505
  source_file: /src/curl/tests/libtest/lib505.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1907
  source_file: /src/curl/tests/libtest/lib1907.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1508
  source_file: /src/curl/tests/libtest/lib1508.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1554_test_lock
  - t1554_test_unlock
  - test_lib1554
  source_file: /src/curl/tests/libtest/lib1554.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init
  - loop
  - test_lib540
  source_file: /src/curl/tests/libtest/lib540.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1511
  source_file: /src/curl/tests/libtest/lib1511.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib3025
  source_file: /src/curl/tests/libtest/lib3025.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1559
  source_file: /src/curl/tests/libtest/lib1559.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_h2_upg_extreme_cb
  - test_cli_h2_upgrade_extreme
  source_file: /src/curl/tests/libtest/cli_h2_upgrade_extreme.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1549
  source_file: /src/curl/tests/libtest/lib1549.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib541
  source_file: /src/curl/tests/libtest/lib541.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib533
  source_file: /src/curl/tests/libtest/lib533.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib503
  source_file: /src/curl/tests/libtest/lib503.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib659
  source_file: /src/curl/tests/libtest/lib659.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1971_read_cb
  - test_lib1971
  source_file: /src/curl/tests/libtest/lib1971.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1520_read_cb
  - test_lib1520
  source_file: /src/curl/tests/libtest/lib1520.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lines_read
        type: int
      item_type: struct
      name: upload_status
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/curl/tests/libtest/lib1520.c
    typedefs: []
    union: []
- function_names:
  - setup_h2_serverpush
  - server_push_callback
  - test_cli_h2_serverpush
  source_file: /src/curl/tests/libtest/cli_h2_serverpush.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1945_showem
  - t1945_write_cb
  - test_lib1945
  source_file: /src/curl/tests/libtest/lib1945.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib524
  source_file: /src/curl/tests/libtest/lib524.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib519
  source_file: /src/curl/tests/libtest/lib519.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/tests/libtest/testtrace.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: tracetime
        type: bool
      - name: nohex
        type: bool
      item_type: struct
      name: libtest_trace_cfg
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/curl/tests/libtest/testtrace.h
    typedefs: []
    union: []
- function_names:
  - t586_test_lock
  - t586_test_unlock
  - t586_test_fire
  - test_lib586
  source_file: /src/curl/tests/libtest/lib586.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THREADS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/curl/tests/libtest/lib586.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*share'
        type: CURLSH
      - name: '*url'
        type: char
      item_type: struct
      name: t586_Tdata
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/curl/tests/libtest/lib586.c
    - fields:
      - name: '*text'
        type: char
      - name: counter
        type: int
      item_type: struct
      name: t586_userdata
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/curl/tests/libtest/lib586.c
    typedefs: []
    union: []
- function_names:
  - t3026_run_thread
  - test_lib3026
  - t3026_run_thread
  - test_lib3026
  - test_lib3026
  source_file: /src/curl/tests/libtest/lib3026.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_THREADS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/curl/tests/libtest/lib3026.c
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names:
  - t643_read_cb
  - t643_test_once
  - t643_cyclic_add
  - test_lib643
  source_file: /src/curl/tests/libtest/lib643.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: curl_off_t
      item_type: struct
      name: t643_WriteThis
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/curl/tests/libtest/lib643.c
    typedefs: []
    union: []
- function_names:
  - test_lib694
  source_file: /src/curl/tests/libtest/lib694.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib666
  source_file: /src/curl/tests/libtest/lib666.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_757
  - read_757
  - seek_757
  - test_lib757
  source_file: /src/curl/tests/libtest/lib757.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib676
  source_file: /src/curl/tests/libtest/lib676.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - put_callback
  - test_lib1948
  source_file: /src/curl/tests/libtest/lib1948.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buf'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: put_buffer
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/curl/tests/libtest/lib1948.c
    typedefs: []
    union: []
- function_names:
  - test_lib1536
  source_file: /src/curl/tests/libtest/lib1536.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib511
  source_file: /src/curl/tests/libtest/lib511.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib653
  source_file: /src/curl/tests/libtest/lib653.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t554_read_cb
  - t587_read_cb
  - t554_test_once
  - test_lib554
  source_file: /src/curl/tests/libtest/lib554.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: size_t
      item_type: struct
      name: t554_WriteThis
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/curl/tests/libtest/lib554.c
    typedefs: []
    union: []
- function_names:
  - test_lib517
  source_file: /src/curl/tests/libtest/lib517.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: output
        type: time_t
      item_type: struct
      name: dcheck
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/curl/tests/libtest/lib517.c
    typedefs: []
    union: []
- function_names:
  - writedata
  - onetest
  - test_lib1156
  source_file: /src/curl/tests/libtest/lib1156.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: F_RESUME
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/tests/libtest/lib1156.c
      type_or_value: '(1 << 0)        '
    - item_type: preproc_def
      name: F_HTTP416
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/tests/libtest/lib1156.c
      type_or_value: '(1 << 1)        '
    - item_type: preproc_def
      name: F_FAIL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/tests/libtest/lib1156.c
      type_or_value: '(1 << 2)        '
    - item_type: preproc_def
      name: F_CONTENTRANGE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/tests/libtest/lib1156.c
      type_or_value: '(1 << 3)        '
    - item_type: preproc_def
      name: F_IGNOREBODY
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/tests/libtest/lib1156.c
      type_or_value: '(1 << 4)        '
    structs:
    - fields:
      - name: flags
        type: unsigned int
      - name: result
        type: CURLcode
      item_type: struct
      name: testparams
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/curl/tests/libtest/lib1156.c
    typedefs: []
    union: []
- function_names:
  - t1901_read_cb
  - test_lib1901
  source_file: /src/curl/tests/libtest/lib1901.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1912
  - print_err
  source_file: /src/curl/tests/libtest/lib1912.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t510_read_cb
  - test_lib510
  source_file: /src/curl/tests/libtest/lib510.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: counter
        type: int
      item_type: struct
      name: t510_WriteThis
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/curl/tests/libtest/lib510.c
    typedefs: []
    union: []
- function_names:
  - test_lib569
  source_file: /src/curl/tests/libtest/lib569.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1592
  source_file: /src/curl/tests/libtest/lib1592.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - progress_final_report
  - t579_progress_callback
  - t579_read_cb
  - test_lib579
  source_file: /src/curl/tests/libtest/lib579.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: counter
        type: int
      item_type: struct
      name: t579_WriteThis
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/curl/tests/libtest/lib579.c
    typedefs: []
    union: []
- function_names:
  - test_lib566
  source_file: /src/curl/tests/libtest/lib566.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - string_check_low
  - string_check
  - strlen_check_low
  - strlen_check
  - test_unsigned_short_formatting
  - test_signed_short_formatting
  - test_unsigned_int_formatting
  - test_signed_int_formatting
  - test_unsigned_long_formatting
  - test_signed_long_formatting
  - test_curl_off_t_formatting
  - test_string_formatting
  - test_pos_arguments
  - test_width_precision
  - test_weird_arguments
  - test_float_formatting
  - test_oct_hex_formatting
  - test_return_codes
  - test_lib557
  source_file: /src/curl/tests/libtest/lib557.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSZ
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/tests/libtest/lib557.c
      type_or_value: '256'
    - item_type: preproc_def
      name: SPACE60
      pos:
        line_end: 895
        line_start: 894
        source_file: /src/curl/tests/libtest/lib557.c
      type_or_value: '"                                                            "'
    - item_type: preproc_def
      name: SPACE300
      pos:
        line_end: 896
        line_start: 895
        source_file: /src/curl/tests/libtest/lib557.c
      type_or_value: SPACE60 SPACE60 SPACE60 SPACE60 SPACE60
    - item_type: preproc_def
      name: OK325
      pos:
        line_end: 897
        line_start: 896
        source_file: /src/curl/tests/libtest/lib557.c
      type_or_value: SPACE300 "                        0"
    - item_type: preproc_def
      name: MAXIMIZE
      pos:
        line_end: 1051
        line_start: 1050
        source_file: /src/curl/tests/libtest/lib557.c
      type_or_value: (-1.7976931348623157081452E+308)
    structs:
    - fields:
      - name: num
        type: unsigned short
      - name: '*expected'
        type: char
      - name: result[BUFSZ]
        type: char
      item_type: struct
      name: unsshort_st
      pos:
        line_end: 54
        line_start: 50
        source_file: /src/curl/tests/libtest/lib557.c
    - fields:
      - name: num
        type: short
      - name: '*expected'
        type: char
      - name: result[BUFSZ]
        type: char
      item_type: struct
      name: sigshort_st
      pos:
        line_end: 60
        line_start: 56
        source_file: /src/curl/tests/libtest/lib557.c
    - fields:
      - name: num
        type: unsigned int
      - name: '*expected'
        type: char
      - name: result[BUFSZ]
        type: char
      item_type: struct
      name: unsint_st
      pos:
        line_end: 66
        line_start: 62
        source_file: /src/curl/tests/libtest/lib557.c
    - fields:
      - name: num
        type: int
      - name: '*expected'
        type: char
      - name: result[BUFSZ]
        type: char
      item_type: struct
      name: sigint_st
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/curl/tests/libtest/lib557.c
    - fields:
      - name: num
        type: unsigned long
      - name: '*expected'
        type: char
      - name: result[BUFSZ]
        type: char
      item_type: struct
      name: unslong_st
      pos:
        line_end: 78
        line_start: 74
        source_file: /src/curl/tests/libtest/lib557.c
    - fields:
      - name: num
        type: long
      - name: '*expected'
        type: char
      - name: result[BUFSZ]
        type: char
      item_type: struct
      name: siglong_st
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/curl/tests/libtest/lib557.c
    - fields:
      - name: num
        type: curl_off_t
      - name: '*expected'
        type: char
      - name: result[BUFSZ]
        type: char
      item_type: struct
      name: curloff_st
      pos:
        line_end: 90
        line_start: 86
        source_file: /src/curl/tests/libtest/lib557.c
    typedefs: []
    union: []
- function_names:
  - test_lib1913
  source_file: /src/curl/tests/libtest/lib1913.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t753_write_cb
  - t753_hd_cb
  - t753_setup
  - test_lib753
  source_file: /src/curl/tests/libtest/lib753.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*curl'
        type: CURL
      - name: '*name'
        type: char
      - name: pause
        type: bool
      - name: is_paused
        type: bool
      - name: seen_welcome
        type: bool
      item_type: struct
      name: t753_transfer_status
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/curl/tests/libtest/lib753.c
    typedefs: []
    union: []
- function_names:
  - test_lib575
  source_file: /src/curl/tests/libtest/lib575.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t668_read_cb
  - test_lib668
  source_file: /src/curl/tests/libtest/lib668.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: curl_off_t
      item_type: struct
      name: t668_WriteThis
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/curl/tests/libtest/lib668.c
    typedefs: []
    union: []
- function_names:
  - count_chars
  - test_lib650
  source_file: /src/curl/tests/libtest/lib650.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_callback
  - progress_callback
  - usage_upload_pausing
  - test_cli_upload_pausing
  source_file: /src/curl/tests/libtest/cli_upload_pausing.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib651
  source_file: /src/curl/tests/libtest/lib651.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - closesocket_cb
  - socket_cb
  - sockopt_cb
  - my_inet_pton
  - my_inet_pton
  - test_lib1960
  - test_lib1960
  source_file: /src/curl/tests/libtest/lib1960.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib1594
  source_file: /src/curl/tests/libtest/lib1594.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sockopt_callback
  - test_lib1522
  source_file: /src/curl/tests/libtest/lib1522.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t758_tag
  - t758_msg
  - t758_removeFd
  - t758_addFd
  - t758_curlSocketCallback
  - t758_curlTimerCallback
  - t758_cert_verify_callback
  - t758_set_ssl_ctx_callback
  - t758_checkForCompletion
  - t758_getMicroSecondTimeout
  - t758_updateFdSet
  - t758_saction
  - t758_checkFdSet
  - t758_one
  - test_lib758
  - test_lib758
  source_file: /src/curl/tests/libtest/lib758.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: socket_calls
        type: int
      - name: max_socket_calls
        type: int
      - name: timer_calls
        type: int
      - name: max_timer_calls
        type: int
      - name: fake_async_cert_verification_pending
        type: int
      - name: fake_async_cert_verification_finished
        type: int
      - name: number_of_cert_verify_callbacks
        type: int
      - name: buf[1024]
        type: char
      item_type: struct
      name: t758_ctx
      pos:
        line_end: 54
        line_start: 45
        source_file: /src/curl/tests/libtest/lib758.c
    - fields:
      - name: '*sockets'
        type: curl_socket_t
      - name: count
        type: int
      - name: max_count
        type: int
      item_type: struct
      name: t758_Sockets
      pos:
        line_end: 73
        line_start: 69
        source_file: /src/curl/tests/libtest/lib758.c
    - fields:
      - name: read
        type: struct t758_Sockets
      item_type: struct
      name: t758_ReadWriteSockets
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/curl/tests/libtest/lib758.c
    typedefs: []
    union: []
- function_names:
  - test_lib1550
  source_file: /src/curl/tests/libtest/lib1550.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib2306
  source_file: /src/curl/tests/libtest/lib2306.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flush_data
  - add_data
  - t2302_write_cb
  - test_lib2302
  source_file: /src/curl/tests/libtest/lib2302.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIB2302_BUFSIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/tests/libtest/lib2302.c
      type_or_value: (1024 * 1024)
    structs:
    - fields:
      - name: '*curl'
        type: CURL
      - name: '*buf'
        type: char
      - name: blen
        type: size_t
      - name: nwrites
        type: size_t
      - name: has_meta
        type: int
      - name: meta_flags
        type: int
      item_type: struct
      name: ws_data
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/curl/tests/libtest/lib2302.c
    typedefs: []
    union: []
- function_names:
  - test_lib1567
  source_file: /src/curl/tests/libtest/lib1567.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1975_read_cb
  - test_lib1975
  source_file: /src/curl/tests/libtest/lib1975.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cb_curl
  - test_lib2308
  source_file: /src/curl/tests/libtest/lib2308.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lib564
  source_file: /src/curl/tests/libtest/lib564.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cb_ignore
  - test_lib2309
  source_file: /src/curl/tests/libtest/lib2309.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_tool1394
  - struct
  source_file: /src/curl/tests/tunit/tool1394.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_tool1623
  source_file: /src/curl/tests/tunit/tool1623.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: amount
        type: curl_off_t
      - name: err
        type: ParameterError
      item_type: struct
      name: check1623
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/curl/tests/tunit/tool1623.c
    typedefs: []
    union: []
- function_names:
  - getflagstr
  - getcurlcodestr
  - test_tool1604
  source_file: /src/curl/tests/tunit/tool1604.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: flags
        type: int
      - name: '*expected_output'
        type: char
      - name: expected_result
        type: SANITIZEcode
      item_type: struct
      name: data
      pos:
        line_end: 59
        line_start: 54
        source_file: /src/curl/tests/tunit/tool1604.c
    typedefs: []
    union: []
- function_names:
  - test_tool1622
  source_file: /src/curl/tests/tunit/tool1622.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: value
        type: curl_off_t
      - name: '*output'
        type: char
      item_type: struct
      name: exactcase
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/curl/tests/tunit/tool1622.c
    typedefs: []
    union: []
- function_names:
  - test_tool1720
  source_file: /src/curl/tests/tunit/tool1720.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_tool1621
  source_file: /src/curl/tests/tunit/tool1621.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: '*output'
        type: char
      item_type: struct
      name: checkthis
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/curl/tests/tunit/tool1621.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/server/first.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURL_STRNICMP
  - CURL_STRNICMP
  - CURL_STRNICMP
  - CURL_STRNICMP
  source_file: /src/curl/tests/server/first.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/tests/server/first.h
      type_or_value: curlx_win32_snprintf
    - item_type: preproc_def
      name: GPE_NO_BUFFER_SPACE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/curl/tests/server/first.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: GPE_OUT_OF_MEMORY
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/curl/tests/server/first.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: GPE_OK
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/tests/server/first.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GPE_END_OF_FILE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/curl/tests/server/first.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SERVERLOGS_LOCKDIR
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/curl/tests/server/first.h
      type_or_value: '"lock"  '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: ptr
        type: entry_func_t
      item_type: struct
      name: entry_s
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/curl/tests/server/first.h
    typedefs:
    - item_type: typedef
      name: (*entry_func_t)(int, const char **)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/curl/tests/server/first.h
      type: int
    union:
    - fields:
      - name: sa
        type: struct sockaddr
      - name: sa4
        type: struct sockaddr_in
      item_type: union
      name: srvr_sockaddr_union_t
      pos:
        line_end: 122
        line_start: 113
        source_file: /src/curl/tests/server/first.h
- function_names:
  - EAT_SPACE
  - EAT_WORD
  - show
  - show
  - line_length
  - readline
  - appenddata
  - decodedata
  - getpart
  source_file: /src/curl/tests/server/getpart.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_TAG_LEN
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/curl/tests/server/getpart.c
      type_or_value: '200'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: sig
        type: ssize_t
      - name: uns
        type: size_t
      item_type: union
      name: len
      pos:
        line_end: 258
        line_start: 255
        source_file: /src/curl/tests/server/getpart.c
- function_names:
  - data_to_hex
  - socket_domain_is_ip
  - parse_cmdfile
  - sws_parse_servercmd
  - sws_ProcessRequest
  - sws_storerequest
  - sws_send_doc
  - init_httprequest
  - sws_get_request
  - connect_to
  - data_or_ctrl
  - http_connect
  - http_upgrade
  - service_connection
  source_file: /src/curl/tests/server/sws.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SLEEP_TIME_MS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '250'
    - item_type: preproc_def
      name: RCMD_NORMALREQ
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '0 '
    - item_type: preproc_def
      name: RCMD_IDLE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: RCMD_STREAM
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '2 '
    - item_type: preproc_def
      name: MAX_SOCKETS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: SWSVERSION
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"curl test suite HTTP server/0.1"'
    - item_type: preproc_def
      name: REQUEST_DUMP
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"server.input"'
    - item_type: preproc_def
      name: RESPONSE_DUMP
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"server.response"'
    - item_type: preproc_def
      name: REQUEST_PROXY_DUMP
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"proxy.input"'
    - item_type: preproc_def
      name: RESPONSE_PROXY_DUMP
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"proxy.response"'
    - item_type: preproc_def
      name: MAXDOCNAMELEN
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '140000'
    - item_type: preproc_def
      name: MAXDOCNAMELEN_TXT
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"139999"'
    - item_type: preproc_def
      name: REQUEST_KEYWORD_SIZE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '256'
    - item_type: preproc_def
      name: REQUEST_KEYWORD_SIZE_TXT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"255"'
    - item_type: preproc_def
      name: CMD_AUTH_REQUIRED
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"auth_required"'
    - item_type: preproc_def
      name: CMD_IDLE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"idle"'
    - item_type: preproc_def
      name: CMD_STREAM
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"stream"'
    - item_type: preproc_def
      name: CMD_CONNECTIONMONITOR
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"connection-monitor"'
    - item_type: preproc_def
      name: CMD_UPGRADE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"upgrade"'
    - item_type: preproc_def
      name: CMD_SWSCLOSE
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"swsclose"'
    - item_type: preproc_def
      name: CMD_NOEXPECT
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"no-expect"'
    - item_type: preproc_def
      name: END_OF_HEADERS
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '"\r\n\r\n"'
    - item_type: preproc_def
      name: SWS_CTRL
      pos:
        line_end: 1401
        line_start: 1400
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SWS_DATA
      pos:
        line_end: 1402
        line_start: 1401
        source_file: /src/curl/tests/server/sws.c
      type_or_value: '1'
    structs:
    - fields:
      - name: reqbuf[2 * 1024 * 1024]
        type: char
      - name: connect_request
        type: bool
      - name: connect_port
        type: unsigned short
      - name: checkindex
        type: size_t
      - name: offset
        type: size_t
      - name: testno
        type: long
      - name: partno
        type: long
      - name: open
        type: bool
      - name: auth_req
        type: bool
      - name: auth
        type: bool
      - name: cl
        type: size_t
      - name: digest
        type: bool
      - name: ntlm
        type: bool
      - name: delay
        type: int
      - name: writedelay
        type: int
      - name: skip
        type: int
      - name: rcmd
        type: int
      - name: prot_version
        type: int
      - name: callcount
        type: int
      - name: skipall
        type: bool
      - name: noexpect
        type: bool
      - name: connmon
        type: bool
      - name: upgrade
        type: bool
      - name: upgrade_request
        type: bool
      - name: close
        type: bool
      - name: done_processing
        type: int
      item_type: struct
      name: sws_httprequest
      pos:
        line_end: 85
        line_start: 52
        source_file: /src/curl/tests/server/sws.c
    typedefs: []
    union: []
- function_names:
  - read_wincon
  - write_wincon
  - fullread
  - fullwrite
  - read_stdin
  - write_stdout
  - lograw
  - read_data_block
  - select_ws_wait_thread
  - select_ws_wait
  - select_ws
  - SOCKFILT_select
  - SOCKFILT_select
  - disc_handshake
  - juggle
  - test_sockfilt
  source_file: /src/curl/tests/server/sockfilt.c
  types:
    enum:
    - enumerators:
      - name: PASSIVE_LISTEN
      - name: PASSIVE_CONNECT
      - name: ACTIVE_DISCONNECT
      - name: ACTIVE
      item_type: enum
      name: sockmode
      pos:
        line_end: 100
        line_start: 95
        source_file: /src/curl/tests/server/sockfilt.c
    preproc_defs:
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/tests/server/sockfilt.c
      type_or_value: '17010'
    - item_type: preproc_def
      name: SOCKFILT_read
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/curl/tests/server/sockfilt.c
      type_or_value: read_wincon
    - item_type: preproc_def
      name: SOCKFILT_write
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/curl/tests/server/sockfilt.c
      type_or_value: write_wincon
    - item_type: preproc_def
      name: SOCKFILT_read
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/curl/tests/server/sockfilt.c
      type_or_value: read
    - item_type: preproc_def
      name: SOCKFILT_write
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/curl/tests/server/sockfilt.c
      type_or_value: write
    - item_type: preproc_def
      name: CURL_WIN32_EPIPE
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/curl/tests/server/sockfilt.c
      type_or_value: '109'
    structs:
    - fields:
      - name: handle
        type: HANDLE
      - name: signal
        type: HANDLE
      - name: abort
        type: HANDLE
      item_type: struct
      name: select_ws_wait_data
      pos:
        line_end: 407
        line_start: 403
        source_file: /src/curl/tests/server/sockfilt.c
    - fields:
      - name: fd
        type: int
      - name: wsastate
        type: long
      - name: wsasock
        type: curl_socket_t
      - name: wsaevent
        type: WSAEVENT
      - name: signal
        type: HANDLE
      - name: thread
        type: HANDLE
      item_type: struct
      name: select_ws_data
      pos:
        line_end: 587
        line_start: 580
        source_file: /src/curl/tests/server/sockfilt.c
    typedefs: []
    union: []
- function_names:
  - socksd_resetdefaults
  - socksd_getconfig
  - socksconnect
  - socks4
  - sockit
  - tunnel
  - socksd_incoming
  - test_socksd
  source_file: /src/curl/tests/server/socksd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONFIG_VERSION
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '5'
    - item_type: preproc_def
      name: CONFIG_NMETHODS_MIN
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: CONFIG_NMETHODS_MAX
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CONFIG_RESPONSEVERSION
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: CONFIG_VERSION
    - item_type: preproc_def
      name: CONFIG_RESPONSEMETHOD
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '0 '
    - item_type: preproc_def
      name: CONFIG_REQCMD
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: CONFIG_PORT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: backendport
    - item_type: preproc_def
      name: CONFIG_ADDR
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: backendaddr
    - item_type: preproc_def
      name: CONFIG_CONNECTREP
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SOCKS5_VERSION
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SOCKS5_NMETHODS
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: SOCKS5_REQCMD
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SOCKS5_RESERVED
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SOCKS5_ATYP
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SOCKS5_DSTADDR
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SOCKS5_REP
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SOCKS5_BNDADDR
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SOCKS5_ULEN
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SOCKS5_UNAME
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SOCKS4_CD
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SOCKS4_DSTPORT
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/curl/tests/server/socksd.c
      type_or_value: '2'
    structs:
    - fields:
      - name: version
        type: unsigned char
      - name: nmethods_min
        type: unsigned char
      - name: nmethods_max
        type: unsigned char
      - name: responseversion
        type: unsigned char
      - name: responsemethod
        type: unsigned char
      - name: reqcmd
        type: unsigned char
      - name: connectrep
        type: unsigned char
      - name: port
        type: unsigned short
      - name: addr[32]
        type: char
      - name: user[256]
        type: char
      - name: password[256]
        type: char
      item_type: struct
      name: socksd_configurable
      pos:
        line_end: 74
        line_start: 61
        source_file: /src/curl/tests/server/socksd.c
    - fields:
      - name: fromremote
        type: size_t
      - name: fromclient
        type: size_t
      - name: remotefd
        type: curl_socket_t
      - name: clientfd
        type: curl_socket_t
      - name: used
        type: bool
      item_type: struct
      name: perclient
      pos:
        line_end: 572
        line_start: 566
        source_file: /src/curl/tests/server/socksd.c
    typedefs: []
    union: []
- function_names:
  - loghex
  - logmsg
  - win32_cleanup
  - win32_init
  - test2fopen
  - t_getpid
  - t_getpid
  - our_getpid
  - write_pidfile
  - write_portfile
  - set_advisor_read_lock
  - clear_advisor_read_lock
  - ctrl_event_handler
  - main_window_proc
  - main_window_loop
  - set_signal
  - install_signal_handlers
  - restore_signal_handlers
  - bind_unix_socket
  source_file: /src/curl/tests/server/util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIG_ERR
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/curl/tests/server/util.c
      type_or_value: ((SIGHANDLER_T)(size_t)-1)
    structs: []
    typedefs:
    - item_type: typedef
      name: (*SIGHANDLER_T)(int)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/curl/tests/server/util.c
      type: void
    union: []
- function_names:
  - get16bit
  - blob_reset
  - blob_add
  - blob_addn
  - blob_add_uint16
  - blob_addchars
  - qname2str
  - blob_add_qname_part
  - blob_add_qname
  - type2string
  - store_incoming
  - add_answer
  - send_resp
  - queue_resp
  - send_resp_queue
  - clear_resp_queue
  - create_resp
  - read_https_alpn_part
  - read_https_alpn
  - read_https
  - read_instructions
  source_file: /src/curl/tests/server/dnsd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOB_MAX_LEN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: QTYPE_A
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: QTYPE_AAAA
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '28'
    - item_type: preproc_def
      name: QTYPE_HTTPS
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '0x41'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_MANDATORY
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_ALPN
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_NO_DEF_ALPN
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_PORT
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_IPV4
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_ECH
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_IPV6
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: SENDTO3
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: int
    - item_type: preproc_def
      name: SENDTO3
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: size_t
    - item_type: preproc_def
      name: INSTRUCTIONS
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/curl/tests/server/dnsd.c
      type_or_value: '"dnsd.cmd"'
    structs:
    - fields:
      - name: data[BLOB_MAX_LEN]
        type: uint8_t
      - name: dlen
        type: size_t
      item_type: struct
      name: blob
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/curl/tests/server/dnsd.c
    - fields:
      - name: '*next'
        type: struct resp
      - name: qid
        type: int
      - name: send_ts
        type: struct curltime
      - name: addr
        type: struct sockaddr
      - name: addrlen
        type: curl_socklen_t
      - name: body
        type: struct blob
      item_type: struct
      name: resp
      pos:
        line_end: 343
        line_start: 336
        source_file: /src/curl/tests/server/dnsd.c
    typedefs: []
    union: []
- function_names:
  - mysignal
  - timer
  - justtimeout
  - nak
  - rw_init
  - w_init
  - r_init
  - read_ahead
  - readit
  - write_behind
  - writeit
  - synchnet
  - tftpd_parse_servercmd
  - validate_access
  - sendtftp
  - recvtftp
  - do_tftp
  source_file: /src/curl/tests/server/tftpd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEGSIZE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '512 '
    - item_type: preproc_def
      name: PKTSIZE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '(SEGSIZE + 4)  '
    - item_type: preproc_def
      name: PACKED_STRUCT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: __attribute__((__packed__))
    - item_type: preproc_def
      name: th_stuff
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: th_block
    - item_type: preproc_def
      name: th_code
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: th_block
    - item_type: preproc_def
      name: th_msg
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: th_data
    - item_type: preproc_def
      name: TFTP_EUNDEF
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TFTP_ENOTFOUND
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TFTP_EACCESS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TFTP_ENOSPACE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: TFTP_EBADOP
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: TFTP_EBADID
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '5'
    - item_type: preproc_def
      name: TFTP_EEXISTS
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '6'
    - item_type: preproc_def
      name: TFTP_ENOUSER
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '7'
    - item_type: preproc_def
      name: BF_ALLOC
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '(-3)       '
    - item_type: preproc_def
      name: BF_FREE
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '(-2)       '
    - item_type: preproc_def
      name: opcode_RRQ
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: opcode_WRQ
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: opcode_DATA
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: opcode_ACK
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: opcode_ERROR
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '5'
    - item_type: preproc_def
      name: TIMEOUT
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '5'
    - item_type: preproc_def
      name: REQUEST_DUMP
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/curl/tests/server/tftpd.c
      type_or_value: '"server.input"'
    structs:
    - fields:
      - name: th_opcode
        type: unsigned short
      - name: th_block
        type: unsigned short
      - name: th_data[1]
        type: char
      item_type: struct
      name: tftphdr
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/curl/tests/server/tftpd.c
    - fields:
      - name: '*buffer'
        type: char
      - name: bufsize
        type: size_t
      - name: '*rptr'
        type: char
      - name: rcount
        type: size_t
      - name: testno
        type: long
      - name: ofile
        type: int
      - name: writedelay
        type: int
      item_type: struct
      name: testcase
      pos:
        line_end: 121
        line_start: 112
        source_file: /src/curl/tests/server/tftpd.c
    - fields:
      - name: '*f_mode'
        type: char
      - name: f_convert
        type: int
      item_type: struct
      name: formats
      pos:
        line_end: 126
        line_start: 123
        source_file: /src/curl/tests/server/tftpd.c
    - fields:
      - name: e_code
        type: int
      - name: e_msg[STRERROR_LEN]
        type: char
      item_type: struct
      name: errmsg
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/curl/tests/server/tftpd.c
    - fields:
      - name: counter
        type: int
      - name: buf
        type: tftphdr_storage_t
      item_type: struct
      name: bf
      pos:
        line_end: 146
        line_start: 143
        source_file: /src/curl/tests/server/tftpd.c
    typedefs: []
    union:
    - fields:
      - name: hdr
        type: struct tftphdr
      - name: storage[PKTSIZE]
        type: char
      item_type: union
      name: tftphdr_storage_t
      pos:
        line_end: 136
        line_start: 133
        source_file: /src/curl/tests/server/tftpd.c
- function_names:
  - SET_RTP_PKT_CHN
  - SET_RTP_PKT_LEN
  - rtspd_ProcessRequest
  - rtspd_storerequest
  - rtspd_get_request
  - rtspd_send_doc
  - test_rtspd
  source_file: /src/curl/tests/server/rtspd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RCMD_NORMALREQ
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '0 '
    - item_type: preproc_def
      name: RCMD_IDLE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: RCMD_STREAM
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '2 '
    - item_type: preproc_def
      name: RTSPDVERSION
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '"curl test suite RTSP server/0.1"'
    - item_type: preproc_def
      name: REQUEST_DUMP
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '"server.input"'
    - item_type: preproc_def
      name: RESPONSE_DUMP
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '"server.response"'
    - item_type: preproc_def
      name: MAXDOCNAMELEN
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '140000'
    - item_type: preproc_def
      name: MAXDOCNAMELEN_TXT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '"139999"'
    - item_type: preproc_def
      name: REQUEST_KEYWORD_SIZE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '256'
    - item_type: preproc_def
      name: REQUEST_KEYWORD_SIZE_TXT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '"255"'
    - item_type: preproc_def
      name: CMD_AUTH_REQUIRED
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '"auth_required"'
    - item_type: preproc_def
      name: CMD_IDLE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '"idle"'
    - item_type: preproc_def
      name: CMD_STREAM
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '"stream"'
    - item_type: preproc_def
      name: END_OF_HEADERS
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '"\r\n\r\n"'
    - item_type: preproc_def
      name: RTP_DATA_SIZE
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/curl/tests/server/rtspd.c
      type_or_value: '12'
    structs:
    - fields:
      - name: reqbuf[150000]
        type: char
      - name: checkindex
        type: size_t
      - name: offset
        type: size_t
      - name: testno
        type: long
      - name: partno
        type: long
      - name: open
        type: bool
      - name: auth_req
        type: bool
      - name: auth
        type: bool
      - name: cl
        type: size_t
      - name: digest
        type: bool
      - name: ntlm
        type: bool
      - name: pipe
        type: int
      - name: skip
        type: int
      - name: rcmd
        type: int
      - name: protocol
        type: reqprot_t
      - name: prot_version
        type: int
      - name: pipelining
        type: bool
      - name: '*rtp_buffer'
        type: char
      - name: rtp_buffersize
        type: size_t
      item_type: struct
      name: rtspd_httprequest
      pos:
        line_end: 82
        line_start: 57
        source_file: /src/curl/tests/server/rtspd.c
    typedefs: []
    union: []
- function_names:
  - mqttd_resetdefaults
  - mqttd_getconfig
  - logprotocol
  - connack
  - suback
  - puback
  - disconnect
  - encode_length
  - decode_length
  - publish
  - fixedheader
  - mqttit
  - mqttd_incoming
  - test_mqttd
  source_file: /src/curl/tests/server/mqttd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MQTT_MSG_CONNECT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: MQTT_MSG_CONNACK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: MQTT_MSG_PUBLISH
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '0x30'
    - item_type: preproc_def
      name: MQTT_MSG_SUBSCRIBE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: MQTT_MSG_SUBACK
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '0x90'
    - item_type: preproc_def
      name: MQTT_MSG_PINGRESP
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '0xd0'
    - item_type: preproc_def
      name: MQTT_MSG_DISCONNECT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '0xe0'
    - item_type: preproc_def
      name: REQUEST_DUMP
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '"server.input"'
    - item_type: preproc_def
      name: CONFIG_VERSION
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_TOPIC_LENGTH
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '65535'
    - item_type: preproc_def
      name: MAX_CLIENT_ID_LENGTH
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/curl/tests/server/mqttd.c
      type_or_value: '32'
    structs:
    - fields:
      - name: testnum
        type: int
      - name: version
        type: unsigned char
      - name: publish_before_suback
        type: bool
      - name: short_publish
        type: bool
      - name: excessive_remaining
        type: bool
      - name: pingresp_as_connack
        type: bool
      - name: disconnect_malformed
        type: bool
      - name: error_connack
        type: unsigned char
      - name: remlen_connack
        type: unsigned char
      item_type: struct
      name: mqttd_configurable
      pos:
        line_end: 56
        line_start: 45
        source_file: /src/curl/tests/server/mqttd.c
    typedefs: []
    union: []
- function_names:
  - test_resolve
  source_file: /src/curl/tests/server/resolve.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1403.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1420.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1404.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1481.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1406.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1405.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1402.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1465.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1401.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1400.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/tests/data/data1407.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit3200
  source_file: /src/curl/tests/unit/unit3200.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: C64
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/tests/unit/unit3200.c
      type_or_value: '"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"'
    - item_type: preproc_def
      name: C256
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/tests/unit/unit3200.c
      type_or_value: C64 C64 C64 C64
    - item_type: preproc_def
      name: C1024
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/tests/unit/unit3200.c
      type_or_value: C256 C256 C256 C256
    - item_type: preproc_def
      name: C4096
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/tests/unit/unit3200.c
      type_or_value: C1024 C1024 C1024 C1024
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1627
  source_file: /src/curl/tests/unit/unit1627.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1600_setup
  - t1600_stop
  - test_unit1600
  source_file: /src/curl/tests/unit/unit1600.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unit3301_item_create
  - unit3301_item_free
  - unit3301_event
  - unit3301_process
  - test_unit3301
  - test_unit3301
  source_file: /src/curl/tests/unit/unit3301.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: int
      item_type: struct
      name: unit3301_item
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/curl/tests/unit/unit3301.c
    - fields:
      - name: event
        type: int
      item_type: struct
      name: unit3301_ctx
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/curl/tests/unit/unit3301.c
    typedefs: []
    union: []
- function_names:
  - t1303_setup
  - t1303_stop
  - NOW
  - TIMEOUTS
  - test_unit1303
  source_file: /src/curl/tests/unit/unit1303.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BASE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/tests/unit/unit1303.c
      type_or_value: '1000000'
    structs:
    - fields:
      - name: now_s
        type: int
      - name: now_us
        type: int
      - name: timeout_ms
        type: unsigned int
      - name: connecttimeout_ms
        type: unsigned int
      - name: connecting
        type: bool
      - name: result
        type: timediff_t
      - name: '*comment'
        type: char
      item_type: struct
      name: timetest
      pos:
        line_end: 85
        line_start: 77
        source_file: /src/curl/tests/unit/unit1303.c
    typedefs: []
    union: []
- function_names:
  - t1664_setup
  - test_unit1664
  source_file: /src/curl/tests/unit/unit1664.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*str'
        type: char
      - name: max
        type: curl_off_t
      item_type: struct
      name: t
      pos:
        line_end: 209
        line_start: 206
        source_file: /src/curl/tests/unit/unit1664.c
    - fields:
      - name: '*str'
        type: char
      - name: max
        type: curl_off_t
      item_type: struct
      name: t
      pos:
        line_end: 242
        line_start: 239
        source_file: /src/curl/tests/unit/unit1664.c
    - fields:
      - name: '*str'
        type: char
      - name: max
        type: curl_off_t
      item_type: struct
      name: t
      pos:
        line_end: 282
        line_start: 279
        source_file: /src/curl/tests/unit/unit1664.c
    typedefs: []
    union: []
- function_names:
  - test_unit3302
  source_file: /src/curl/tests/unit/unit3302.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ret2name
  - test_unit1307
  - testcase
  - test_unit1307
  source_file: /src/curl/tests/unit/unit1307.c
  types:
    enum:
    - enumerators:
      - name: SYSTEM_CUSTOM
      - name: SYSTEM_MACOS
      - name: SYSTEM_LINUX
      item_type: enum
      name: system
      pos:
        line_end: 273
        line_start: 269
        source_file: /src/curl/tests/unit/unit1307.c
    preproc_defs:
    - item_type: preproc_def
      name: MATCH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: CURL_FNMATCH_MATCH
    - item_type: preproc_def
      name: NOMATCH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: CURL_FNMATCH_NOMATCH
    - item_type: preproc_def
      name: LINUX_DIFFER
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: LINUX_SHIFT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: '8'
    - item_type: preproc_def
      name: LINUX_MATCH
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: ((CURL_FNMATCH_MATCH   << LINUX_SHIFT) | LINUX_DIFFER)
    - item_type: preproc_def
      name: LINUX_NOMATCH
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: ((CURL_FNMATCH_NOMATCH << LINUX_SHIFT) | LINUX_DIFFER)
    - item_type: preproc_def
      name: LINUX_FAIL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: ((CURL_FNMATCH_FAIL    << LINUX_SHIFT) | LINUX_DIFFER)
    - item_type: preproc_def
      name: MAC_DIFFER
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: MAC_SHIFT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAC_MATCH
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: ((CURL_FNMATCH_MATCH   << MAC_SHIFT) | MAC_DIFFER)
    - item_type: preproc_def
      name: MAC_NOMATCH
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: ((CURL_FNMATCH_NOMATCH << MAC_SHIFT) | MAC_DIFFER)
    - item_type: preproc_def
      name: MAC_FAIL
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/tests/unit/unit1307.c
      type_or_value: ((CURL_FNMATCH_FAIL    << MAC_SHIFT) | MAC_DIFFER)
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1397
  source_file: /src/curl/tests/unit/unit1397.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*host'
        type: char
      - name: '*pattern'
        type: char
      - name: match
        type: bool
      item_type: struct
      name: testcase
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/curl/tests/unit/unit1397.c
    typedefs: []
    union: []
- function_names:
  - splayprint
  - test_unit1309
  source_file: /src/curl/tests/unit/unit1309.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_NODES
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/tests/unit/unit1309.c
      type_or_value: '50'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit3219
  source_file: /src/curl/tests/unit/unit3219.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test1668
  - test_unit1668
  - test_unit1668
  source_file: /src/curl/tests/unit/unit1668.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*in'
        type: char
      - name: '*out'
        type: char
      - name: rc
        type: bool
      item_type: struct
      name: test_1668
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/curl/tests/unit/unit1668.c
    typedefs: []
    union: []
- function_names:
  - test_unit1302
  source_file: /src/curl/tests/unit/unit1302.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: ilen
        type: size_t
      - name: '*output'
        type: char
      - name: olen
        type: size_t
      item_type: struct
      name: etest
      pos:
        line_end: 32
        line_start: 27
        source_file: /src/curl/tests/unit/unit1302.c
    typedefs: []
    union: []
- function_names:
  - test_unit1330
  source_file: /src/curl/tests/unit/unit1330.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1607_setup
  - test_unit1607
  - IPV6ONLY
  - IPV6ONLY
  source_file: /src/curl/tests/unit/unit1607.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*optval'
        type: char
      - name: '*host'
        type: char
      - name: port
        type: int
      - name: permanent
        type: bool
      - name: '*address[10]'
        type: char
      item_type: struct
      name: testcase
      pos:
        line_end: 61
        line_start: 48
        source_file: /src/curl/tests/unit/unit1607.c
    typedefs: []
    union: []
- function_names:
  - test_unit1651
  source_file: /src/curl/tests/unit/unit1651.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1608_setup
  - test_unit1608
  - test_unit1608
  source_file: /src/curl/tests/unit/unit1608.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_eq
  - parse_success
  - test_unit2603
  source_file: /src/curl/tests/unit/unit2603.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**input'
        type: char
      - name: '*default_scheme'
        type: char
      - name: '*custom_method'
        type: char
      - name: '*method'
        type: char
      - name: '*scheme'
        type: char
      - name: '*authority'
        type: char
      - name: '*path'
        type: char
      - name: header_count
        type: size_t
      - name: input_remain
        type: size_t
      item_type: struct
      name: tcase
      pos:
        line_end: 59
        line_start: 49
        source_file: /src/curl/tests/unit/unit2603.c
    typedefs: []
    union: []
- function_names:
  - test_unit2605
  source_file: /src/curl/tests/unit/unit2605.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*r'
        type: char
      - name: filesize
        type: curl_off_t
      - name: start
        type: curl_off_t
      - name: size
        type: curl_off_t
      - name: result
        type: CURLcode
      item_type: struct
      name: range
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/curl/tests/unit/unit2605.c
    typedefs: []
    union: []
- function_names:
  - test_unit1655
  source_file: /src/curl/tests/unit/unit1655.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: expected_result
        type: DOHcode
      item_type: struct
      name: test
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/curl/tests/unit/unit1655.c
    - fields:
      - name: dohbuffer[255 + 16]
        type: unsigned char
      - name: canary1
        type: unsigned char
      - name: canary2
        type: unsigned char
      - name: canary3
        type: unsigned char
      item_type: struct
      name: demo
      pos:
        line_end: 81
        line_start: 76
        source_file: /src/curl/tests/unit/unit1655.c
    typedefs: []
    union: []
- function_names:
  - test_unit2604
  source_file: /src/curl/tests/unit/unit2604.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SA60
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/tests/unit/unit2604.c
      type_or_value: '"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"'
    - item_type: preproc_def
      name: SA540
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/tests/unit/unit2604.c
      type_or_value: SA60 SA60 SA60 SA60 SA60 SA60 SA60 SA60 SA60
    structs:
    - fields:
      - name: '*cp'
        type: char
      - name: '*expect'
        type: char
      - name: '*next'
        type: char
      - name: '*home'
        type: char
      - name: result
        type: CURLcode
      item_type: struct
      name: set
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/curl/tests/unit/unit2604.c
    typedefs: []
    union: []
- function_names:
  - t1605_setup
  - t1605_stop
  - test_unit1605
  source_file: /src/curl/tests/unit/unit1605.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - checksize
  - test_unit3214
  source_file: /src/curl/tests/unit/unit3214.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CURL_EASY
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '5370'
    - item_type: preproc_def
      name: MAX_CONNECTDATA
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '1300'
    - item_type: preproc_def
      name: MAX_CURL_MULTI
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '850'
    - item_type: preproc_def
      name: MAX_CURL_HTTPPOST
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '112'
    - item_type: preproc_def
      name: MAX_CURL_SLIST
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_CURL_KHKEY
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '24'
    - item_type: preproc_def
      name: MAX_CURL_HSTSENTRY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '40'
    - item_type: preproc_def
      name: MAX_CURL_INDEX
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_CURL_MIME
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '96'
    - item_type: preproc_def
      name: MAX_CURL_MIMEPART
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '440'
    - item_type: preproc_def
      name: MAX_CURL_CERTINFO
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_CURL_TLSSESSIONINFO
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_CURL_BLOB
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '24'
    - item_type: preproc_def
      name: MAX_CURLMSG
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '24'
    - item_type: preproc_def
      name: MAX_CURL_HEADER
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/tests/unit/unit3214.c
      type_or_value: '48'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1676
  source_file: /src/curl/tests/unit/unit1676.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1980
  source_file: /src/curl/tests/unit/unit1980.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*testname'
        type: char
      - name: '*query_part'
        type: char
      - name: '*canonical_query'
        type: char
      item_type: struct
      name: testcase
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/curl/tests/unit/unit1980.c
    typedefs: []
    union: []
- function_names:
  - test_unit1626
  - test_unit1626
  source_file: /src/curl/tests/unit/unit1626.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*in'
        type: char
      - name: '*out'
        type: char
      item_type: struct
      name: check1626
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/curl/tests/unit/unit1626.c
    typedefs: []
    union: []
- function_names:
  - test_free
  - t1661_setup
  - t1661_stop
  - test_unit1661
  source_file: /src/curl/tests/unit/unit1661.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_Curl_llist_dtor
  - test_unit1300
  source_file: /src/curl/tests/unit/unit1300.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1611
  source_file: /src/curl/tests/unit/unit1611.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - showsts
  - test_unit1660
  - struct
  - test_unit1660
  source_file: /src/curl/tests/unit/unit1660.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1601
  source_file: /src/curl/tests/unit/unit1601.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1603_mydtor
  - my_elem_dtor
  - t1603_setup
  - t1603_stop
  - test_unit1603
  source_file: /src/curl/tests/unit/unit1603.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1396_setup
  - t1396_stop
  - test_unit1396
  source_file: /src/curl/tests/unit/unit1396.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*in'
        type: char
      - name: inlen
        type: int
      - name: '*out'
        type: char
      - name: outlen
        type: int
      item_type: struct
      name: test
      pos:
        line_end: 50
        line_start: 45
        source_file: /src/curl/tests/unit/unit1396.c
    typedefs: []
    union: []
- function_names:
  - t3212_setup
  - t3212_stop
  - test_unit3212
  source_file: /src/curl/tests/unit/unit3212.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TBL_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/tests/unit/unit3212.c
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1609_setup
  - test_unit1609
  source_file: /src/curl/tests/unit/unit1609.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*optval'
        type: char
      - name: '*host'
        type: char
      - name: port
        type: int
      - name: '*address[10]'
        type: char
      item_type: struct
      name: testcase
      pos:
        line_end: 81
        line_start: 71
        source_file: /src/curl/tests/unit/unit1609.c
    typedefs: []
    union: []
- function_names:
  - test_unit1654
  source_file: /src/curl/tests/unit/unit1654.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit3303
  source_file: /src/curl/tests/unit/unit3303.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1669
  source_file: /src/curl/tests/unit/unit1669.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1979
  source_file: /src/curl/tests/unit/unit1979.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*testname'
        type: char
      - name: normalize
        type: bool
      - name: '*url_part'
        type: char
      - name: '*canonical_url'
        type: char
      item_type: struct
      name: testcase
      pos:
        line_end: 36
        line_start: 31
        source_file: /src/curl/tests/unit/unit1979.c
    typedefs: []
    union: []
- function_names:
  - test_unit1625
  - test_unit1625
  source_file: /src/curl/tests/unit/unit1625.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*in'
        type: char
      - name: '*hdr'
        type: char
      - name: '*extract'
        type: char
      - name: expect
        type: bool
      item_type: struct
      name: check1625
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/curl/tests/unit/unit1625.c
    typedefs: []
    union: []
- function_names:
  - test_unit1398
  source_file: /src/curl/tests/unit/unit1398.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1615
  source_file: /src/curl/tests/unit/unit1615.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - queue_bytes
  - check_capsule_hdr
  - test_capsule_encap_udp_hdr_boundaries
  - check_capsule_result
  - test_capsule_encode_decode_roundtrip
  - test_capsule_sequential_decode
  - test_capsule_decode_paths
  - test_unit3400
  source_file: /src/curl/tests/unit/unit3400.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1650
  source_file: /src/curl/tests/unit/unit1650.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DNS_PREAMBLE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: '"\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00"'
    - item_type: preproc_def
      name: LABEL_TEST
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: '"\x04\x74\x65\x73\x74"'
    - item_type: preproc_def
      name: LABEL_HOST
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: '"\x04\x68\x6f\x73\x74"'
    - item_type: preproc_def
      name: LABEL_NAME
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: '"\x04\x6e\x61\x6d\x65"'
    - item_type: preproc_def
      name: DNSA_TYPE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: '"\x01"'
    - item_type: preproc_def
      name: DNSAAAA_TYPE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: '"\x1c"'
    - item_type: preproc_def
      name: DNSA_EPILOGUE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: '"\x00\x00" DNSA_TYPE "\x00\x01"'
    - item_type: preproc_def
      name: DNSAAAA_EPILOGUE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: '"\x00\x00" DNSAAAA_TYPE "\x00\x01"'
    - item_type: preproc_def
      name: DNS_Q1
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: DNS_PREAMBLE LABEL_TEST LABEL_HOST LABEL_NAME DNSA_EPILOGUE
    - item_type: preproc_def
      name: DNS_Q2
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: DNS_PREAMBLE LABEL_TEST LABEL_HOST LABEL_NAME DNSAAAA_EPILOGUE
    - item_type: preproc_def
      name: DNS_FOO_EXAMPLE_COM
      pos:
        line_end: 79
        line_start: 74
        source_file: /src/curl/tests/unit/unit1650.c
      type_or_value: "\"\\x00\\x00\\x01\\x00\\x00\\x01\\x00\\x01\\x00\\x00\\x00\\x00\\x03\\x66\\x6f\\x6f\"
        \\\n  \"\\x07\\x65\\x78\\x61\\x6d\\x70\\x6c\\x65\\x03\\x63\\x6f\\x6d\\x00\\x00\\x01\\x00\"
        \\\n  \"\\x01\\xc0\\x0c\\x00\\x01\\x00\\x01\\x00\\x00\\x00\\x37\\x00\\x04\\x7f\\x00\\x00\"
        \\\n  \"\\x01\""
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: DNStype
      - name: '*packet'
        type: char
      - name: size
        type: size_t
      - name: rc
        type: DOHcode
      item_type: struct
      name: dohrequest
      pos:
        line_end: 53
        line_start: 44
        source_file: /src/curl/tests/unit/unit1650.c
    - fields:
      - name: '*packet'
        type: char
      - name: size
        type: size_t
      - name: type
        type: DNStype
      - name: rc
        type: DOHcode
      - name: '*out'
        type: char
      item_type: struct
      name: dohresp
      pos:
        line_end: 72
        line_start: 63
        source_file: /src/curl/tests/unit/unit1650.c
    typedefs: []
    union: []
- function_names:
  - make1657_nested
  - do_test1657
  - test_unit1657
  - test_unit1657
  source_file: /src/curl/tests/unit/unit1657.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*setbuf)(const struct test1657_spec *spec, struct dynbuf *buf)
        type: CURLcode
      - name: n
        type: size_t
      - name: result_exp
        type: CURLcode
      item_type: struct
      name: test1657_spec
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/curl/tests/unit/unit1657.c
    typedefs: []
    union: []
- function_names:
  - t1616_mydtor
  - t1616_setup
  - t1616_stop
  - test_unit1616
  source_file: /src/curl/tests/unit/unit1616.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1610_setup
  - test_unit1610
  source_file: /src/curl/tests/unit/unit1610.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1304_setup
  - t1304_stop
  - t1304_no_user
  - t1304_no_passwd
  - test_unit1304
  - test_unit1304
  source_file: /src/curl/tests/unit/unit1304.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_parse_port
  - test_unit1653
  source_file: /src/curl/tests/unit/unit1653.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit2602
  source_file: /src/curl/tests/unit/unit2602.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_test
  - test_unit1656
  - test_unit1656
  source_file: /src/curl/tests/unit/unit1656.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: '*exp_output'
        type: char
      - name: result_exp
        type: CURLcode
      item_type: struct
      name: test_spec
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/curl/tests/unit/unit1656.c
    typedefs: []
    union: []
- function_names:
  - t1399_setup
  - t1399_stop
  - fake_t_startsingle_time
  - usec_matches_seconds
  - expect_timer_seconds
  - test_unit1399
  source_file: /src/curl/tests/unit/unit1399.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tail_err
  - dump_bufq
  - check_bufq
  - test_unit2601
  source_file: /src/curl/tests/unit/unit2601.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1602_mydtor
  - t1602_setup
  - t1602_stop
  - test_unit1602
  source_file: /src/curl/tests/unit/unit1602.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test1667
  - test_unit1667
  - test_unit1667
  source_file: /src/curl/tests/unit/unit1667.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: tag
        type: unsigned char
      - name: '*asn1'
        type: char
      - name: size
        type: size_t
      - name: '*out'
        type: char
      - name: result_exp
        type: CURLcode
      item_type: struct
      name: test_1667
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/curl/tests/unit/unit1667.c
    typedefs: []
    union: []
- function_names:
  - test_unit3205
  source_file: /src/curl/tests/unit/unit3205.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: uint16_t
      - name: '*rfc'
        type: char
      - name: '*openssl'
        type: char
      item_type: struct
      name: test_cs_entry
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/curl/tests/unit/unit3205.c
    - fields:
      - name: id
        type: uint16_t
      - name: '*str'
        type: char
      item_type: struct
      name: test_str_entry
      pos:
        line_end: 441
        line_start: 438
        source_file: /src/curl/tests/unit/unit3205.c
    typedefs: []
    union: []
- function_names:
  - debugf_cb
  - t1652_setup
  - t1652_stop
  - verify
  - test_unit1652
  source_file: /src/curl/tests/unit/unit1652.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1675
  source_file: /src/curl/tests/unit/unit1675.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*in'
        type: char
      - name: '*out'
        type: char
      item_type: struct
      name: ipv4_test
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/curl/tests/unit/unit1675.c
    - fields:
      - name: '*in'
        type: char
      - name: relative
        type: bool
      - name: query
        type: unsigned int
      - name: '*out'
        type: char
      item_type: struct
      name: urlencode_test
      pos:
        line_end: 146
        line_start: 141
        source_file: /src/curl/tests/unit/unit1675.c
    - fields:
      - name: '*in'
        type: char
      - name: '*out_host'
        type: char
      - name: '*out_zone'
        type: char
      item_type: struct
      name: ipv6_test
      pos:
        line_end: 204
        line_start: 200
        source_file: /src/curl/tests/unit/unit1675.c
    - fields:
      - name: '*in'
        type: char
      - name: '*out_path'
        type: char
      - name: fine
        type: bool
      item_type: struct
      name: file_test
      pos:
        line_end: 260
        line_start: 256
        source_file: /src/curl/tests/unit/unit1675.c
    - fields:
      - name: '*base'
        type: char
      - name: '*scheme'
        type: char
      - name: '*host'
        type: char
      - name: '*port'
        type: char
      - name: '*path'
        type: char
      - name: expect_match
        type: bool
      item_type: struct
      name: origin_test
      pos:
        line_end: 317
        line_start: 310
        source_file: /src/curl/tests/unit/unit1675.c
    - fields:
      - name: uc
        type: CURLUcode
      - name: '*in'
        type: char
      - name: '*scheme'
        type: char
      - name: flags
        type: unsigned int
      - name: '*user'
        type: char
      - name: '*password'
        type: char
      - name: '*options'
        type: char
      - name: offset
        type: size_t
      item_type: struct
      name: test
      pos:
        line_end: 395
        line_start: 386
        source_file: /src/curl/tests/unit/unit1675.c
    typedefs: []
    union: []
- function_names:
  - OID
  - test1666
  - test_unit1666
  - test_unit1666
  source_file: /src/curl/tests/unit/unit1666.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*oid'
        type: char
      - name: size
        type: size_t
      - name: '*dotted'
        type: char
      - name: result_exp
        type: CURLcode
      item_type: struct
      name: test_1666
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/curl/tests/unit/unit1666.c
    typedefs: []
    union: []
- function_names:
  - test_unit1614
  source_file: /src/curl/tests/unit/unit1614.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*a'
        type: char
      - name: '*n'
        type: char
      - name: bits
        type: unsigned int
      - name: match
        type: bool
      item_type: struct
      name: check
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/curl/tests/unit/unit1614.c
    - fields:
      - name: '*a'
        type: char
      - name: '*n'
        type: char
      - name: match
        type: bool
      item_type: struct
      name: noproxy
      pos:
        line_end: 69
        line_start: 65
        source_file: /src/curl/tests/unit/unit1614.c
    typedefs: []
    union: []
- function_names:
  - unit3300_ctx_init
  - unit3300_take
  - unit3300_process
  - unit3300_return
  - test_unit3300
  - test_unit3300
  source_file: /src/curl/tests/unit/unit3300.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: total
        type: uint32_t
      - name: taken
        type: uint32_t
      - name: returned
        type: uint32_t
      item_type: struct
      name: unit3300_ctx
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/curl/tests/unit/unit3300.c
    typedefs: []
    union: []
- function_names:
  - render_unit1674
  - test_unit1674
  - test_unit1674
  source_file: /src/curl/tests/unit/unit1674.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1395
  source_file: /src/curl/tests/unit/unit1395.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: '*output'
        type: char
      item_type: struct
      name: dotdot
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/curl/tests/unit/unit1395.c
    typedefs: []
    union: []
- function_names:
  - t1305_setup
  - t1305_stop
  - fake_ai
  - create_node
  - test_unit1305
  source_file: /src/curl/tests/unit/unit1305.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1620_setup
  - t1620_parse
  - test_unit1620
  source_file: /src/curl/tests/unit/unit1620.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_spbset
  - test_unit3213
  source_file: /src/curl/tests/unit/unit3213.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1658_setup
  - rrresults
  - test_unit1658
  - test_unit1658
  source_file: /src/curl/tests/unit/unit1658.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*dns'
        type: unsigned char
      - name: len
        type: size_t
      - name: '*expect'
        type: char
      item_type: struct
      name: test
      pos:
        line_end: 122
        line_start: 117
        source_file: /src/curl/tests/unit/unit1658.c
    typedefs: []
    union: []
- function_names:
  - test_unit1323
  - struct
  source_file: /src/curl/tests/unit/unit1323.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit3216
  source_file: /src/curl/tests/unit/unit3216.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1636
  - test_unit1636
  source_file: /src/curl/tests/unit/unit1636.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t2600_setup
  - t2600_stop
  - cf_test_destroy
  - cf_test_connect
  - cf_test_adjust_pollset
  - cf_test_create
  - check_result
  - test_connect
  - test_unit2600
  source_file: /src/curl/tests/unit/unit2600.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TURL
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/curl/tests/unit/unit2600.c
      type_or_value: '"http://abc.test:123"'
    - item_type: preproc_def
      name: R_FAIL
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/curl/tests/unit/unit2600.c
      type_or_value: CURLE_COULDNT_CONNECT
    - item_type: preproc_def
      name: TC_TMOT
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/curl/tests/unit/unit2600.c
      type_or_value: '90000  '
    - item_type: preproc_def
      name: CNCT_TMOT
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/curl/tests/unit/unit2600.c
      type_or_value: '60000  '
    structs:
    - fields:
      - name: id
        type: int
      - name: '*url'
        type: char
      - name: '*resolve_info'
        type: char
      - name: ip_version
        type: long
      - name: connect_timeout_ms
        type: timediff_t
      - name: he_timeout_ms
        type: timediff_t
      - name: cf4_fail_delay_ms
        type: timediff_t
      - name: cf6_fail_delay_ms
        type: timediff_t
      - name: exp_cf4_creations
        type: int
      - name: exp_cf6_creations
        type: int
      - name: min_duration_ms
        type: timediff_t
      - name: max_duration_ms
        type: timediff_t
      - name: result_exp
        type: CURLcode
      - name: '*pref_family'
        type: char
      - name: max_concurrent
        type: uint32_t
      item_type: struct
      name: test_case
      pos:
        line_end: 89
        line_start: 72
        source_file: /src/curl/tests/unit/unit2600.c
    - fields:
      - name: '*family'
        type: char
      - name: creations
        type: int
      - name: first_created
        type: timediff_t
      - name: last_created
        type: timediff_t
      item_type: struct
      name: ai_family_stats
      pos:
        line_end: 96
        line_start: 91
        source_file: /src/curl/tests/unit/unit2600.c
    - fields:
      - name: result
        type: CURLcode
      - name: started
        type: struct curltime
      - name: ended
        type: struct curltime
      - name: cf4
        type: struct ai_family_stats
      - name: cf6
        type: struct ai_family_stats
      - name: max_concurrent
        type: uint32_t
      - name: ongoing
        type: uint32_t
      item_type: struct
      name: test_result
      pos:
        line_end: 106
        line_start: 98
        source_file: /src/curl/tests/unit/unit2600.c
    - fields:
      - name: idx
        type: int
      - name: ai_family
        type: int
      - name: transport_in
        type: uint8_t
      - name: transport_out
        type: uint8_t
      - name: id[16]
        type: char
      - name: started
        type: struct curltime
      - name: fail_delay_ms
        type: timediff_t
      - name: '*stats'
        type: struct ai_family_stats
      item_type: struct
      name: cf_test_ctx
      pos:
        line_end: 121
        line_start: 112
        source_file: /src/curl/tests/unit/unit2600.c
    typedefs: []
    union: []
- function_names:
  - test_unit3304
  source_file: /src/curl/tests/unit/unit3304.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_set
  - test_unit3211
  source_file: /src/curl/tests/unit/unit3211.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unit1612
  source_file: /src/curl/tests/unit/unit1612.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1606_setup
  - t1606_stop
  - runawhile
  - test_unit1606
  source_file: /src/curl/tests/unit/unit1606.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t1663_setup
  - t1663_parse
  - test_unit1663
  source_file: /src/curl/tests/unit/unit1663.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_dirhie.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getfiletime
  - setfiletime
  source_file: /src/curl/src/tool_filetime.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - writeTime
  - urlpart
  - certinfo
  - writeString
  - writeLong
  - writeOffset
  - outtime
  - separator
  - output_header
  - matchvar
  - ourWriteOut
  source_file: /src/curl/src/tool_writeout.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_WRITEOUT_NAME_LENGTH
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/curl/src/tool_writeout.c
      type_or_value: '24'
    structs:
    - fields:
      - name: '*str'
        type: char
      - name: num
        type: int
      item_type: struct
      name: httpmap
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/curl/src/tool_writeout.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_ssls.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tvrealnow
  - tvrealnow
  - struplocompare
  - struplocompare4sort
  - toolx_ftruncate_win32
  - toolx_ftruncate_djgpp
  - tool_execpath
  source_file: /src/curl/src/tool_util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - config_alloc
  - free_config_fields
  - config_free
  - custom_calloc
  - custom_malloc
  - custom_strdup
  - custom_realloc
  - custom_free
  - globalconf_init
  - free_globalconfig
  - globalconf_free
  source_file: /src/curl/src/tool_cfgable.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: extra
        type: size_t
      - name: mem[1]
        type: "union {\n    curl_off_t o;\n    double d;\n    void *p;\n  }"
      item_type: struct
      name: extramem
      pos:
        line_end: 240
        line_start: 233
        source_file: /src/curl/src/tool_cfgable.c
    typedefs: []
    union: []
- function_names:
  - getpass_r
  - getpass_r
  - ttyecho
  - getpass_r
  source_file: /src/curl/src/tool_getpass.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: struct_term
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/src/tool_getpass.c
      type_or_value: struct termios
    - item_type: preproc_def
      name: struct_term
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/curl/src/tool_getpass.c
      type_or_value: struct termio
    structs:
    - fields:
      - name: iosb$w_status
        type: short int
      - name: iosb$w_bcnt
        type: short int
      - name: unused
        type: int
      item_type: struct
      name: _isb
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/curl/src/tool_getpass.c
    typedefs: []
    union: []
- function_names:
  - fwrite_xattr
  source_file: /src/curl/src/tool_xattr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_cb_rea.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exit
  - VMS_STS
  source_file: /src/curl/src/tool_vms.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VMSSTS_HIDE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/src/tool_vms.h
      type_or_value: VMS_STS(1, 0, 0, 0)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_cb_dbg.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_writeout.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: id
        type: writeoutid
      - name: ci
        type: CURLINFO
      - name: "(*writefunc)(FILE *stream, const struct writeoutvar *wovar,\n                   struct
          per_transfer *per, CURLcode per_result,\n                   bool use_json)"
        type: int
      item_type: struct
      name: writeoutvar
      pos:
        line_end: 114
        line_start: 107
        source_file: /src/curl/src/tool_writeout.h
    typedefs: []
    union: []
- function_names:
  - tool_seek_cb
  source_file: /src/curl/src/tool_cb_see.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OUR_MAX_SEEK_L
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/src/tool_cb_see.c
      type_or_value: (2147483647L - 1L)
    - item_type: preproc_def
      name: OUR_MAX_SEEK_O
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/src/tool_cb_see.c
      type_or_value: (0x7FFFFFFF - 0x1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_urlglob.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GLOB_PATTERN_NUM
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/src/tool_urlglob.h
      type_or_value: '30'
    structs:
    - fields:
      - name: type
        type: globtype
      - name: '*name'
        type: char
      - name: globindex
        type: int
      - name: c
        type: "union {\n    struct {\n      char **elem;\n      curl_off_t size;\n
          \     curl_off_t idx;\n      size_t palloc; /* elem entries allocated */\n
          \   } set;\n    struct {\n      int min;\n      int max;\n      int letter;\n
          \     unsigned char step;\n    } ascii;\n    struct {\n      curl_off_t
          min;\n      curl_off_t max;\n      curl_off_t idx;\n      curl_off_t step;\n
          \     int npad;\n    } num;\n  }"
      item_type: struct
      name: URLPattern
      pos:
        line_end: 59
        line_start: 33
        source_file: /src/curl/src/tool_urlglob.h
    - fields:
      - name: buf
        type: struct dynbuf
      - name: '*pattern'
        type: struct URLPattern
      - name: palloc
        type: size_t
      - name: pnum
        type: size_t
      - name: beenhere
        type: char
      - name: '*error'
        type: char
      - name: pos
        type: size_t
      item_type: struct
      name: URLGlob
      pos:
        line_end: 72
        line_start: 64
        source_file: /src/curl/src/tool_urlglob.h
    typedefs: []
    union: []
- function_names:
  - checkprefix
  source_file: /src/curl/src/tool_cfgable.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CONFIG_LINE_LENGTH
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/src/tool_cfgable.h
      type_or_value: (10 * 1024 * 1024)
    - item_type: preproc_def
      name: FAIL_NONE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/src/tool_cfgable.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FAIL_WITH_BODY
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/src/tool_cfgable.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FAIL_WO_BODY
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/src/tool_cfgable.h
      type_or_value: '2'
    structs:
    - fields:
      - name: '*urlnode'
        type: struct getout
      - name: inglob
        type: struct URLGlob
      - name: urlglob
        type: struct URLGlob
      - name: '*uploadfile'
        type: char
      - name: upnum
        type: curl_off_t
      - name: upidx
        type: curl_off_t
      - name: urlnum
        type: curl_off_t
      - name: urlidx
        type: curl_off_t
      item_type: struct
      name: State
      pos:
        line_end: 46
        line_start: 37
        source_file: /src/curl/src/tool_cfgable.h
    - fields:
      - name: postdata
        type: struct dynbuf
      - name: '*useragent'
        type: char
      - name: '*cookies'
        type: struct curl_slist
      - name: '*cookiejar'
        type: char
      - name: '*cookiefiles'
        type: struct curl_slist
      - name: '*altsvc'
        type: char
      - name: '*hsts'
        type: char
      - name: '*proto_str'
        type: char
      - name: '*proto_redir_str'
        type: char
      - name: '*proto_default'
        type: char
      - name: resume_from
        type: curl_off_t
      - name: '*postfields'
        type: char
      - name: '*referer'
        type: char
      - name: '*query'
        type: char
      - name: max_filesize
        type: curl_off_t
      - name: '*output_dir'
        type: char
      - name: '*headerfile'
        type: char
      - name: '*ftpport'
        type: char
      - name: '*iface'
        type: char
      - name: '*range'
        type: char
      - name: '*dns_servers'
        type: char
      - name: '*dns_interface'
        type: char
      - name: '*dns_ipv4_addr'
        type: char
      - name: '*dns_ipv6_addr'
        type: char
      - name: '*userpwd'
        type: char
      - name: '*login_options'
        type: char
      - name: '*tls_username'
        type: char
      - name: '*tls_password'
        type: char
      - name: '*tls_authtype'
        type: char
      - name: '*proxy_tls_username'
        type: char
      - name: '*proxy_tls_password'
        type: char
      - name: '*proxy_tls_authtype'
        type: char
      - name: '*proxyuserpwd'
        type: char
      - name: '*proxy'
        type: char
      - name: '*noproxy'
        type: char
      - name: '*knownhosts'
        type: char
      - name: '*mail_from'
        type: char
      - name: '*mail_rcpt'
        type: struct curl_slist
      - name: '*mail_auth'
        type: char
      - name: '*sasl_authzid'
        type: char
      - name: '*netrc_file'
        type: char
      - name: '*url_list'
        type: struct getout
      - name: '*url_last'
        type: struct getout
      - name: '*url_get'
        type: struct getout
      - name: '*url_out'
        type: struct getout
      - name: '*url_ul'
        type: struct getout
      - name: num_urls
        type: size_t
      - name: '*doh_url'
        type: char
      - name: '*cipher_list'
        type: char
      - name: '*proxy_cipher_list'
        type: char
      - name: '*cipher13_list'
        type: char
      - name: '*proxy_cipher13_list'
        type: char
      - name: '*cert'
        type: char
      - name: '*proxy_cert'
        type: char
      - name: '*cert_type'
        type: char
      - name: '*proxy_cert_type'
        type: char
      - name: '*cacert'
        type: char
      - name: '*proxy_cacert'
        type: char
      - name: '*capath'
        type: char
      - name: '*proxy_capath'
        type: char
      - name: '*crlfile'
        type: char
      - name: '*proxy_crlfile'
        type: char
      - name: '*pinnedpubkey'
        type: char
      - name: '*proxy_pinnedpubkey'
        type: char
      - name: '*key'
        type: char
      - name: '*proxy_key'
        type: char
      - name: '*key_type'
        type: char
      - name: '*proxy_key_type'
        type: char
      - name: '*key_passwd'
        type: char
      - name: '*proxy_key_passwd'
        type: char
      - name: '*pubkey'
        type: char
      - name: '*hostpubmd5'
        type: char
      - name: '*hostpubsha256'
        type: char
      - name: '*engine'
        type: char
      - name: '*etag_save_file'
        type: char
      - name: '*etag_compare_file'
        type: char
      - name: '*customrequest'
        type: char
      - name: '*ssl_ec_curves'
        type: char
      - name: '*ssl_signature_algorithms'
        type: char
      - name: '*krblevel'
        type: char
      - name: '*request_target'
        type: char
      - name: '*writeout'
        type: char
      - name: '*httpgetfields'
        type: char
      - name: '*quote'
        type: struct curl_slist
      - name: '*postquote'
        type: struct curl_slist
      - name: '*prequote'
        type: struct curl_slist
      - name: '*headers'
        type: struct curl_slist
      - name: '*proxyheaders'
        type: struct curl_slist
      - name: '*mimeroot'
        type: struct tool_mime
      - name: '*mimecurrent'
        type: struct tool_mime
      - name: '*mimepost'
        type: curl_mime
      - name: '*telnet_options'
        type: struct curl_slist
      - name: '*resolve'
        type: struct curl_slist
      - name: '*connect_to'
        type: struct curl_slist
      - name: '*preproxy'
        type: char
      - name: '*proxy_service_name'
        type: char
      - name: '*service_name'
        type: char
      - name: '*ftp_account'
        type: char
      - name: '*ftp_alternative_to_user'
        type: char
      - name: '*oauth_bearer'
        type: char
      - name: '*unix_socket_path'
        type: char
      - name: '*haproxy_clientip'
        type: char
      - name: '*aws_sigv4'
        type: char
      - name: '*ech'
        type: char
      - name: '*ech_config'
        type: char
      - name: '*ech_public'
        type: char
      - name: '*prev'
        type: struct OperationConfig
      - name: '*next'
        type: struct OperationConfig
      - name: condtime
        type: curl_off_t
      - name: sendpersecond
        type: curl_off_t
      - name: recvpersecond
        type: curl_off_t
      - name: proxy_ssl_version
        type: long
      - name: ip_version
        type: long
      - name: create_file_mode
        type: long
      - name: low_speed_limit
        type: long
      - name: low_speed_time
        type: long
      - name: ip_tos
        type: long
      - name: vlan_priority
        type: long
      - name: localport
        type: long
      - name: localportrange
        type: long
      - name: authtype
        type: unsigned long
      - name: timeout_ms
        type: long
      - name: connecttimeout_ms
        type: long
      - name: maxredirs
        type: long
      - name: httpversion
        type: long
      - name: socks5_auth
        type: unsigned long
      - name: req_retry
        type: long
      - name: retry_delay_ms
        type: uint32_t
      - name: retry_maxtime_ms
        type: long
      - name: mime_options
        type: unsigned long
      - name: tftp_blksize
        type: long
      - name: alivetime
        type: long
      - name: alivecnt
        type: long
      - name: gssapi_delegation
        type: long
      - name: expect100timeout_ms
        type: long
      - name: happy_eyeballs_timeout_ms
        type: long
      - name: timecond
        type: unsigned long
      - name: followlocation
        type: long
      - name: httpreq
        type: HttpReq
      - name: proxyver
        type: long
      - name: ftp_ssl_ccc_mode
        type: long
      - name: ftp_filemethod
        type: long
      - name: file_clobber_mode
        type: "enum {\n    CLOBBER_DEFAULT, /* Provides compatibility with previous
          versions of curl,\n                        by using the default behavior
          for -o, -O, and -J.\n                        If those options would have
          overwritten files, like\n                        -o and -O would, then overwrite
          them. In the case of\n                        -J, this does not overwrite
          any files. */\n    CLOBBER_NEVER, /* If the file exists, always fail */\n
          \   CLOBBER_ALWAYS /* If the file exists, always overwrite it */\n  }"
      - name: upload_flags
        type: unsigned char
      - name: porttouse
        type: unsigned short
      - name: ssl_version
        type: unsigned char
      - name: ssl_version_max
        type: unsigned char
      - name: fail
        type: unsigned char
      item_type: struct
      name: OperationConfig
      pos:
        line_end: 315
        line_start: 52
        source_file: /src/curl/src/tool_cfgable.h
    - fields:
      - name: '*buf'
        type: wchar_t
      - name: len
        type: DWORD
      item_type: struct
      name: termout
      pos:
        line_end: 321
        line_start: 318
        source_file: /src/curl/src/tool_cfgable.h
    - fields:
      - name: state
        type: struct State
      - name: '*trace_dump'
        type: char
      - name: '*trace_stream'
        type: FILE
      - name: '*libcurl'
        type: char
      - name: '*ssl_sessions'
        type: char
      - name: '*variables'
        type: struct tool_var
      - name: '*first'
        type: struct OperationConfig
      - name: '*current'
        type: struct OperationConfig
      - name: '*last'
        type: struct OperationConfig
      - name: ms_per_transfer
        type: timediff_t
      - name: tracetype
        type: trace
      - name: progressmode
        type: int
      - name: parallel_host
        type: unsigned short
      - name: parallel_max
        type: unsigned short
      - name: verbosity
        type: unsigned char
      item_type: struct
      name: GlobalConfig
      pos:
        line_end: 360
        line_start: 324
        source_file: /src/curl/src/tool_cfgable.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_cb_see.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_hugehelp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - easysrc_init
  - easysrc_perform
  source_file: /src/curl/src/tool_easysrc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main_checkfds
  - main_checkfds
  - memory_tracking_init
  - memory_tracking_init
  - main
  source_file: /src/curl/src/tool_main.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_USED
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/src/tool_main.c
      type_or_value: __attribute__((used))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_help.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLHELP_AUTH
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CURLHELP_CONNECTION
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CURLHELP_CURL
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CURLHELP_DEPRECATED
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CURLHELP_DNS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: CURLHELP_FILE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: CURLHELP_FTP
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: CURLHELP_GLOBAL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: CURLHELP_HTTP
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: CURLHELP_IMAP
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: CURLHELP_IMPORTANT
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: CURLHELP_LDAP
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: CURLHELP_OUTPUT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: CURLHELP_POP3
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 13)
    - item_type: preproc_def
      name: CURLHELP_POST
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: CURLHELP_PROXY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 15)
    - item_type: preproc_def
      name: CURLHELP_SCP
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: CURLHELP_SFTP
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 17)
    - item_type: preproc_def
      name: CURLHELP_SMTP
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 18)
    - item_type: preproc_def
      name: CURLHELP_SSH
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 19)
    - item_type: preproc_def
      name: CURLHELP_TELNET
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 20)
    - item_type: preproc_def
      name: CURLHELP_TFTP
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 21)
    - item_type: preproc_def
      name: CURLHELP_TIMEOUT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 22)
    - item_type: preproc_def
      name: CURLHELP_TLS
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 23)
    - item_type: preproc_def
      name: CURLHELP_UPLOAD
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: CURLHELP_VERBOSE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/src/tool_help.h
      type_or_value: (1 << 25)
    - item_type: preproc_def
      name: CURLHELP_ALL
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/src/tool_help.h
      type_or_value: 0xfffffffU
    structs:
    - fields:
      - name: '*trigger'
        type: char
      - name: tlen
        type: size_t
      - name: '*arg'
        type: char
      - name: flen
        type: size_t
      - name: '*endarg'
        type: char
      - name: elen
        type: size_t
      - name: olen
        type: size_t
      - name: rbuf[40]
        type: char
      - name: obuf[160]
        type: char
      - name: show
        type: unsigned char
      item_type: struct
      name: scan_ctx
      pos:
        line_end: 44
        line_start: 30
        source_file: /src/curl/src/tool_help.h
    - fields:
      - name: '*opt'
        type: char
      - name: '*desc'
        type: char
      - name: categories
        type: unsigned int
      item_type: struct
      name: helptxt
      pos:
        line_end: 53
        line_start: 49
        source_file: /src/curl/src/tool_help.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_sdecls.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*filename'
        type: char
      - name: '*stream'
        type: FILE
      - name: bytes
        type: curl_off_t
      - name: init
        type: curl_off_t
      item_type: struct
      name: OutStruct
      pos:
        line_end: 77
        line_start: 64
        source_file: /src/curl/src/tool_sdecls.h
    - fields:
      - name: '*next'
        type: struct getout
      - name: '*url'
        type: char
      - name: '*outfile'
        type: char
      - name: '*infile'
        type: char
      - name: num
        type: curl_off_t
      item_type: struct
      name: getout
      pos:
        line_end: 98
        line_start: 84
        source_file: /src/curl/src/tool_sdecls.h
    typedefs: []
    union: []
- function_names:
  - toolx_mkdir
  - toolx_mkdir
  - toolx_mkdir
  - create_dir_hierarchy_trace_dynres
  - create_dir_hierarchy_trace_mkdir
  - show_dir_errno
  - create_dir_hierarchy
  source_file: /src/curl/src/tool_dirhie.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: toolx_mkdir
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/src/tool_dirhie.c
      type_or_value: mkdir
    - item_type: preproc_def
      name: PATH_DELIMITERS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/src/tool_dirhie.c
      type_or_value: '"\\/"'
    - item_type: preproc_def
      name: PATH_DELIMITERS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl/src/tool_dirhie.c
      type_or_value: DIR_CHAR
    structs: []
    typedefs: []
    union: []
- function_names:
  - hms_for_sec
  - log_line_start
  - dump
  - tool_debug_cb
  source_file: /src/curl/src/tool_cb_dbg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRC_IDS_FORMAT_IDS_1
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl/src/tool_cb_dbg.c
      type_or_value: '"[%" CURL_FORMAT_CURL_OFF_T "-x] "'
    - item_type: preproc_def
      name: TRC_IDS_FORMAT_IDS_2
      pos:
        line_end: 124
        line_start: 122
        source_file: /src/curl/src/tool_cb_dbg.c
      type_or_value: "\"[%\" CURL_FORMAT_CURL_OFF_T \"-%\" \\\n                                   CURL_FORMAT_CURL_OFF_T
        \"] \""
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_libcurl_info
  - proto_token
  source_file: /src/curl/src/tool_libinfo.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*proto_name'
        type: char
      - name: '**proto_tokenp'
        type: char
      item_type: struct
      name: proto_name_tokenp
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/curl/src/tool_libinfo.c
    - fields:
      - name: '*feature_name'
        type: char
      - name: '*feature_presentp'
        type: bool
      - name: feature_bitmask
        type: int
      item_type: struct
      name: feature_name_presentp
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/curl/src/tool_libinfo.c
    typedefs: []
    union: []
- function_names:
  - my_setopt_long
  - my_setopt_offt
  - my_setopt_ptr
  - my_setopt_str
  - my_setopt_mimepost
  - my_setopt_slist
  - my_setopt_SSLVERSION
  - my_setopt_enum
  - my_setopt_bitmask
  - MY_SETOPT_STR
  - my_setopt_long
  - my_setopt_offt
  - my_setopt_ptr
  - my_setopt_str
  - my_setopt_mimepost
  - my_setopt_slist
  - my_setopt_SSLVERSION
  - my_setopt_enum
  - my_setopt_bitmask
  - MY_SETOPT_STR
  source_file: /src/curl/src/tool_setopt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_HSTS_CTRL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURLHSTS
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_HTTP_VERSION
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURL_HTTP_VERSION
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_HTTPAUTH
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURLAUTH
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_SSLVERSION
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURL_SSLVERSION
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_PROXY_SSLVERSION
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURL_SSLVERSION
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_TIMECONDITION
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURL_TIMECOND
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_FTP_SSL_CCC
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURLFTPSSL_CCC
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_USE_SSL
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURLUSESSL
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_SSL_OPTIONS
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURLSSLOPT
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_PROXY_SSL_OPTIONS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURLSSLOPT
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_NETRC
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURL_NETRC
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_PROXYTYPE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURLPROXY
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_PROXYAUTH
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURLAUTH
    - item_type: preproc_def
      name: setopt_nv_CURLOPT_SOCKS5_AUTH
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/src/tool_setopt.h
      type_or_value: setopt_nv_CURLAUTH
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: long
      item_type: struct
      name: NameValue
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/curl/src/tool_setopt.h
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: unsigned long
      item_type: struct
      name: NameValueUnsigned
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/curl/src/tool_setopt.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_operhlp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_main.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_MAXREDIRS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/src/tool_main.h
      type_or_value: 50L
    - item_type: preproc_def
      name: RETRY_SLEEP_DEFAULT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/src/tool_main.h
      type_or_value: '1000L   '
    - item_type: preproc_def
      name: RETRY_SLEEP_MAX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/src/tool_main.h
      type_or_value: '600000L '
    - item_type: preproc_def
      name: MAX_PARALLEL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/src/tool_main.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: PARALLEL_DEFAULT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/src/tool_main.h
      type_or_value: '50'
    - item_type: preproc_def
      name: MAX_PARALLEL_HOST
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/src/tool_main.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: PARALLEL_HOST_DEFAULT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/src/tool_main.h
      type_or_value: '0 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_operate.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: errorbuffer[CURL_ERROR_SIZE]
        type: char
      - name: '*next'
        type: struct per_transfer
      - name: '*prev'
        type: struct per_transfer
      - name: '*config'
        type: struct OperationConfig
      - name: '*certinfo'
        type: struct curl_certinfo
      - name: '*curl'
        type: CURL
      - name: '*uploadfile'
        type: char
      - name: retry_remaining
        type: long
      - name: num_retries
        type: long
      - name: start
        type: struct curltime
      - name: retrystart
        type: struct curltime
      - name: '*url'
        type: char
      - name: urlnum
        type: curl_off_t
      - name: '*outfile'
        type: char
      - name: infd
        type: int
      - name: progressbar
        type: struct ProgressData
      - name: outs
        type: struct OutStruct
      - name: heads
        type: struct OutStruct
      - name: etag_save
        type: struct OutStruct
      - name: hdrcbdata
        type: struct HdrCbData
      - name: num_headers
        type: long
      - name: startat
        type: time_t
      - name: dltotal
        type: curl_off_t
      - name: dlnow
        type: curl_off_t
      - name: ultotal
        type: curl_off_t
      - name: ulnow
        type: curl_off_t
      - name: uploadfilesize
        type: curl_off_t
      - name: uploadedsofar
        type: curl_off_t
      - name: retry_sleep_default
        type: uint32_t
      - name: retry_sleep
        type: uint32_t
      item_type: struct
      name: per_transfer
      pos:
        line_end: 78
        line_start: 31
        source_file: /src/curl/src/tool_operate.h
    typedefs: []
    union: []
- function_names:
  - NV
  - NV1
  - c_escape
  - tool_setopt_enum
  - tool_setopt_SSLVERSION
  - tool_setopt_bitmask
  - libcurl_generate_slist
  - libcurl_generate_mime_part
  - libcurl_generate_mime
  - tool_setopt_mimepost
  - tool_setopt_slist
  - tool_setopt_long
  - tool_setopt_offt
  - tool_setopt_ptr
  - tool_setopt_str
  - setopt_bad
  source_file: /src/curl/src/tool_setopt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVEND
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/src/tool_setopt.c
      type_or_value: '{ NULL, 0 }         '
    - item_type: preproc_def
      name: MAX_STRING_LENGTH_OUTPUT
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/curl/src/tool_setopt.c
      type_or_value: '2000'
    - item_type: preproc_def
      name: ZERO_TERMINATED
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/curl/src/tool_setopt.c
      type_or_value: (-1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - new_getout
  - ISCRLF
  - memcrlf
  - file2string
  - file2memory_range
  - file2memory
  - str2num
  - oct2nummax
  - str2unum
  - str2unummax
  - secs2ms
  - protoset_index
  - protoset_set
  - protoset_clear
  - proto2num
  - check_protocol
  - str2offset
  - checkpasswd
  - add2list
  - ftpfilemethod
  - ftpcccmethod
  - delegation
  - isheadersep
  - inlist
  - get_args
  - str2tls_max
  source_file: /src/curl/src/tool_paramhlp.c
  types:
    enum:
    - enumerators:
      - name: allow
      - name: set
      - name: deny
      item_type: enum
      name: e_action
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/curl/src/tool_paramhlp.c
    preproc_defs:
    - item_type: preproc_def
      name: MAX_FILE2STRING
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/src/tool_paramhlp.c
      type_or_value: MAX_FILE2MEMORY
    - item_type: preproc_def
      name: MAX_PROTOS
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/curl/src/tool_paramhlp.c
      type_or_value: '34'
    - item_type: preproc_def
      name: MAX_PROTOSTRING
      pos:
        line_end: 393
        line_start: 391
        source_file: /src/curl/src/tool_paramhlp.c
      type_or_value: '(MAX_PROTOS * 11)  '
    - item_type: preproc_def
      name: MAX_USERPWDLENGTH
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/curl/src/tool_paramhlp.c
      type_or_value: (100 * 1024)
    structs:
    - fields:
      - name: '*tls_max_str'
        type: char
      - name: tls_max
        type: unsigned char
      item_type: struct
      name: s_tls_max
      pos:
        line_end: 714
        line_start: 711
        source_file: /src/curl/src/tool_paramhlp.c
    typedefs: []
    union: []
- function_names:
  - waitfd
  - tool_read_cb
  - tool_readbusy_cb
  source_file: /src/curl/src/tool_cb_rea.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getstr
  - getstrn
  - ParameterError::parse_cert_parameter
  - replace_url_encoded_space_by_plus
  - GetFileAndPassword
  - getunit
  - ParameterError::GetSizeParameter
  - cleanarg
  - cleanarg
  - data_urlencode
  - sethttpver
  - set_trace_config
  - findarg
  - findshortopt
  - find_tos
  - url_query
  - set_data
  - set_rate
  - findlongopt
  - add_url
  - parse_url
  - parse_localport
  - parse_continue_at
  - parse_ech
  - parse_header
  - parse_output
  - parse_remote_name
  - parse_quote
  - parse_range
  - parse_upload_file
  - parse_verbose
  - parse_writeout
  - parse_time_cond
  - parse_upload_flags
  - togglebit
  - opt_depr
  - opt_sslver
  - opt_none
  - opt_bool
  - existingfile
  - opt_file
  - opt_unum
  - opt_secs
  - opt_string
  - has_leading_unicode
  - getparameter
  - parse_args
  source_file: /src/curl/src/tool_getparam.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALLOW_BLANK
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/src/tool_getparam.c
      type_or_value: 'TRUE'
    - item_type: preproc_def
      name: DENY_BLANK
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/src/tool_getparam.c
      type_or_value: 'FALSE'
    - item_type: preproc_def
      name: MAX_DATAURLENCODE
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/curl/src/tool_getparam.c
      type_or_value: (500 * 1024 * 1024)
    - item_type: preproc_def
      name: MAX_QUERY_LEN
      pos:
        line_end: 896
        line_start: 895
        source_file: /src/curl/src/tool_getparam.c
      type_or_value: '100000 '
    - item_type: preproc_def
      name: MAX_OPTION_LEN
      pos:
        line_end: 2944
        line_start: 2943
        source_file: /src/curl/src/tool_getparam.c
      type_or_value: '26'
    structs:
    - fields:
      - name: unit
        type: char
      - name: mul
        type: curl_off_t
      - name: mlen
        type: size_t
      item_type: struct
      name: sizeunit
      pos:
        line_end: 536
        line_start: 532
        source_file: /src/curl/src/tool_getparam.c
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: unsigned char
      item_type: struct
      name: TOSEntry
      pos:
        line_end: 852
        line_start: 849
        source_file: /src/curl/src/tool_getparam.c
    - fields:
      - name: '*name'
        type: char
      - name: len
        type: size_t
      - name: flag
        type: unsigned char
      item_type: struct
      name: flagmap
      pos:
        line_end: 1662
        line_start: 1658
        source_file: /src/curl/src/tool_getparam.c
    typedefs: []
    union: []
- function_names:
  - main
  - CURL_STRICMP
  - CURL_STRICMP
  - CURL_STRICMP
  - CURL_STRICMP
  - CURL_STRICMP
  source_file: /src/curl/src/tool_setup.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/src/tool_setup.h
      type_or_value: '"unknown"'
    - item_type: preproc_def
      name: UNPRINTABLE_CHAR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/src/tool_setup.h
      type_or_value: '''.'''
    - item_type: preproc_def
      name: tool_nop_stmt
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/src/tool_setup.h
      type_or_value: do {} while(0)
    - item_type: preproc_def
      name: toolx_ftruncate
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/src/tool_setup.h
      type_or_value: toolx_ftruncate_win32
    - item_type: preproc_def
      name: toolx_ftruncate
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl/src/tool_setup.h
      type_or_value: toolx_ftruncate_djgpp
    - item_type: preproc_def
      name: toolx_ftruncate
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/src/tool_setup.h
      type_or_value: ftruncate
    structs: []
    typedefs: []
    union: []
- function_names:
  - max5data
  - xferinfo_cb
  - timebuf
  - add_offt
  - progress_meter
  - progress_finalize
  source_file: /src/curl/src/tool_progress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPEEDCNT
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/curl/src/tool_progress.c
      type_or_value: '10'
    structs:
    - fields:
      - name: dl
        type: curl_off_t
      - name: ul
        type: curl_off_t
      - name: stamp
        type: struct curltime
      item_type: struct
      name: speedcount
      pos:
        line_end: 138
        line_start: 134
        source_file: /src/curl/src/tool_progress.c
    typedefs: []
    union: []
- function_names:
  - globerror
  - glob_fixed
  - multiply
  - glob_set
  - glob_range
  - peek_ipv6
  - add_glob
  - glob_find_name
  - glob_parse
  - glob_inuse
  - glob_show_error
  - glob_url
  - glob_cleanup
  - glob_next_url
  - glob_match_url
  source_file: /src/curl/src/tool_urlglob.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_IP6LEN
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/curl/src/tool_urlglob.c
      type_or_value: '128'
    - item_type: preproc_def
      name: MAX_GLOBNAME_LEN
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/curl/src/tool_urlglob.c
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_OUTPUT_GLOB_LENGTH
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/curl/src/tool_urlglob.c
      type_or_value: (1024 * 1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - clean_getout
  - output_expected
  - stdin_upload
  - urlerr_cvt
  - add_file_name_to_url
  - get_url_file_name
  source_file: /src/curl/src/tool_operhlp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_FILENAME
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/curl/src/tool_operhlp.c
      type_or_value: '"curl_response"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_doswin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SANITIZE_ALLOW_PATH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/src/tool_doswin.h
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: SANITIZE_ALLOW_RESERVED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/src/tool_doswin.h
      type_or_value: '(1 << 2) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARGTYPE
  - convert_UTF8_to_tchar
  - convert_tchar_to_UTF8
  - unicodefree
  - convert_UTF8_to_tchar
  - convert_tchar_to_UTF8
  - unicodefree
  source_file: /src/curl/src/tool_getparam.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARG_NONE
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: ARG_BOOL
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: ARG_STRG
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: ARG_FILE
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: ARG_SECS
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: ARG_UNUM
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: ARG_TYPEMASK
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: ARG_DEPR
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '0x10 '
    - item_type: preproc_def
      name: ARG_CLEAR
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '0x20 '
    - item_type: preproc_def
      name: ARG_TLS
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '0x40 '
    - item_type: preproc_def
      name: ARG_NO
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/curl/src/tool_getparam.h
      type_or_value: '0x80 '
    structs:
    - fields:
      - name: '*lname'
        type: char
      - name: desc
        type: unsigned char
      - name: letter
        type: char
      - name: cmd
        type: unsigned short
      item_type: struct
      name: LongShort
      pos:
        line_end: 336
        line_start: 331
        source_file: /src/curl/src/tool_getparam.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_helpers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/slist_wc.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*first'
        type: struct curl_slist
      - name: '*last'
        type: struct curl_slist
      item_type: struct
      name: slist_wc
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/curl/src/slist_wc.h
    typedefs: []
    union: []
- function_names:
  - voutf
  - notef
  - warnf
  - helpf
  - errorf
  source_file: /src/curl/src/tool_msgs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WARN_PREFIX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/src/tool_msgs.c
      type_or_value: '"Warning: "'
    - item_type: preproc_def
      name: NOTE_PREFIX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/src/tool_msgs.c
      type_or_value: '"Note: "'
    - item_type: preproc_def
      name: ERROR_PREFIX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/src/tool_msgs.c
      type_or_value: '"curl: "'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_address_family
  - sockopt_callback
  - ssl_backend
  - url_proto_and_rewrite
  - ssh_setopts
  - tlsversion
  - ssl_ca_setopts
  - ssl_setopts
  - cookie_setopts
  - http_setopts
  - tcp_setopts
  - ftp_setopts
  - gen_trace_setopts
  - gen_cb_setopts
  - proxy_setopts
  - tls_srp_setopts
  - setopt_post
  - buffersize
  - config2setopts
  source_file: /src/curl/src/config2setopts.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/src/config2setopts.c
      type_or_value: 102400L
    - item_type: preproc_def
      name: SOL_IP
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/src/config2setopts.c
      type_or_value: IPPROTO_IP
    - item_type: preproc_def
      name: MAX_COOKIE_LINE
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/curl/src/config2setopts.c
      type_or_value: '8200'
    structs: []
    typedefs: []
    union: []
- function_names:
  - easysrc_free
  - easysrc_add
  - easysrc_addf
  - easysrc_init
  - easysrc_perform
  - easysrc_cleanup
  - dumpeasysrc
  source_file: /src/curl/src/tool_easysrc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_progress.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_linked_location
  - parse_filename
  - tool_write_headers
  - save_etag
  - content_disposition
  - tool_header_cb
  source_file: /src/curl/src/tool_cb_hdr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BOLD
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/src/tool_cb_hdr.c
      type_or_value: '"\x1b[1m"'
    - item_type: preproc_def
      name: BOLDOFF
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/src/tool_cb_hdr.c
      type_or_value: '"\x1b[22m"'
    - item_type: preproc_def
      name: BOLD
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/src/tool_cb_hdr.c
      type_or_value: '"\x1b[1m"'
    - item_type: preproc_def
      name: BOLDOFF
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/src/tool_cb_hdr.c
      type_or_value: '"\x1b[0m"'
    - item_type: preproc_def
      name: LINK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/src/tool_cb_hdr.c
      type_or_value: '"\x1b]8;;"'
    - item_type: preproc_def
      name: LINKST
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/src/tool_cb_hdr.c
      type_or_value: '"\x1b\\"'
    - item_type: preproc_def
      name: LINKOFF
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/src/tool_cb_hdr.c
      type_or_value: LINK LINKST
    structs: []
    typedefs: []
    union: []
- function_names:
  - tool_ssls_easy
  - tool_ssls_load
  - tool_ssls_exp
  - tool_ssls_save
  source_file: /src/curl/src/tool_ssls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SSLS_LINE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/src/tool_ssls.c
      type_or_value: (64 * 1024)
    structs:
    - fields:
      - name: '*fp'
        type: FILE
      - name: exported
        type: int
      item_type: struct
      name: tool_ssls_ctx
      pos:
        line_end: 135
        line_start: 132
        source_file: /src/curl/src/tool_ssls.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_version.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_NAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/src/tool_version.h
      type_or_value: '"curl"'
    - item_type: preproc_def
      name: CURL_COPYRIGHT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/src/tool_version.h
      type_or_value: LIBCURL_COPYRIGHT
    - item_type: preproc_def
      name: CURL_VERSION
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/src/tool_version.h
      type_or_value: LIBCURL_VERSION
    - item_type: preproc_def
      name: CURL_VERSION_MAJOR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/src/tool_version.h
      type_or_value: LIBCURL_VERSION_MAJOR
    - item_type: preproc_def
      name: CURL_VERSION_MINOR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/src/tool_version.h
      type_or_value: LIBCURL_VERSION_MINOR
    - item_type: preproc_def
      name: CURL_VERSION_PATCH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/src/tool_version.h
      type_or_value: LIBCURL_VERSION_PATCH
    - item_type: preproc_def
      name: CURL_ID
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/src/tool_version.h
      type_or_value: CURL_NAME " " CURL_VERSION " (" CURL_OS ") "
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/config2setopts.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_findfile.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLRC_DOTSCORE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/src/tool_findfile.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: CURLRC_DOTSCORE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/src/tool_findfile.h
      type_or_value: '1 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - slist_wc_append
  - slist_wc_free_all
  source_file: /src/curl/src/slist_wc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_vms_shell
  - vms_special_exit
  - decc_init
  source_file: /src/curl/src/tool_vms.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: int
      item_type: struct
      name: decc_feat_t
      pos:
        line_end: 124
        line_start: 121
        source_file: /src/curl/src/tool_vms.c
    typedefs: []
    union: []
- function_names:
  - varcleanup
  - varcontent
  - ENDOFFUNC
  - FUNCMATCH
  - varfunc
  - varexpand
  - addvariable
  - setvariable
  source_file: /src/curl/src/var.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_EXPAND_CONTENT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/src/var.c
      type_or_value: '10000000'
    - item_type: preproc_def
      name: MAX_VAR_LEN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/src/var.c
      type_or_value: '128 '
    - item_type: preproc_def
      name: FUNC_TRIM
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/src/var.c
      type_or_value: '"trim"'
    - item_type: preproc_def
      name: FUNC_TRIM_LEN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/src/var.c
      type_or_value: (sizeof(FUNC_TRIM) - 1)
    - item_type: preproc_def
      name: FUNC_JSON
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/src/var.c
      type_or_value: '"json"'
    - item_type: preproc_def
      name: FUNC_JSON_LEN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/src/var.c
      type_or_value: (sizeof(FUNC_JSON) - 1)
    - item_type: preproc_def
      name: FUNC_URL
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/src/var.c
      type_or_value: '"url"'
    - item_type: preproc_def
      name: FUNC_URL_LEN
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/src/var.c
      type_or_value: (sizeof(FUNC_URL) - 1)
    - item_type: preproc_def
      name: FUNC_B64
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/src/var.c
      type_or_value: '"b64"'
    - item_type: preproc_def
      name: FUNC_B64_LEN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/src/var.c
      type_or_value: (sizeof(FUNC_B64) - 1)
    - item_type: preproc_def
      name: FUNC_64DEC
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/src/var.c
      type_or_value: '"64dec" '
    - item_type: preproc_def
      name: FUNC_64DEC_LEN
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/src/var.c
      type_or_value: (sizeof(FUNC_64DEC) - 1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_ipfs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_GATEWAY_URL_LEN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/src/tool_ipfs.h
      type_or_value: '10000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_category
  - get_category_content
  - get_categories
  - get_categories_list
  - inithelpscan
  - helpscan
  - tool_help
  - is_debug
  - tool_version_info
  - tool_list_engines
  source_file: /src/curl/src/tool_help.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*opt'
        type: char
      - name: '*desc'
        type: char
      - name: category
        type: unsigned int
      item_type: struct
      name: category_descriptors
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/curl/src/tool_help.c
    typedefs: []
    union: []
- function_names:
  - checkhome
  - findfile
  source_file: /src/curl/src/tool_findfile.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*env'
        type: char
      - name: '*append'
        type: char
      - name: withoutdot
        type: bool
      item_type: struct
      name: finder
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/curl/src/tool_findfile.c
    typedefs: []
    union: []
- function_names:
  - is_fatal_error
  - is_pkcs11_uri
  - vms_realfilesize
  - VmsSpecialSize
  - add_per_transfer
  - del_per_transfer
  - pre_transfer
  - single_transfer_cleanup
  - is_outfile_auto_resumable
  - retry_sleep
  - retrycheck
  - post_check_result
  - post_output_handling
  - post_close_output
  - post_per_transfer
  - set_cert_types
  - append2query
  - etag_compare
  - etag_store
  - setup_headerfile
  - setup_outfile
  - check_stdin_upload
  - setup_header_cb
  - setup_input_file
  - setup_url_pattern
  - setup_etag_files
  - select_next_url
  - setup_transfer_upload
  - create_single
  - single_transfer
  - add_parallel_transfers
  - on_uv_socket
  - on_uv_timeout
  - cb_timeout
  - create_context
  - close_cb
  - destroy_context
  - cb_socket
  - parallel_event
  - check_finished
  - mnotify
  - parallel_transfers
  - serial_transfers
  - is_using_schannel
  - cacertpaths
  - transfer_per_config
  - create_transfer
  - run_all_transfers
  - share_setopt
  - share_setup
  - operate
  source_file: /src/curl/src/tool_operate.c
  types:
    enum:
    - enumerators:
      - name: RETRY_NO
      - name: RETRY_TIMEOUT
      - name: RETRY_CONNREFUSED
      - name: RETRY_HTTP
      - name: RETRY_ALL_ERRORS
      - name: RETRY_FTP
      item_type: enum
      name: retryreason
      pos:
        line_end: 365
        line_start: 358
        source_file: /src/curl/src/tool_operate.c
    preproc_defs:
    - item_type: preproc_def
      name: CURL_CA_CERT_ERRORMSG
      pos:
        line_end: 96
        line_start: 90
        source_file: /src/curl/src/tool_operate.c
      type_or_value: "\"More details here: https://curl.se/docs/sslcerts.html\\n\\n\"
        \             \\\n  \"curl failed to verify the legitimacy of the server and
        therefore \"      \\\n  \"could not\\nestablish a secure connection to it.
        To learn more about \"   \\\n  \"this situation and\\nhow to fix it, please
        visit the webpage mentioned \" \\\n  \"above.\\n\""
    - item_type: preproc_def
      name: DEBUG_UV
      pos:
        line_end: 1641
        line_start: 1640
        source_file: /src/curl/src/tool_operate.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*multi'
        type: CURLM
      - name: '*share'
        type: CURLSH
      - name: mcode
        type: CURLMcode
      - name: result
        type: CURLcode
      - name: still_running
        type: int
      - name: start
        type: struct curltime
      - name: more_transfers
        type: bool
      - name: added_transfers
        type: bool
      - name: wrapitup
        type: bool
      - name: wrapitup_processed
        type: bool
      - name: tick
        type: time_t
      item_type: struct
      name: parastate
      pos:
        line_end: 1636
        line_start: 1622
        source_file: /src/curl/src/tool_operate.c
    - fields:
      - name: timeout
        type: uv_timer_t
      - name: '*loop'
        type: uv_loop_t
      - name: '*s'
        type: struct parastate
      item_type: struct
      name: datauv
      pos:
        line_end: 1647
        line_start: 1643
        source_file: /src/curl/src/tool_operate.c
    - fields:
      - name: poll_handle
        type: uv_poll_t
      - name: sockfd
        type: curl_socket_t
      - name: '*uv'
        type: struct datauv
      item_type: struct
      name: contextuv
      pos:
        line_end: 1653
        line_start: 1649
        source_file: /src/curl/src/tool_operate.c
    typedefs: []
    union: []
- function_names:
  - fly
  - update_width
  - tool_progress_cb
  - progressbarinit
  source_file: /src/curl/src/tool_cb_prg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_BARLENGTH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/src/tool_cb_prg.c
      type_or_value: '400'
    - item_type: preproc_def
      name: MIN_BARLENGTH
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/src/tool_cb_prg.c
      type_or_value: '20'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURL_USE_LFN
  - CURL_USE_LFN
  - S_ISCHR
  - S_ISCHR
  - __crt0_glob_function
  - truncate_dryrun
  - msdosify
  - rename_if_reserved_dos
  - sanitize_file_name
  - FindWin32CACert
  - GetLoadedModulePaths
  - restore_terminal
  - signal_handler
  - init_terminal
  - win_stdin_thread_func
  - win32_stdin_read_thread
  - win32_init
  source_file: /src/curl/src/tool_doswin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENABLE_VIRTUAL_TERMINAL_PROCESSING
      pos:
        line_end: 644
        line_start: 643
        source_file: /src/curl/src/tool_doswin.c
      type_or_value: '0x0004'
    structs:
    - fields:
      - name: hStdOut
        type: HANDLE
      - name: dwOutputMode
        type: DWORD
      - name: valid
        type: LONG
      item_type: struct
      name: TerminalSettings
      pos:
        line_end: 639
        line_start: 635
        source_file: /src/curl/src/tool_doswin.c
    - fields:
      - name: stdin_handle
        type: HANDLE
      - name: socket_l
        type: curl_socket_t
      item_type: struct
      name: win_thread_data
      pos:
        line_end: 711
        line_start: 704
        source_file: /src/curl/src/tool_doswin.c
    typedefs: []
    union: []
- function_names:
  - tool_mime_new
  - tool_mime_new_parts
  - tool_mime_new_data
  - uztoso
  - tool_mime_new_filedata
  - tool_mime_free
  - tool_mime_stdin_read
  - tool_mime_stdin_seek
  - tool2curlparts
  - tool2curlmime
  - get_param_word
  - slist_append
  - read_field_headers
  - param_type
  - param_filename
  - param_headers
  - param_encoder
  - get_param_part
  - SET_TOOL_MIME_PTR
  - formparse
  source_file: /src/curl/src/tool_formparse.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_MASK_UCOFFT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/src/tool_formparse.c
      type_or_value: ((unsigned CURL_TYPEOF_CURL_OFF_T)~0)
    - item_type: preproc_def
      name: CURL_MASK_SCOFFT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/src/tool_formparse.c
      type_or_value: (CURL_MASK_UCOFFT >> 1)
    - item_type: preproc_def
      name: MAX_FORMPARTS
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/curl/src/tool_formparse.c
      type_or_value: '100000 '
    - item_type: preproc_def
      name: HEADER_LINE_BUFFER_SIZE
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/curl/src/tool_formparse.c
      type_or_value: '8192'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tool_socket_open_mptcp_cb
  source_file: /src/curl/src/tool_cb_soc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPPROTO_MPTCP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/src/tool_cb_soc.c
      type_or_value: '262'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_cb_hdr.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*config'
        type: struct OperationConfig
      - name: '*outs'
        type: struct OutStruct
      - name: '*heads'
        type: struct OutStruct
      - name: '*etag_save'
        type: struct OutStruct
      - name: '*headlist'
        type: struct curl_slist
      - name: honor_cd_filename
        type: bool
      item_type: struct
      name: HdrCbData
      pos:
        line_end: 49
        line_start: 42
        source_file: /src/curl/src/tool_cb_hdr.h
    typedefs: []
    union: []
- function_names:
  - tool_init_stderr
  - tool_set_stderr_file
  source_file: /src/curl/src/tool_stderr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/src/curlinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - stripcredentials
  - xattr
  - fwrite_xattr
  source_file: /src/curl/src/tool_xattr.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*attr'
        type: char
      - name: info
        type: CURLINFO
      item_type: struct
      name: xattr_mapping
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/curl/src/tool_xattr.c
    typedefs: []
    union: []
- function_names:
  - tool_create_output_file
  - win_console
  - IS_TRAILING_BYTE
  - tool_write_cb
  source_file: /src/curl/src/tool_cb_wrt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENMODE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/src/tool_cb_wrt.c
      type_or_value: (_S_IREAD | _S_IWRITE)
    - item_type: preproc_def
      name: OPENMODE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/src/tool_cb_wrt.c
      type_or_value: (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_parsecfg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONFIG_MAX_LEVELS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/src/tool_parsecfg.h
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_writeout_json.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - jsonquoted
  - jsonWriteString
  - ourWriteOutJSON
  - headerJSON
  source_file: /src/curl/src/tool_writeout_json.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_JSON_STRING
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/src/tool_writeout_json.c
      type_or_value: '100000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_terminal_columns
  source_file: /src/curl/src/terminal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_libinfo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/var.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct tool_var
      - name: '*content'
        type: char
      - name: clen
        type: size_t
      - name: name[1]
        type: char
      item_type: struct
      name: tool_var
      pos:
        line_end: 32
        line_start: 27
        source_file: /src/curl/src/var.h
    typedefs: []
    union: []
- function_names:
  - param2text
  - SetHTTPrequest
  - customrequest_helper
  source_file: /src/curl/src/tool_helpers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_cb_wrt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_listhelp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/terminal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setfiletime
  source_file: /src/curl/src/tool_filetime.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_formparse.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: kind
        type: toolmimekind
      - name: '*parent'
        type: struct tool_mime
      - name: '*prev'
        type: struct tool_mime
      - name: '*data'
        type: char
      - name: '*name'
        type: char
      - name: '*filename'
        type: char
      - name: '*type'
        type: char
      - name: '*encoder'
        type: char
      - name: '*headers'
        type: struct curl_slist
      - name: '*subparts'
        type: struct tool_mime
      - name: origin
        type: curl_off_t
      - name: size
        type: curl_off_t
      - name: curpos
        type: curl_off_t
      item_type: struct
      name: tool_mime
      pos:
        line_end: 57
        line_start: 39
        source_file: /src/curl/src/tool_formparse.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_msgs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - has_trailing_slash
  - ipfs_gateway
  - ipfs_url_rewrite
  source_file: /src/curl/src/tool_ipfs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_cb_soc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_paramhlp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_FILE2MEMORY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/src/tool_paramhlp.h
      type_or_value: (16LL * 1024 * 1024 * 1024)
    - item_type: preproc_def
      name: MAX_FILE2MEMORY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/src/tool_paramhlp.h
      type_or_value: (INT_MAX)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_stderr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_getpass.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ISSEP
  - unslashquote
  - open_config_file
  - extract_param
  - process_config_result
  - parseconfig
  - get_line
  - my_get_line
  source_file: /src/curl/src/tool_parsecfg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/tool_cb_prg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_PROGRESS_STATS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/src/tool_cb_prg.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: CURL_PROGRESS_BAR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/src/tool_cb_prg.h
      type_or_value: '1'
    structs:
    - fields:
      - name: calls
        type: int
      - name: prev
        type: curl_off_t
      - name: prevtime
        type: struct curltime
      - name: width
        type: int
      - name: '*out'
        type: FILE
      - name: initial_size
        type: curl_off_t
      - name: tick
        type: unsigned int
      - name: bar
        type: int
      - name: barmove
        type: int
      item_type: struct
      name: ProgressData
      pos:
        line_end: 40
        line_start: 30
        source_file: /src/curl/src/tool_cb_prg.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/src/toolx/tool_time.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - toolx_localtime
  source_file: /src/curl/src/toolx/tool_time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: localtime_s
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/src/toolx/tool_time.c
      type_or_value: _localtime32_s
    - item_type: preproc_def
      name: localtime_s
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/src/toolx/tool_time.c
      type_or_value: _localtime64_s
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-uidl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/smtp-authzid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FROM_ADDR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/docs/examples/smtp-authzid.c
      type_or_value: '"<ursel@example.org>"'
    - item_type: preproc_def
      name: SENDER_ADDR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/docs/examples/smtp-authzid.c
      type_or_value: '"<kurt@example.org>"'
    - item_type: preproc_def
      name: TO_ADDR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/smtp-authzid.c
      type_or_value: '"<addressee@example.net>"'
    - item_type: preproc_def
      name: FROM_MAIL
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/docs/examples/smtp-authzid.c
      type_or_value: '"Ursel " FROM_ADDR'
    - item_type: preproc_def
      name: SENDER_MAIL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/docs/examples/smtp-authzid.c
      type_or_value: '"Kurt " SENDER_ADDR'
    - item_type: preproc_def
      name: TO_MAIL
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/docs/examples/smtp-authzid.c
      type_or_value: '"A Receiver " TO_ADDR'
    structs:
    - fields:
      - name: bytes_read
        type: size_t
      item_type: struct
      name: upload_status
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/curl/docs/examples/smtp-authzid.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-create.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/httpput-postfields.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/smtp-multi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FROM_MAIL
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/docs/examples/smtp-multi.c
      type_or_value: '"<sender@example.com>"'
    - item_type: preproc_def
      name: TO_MAIL
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/docs/examples/smtp-multi.c
      type_or_value: '"<recipient@example.com>"'
    - item_type: preproc_def
      name: CC_MAIL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/docs/examples/smtp-multi.c
      type_or_value: '"<info@example.com>"'
    structs:
    - fields:
      - name: bytes_read
        type: size_t
      item_type: struct
      name: upload_status
      pos:
        line_end: 56
        line_start: 54
        source_file: /src/curl/docs/examples/smtp-multi.c
    typedefs: []
    union: []
- function_names:
  - read_cb
  - sftpGetRemoteFileSize
  - sftpResumeUpload
  - main
  source_file: /src/curl/docs/examples/sftpuploadresume.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/sessioninfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-fetch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-store.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/https.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/postinmemory.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*memory'
        type: char
      - name: size
        type: size_t
      item_type: struct
      name: MemoryStruct
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/curl/docs/examples/postinmemory.c
    typedefs: []
    union: []
- function_names:
  - dump
  - my_trace
  - main
  source_file: /src/curl/docs/examples/multi-debugcallback.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - dumpNode
  - main
  source_file: /src/curl/docs/examples/htmltidy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/rtsp-options.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/protofeats.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_cookies
  - main
  source_file: /src/curl/docs/examples/cookie_interface.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/docs/examples/cookie_interface.c
      type_or_value: _snprintf
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-delete.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/default-scheme.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mcode_or_die
  - multi_timer_cb
  - check_multi_info
  - event_cb
  - timer_cb
  - remsock
  - setsock
  - addsock
  - sock_cb
  - write_cb
  - xferinfo_cb
  - new_conn
  - fifo_cb
  - init_fifo
  - clean_fifo
  - main
  source_file: /src/curl/docs/examples/hiperfifo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSG_OUT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/docs/examples/hiperfifo.c
      type_or_value: 'stdout '
    structs:
    - fields:
      - name: '*evbase'
        type: struct event_base
      - name: fifo_event
        type: struct event
      - name: timer_event
        type: struct event
      - name: '*multi'
        type: CURLM
      - name: still_running
        type: int
      - name: '*input'
        type: FILE
      - name: stopped
        type: int
      item_type: struct
      name: GlobalInfo
      pos:
        line_end: 86
        line_start: 78
        source_file: /src/curl/docs/examples/hiperfifo.c
    - fields:
      - name: '*curl'
        type: CURL
      - name: '*url'
        type: char
      - name: '*global'
        type: struct GlobalInfo
      - name: error[CURL_ERROR_SIZE]
        type: char
      item_type: struct
      name: ConnInfo
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/curl/docs/examples/hiperfifo.c
    - fields:
      - name: sockfd
        type: curl_socket_t
      - name: '*curl'
        type: CURL
      - name: action
        type: int
      - name: timeout
        type: long
      - name: ev
        type: struct event
      - name: '*global'
        type: struct GlobalInfo
      item_type: struct
      name: SockInfo
      pos:
        line_end: 104
        line_start: 97
        source_file: /src/curl/docs/examples/hiperfifo.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-noop.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/chkspeed.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: URL_BASE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/docs/examples/chkspeed.c
      type_or_value: '"http://speedtest.your.domain/"'
    - item_type: preproc_def
      name: URL_1M
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/docs/examples/chkspeed.c
      type_or_value: URL_BASE "file_1M.bin"
    - item_type: preproc_def
      name: URL_2M
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/docs/examples/chkspeed.c
      type_or_value: URL_BASE "file_2M.bin"
    - item_type: preproc_def
      name: URL_5M
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/docs/examples/chkspeed.c
      type_or_value: URL_BASE "file_5M.bin"
    - item_type: preproc_def
      name: URL_10M
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/docs/examples/chkspeed.c
      type_or_value: URL_BASE "file_10M.bin"
    - item_type: preproc_def
      name: URL_20M
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/docs/examples/chkspeed.c
      type_or_value: URL_BASE "file_20M.bin"
    - item_type: preproc_def
      name: URL_50M
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/docs/examples/chkspeed.c
      type_or_value: URL_BASE "file_50M.bin"
    - item_type: preproc_def
      name: URL_100M
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/docs/examples/chkspeed.c
      type_or_value: URL_BASE "file_100M.bin"
    - item_type: preproc_def
      name: CHKSPEED_VERSION
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/docs/examples/chkspeed.c
      type_or_value: '"1.0"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_lock
  - my_unlock
  - main
  source_file: /src/curl/docs/examples/shared-connection-cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/http-post.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/smtp-ssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FROM_MAIL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/docs/examples/smtp-ssl.c
      type_or_value: '"<sender@example.com>"'
    - item_type: preproc_def
      name: TO_MAIL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/docs/examples/smtp-ssl.c
      type_or_value: '"<recipient@example.com>"'
    - item_type: preproc_def
      name: CC_MAIL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/docs/examples/smtp-ssl.c
      type_or_value: '"<info@example.com>"'
    structs:
    - fields:
      - name: bytes_read
        type: size_t
      item_type: struct
      name: upload_status
      pos:
        line_end: 60
        line_start: 58
        source_file: /src/curl/docs/examples/smtp-ssl.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-retr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gettimeofday
  - my_gettimeofday
  - dump
  - my_trace
  - read_cb
  - setup
  - main
  source_file: /src/curl/docs/examples/http2-upload.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLPIPE_MULTIPLEX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/docs/examples/http2-upload.c
      type_or_value: 0L
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/docs/examples/http2-upload.c
      type_or_value: _stati64
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/docs/examples/http2-upload.c
      type_or_value: _fstati64
    - item_type: preproc_def
      name: fileno
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/docs/examples/http2-upload.c
      type_or_value: _fileno
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/docs/examples/http2-upload.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: WIN32_FT_OFFSET
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/docs/examples/http2-upload.c
      type_or_value: '116444736000000000'
    structs:
    - fields:
      - name: '*in'
        type: FILE
      - name: '*out'
        type: FILE
      - name: bytes_read
        type: size_t
      - name: '*curl'
        type: CURL
      - name: num
        type: int
      item_type: struct
      name: input
      pos:
        line_end: 94
        line_start: 88
        source_file: /src/curl/docs/examples/http2-upload.c
    typedefs: []
    union:
    - fields:
      - name: ns100
        type: CURL_TYPEOF_CURL_OFF_T
      - name: ft
        type: FILETIME
      item_type: union
      name: _now
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/curl/docs/examples/http2-upload.c
- function_names:
  - main
  source_file: /src/curl/docs/examples/fileupload.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/docs/examples/fileupload.c
      type_or_value: _stati64
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/docs/examples/fileupload.c
      type_or_value: _fstati64
    - item_type: preproc_def
      name: fileno
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/fileupload.c
      type_or_value: _fileno
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/http3-present.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-authzid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - closecb
  - opensocket
  - sockopt_callback
  - main
  source_file: /src/curl/docs/examples/externalsocket.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: close
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/docs/examples/externalsocket.c
      type_or_value: closesocket
    - item_type: preproc_def
      name: IPADDR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/docs/examples/externalsocket.c
      type_or_value: '"127.0.0.1"'
    - item_type: preproc_def
      name: PORTNUM
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/docs/examples/externalsocket.c
      type_or_value: '80'
    - item_type: preproc_def
      name: INADDR_NONE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/docs/examples/externalsocket.c
      type_or_value: '0xffffffff'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/simple.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/websocket-cb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-multi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/persistent.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dump
  - my_trace
  - main
  source_file: /src/curl/docs/examples/debug.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: trace_ascii
        type: char
      item_type: struct
      name: data
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/curl/docs/examples/debug.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/multi-double.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/altsvc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getcontentlengthfunc
  - write_cb
  - read_cb
  - upload
  - main
  source_file: /src/curl/docs/examples/ftpuploadresume.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/simplepost.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_response
  - main
  source_file: /src/curl/docs/examples/ftpgetresp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FTPBODY
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/ftpgetresp.c
      type_or_value: '"ftp-list"'
    - item_type: preproc_def
      name: FTPHEADERS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/docs/examples/ftpgetresp.c
      type_or_value: '"ftp-responses"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/keepalive.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-tls.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/postit2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/connect-to.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-authzid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/ftpuploadfrommem.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: size_t
      item_type: struct
      name: WriteThis
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/curl/docs/examples/ftpuploadfrommem.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/interface.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/imap-append.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FROM
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/docs/examples/imap-append.c
      type_or_value: '"<sender@example.org>"'
    - item_type: preproc_def
      name: TO
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/docs/examples/imap-append.c
      type_or_value: '"<addressee@example.net>"'
    - item_type: preproc_def
      name: CC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/docs/examples/imap-append.c
      type_or_value: '"<info@example.org>"'
    structs:
    - fields:
      - name: bytes_read
        type: size_t
      item_type: struct
      name: upload_status
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/curl/docs/examples/imap-append.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/unixsocket.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ABSTRACT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/docs/examples/unixsocket.c
      type_or_value: '"http-unix-domain"'
    - item_type: preproc_def
      name: PATH
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/docs/examples/unixsocket.c
      type_or_value: '"/tmp/http-unix-domain"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - run_one
  - pull_one_url
  - pulse_bar
  - create_thread
  - cb_delete
  - main
  source_file: /src/curl/docs/examples/smooth-gtk-thread.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUMT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/smooth-gtk-thread.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/url2file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-search.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/getredirect.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/smtp-expn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/multi-single.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/ftp-delete.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pull_one_url
  - main
  source_file: /src/curl/docs/examples/threaded.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUMT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/docs/examples/threaded.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*url'
        type: char
      item_type: struct
      name: targ
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/curl/docs/examples/threaded.c
    typedefs: []
    union: []
- function_names:
  - write_cb
  - sslctx_function
  - main
  source_file: /src/curl/docs/examples/usercertinmem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dump
  - my_trace
  - setup
  - server_push_callback
  - main
  source_file: /src/curl/docs/examples/http2-serverpush.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/http2-serverpush.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: OUTPUTFILE
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/curl/docs/examples/http2-serverpush.c
      type_or_value: '"dl"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-copy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/multi-legacy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_HANDLE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/docs/examples/multi-legacy.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: FTP_HANDLE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/multi-legacy.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: HANDLECOUNT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/docs/examples/multi-legacy.c
      type_or_value: '2  '
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/sslbackend.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - read_cb
  - main
  source_file: /src/curl/docs/examples/websocket-updown.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*curl'
        type: CURL
      - name: buf[1024]
        type: char
      - name: blen
        type: size_t
      - name: nsent
        type: size_t
      item_type: struct
      name: read_ctx
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/curl/docs/examples/websocket-updown.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/getinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/smtp-mail.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FROM_ADDR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/docs/examples/smtp-mail.c
      type_or_value: '"<sender@example.org>"'
    - item_type: preproc_def
      name: TO_ADDR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/docs/examples/smtp-mail.c
      type_or_value: '"<addressee@example.net>"'
    - item_type: preproc_def
      name: CC_ADDR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/docs/examples/smtp-mail.c
      type_or_value: '"<info@example.org>"'
    - item_type: preproc_def
      name: FROM_MAIL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/docs/examples/smtp-mail.c
      type_or_value: '"Sender Person " FROM_ADDR'
    - item_type: preproc_def
      name: TO_MAIL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/smtp-mail.c
      type_or_value: '"A Receiver " TO_ADDR'
    - item_type: preproc_def
      name: CC_MAIL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/docs/examples/smtp-mail.c
      type_or_value: '"John CC Smith " CC_ADDR'
    structs:
    - fields:
      - name: bytes_read
        type: size_t
      item_type: struct
      name: upload_status
      pos:
        line_end: 63
        line_start: 61
        source_file: /src/curl/docs/examples/smtp-mail.c
    typedefs: []
    union: []
- function_names:
  - COMPARE
  - COMPARE
  - Context
  - writer
  - init
  - StartElement
  - EndElement
  - handleCharacters
  - Characters
  - cdata
  - parseHtml
  - main
  source_file: /src/curl/docs/examples/htmltitle.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: addTitle
        type: bool
      - name: title
        type: std::string
      item_type: struct
      name: Context
      pos:
        line_end: 61
        line_start: 56
        source_file: /src/curl/docs/examples/htmltitle.cpp
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/multi-post.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/parseurl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-lsub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_seek
  - read_cb
  - main
  source_file: /src/curl/docs/examples/anyauthput.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/docs/examples/anyauthput.c
      type_or_value: _stati64
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/docs/examples/anyauthput.c
      type_or_value: _fstati64
    - item_type: preproc_def
      name: fileno
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/docs/examples/anyauthput.c
      type_or_value: _fileno
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-multi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/httpcustomheader.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - ip_list_append
  - ip_list_free_all
  - free_connection_filter
  - ip_match
  - is_ipv4_mapped_ipv6_address
  - opensocket
  - main
  source_file: /src/curl/docs/examples/block_ip.c
  types:
    enum:
    - enumerators:
      - name: CONNECTION_FILTER_BLACKLIST
      - name: CONNECTION_FILTER_WHITELIST
      item_type: enum
      name: connection_filter_t
      pos:
        line_end: 89
        line_start: 86
        source_file: /src/curl/docs/examples/block_ip.c
    preproc_defs:
    - item_type: preproc_def
      name: strdup
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/block_ip.c
      type_or_value: _strdup
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/docs/examples/block_ip.c
      type_or_value: '1'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/docs/examples/block_ip.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*str'
        type: char
      - name: family
        type: int
      - name: netaddr
        type: "union netaddr {\n    struct in_addr ipv4;\n#ifdef AF_INET6\n    struct
          in6_addr ipv6;\n#endif\n  }"
      - name: maskbits
        type: int
      - name: '*next'
        type: struct ip
      item_type: struct
      name: ip
      pos:
        line_end: 84
        line_start: 66
        source_file: /src/curl/docs/examples/block_ip.c
    - fields:
      - name: '*list'
        type: struct ip
      - name: type
        type: enum connection_filter_t
      - name: verbose
        type: int
      item_type: struct
      name: connection_filter
      pos:
        line_end: 101
        line_start: 91
        source_file: /src/curl/docs/examples/block_ip.c
    typedefs: []
    union:
    - fields:
      - name: ipv4
        type: struct in_addr
      item_type: union
      name: netaddr
      pos:
        line_end: 77
        line_start: 72
        source_file: /src/curl/docs/examples/block_ip.c
- function_names:
  - write_cb
  - add_transfer
  - main
  source_file: /src/curl/docs/examples/10-at-a-time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PARALLEL
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/docs/examples/10-at-a-time.c
      type_or_value: '10  '
    - item_type: preproc_def
      name: NUM_URLS
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/docs/examples/10-at-a-time.c
      type_or_value: (sizeof(urls) / sizeof(char *))
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/range.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/http-options.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/smtp-mime.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FROM
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/docs/examples/smtp-mime.c
      type_or_value: '"<sender@example.org>"'
    - item_type: preproc_def
      name: TO
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/docs/examples/smtp-mime.c
      type_or_value: '"<addressee@example.net>"'
    - item_type: preproc_def
      name: CC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/docs/examples/smtp-mime.c
      type_or_value: '"<info@example.org>"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - wait_on_socket
  - main
  source_file: /src/curl/docs/examples/sendrecv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_curl_context
  - curl_close_cb
  - destroy_curl_context
  - add_download
  - check_multi_info
  - on_uv_socket
  - on_uv_timeout
  - cb_timeout
  - cb_socket
  - main
  source_file: /src/curl/docs/examples/multi-uv.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: timeout
        type: uv_timer_t
      - name: '*loop'
        type: uv_loop_t
      - name: '*multi'
        type: CURLM
      item_type: struct
      name: datauv
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/curl/docs/examples/multi-uv.c
    - fields:
      - name: poll_handle
        type: uv_poll_t
      - name: sockfd
        type: curl_socket_t
      - name: '*uv'
        type: struct datauv
      item_type: struct
      name: curl_context
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/curl/docs/examples/multi-uv.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/getreferrer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/ftpget.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*filename'
        type: char
      - name: '*stream'
        type: FILE
      item_type: struct
      name: FtpFile
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/curl/docs/examples/ftpget.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-examine.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_multi_info
  - curl_perform
  - create_curl_context
  - destroy_curl_context
  - add_download
  - on_timeout
  - start_timeout
  - handle_socket
  - main
  source_file: /src/curl/docs/examples/multi-event.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*event'
        type: struct event
      - name: sockfd
        type: curl_socket_t
      item_type: struct
      name: curl_context
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/curl/docs/examples/multi-event.c
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/sepheaders.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-ssl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/post-callback.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*readptr'
        type: char
      - name: sizeleft
        type: size_t
      item_type: struct
      name: WriteThis
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/curl/docs/examples/post-callback.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/urlapi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-tls.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - init_memory
  - setup
  - server_push_callback
  - main
  source_file: /src/curl/docs/examples/http2-pushinmemory.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_FILES
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/docs/examples/http2-pushinmemory.c
      type_or_value: '10'
    structs:
    - fields:
      - name: '*memory'
        type: char
      - name: size
        type: size_t
      item_type: struct
      name: Memory
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/curl/docs/examples/http2-pushinmemory.c
    typedefs: []
    union: []
- function_names:
  - sleep
  - ping
  - recv_pong
  - websocket_close
  - websocket
  - main
  source_file: /src/curl/docs/examples/websocket.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/httpput.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/docs/examples/httpput.c
      type_or_value: _stati64
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/docs/examples/httpput.c
      type_or_value: _fstati64
    - item_type: preproc_def
      name: fileno
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/httpput.c
      type_or_value: _fileno
    structs: []
    typedefs: []
    union: []
- function_names:
  - mcode_or_die
  - check_multi_info
  - timer_cb
  - update_timeout_cb
  - event_cb
  - remsock
  - setsock
  - addsock
  - sock_cb
  - write_cb
  - xferinfo_cb
  - new_conn
  - fifo_cb
  - init_fifo
  - main
  source_file: /src/curl/docs/examples/ghiper.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSG_OUT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/docs/examples/ghiper.c
      type_or_value: 'g_print '
    - item_type: preproc_def
      name: SHOW_VERBOSE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/docs/examples/ghiper.c
      type_or_value: '0L      '
    - item_type: preproc_def
      name: SHOW_PROGRESS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/docs/examples/ghiper.c
      type_or_value: '0       '
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/curl/docs/examples/ghiper.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*multi'
        type: CURLM
      - name: timer_event
        type: guint
      - name: still_running
        type: int
      item_type: struct
      name: GlobalInfo
      pos:
        line_end: 76
        line_start: 72
        source_file: /src/curl/docs/examples/ghiper.c
    - fields:
      - name: '*curl'
        type: CURL
      - name: '*url'
        type: char
      - name: '*global'
        type: struct GlobalInfo
      - name: error[CURL_ERROR_SIZE]
        type: char
      item_type: struct
      name: ConnInfo
      pos:
        line_end: 84
        line_start: 79
        source_file: /src/curl/docs/examples/ghiper.c
    - fields:
      - name: sockfd
        type: curl_socket_t
      - name: '*curl'
        type: CURL
      - name: action
        type: int
      - name: timeout
        type: long
      - name: '*ch'
        type: GIOChannel
      - name: ev
        type: guint
      - name: '*global'
        type: struct GlobalInfo
      item_type: struct
      name: SockInfo
      pos:
        line_end: 95
        line_start: 87
        source_file: /src/curl/docs/examples/ghiper.c
    typedefs: []
    union: []
- function_names:
  - throw_away
  - main
  source_file: /src/curl/docs/examples/ftpgetinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/multi-formadd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/address-scope.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - startElement
  - characterDataHandler
  - endElement
  - write_cb
  - main
  source_file: /src/curl/docs/examples/xmlstream.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*memory'
        type: char
      - name: size
        type: size_t
      item_type: struct
      name: MemoryStruct
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/curl/docs/examples/xmlstream.c
    - fields:
      - name: ok
        type: int
      - name: tags
        type: size_t
      - name: depth
        type: size_t
      - name: characters
        type: struct MemoryStruct
      item_type: struct
      name: ParserStruct
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/curl/docs/examples/xmlstream.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/resolve.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/http3.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strcopy
  - hstsread
  - hstswrite
  - main
  source_file: /src/curl/docs/examples/hsts-preload.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*exp'
        type: char
      item_type: struct
      name: entry
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/curl/docs/examples/hsts-preload.c
    - fields:
      - name: index
        type: int
      item_type: struct
      name: state
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/curl/docs/examples/hsts-preload.c
    typedefs: []
    union: []
- function_names:
  - mem_reset
  - mem_need
  - mem_addn
  - mem_add
  - mem_addf
  - mydebug
  - write_cb
  - main
  source_file: /src/curl/docs/examples/log_failed_transfers.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: unlink
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/docs/examples/log_failed_transfers.c
      type_or_value: _unlink
    structs:
    - fields:
      - name: '*buf'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: mem
      pos:
        line_end: 62
        line_start: 55
        source_file: /src/curl/docs/examples/log_failed_transfers.c
    - fields:
      - name: '*url'
        type: char
      - name: log
        type: struct mem
      - name: '*bodyfp'
        type: FILE
      - name: '*curl'
        type: CURL
      item_type: struct
      name: transfer
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/curl/docs/examples/log_failed_transfers.c
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/getinmemory.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*memory'
        type: char
      - name: size
        type: size_t
      item_type: struct
      name: MemoryStruct
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/curl/docs/examples/getinmemory.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/smtp-vrfy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/postit2-formadd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-top.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/smtp-tls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FROM_MAIL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/docs/examples/smtp-tls.c
      type_or_value: '"<sender@example.com>"'
    - item_type: preproc_def
      name: TO_MAIL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/docs/examples/smtp-tls.c
      type_or_value: '"<recipient@example.com>"'
    - item_type: preproc_def
      name: CC_MAIL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/docs/examples/smtp-tls.c
      type_or_value: '"<info@example.com>"'
    structs:
    - fields:
      - name: bytes_read
        type: size_t
      item_type: struct
      name: upload_status
      pos:
        line_end: 60
        line_start: 58
        source_file: /src/curl/docs/examples/smtp-tls.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/localport.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/netrc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/sftpget.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*filename'
        type: char
      - name: '*stream'
        type: FILE
      item_type: struct
      name: FtpFile
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/curl/docs/examples/sftpget.c
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/headerapi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - SyncTime_CURL_WriteHeader
  - SyncTime_CURL_Init
  - SyncTime_CURL_FetchHead
  - showUsage
  - main
  source_file: /src/curl/docs/examples/synctime.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/docs/examples/synctime.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: SYNCTIME_UA
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/curl/docs/examples/synctime.c
      type_or_value: '"synctime/1.0"'
    structs:
    - fields:
      - name: http_proxy[256]
        type: char
      - name: proxy_user[256]
        type: char
      - name: timeserver[256]
        type: char
      item_type: struct
      name: conf
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/curl/docs/examples/synctime.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-noop.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - file_is_coming
  - file_is_downloaded
  - write_cb
  - main
  source_file: /src/curl/docs/examples/ftp-wildcard.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*output'
        type: FILE
      item_type: struct
      name: callback_data
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/curl/docs/examples/ftp-wildcard.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/maxconnects.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/imap-ssl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/curl/docs/examples/ftpupload.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/docs/examples/ftpupload.c
      type_or_value: _stati64
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/docs/examples/ftpupload.c
      type_or_value: _fstati64
    - item_type: preproc_def
      name: fileno
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/docs/examples/ftpupload.c
      type_or_value: _fileno
    - item_type: preproc_def
      name: LOCAL_FILE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/docs/examples/ftpupload.c
      type_or_value: '"/tmp/uploadthis.txt"'
    - item_type: preproc_def
      name: UPLOAD_FILE_AS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/docs/examples/ftpupload.c
      type_or_value: '"while-uploading.txt"'
    - item_type: preproc_def
      name: REMOTE_URL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/docs/examples/ftpupload.c
      type_or_value: '"ftp://example.com/" UPLOAD_FILE_AS'
    - item_type: preproc_def
      name: RENAME_FILE_TO
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/docs/examples/ftpupload.c
      type_or_value: '"renamed-and-fine.txt"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - mcode_or_die
  - check_multi_info
  - timer_cb
  - multi_timer_cb
  - event_cb
  - remsock
  - setsock
  - addsock
  - sock_cb
  - write_cb
  - prog_cb
  - new_conn
  - fifo_cb
  - init_fifo
  - clean_fifo
  - sigint_handler
  - main
  source_file: /src/curl/docs/examples/ephiperfifo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSG_OUT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/docs/examples/ephiperfifo.c
      type_or_value: 'stdout '
    structs:
    - fields:
      - name: epfd
        type: int
      - name: tfd
        type: int
      - name: fifofd
        type: int
      - name: '*multi'
        type: CURLM
      - name: still_running
        type: int
      - name: '*input'
        type: FILE
      item_type: struct
      name: GlobalInfo
      pos:
        line_end: 84
        line_start: 77
        source_file: /src/curl/docs/examples/ephiperfifo.c
    - fields:
      - name: '*curl'
        type: CURL
      - name: '*url'
        type: char
      - name: '*global'
        type: struct GlobalInfo
      - name: error[CURL_ERROR_SIZE]
        type: char
      item_type: struct
      name: ConnInfo
      pos:
        line_end: 92
        line_start: 87
        source_file: /src/curl/docs/examples/ephiperfifo.c
    - fields:
      - name: sockfd
        type: curl_socket_t
      - name: '*curl'
        type: CURL
      - name: action
        type: int
      - name: timeout
        type: long
      - name: '*global'
        type: struct GlobalInfo
      item_type: struct
      name: SockInfo
      pos:
        line_end: 101
        line_start: 95
        source_file: /src/curl/docs/examples/ephiperfifo.c
    typedefs: []
    union: []
- function_names:
  - mcode_or_die
  - check_multi_info
  - timer_cb
  - multi_timer_cb
  - event_cb
  - remsock
  - setsock
  - addsock
  - sock_cb
  - write_cb
  - xferinfo_cb
  - new_conn
  - fifo_cb
  - init_fifo
  - main
  source_file: /src/curl/docs/examples/evhiperfifo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSG_OUT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/docs/examples/evhiperfifo.c
      type_or_value: 'stdout '
    structs:
    - fields:
      - name: '*loop'
        type: struct ev_loop
      - name: fifo_event
        type: struct ev_io
      - name: timer_event
        type: struct ev_timer
      - name: '*multi'
        type: CURLM
      - name: still_running
        type: int
      - name: '*input'
        type: FILE
      item_type: struct
      name: GlobalInfo
      pos:
        line_end: 86
        line_start: 79
        source_file: /src/curl/docs/examples/evhiperfifo.c
    - fields:
      - name: '*curl'
        type: CURL
      - name: '*url'
        type: char
      - name: '*global'
        type: struct GlobalInfo
      - name: error[CURL_ERROR_SIZE]
        type: char
      item_type: struct
      name: ConnInfo
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/curl/docs/examples/evhiperfifo.c
    - fields:
      - name: sockfd
        type: curl_socket_t
      - name: '*curl'
        type: CURL
      - name: action
        type: int
      - name: timeout
        type: long
      - name: ev
        type: struct ev_io
      - name: evset
        type: int
      - name: '*global'
        type: struct GlobalInfo
      item_type: struct
      name: SockInfo
      pos:
        line_end: 105
        line_start: 97
        source_file: /src/curl/docs/examples/evhiperfifo.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/ipv6.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dump
  - my_trace
  - setup
  - main
  source_file: /src/curl/docs/examples/http2-download.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLPIPE_MULTIPLEX
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/docs/examples/http2-download.c
      type_or_value: 0L
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/docs/examples/http2-download.c
      type_or_value: _snprintf
    structs:
    - fields:
      - name: '*out'
        type: FILE
      - name: '*curl'
        type: CURL
      - name: num
        type: int
      item_type: struct
      name: transfer
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/curl/docs/examples/http2-download.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/simplessl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-stat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/certinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sighandler
  - write_cb
  - make_handle
  - follow_links
  - is_html
  - main
  source_file: /src/curl/docs/examples/crawler.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buf'
        type: char
      - name: size
        type: size_t
      item_type: struct
      name: memory
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/curl/docs/examples/crawler.c
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/curl/docs/examples/ftpsget.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*filename'
        type: char
      - name: '*stream'
        type: FILE
      item_type: struct
      name: FtpFile
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/curl/docs/examples/ftpsget.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/multi-app.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_HANDLE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/docs/examples/multi-app.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: FTP_HANDLE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/docs/examples/multi-app.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: HANDLECOUNT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/docs/examples/multi-app.c
      type_or_value: '2   '
    structs: []
    typedefs: []
    union: []
- function_names:
  - xferinfo
  - main
  source_file: /src/curl/docs/examples/progressfunc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MINIMAL_PROGRESS_FUNCTIONALITY_INTERVAL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/docs/examples/progressfunc.c
      type_or_value: '3000000'
    - item_type: preproc_def
      name: STOP_DOWNLOAD_AFTER_THIS_MANY_BYTES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/docs/examples/progressfunc.c
      type_or_value: '6000'
    structs:
    - fields:
      - name: lastruntime
        type: curl_off_t
      - name: '*curl'
        type: CURL
      item_type: struct
      name: myprogress
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/curl/docs/examples/progressfunc.c
    typedefs: []
    union: []
- function_names:
  - write_cb
  - sslctx_function
  - main
  source_file: /src/curl/docs/examples/cacertinmem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ossl_valsize_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/curl/docs/examples/cacertinmem.c
      type: size_t
    - item_type: typedef
      name: ossl_valsize_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/curl/docs/examples/cacertinmem.c
      type: int
    union: []
- function_names:
  - main
  source_file: /src/curl/docs/examples/pop3-dele.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURL_VERSION_BITS
  - CURL_AT_LEAST_VERSION
  source_file: /src/curl/include/curl/curlver.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBCURL_COPYRIGHT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/include/curl/curlver.h
      type_or_value: '"Daniel Stenberg, <daniel@haxx.se>."'
    - item_type: preproc_def
      name: LIBCURL_VERSION
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/include/curl/curlver.h
      type_or_value: '"8.21.0-DEV"'
    - item_type: preproc_def
      name: LIBCURL_VERSION_MAJOR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/include/curl/curlver.h
      type_or_value: '8'
    - item_type: preproc_def
      name: LIBCURL_VERSION_MINOR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/include/curl/curlver.h
      type_or_value: '21'
    - item_type: preproc_def
      name: LIBCURL_VERSION_PATCH
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/include/curl/curlver.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LIBCURL_VERSION_NUM
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/include/curl/curlver.h
      type_or_value: '0x081500'
    - item_type: preproc_def
      name: LIBCURL_TIMESTAMP
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/include/curl/curlver.h
      type_or_value: '"[unreleased]"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/include/curl/urlapi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLU_DEFAULT_PORT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 0)       '
    - item_type: preproc_def
      name: CURLU_NO_DEFAULT_PORT
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 1)    '
    - item_type: preproc_def
      name: CURLU_DEFAULT_SCHEME
      pos:
        line_end: 89
        line_start: 87
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 2)     '
    - item_type: preproc_def
      name: CURLU_NON_SUPPORT_SCHEME
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: CURLU_PATH_AS_IS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 4)         '
    - item_type: preproc_def
      name: CURLU_DISALLOW_USER
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 5)      '
    - item_type: preproc_def
      name: CURLU_URLDECODE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 6)          '
    - item_type: preproc_def
      name: CURLU_URLENCODE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 7)          '
    - item_type: preproc_def
      name: CURLU_APPENDQUERY
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 8)        '
    - item_type: preproc_def
      name: CURLU_GUESS_SCHEME
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 9)       '
    - item_type: preproc_def
      name: CURLU_NO_AUTHORITY
      pos:
        line_end: 98
        line_start: 96
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 10)      '
    - item_type: preproc_def
      name: CURLU_ALLOW_SPACE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 11)       '
    - item_type: preproc_def
      name: CURLU_PUNYCODE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 12)          '
    - item_type: preproc_def
      name: CURLU_PUNY2IDN
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 13)          '
    - item_type: preproc_def
      name: CURLU_GET_EMPTY
      pos:
        line_end: 104
        line_start: 101
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 14)         '
    - item_type: preproc_def
      name: CURLU_NO_GUESS_SCHEME
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/curl/include/curl/urlapi.h
      type_or_value: '(1 << 15)   '
    structs: []
    typedefs:
    - item_type: typedef
      name: CURLU
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/curl/include/curl/urlapi.h
      type: Curl_URL
    union: []
- function_names: []
  source_file: /src/curl/include/curl/easy.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_BLOB_COPY
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/include/curl/easy.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CURL_BLOB_NOCOPY
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/include/curl/easy.h
      type_or_value: '0 '
    structs:
    - fields:
      - name: '*data'
        type: void
      - name: len
        type: size_t
      - name: flags
        type: unsigned int
      item_type: struct
      name: curl_blob
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/curl/include/curl/easy.h
    typedefs: []
    union: []
- function_names:
  - CURL_DEPRECATED
  - CURL_IGNORE_DEPRECATION
  - CURL_IGNORE_DEPRECATION
  - CURL_IGNORE_DEPRECATION
  - CURL_HAS_DECLSPEC_ATTRIBUTE
  - CURL_HAS_DECLSPEC_ATTRIBUTE
  - CURLOPT
  - CURLOPTDEPRECATED
  - curl_exactly_three_arguments
  - curl_easy_setopt
  - curl_easy_getinfo
  - curl_share_setopt
  - curl_multi_setopt
  source_file: /src/curl/include/curl/curl.h
  types:
    enum:
    - enumerators:
      - name: CURLKHTYPE_UNKNOWN
      - name: CURLKHTYPE_RSA1
      - name: CURLKHTYPE_RSA
      - name: CURLKHTYPE_ECDSA
      - name: CURLKHTYPE_DSS
      - name: CURLKHTYPE_ED25519
      item_type: enum
      name: curl_khtype
      pos:
        line_end: 875
        line_start: 868
        source_file: /src/curl/include/curl/curl.h
    - enumerators:
      - name: CURLKHSTAT_FINE_ADD_TO_FILE
      - name: CURLKHSTAT_DEFER
      - name: CURLKHSTAT_FINE
      - name: CURLKHSTAT_REJECT
      - name: CURLKHSTAT_FINE_REPLACE
      - name: CURLKHSTAT_LAST
      item_type: enum
      name: curl_khstat
      pos:
        line_end: 895
        line_start: 886
        source_file: /src/curl/include/curl/curl.h
    - enumerators:
      - name: CURLKHMATCH_OK
      - name: CURLKHMATCH_MISMATCH
      - name: CURLKHMATCH_LAST
      - name: CURLKHMATCH_MISSING
      item_type: enum
      name: curl_khmatch
      pos:
        line_end: 903
        line_start: 898
        source_file: /src/curl/include/curl/curl.h
    - enumerators:
      - name: CURL_NETRC_LAST
        value: '3'
      item_type: enum
      name: CURL_NETRC_OPTION
      pos:
        line_end: 2365
        line_start: 2361
        source_file: /src/curl/include/curl/curl.h
    - enumerators:
      - name: CURL_TLSAUTH_LAST
        value: '2'
      item_type: enum
      name: CURL_TLSAUTH
      pos:
        line_end: 2395
        line_start: 2391
        source_file: /src/curl/include/curl/curl.h
    preproc_defs:
    - item_type: preproc_def
      name: CURL_EXTERN
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/include/curl/curl.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: CURL_EXTERN
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/curl/include/curl/curl.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: CURL_EXTERN
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURL_EXTERN_SYMBOL
    - item_type: preproc_def
      name: CURL_SOCKET_BAD
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/curl/include/curl/curl.h
      type_or_value: INVALID_SOCKET
    - item_type: preproc_def
      name: CURL_SOCKET_BAD
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: CURLSSLBACKEND_AWSLC
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLSSLBACKEND_OPENSSL
    - item_type: preproc_def
      name: CURLSSLBACKEND_BORINGSSL
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLSSLBACKEND_OPENSSL
    - item_type: preproc_def
      name: CURLSSLBACKEND_LIBRESSL
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLSSLBACKEND_OPENSSL
    - item_type: preproc_def
      name: CURLSSLBACKEND_CYASSL
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLSSLBACKEND_WOLFSSL
    - item_type: preproc_def
      name: CURLSSLBACKEND_DARWINSSL
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLSSLBACKEND_SECURETRANSPORT
    - item_type: preproc_def
      name: CURLFOLLOW_ALL
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURLFOLLOW_OBEYCODE
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 2L
    - item_type: preproc_def
      name: CURLFOLLOW_FIRSTONLY
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 3L
    - item_type: preproc_def
      name: CURL_HTTPPOST_FILENAME
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CURL_HTTPPOST_READFILE
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CURL_HTTPPOST_PTRNAME
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CURL_HTTPPOST_PTRCONTENTS
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CURL_HTTPPOST_BUFFER
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: CURL_HTTPPOST_PTRBUFFER
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: CURL_HTTPPOST_CALLBACK
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: CURL_HTTPPOST_LARGE
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: CURL_PROGRESSFUNC_CONTINUE
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x10000001'
    - item_type: preproc_def
      name: CURL_MAX_READ_SIZE
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (10 * 1024 * 1024)
    - item_type: preproc_def
      name: CURL_MAX_WRITE_SIZE
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: CURL_MAX_HTTP_HEADER
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (100 * 1024)
    - item_type: preproc_def
      name: CURL_WRITEFUNC_PAUSE
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x10000001'
    - item_type: preproc_def
      name: CURL_WRITEFUNC_ERROR
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0xFFFFFFFF'
    - item_type: preproc_def
      name: CURLFINFOFLAG_KNOWN_FILENAME
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CURLFINFOFLAG_KNOWN_FILETYPE
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CURLFINFOFLAG_KNOWN_TIME
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CURLFINFOFLAG_KNOWN_PERM
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CURLFINFOFLAG_KNOWN_UID
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: CURLFINFOFLAG_KNOWN_GID
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: CURLFINFOFLAG_KNOWN_SIZE
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: CURLFINFOFLAG_KNOWN_HLINKCOUNT
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: CURL_CHUNK_BGN_FUNC_OK
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_CHUNK_BGN_FUNC_FAIL
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CURL_CHUNK_BGN_FUNC_SKIP
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: CURL_CHUNK_END_FUNC_OK
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_CHUNK_END_FUNC_FAIL
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CURL_FNMATCHFUNC_MATCH
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: CURL_FNMATCHFUNC_NOMATCH
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CURL_FNMATCHFUNC_FAIL
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: CURL_SEEKFUNC_OK
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_SEEKFUNC_FAIL
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CURL_SEEKFUNC_CANTSEEK
      pos:
        line_end: 383
        line_start: 381
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: CURL_READFUNC_ABORT
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x10000000'
    - item_type: preproc_def
      name: CURL_READFUNC_PAUSE
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x10000001'
    - item_type: preproc_def
      name: CURL_TRAILERFUNC_OK
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_TRAILERFUNC_ABORT
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_SOCKOPT_OK
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_SOCKOPT_ERROR
      pos:
        line_end: 420
        line_start: 418
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CURL_SOCKOPT_ALREADY_CONNECTED
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CURL_PREREQFUNC_OK
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_PREREQFUNC_ABORT
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURLE_FUNCTION_NOT_FOUND
      pos:
        line_end: 654
        line_start: 653
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE41
    - item_type: preproc_def
      name: CURLE_HTTP_POST_ERROR
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE34
    - item_type: preproc_def
      name: CURLE_OBSOLETE16
      pos:
        line_end: 660
        line_start: 659
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_HTTP2
    - item_type: preproc_def
      name: CURLE_OBSOLETE10
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_FTP_ACCEPT_FAILED
    - item_type: preproc_def
      name: CURLE_OBSOLETE12
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_FTP_ACCEPT_TIMEOUT
    - item_type: preproc_def
      name: CURLOPT_ENCODING
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_ACCEPT_ENCODING
    - item_type: preproc_def
      name: CURLE_FTP_WEIRD_SERVER_REPLY
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_WEIRD_SERVER_REPLY
    - item_type: preproc_def
      name: CURLE_SSL_CACERT
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_PEER_FAILED_VERIFICATION
    - item_type: preproc_def
      name: CURLE_UNKNOWN_TELNET_OPTION
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_UNKNOWN_OPTION
    - item_type: preproc_def
      name: CURLE_TELNET_OPTION_SYNTAX
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_SETOPT_OPTION_SYNTAX
    - item_type: preproc_def
      name: CURLE_SSL_PEER_CERTIFICATE
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_PEER_FAILED_VERIFICATION
    - item_type: preproc_def
      name: CURLE_OBSOLETE
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 'CURLE_OBSOLETE50 '
    - item_type: preproc_def
      name: CURLE_BAD_PASSWORD_ENTERED
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE46
    - item_type: preproc_def
      name: CURLE_BAD_CALLING_ORDER
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE44
    - item_type: preproc_def
      name: CURLE_FTP_USER_PASSWORD_INCORRECT
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE10
    - item_type: preproc_def
      name: CURLE_FTP_CANT_RECONNECT
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE16
    - item_type: preproc_def
      name: CURLE_FTP_COULDNT_GET_SIZE
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE32
    - item_type: preproc_def
      name: CURLE_FTP_COULDNT_SET_ASCII
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE29
    - item_type: preproc_def
      name: CURLE_FTP_WEIRD_USER_REPLY
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE12
    - item_type: preproc_def
      name: CURLE_FTP_WRITE_ERROR
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE20
    - item_type: preproc_def
      name: CURLE_LIBRARY_NOT_FOUND
      pos:
        line_end: 694
        line_start: 693
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE40
    - item_type: preproc_def
      name: CURLE_MALFORMAT_USER
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE24
    - item_type: preproc_def
      name: CURLE_SHARE_IN_USE
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE57
    - item_type: preproc_def
      name: CURLE_URL_MALFORMAT_USER
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_NOT_BUILT_IN
    - item_type: preproc_def
      name: CURLE_FTP_ACCESS_DENIED
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_REMOTE_ACCESS_DENIED
    - item_type: preproc_def
      name: CURLE_FTP_COULDNT_SET_BINARY
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_FTP_COULDNT_SET_TYPE
    - item_type: preproc_def
      name: CURLE_FTP_QUOTE_ERROR
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_QUOTE_ERROR
    - item_type: preproc_def
      name: CURLE_TFTP_DISKFULL
      pos:
        line_end: 702
        line_start: 701
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_REMOTE_DISK_FULL
    - item_type: preproc_def
      name: CURLE_TFTP_EXISTS
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_REMOTE_FILE_EXISTS
    - item_type: preproc_def
      name: CURLE_HTTP_RANGE_ERROR
      pos:
        line_end: 704
        line_start: 703
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_RANGE_ERROR
    - item_type: preproc_def
      name: CURLE_FTP_SSL_FAILED
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_USE_SSL_FAILED
    - item_type: preproc_def
      name: CURLE_OPERATION_TIMEOUTED
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OPERATION_TIMEDOUT
    - item_type: preproc_def
      name: CURLE_HTTP_NOT_FOUND
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_HTTP_RETURNED_ERROR
    - item_type: preproc_def
      name: CURLE_HTTP_PORT_FAILED
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_INTERFACE_FAILED
    - item_type: preproc_def
      name: CURLE_FTP_COULDNT_STOR_FILE
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_UPLOAD_FAILED
    - item_type: preproc_def
      name: CURLE_FTP_PARTIAL_FILE
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_PARTIAL_FILE
    - item_type: preproc_def
      name: CURLE_FTP_BAD_DOWNLOAD_RESUME
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_BAD_DOWNLOAD_RESUME
    - item_type: preproc_def
      name: CURLE_LDAP_INVALID_URL
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE62
    - item_type: preproc_def
      name: CURLE_CONV_REQD
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE76
    - item_type: preproc_def
      name: CURLE_CONV_FAILED
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLE_OBSOLETE75
    - item_type: preproc_def
      name: CURLE_ALREADY_COMPLETE
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '99999'
    - item_type: preproc_def
      name: CURLOPT_FILE
      pos:
        line_end: 725
        line_start: 724
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 'CURLOPT_WRITEDATA '
    - item_type: preproc_def
      name: CURLOPT_INFILE
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 'CURLOPT_READDATA '
    - item_type: preproc_def
      name: CURLOPT_WRITEHEADER
      pos:
        line_end: 727
        line_start: 726
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_HEADERDATA
    - item_type: preproc_def
      name: CURLOPT_WRITEINFO
      pos:
        line_end: 731
        line_start: 730
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_OBSOLETE40
    - item_type: preproc_def
      name: CURLOPT_CLOSEPOLICY
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_OBSOLETE72
    - item_type: preproc_def
      name: CURLOPT_OBSOLETE72
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '9999'
    - item_type: preproc_def
      name: CURLOPT_OBSOLETE40
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '9999'
    - item_type: preproc_def
      name: CURLPROXY_HTTP
      pos:
        line_end: 791
        line_start: 789
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L '
    - item_type: preproc_def
      name: CURLPROXY_HTTP_1_0
      pos:
        line_end: 793
        line_start: 791
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURLPROXY_HTTPS
      pos:
        line_end: 795
        line_start: 793
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2L '
    - item_type: preproc_def
      name: CURLPROXY_HTTPS2
      pos:
        line_end: 797
        line_start: 795
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '3L '
    - item_type: preproc_def
      name: CURLPROXY_SOCKS4
      pos:
        line_end: 799
        line_start: 797
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '4L '
    - item_type: preproc_def
      name: CURLPROXY_SOCKS5
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '5L '
    - item_type: preproc_def
      name: CURLPROXY_SOCKS4A
      pos:
        line_end: 801
        line_start: 800
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '6L '
    - item_type: preproc_def
      name: CURLPROXY_SOCKS5_HOSTNAME
      pos:
        line_end: 804
        line_start: 801
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '7L '
    - item_type: preproc_def
      name: CURLPROXY_HTTPS3
      pos:
        line_end: 806
        line_start: 804
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '8L '
    - item_type: preproc_def
      name: CURLAUTH_NONE
      pos:
        line_end: 830
        line_start: 829
        source_file: /src/curl/include/curl/curl.h
      type_or_value: ((unsigned long)0)
    - item_type: preproc_def
      name: CURLAUTH_BASIC
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (((unsigned long)1) << 0)
    - item_type: preproc_def
      name: CURLAUTH_DIGEST
      pos:
        line_end: 832
        line_start: 831
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (((unsigned long)1) << 1)
    - item_type: preproc_def
      name: CURLAUTH_NEGOTIATE
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (((unsigned long)1) << 2)
    - item_type: preproc_def
      name: CURLAUTH_GSSNEGOTIATE
      pos:
        line_end: 835
        line_start: 834
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLAUTH_NEGOTIATE
    - item_type: preproc_def
      name: CURLAUTH_GSSAPI
      pos:
        line_end: 837
        line_start: 836
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLAUTH_NEGOTIATE
    - item_type: preproc_def
      name: CURLAUTH_NTLM
      pos:
        line_end: 838
        line_start: 837
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (((unsigned long)1) << 3)
    - item_type: preproc_def
      name: CURLAUTH_DIGEST_IE
      pos:
        line_end: 839
        line_start: 838
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (((unsigned long)1) << 4)
    - item_type: preproc_def
      name: CURLAUTH_NTLM_WB
      pos:
        line_end: 842
        line_start: 841
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (((unsigned long)1) << 5)
    - item_type: preproc_def
      name: CURLAUTH_BEARER
      pos:
        line_end: 844
        line_start: 843
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (((unsigned long)1) << 6)
    - item_type: preproc_def
      name: CURLAUTH_AWS_SIGV4
      pos:
        line_end: 845
        line_start: 844
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (((unsigned long)1) << 7)
    - item_type: preproc_def
      name: CURLAUTH_ONLY
      pos:
        line_end: 846
        line_start: 845
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (((unsigned long)1) << 31)
    - item_type: preproc_def
      name: CURLAUTH_ANY
      pos:
        line_end: 848
        line_start: 846
        source_file: /src/curl/include/curl/curl.h
      type_or_value: "((~CURLAUTH_DIGEST_IE) & \\\n                               ((unsigned
        long)0xffffffff))"
    - item_type: preproc_def
      name: CURLAUTH_ANYSAFE
      pos:
        line_end: 850
        line_start: 848
        source_file: /src/curl/include/curl/curl.h
      type_or_value: "((~(CURLAUTH_BASIC | CURLAUTH_DIGEST_IE)) & \\\n                               ((unsigned
        long)0xffffffff))"
    - item_type: preproc_def
      name: CURLSSH_AUTH_ANY
      pos:
        line_end: 853
        line_start: 852
        source_file: /src/curl/include/curl/curl.h
      type_or_value: ((unsigned long)0xffffffff)
    - item_type: preproc_def
      name: CURLSSH_AUTH_NONE
      pos:
        line_end: 854
        line_start: 853
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L        '
    - item_type: preproc_def
      name: CURLSSH_AUTH_PUBLICKEY
      pos:
        line_end: 855
        line_start: 854
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1L << 0) '
    - item_type: preproc_def
      name: CURLSSH_AUTH_PASSWORD
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1L << 1) '
    - item_type: preproc_def
      name: CURLSSH_AUTH_HOST
      pos:
        line_end: 857
        line_start: 856
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1L << 2) '
    - item_type: preproc_def
      name: CURLSSH_AUTH_KEYBOARD
      pos:
        line_end: 858
        line_start: 857
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1L << 3) '
    - item_type: preproc_def
      name: CURLSSH_AUTH_AGENT
      pos:
        line_end: 859
        line_start: 858
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1L << 4) '
    - item_type: preproc_def
      name: CURLSSH_AUTH_GSSAPI
      pos:
        line_end: 860
        line_start: 859
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1L << 5) '
    - item_type: preproc_def
      name: CURLSSH_AUTH_DEFAULT
      pos:
        line_end: 861
        line_start: 860
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLSSH_AUTH_ANY
    - item_type: preproc_def
      name: CURLGSSAPI_DELEGATION_NONE
      pos:
        line_end: 863
        line_start: 862
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L      '
    - item_type: preproc_def
      name: CURLGSSAPI_DELEGATION_POLICY_FLAG
      pos:
        line_end: 864
        line_start: 863
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1L<<0) '
    - item_type: preproc_def
      name: CURLGSSAPI_DELEGATION_FLAG
      pos:
        line_end: 865
        line_start: 864
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1L<<1) '
    - item_type: preproc_def
      name: CURL_ERROR_SIZE
      pos:
        line_end: 867
        line_start: 866
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '256'
    - item_type: preproc_def
      name: CURLUSESSL_NONE
      pos:
        line_end: 924
        line_start: 923
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L '
    - item_type: preproc_def
      name: CURLUSESSL_TRY
      pos:
        line_end: 925
        line_start: 924
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURLUSESSL_CONTROL
      pos:
        line_end: 926
        line_start: 925
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2L '
    - item_type: preproc_def
      name: CURLUSESSL_ALL
      pos:
        line_end: 927
        line_start: 926
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '3L '
    - item_type: preproc_def
      name: CURLSSLOPT_ALLOW_BEAST
      pos:
        line_end: 940
        line_start: 939
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 0)
    - item_type: preproc_def
      name: CURLSSLOPT_NO_REVOKE
      pos:
        line_end: 944
        line_start: 943
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 1)
    - item_type: preproc_def
      name: CURLSSLOPT_NO_PARTIALCHAIN
      pos:
        line_end: 948
        line_start: 947
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 2)
    - item_type: preproc_def
      name: CURLSSLOPT_REVOKE_BEST_EFFORT
      pos:
        line_end: 953
        line_start: 952
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 3)
    - item_type: preproc_def
      name: CURLSSLOPT_NATIVE_CA
      pos:
        line_end: 957
        line_start: 956
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 4)
    - item_type: preproc_def
      name: CURLSSLOPT_AUTO_CLIENT_CERT
      pos:
        line_end: 961
        line_start: 960
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 5)
    - item_type: preproc_def
      name: CURLSSLOPT_EARLYDATA
      pos:
        line_end: 964
        line_start: 963
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 6)
    - item_type: preproc_def
      name: CURL_HET_DEFAULT
      pos:
        line_end: 969
        line_start: 968
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 200L
    - item_type: preproc_def
      name: CURL_UPKEEP_INTERVAL_DEFAULT
      pos:
        line_end: 972
        line_start: 971
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 60000L
    - item_type: preproc_def
      name: CURLFTPSSL_NONE
      pos:
        line_end: 980
        line_start: 979
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLUSESSL_NONE
    - item_type: preproc_def
      name: CURLFTPSSL_TRY
      pos:
        line_end: 981
        line_start: 980
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLUSESSL_TRY
    - item_type: preproc_def
      name: CURLFTPSSL_CONTROL
      pos:
        line_end: 982
        line_start: 981
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLUSESSL_CONTROL
    - item_type: preproc_def
      name: CURLFTPSSL_ALL
      pos:
        line_end: 983
        line_start: 982
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLUSESSL_ALL
    - item_type: preproc_def
      name: CURLFTPSSL_LAST
      pos:
        line_end: 984
        line_start: 983
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLUSESSL_LAST
    - item_type: preproc_def
      name: curl_ftpssl
      pos:
        line_end: 985
        line_start: 984
        source_file: /src/curl/include/curl/curl.h
      type_or_value: curl_usessl
    - item_type: preproc_def
      name: CURLFTPSSL_CCC_NONE
      pos:
        line_end: 989
        line_start: 988
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L '
    - item_type: preproc_def
      name: CURLFTPSSL_CCC_PASSIVE
      pos:
        line_end: 990
        line_start: 989
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURLFTPSSL_CCC_ACTIVE
      pos:
        line_end: 991
        line_start: 990
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2L '
    - item_type: preproc_def
      name: CURLFTPAUTH_DEFAULT
      pos:
        line_end: 998
        line_start: 997
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L '
    - item_type: preproc_def
      name: CURLFTPAUTH_SSL
      pos:
        line_end: 999
        line_start: 998
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURLFTPAUTH_TLS
      pos:
        line_end: 1000
        line_start: 999
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2L '
    - item_type: preproc_def
      name: CURLFTP_CREATE_DIR_NONE
      pos:
        line_end: 1007
        line_start: 1006
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L '
    - item_type: preproc_def
      name: CURLFTP_CREATE_DIR
      pos:
        line_end: 1010
        line_start: 1007
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURLFTP_CREATE_DIR_RETRY
      pos:
        line_end: 1012
        line_start: 1010
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2L '
    - item_type: preproc_def
      name: CURLFTPMETHOD_DEFAULT
      pos:
        line_end: 1019
        line_start: 1018
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L '
    - item_type: preproc_def
      name: CURLFTPMETHOD_MULTICWD
      pos:
        line_end: 1021
        line_start: 1019
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURLFTPMETHOD_NOCWD
      pos:
        line_end: 1022
        line_start: 1021
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2L '
    - item_type: preproc_def
      name: CURLFTPMETHOD_SINGLECWD
      pos:
        line_end: 1023
        line_start: 1022
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '3L '
    - item_type: preproc_def
      name: CURLHEADER_UNIFIED
      pos:
        line_end: 1030
        line_start: 1029
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 0L
    - item_type: preproc_def
      name: CURLHEADER_SEPARATE
      pos:
        line_end: 1031
        line_start: 1030
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 0)
    - item_type: preproc_def
      name: CURLALTSVC_READONLYFILE
      pos:
        line_end: 1034
        line_start: 1033
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 2)
    - item_type: preproc_def
      name: CURLALTSVC_H1
      pos:
        line_end: 1035
        line_start: 1034
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 3)
    - item_type: preproc_def
      name: CURLALTSVC_H2
      pos:
        line_end: 1036
        line_start: 1035
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 4)
    - item_type: preproc_def
      name: CURLALTSVC_H3
      pos:
        line_end: 1037
        line_start: 1036
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 5)
    - item_type: preproc_def
      name: CURLULFLAG_ANSWERED
      pos:
        line_end: 1040
        line_start: 1039
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 0)
    - item_type: preproc_def
      name: CURLULFLAG_DELETED
      pos:
        line_end: 1041
        line_start: 1040
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 1)
    - item_type: preproc_def
      name: CURLULFLAG_DRAFT
      pos:
        line_end: 1042
        line_start: 1041
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 2)
    - item_type: preproc_def
      name: CURLULFLAG_FLAGGED
      pos:
        line_end: 1043
        line_start: 1042
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 3)
    - item_type: preproc_def
      name: CURLULFLAG_SEEN
      pos:
        line_end: 1044
        line_start: 1043
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 4)
    - item_type: preproc_def
      name: CURLHSTS_ENABLE
      pos:
        line_end: 1073
        line_start: 1072
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 0)
    - item_type: preproc_def
      name: CURLHSTS_READONLYFILE
      pos:
        line_end: 1074
        line_start: 1073
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 1)
    - item_type: preproc_def
      name: CURLPROTO_HTTP
      pos:
        line_end: 1078
        line_start: 1077
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 0)
    - item_type: preproc_def
      name: CURLPROTO_HTTPS
      pos:
        line_end: 1079
        line_start: 1078
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 1)
    - item_type: preproc_def
      name: CURLPROTO_FTP
      pos:
        line_end: 1080
        line_start: 1079
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 2)
    - item_type: preproc_def
      name: CURLPROTO_FTPS
      pos:
        line_end: 1081
        line_start: 1080
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 3)
    - item_type: preproc_def
      name: CURLPROTO_SCP
      pos:
        line_end: 1082
        line_start: 1081
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 4)
    - item_type: preproc_def
      name: CURLPROTO_SFTP
      pos:
        line_end: 1083
        line_start: 1082
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 5)
    - item_type: preproc_def
      name: CURLPROTO_TELNET
      pos:
        line_end: 1084
        line_start: 1083
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 6)
    - item_type: preproc_def
      name: CURLPROTO_LDAP
      pos:
        line_end: 1085
        line_start: 1084
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 7)
    - item_type: preproc_def
      name: CURLPROTO_LDAPS
      pos:
        line_end: 1086
        line_start: 1085
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 8)
    - item_type: preproc_def
      name: CURLPROTO_DICT
      pos:
        line_end: 1087
        line_start: 1086
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 9)
    - item_type: preproc_def
      name: CURLPROTO_FILE
      pos:
        line_end: 1088
        line_start: 1087
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 10)
    - item_type: preproc_def
      name: CURLPROTO_TFTP
      pos:
        line_end: 1089
        line_start: 1088
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 11)
    - item_type: preproc_def
      name: CURLPROTO_IMAP
      pos:
        line_end: 1090
        line_start: 1089
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 12)
    - item_type: preproc_def
      name: CURLPROTO_IMAPS
      pos:
        line_end: 1091
        line_start: 1090
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 13)
    - item_type: preproc_def
      name: CURLPROTO_POP3
      pos:
        line_end: 1092
        line_start: 1091
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 14)
    - item_type: preproc_def
      name: CURLPROTO_POP3S
      pos:
        line_end: 1093
        line_start: 1092
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 15)
    - item_type: preproc_def
      name: CURLPROTO_SMTP
      pos:
        line_end: 1094
        line_start: 1093
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 16)
    - item_type: preproc_def
      name: CURLPROTO_SMTPS
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 17)
    - item_type: preproc_def
      name: CURLPROTO_RTSP
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 18)
    - item_type: preproc_def
      name: CURLPROTO_RTMP
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 19)
    - item_type: preproc_def
      name: CURLPROTO_RTMPT
      pos:
        line_end: 1098
        line_start: 1097
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 20)
    - item_type: preproc_def
      name: CURLPROTO_RTMPE
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 21)
    - item_type: preproc_def
      name: CURLPROTO_RTMPTE
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 22)
    - item_type: preproc_def
      name: CURLPROTO_RTMPS
      pos:
        line_end: 1101
        line_start: 1100
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 23)
    - item_type: preproc_def
      name: CURLPROTO_RTMPTS
      pos:
        line_end: 1102
        line_start: 1101
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 24)
    - item_type: preproc_def
      name: CURLPROTO_GOPHER
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 25)
    - item_type: preproc_def
      name: CURLPROTO_SMB
      pos:
        line_end: 1104
        line_start: 1103
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 26)
    - item_type: preproc_def
      name: CURLPROTO_SMBS
      pos:
        line_end: 1105
        line_start: 1104
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 27)
    - item_type: preproc_def
      name: CURLPROTO_MQTT
      pos:
        line_end: 1106
        line_start: 1105
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 28)
    - item_type: preproc_def
      name: CURLPROTO_GOPHERS
      pos:
        line_end: 1107
        line_start: 1106
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1L << 29)
    - item_type: preproc_def
      name: CURLPROTO_ALL
      pos:
        line_end: 1109
        line_start: 1107
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '((unsigned long)0xffffffff) '
    - item_type: preproc_def
      name: CURLOPTTYPE_LONG
      pos:
        line_end: 1113
        line_start: 1112
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURLOPTTYPE_OBJECTPOINT
      pos:
        line_end: 1114
        line_start: 1113
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '10000'
    - item_type: preproc_def
      name: CURLOPTTYPE_FUNCTIONPOINT
      pos:
        line_end: 1115
        line_start: 1114
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '20000'
    - item_type: preproc_def
      name: CURLOPTTYPE_OFF_T
      pos:
        line_end: 1116
        line_start: 1115
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '30000'
    - item_type: preproc_def
      name: CURLOPTTYPE_BLOB
      pos:
        line_end: 1117
        line_start: 1116
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '40000'
    - item_type: preproc_def
      name: CURLOPTTYPE_STRINGPOINT
      pos:
        line_end: 1129
        line_start: 1128
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPTTYPE_OBJECTPOINT
    - item_type: preproc_def
      name: CURLOPTTYPE_SLISTPOINT
      pos:
        line_end: 1132
        line_start: 1131
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPTTYPE_OBJECTPOINT
    - item_type: preproc_def
      name: CURLOPTTYPE_CBPOINT
      pos:
        line_end: 1135
        line_start: 1134
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPTTYPE_OBJECTPOINT
    - item_type: preproc_def
      name: CURLOPTTYPE_VALUES
      pos:
        line_end: 1138
        line_start: 1137
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPTTYPE_LONG
    - item_type: preproc_def
      name: CURLOPT_POST301
      pos:
        line_end: 2275
        line_start: 2274
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_POSTREDIR
    - item_type: preproc_def
      name: CURLOPT_SSLKEYPASSWD
      pos:
        line_end: 2280
        line_start: 2279
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_KEYPASSWD
    - item_type: preproc_def
      name: CURLOPT_FTPAPPEND
      pos:
        line_end: 2281
        line_start: 2280
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_APPEND
    - item_type: preproc_def
      name: CURLOPT_FTPLISTONLY
      pos:
        line_end: 2282
        line_start: 2281
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_DIRLISTONLY
    - item_type: preproc_def
      name: CURLOPT_FTP_SSL
      pos:
        line_end: 2283
        line_start: 2282
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_USE_SSL
    - item_type: preproc_def
      name: CURLOPT_SSLCERTPASSWD
      pos:
        line_end: 2287
        line_start: 2286
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_KEYPASSWD
    - item_type: preproc_def
      name: CURLOPT_KRB4LEVEL
      pos:
        line_end: 2288
        line_start: 2287
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_KRBLEVEL
    - item_type: preproc_def
      name: CURLOPT_FTP_RESPONSE_TIMEOUT
      pos:
        line_end: 2290
        line_start: 2289
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_SERVER_RESPONSE_TIMEOUT
    - item_type: preproc_def
      name: CURLOPT_MAIL_RCPT_ALLLOWFAILS
      pos:
        line_end: 2293
        line_start: 2292
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_MAIL_RCPT_ALLOWFAILS
    - item_type: preproc_def
      name: CURL_IPRESOLVE_WHATEVER
      pos:
        line_end: 2304
        line_start: 2302
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L '
    - item_type: preproc_def
      name: CURL_IPRESOLVE_V4
      pos:
        line_end: 2305
        line_start: 2304
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURL_IPRESOLVE_V6
      pos:
        line_end: 2306
        line_start: 2305
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2L '
    - item_type: preproc_def
      name: CURLOPT_RTSPHEADER
      pos:
        line_end: 2309
        line_start: 2308
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLOPT_HTTPHEADER
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_NONE
      pos:
        line_end: 2314
        line_start: 2311
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L '
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_1_0
      pos:
        line_end: 2315
        line_start: 2314
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_1_1
      pos:
        line_end: 2316
        line_start: 2315
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2L '
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_2_0
      pos:
        line_end: 2317
        line_start: 2316
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '3L '
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_2TLS
      pos:
        line_end: 2319
        line_start: 2317
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '4L '
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE
      pos:
        line_end: 2321
        line_start: 2319
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '5L '
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_3
      pos:
        line_end: 2325
        line_start: 2321
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '30L '
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_3ONLY
      pos:
        line_end: 2328
        line_start: 2325
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '31L '
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_LAST
      pos:
        line_end: 2329
        line_start: 2328
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '32L '
    - item_type: preproc_def
      name: CURL_HTTP_VERSION_2
      pos:
        line_end: 2334
        line_start: 2333
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURL_HTTP_VERSION_2_0
    - item_type: preproc_def
      name: CURL_RTSPREQ_NONE
      pos:
        line_end: 2340
        line_start: 2339
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 0L
    - item_type: preproc_def
      name: CURL_RTSPREQ_OPTIONS
      pos:
        line_end: 2341
        line_start: 2340
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 1L
    - item_type: preproc_def
      name: CURL_RTSPREQ_DESCRIBE
      pos:
        line_end: 2342
        line_start: 2341
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 2L
    - item_type: preproc_def
      name: CURL_RTSPREQ_ANNOUNCE
      pos:
        line_end: 2343
        line_start: 2342
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 3L
    - item_type: preproc_def
      name: CURL_RTSPREQ_SETUP
      pos:
        line_end: 2344
        line_start: 2343
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 4L
    - item_type: preproc_def
      name: CURL_RTSPREQ_PLAY
      pos:
        line_end: 2345
        line_start: 2344
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 5L
    - item_type: preproc_def
      name: CURL_RTSPREQ_PAUSE
      pos:
        line_end: 2346
        line_start: 2345
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 6L
    - item_type: preproc_def
      name: CURL_RTSPREQ_TEARDOWN
      pos:
        line_end: 2347
        line_start: 2346
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 7L
    - item_type: preproc_def
      name: CURL_RTSPREQ_GET_PARAMETER
      pos:
        line_end: 2348
        line_start: 2347
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 8L
    - item_type: preproc_def
      name: CURL_RTSPREQ_SET_PARAMETER
      pos:
        line_end: 2349
        line_start: 2348
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 9L
    - item_type: preproc_def
      name: CURL_RTSPREQ_RECORD
      pos:
        line_end: 2350
        line_start: 2349
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 10L
    - item_type: preproc_def
      name: CURL_RTSPREQ_RECEIVE
      pos:
        line_end: 2351
        line_start: 2350
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 11L
    - item_type: preproc_def
      name: CURL_RTSPREQ_LAST
      pos:
        line_end: 2352
        line_start: 2351
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '12L '
    - item_type: preproc_def
      name: CURL_NETRC_IGNORED
      pos:
        line_end: 2356
        line_start: 2354
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0L '
    - item_type: preproc_def
      name: CURL_NETRC_OPTIONAL
      pos:
        line_end: 2358
        line_start: 2356
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURL_NETRC_REQUIRED
      pos:
        line_end: 2361
        line_start: 2358
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '2L '
    - item_type: preproc_def
      name: CURL_SSLVERSION_DEFAULT
      pos:
        line_end: 2368
        line_start: 2367
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 0L
    - item_type: preproc_def
      name: CURL_SSLVERSION_TLSv1
      pos:
        line_end: 2369
        line_start: 2368
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '1L '
    - item_type: preproc_def
      name: CURL_SSLVERSION_SSLv2
      pos:
        line_end: 2370
        line_start: 2369
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 2L
    - item_type: preproc_def
      name: CURL_SSLVERSION_SSLv3
      pos:
        line_end: 2371
        line_start: 2370
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 3L
    - item_type: preproc_def
      name: CURL_SSLVERSION_TLSv1_0
      pos:
        line_end: 2372
        line_start: 2371
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 4L
    - item_type: preproc_def
      name: CURL_SSLVERSION_TLSv1_1
      pos:
        line_end: 2373
        line_start: 2372
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 5L
    - item_type: preproc_def
      name: CURL_SSLVERSION_TLSv1_2
      pos:
        line_end: 2374
        line_start: 2373
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 6L
    - item_type: preproc_def
      name: CURL_SSLVERSION_TLSv1_3
      pos:
        line_end: 2375
        line_start: 2374
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 7L
    - item_type: preproc_def
      name: CURL_SSLVERSION_LAST
      pos:
        line_end: 2377
        line_start: 2376
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '8L '
    - item_type: preproc_def
      name: CURL_SSLVERSION_MAX_NONE
      pos:
        line_end: 2379
        line_start: 2378
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 0L
    - item_type: preproc_def
      name: CURL_SSLVERSION_MAX_DEFAULT
      pos:
        line_end: 2380
        line_start: 2379
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURL_SSLVERSION_TLSv1   << 16)
    - item_type: preproc_def
      name: CURL_SSLVERSION_MAX_TLSv1_0
      pos:
        line_end: 2381
        line_start: 2380
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURL_SSLVERSION_TLSv1_0 << 16)
    - item_type: preproc_def
      name: CURL_SSLVERSION_MAX_TLSv1_1
      pos:
        line_end: 2382
        line_start: 2381
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURL_SSLVERSION_TLSv1_1 << 16)
    - item_type: preproc_def
      name: CURL_SSLVERSION_MAX_TLSv1_2
      pos:
        line_end: 2383
        line_start: 2382
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURL_SSLVERSION_TLSv1_2 << 16)
    - item_type: preproc_def
      name: CURL_SSLVERSION_MAX_TLSv1_3
      pos:
        line_end: 2384
        line_start: 2383
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURL_SSLVERSION_TLSv1_3 << 16)
    - item_type: preproc_def
      name: CURL_SSLVERSION_MAX_LAST
      pos:
        line_end: 2387
        line_start: 2386
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURL_SSLVERSION_LAST    << 16)
    - item_type: preproc_def
      name: CURL_TLSAUTH_NONE
      pos:
        line_end: 2389
        line_start: 2388
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 0L
    - item_type: preproc_def
      name: CURL_TLSAUTH_SRP
      pos:
        line_end: 2390
        line_start: 2389
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 1L
    - item_type: preproc_def
      name: CURL_REDIR_GET_ALL
      pos:
        line_end: 2403
        line_start: 2402
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 0L
    - item_type: preproc_def
      name: CURL_REDIR_POST_301
      pos:
        line_end: 2404
        line_start: 2403
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 1L
    - item_type: preproc_def
      name: CURL_REDIR_POST_302
      pos:
        line_end: 2405
        line_start: 2404
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 2L
    - item_type: preproc_def
      name: CURL_REDIR_POST_303
      pos:
        line_end: 2406
        line_start: 2405
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 4L
    - item_type: preproc_def
      name: CURL_REDIR_POST_ALL
      pos:
        line_end: 2408
        line_start: 2406
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURL_REDIR_POST_301 | CURL_REDIR_POST_302 | CURL_REDIR_POST_303)
    - item_type: preproc_def
      name: CURL_TIMECOND_NONE
      pos:
        line_end: 2410
        line_start: 2409
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 0L
    - item_type: preproc_def
      name: CURL_TIMECOND_IFMODSINCE
      pos:
        line_end: 2411
        line_start: 2410
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 1L
    - item_type: preproc_def
      name: CURL_TIMECOND_IFUNMODSINCE
      pos:
        line_end: 2412
        line_start: 2411
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 2L
    - item_type: preproc_def
      name: CURL_TIMECOND_LASTMOD
      pos:
        line_end: 2413
        line_start: 2412
        source_file: /src/curl/include/curl/curl.h
      type_or_value: 3L
    - item_type: preproc_def
      name: CURL_ZERO_TERMINATED
      pos:
        line_end: 2423
        line_start: 2422
        source_file: /src/curl/include/curl/curl.h
      type_or_value: ((size_t)-1)
    - item_type: preproc_def
      name: CURLMIMEOPT_FORMESCAPE
      pos:
        line_end: 2435
        line_start: 2434
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1L << 0) '
    - item_type: preproc_def
      name: CURLINFO_STRING
      pos:
        line_end: 2893
        line_start: 2892
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: CURLINFO_LONG
      pos:
        line_end: 2894
        line_start: 2893
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x200000'
    - item_type: preproc_def
      name: CURLINFO_DOUBLE
      pos:
        line_end: 2895
        line_start: 2894
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x300000'
    - item_type: preproc_def
      name: CURLINFO_SLIST
      pos:
        line_end: 2896
        line_start: 2895
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x400000'
    - item_type: preproc_def
      name: CURLINFO_PTR
      pos:
        line_end: 2897
        line_start: 2896
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x400000 '
    - item_type: preproc_def
      name: CURLINFO_SOCKET
      pos:
        line_end: 2898
        line_start: 2897
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x500000'
    - item_type: preproc_def
      name: CURLINFO_OFF_T
      pos:
        line_end: 2899
        line_start: 2898
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x600000'
    - item_type: preproc_def
      name: CURLINFO_MASK
      pos:
        line_end: 2900
        line_start: 2899
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0x0fffff'
    - item_type: preproc_def
      name: CURLINFO_TYPEMASK
      pos:
        line_end: 2901
        line_start: 2900
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0xf00000'
    - item_type: preproc_def
      name: CURLINFO_HTTP_CODE
      pos:
        line_end: 3004
        line_start: 3003
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLINFO_RESPONSE_CODE
    - item_type: preproc_def
      name: CURL_GLOBAL_SSL
      pos:
        line_end: 3018
        line_start: 3017
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: CURL_GLOBAL_WIN32
      pos:
        line_end: 3019
        line_start: 3018
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CURL_GLOBAL_ALL
      pos:
        line_end: 3020
        line_start: 3019
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURL_GLOBAL_SSL | CURL_GLOBAL_WIN32)
    - item_type: preproc_def
      name: CURL_GLOBAL_NOTHING
      pos:
        line_end: 3021
        line_start: 3020
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_GLOBAL_DEFAULT
      pos:
        line_end: 3022
        line_start: 3021
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURL_GLOBAL_ALL
    - item_type: preproc_def
      name: CURL_GLOBAL_ACK_EINTR
      pos:
        line_end: 3023
        line_start: 3022
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CURLVERSION_NOW
      pos:
        line_end: 3110
        line_start: 3109
        source_file: /src/curl/include/curl/curl.h
      type_or_value: CURLVERSION_TWELFTH
    - item_type: preproc_def
      name: CURL_VERSION_IPV6
      pos:
        line_end: 3176
        line_start: 3175
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<0)  '
    - item_type: preproc_def
      name: CURL_VERSION_KERBEROS4
      pos:
        line_end: 3178
        line_start: 3176
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<1)  '
    - item_type: preproc_def
      name: CURL_VERSION_SSL
      pos:
        line_end: 3179
        line_start: 3178
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<2)  '
    - item_type: preproc_def
      name: CURL_VERSION_LIBZ
      pos:
        line_end: 3180
        line_start: 3179
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<3)  '
    - item_type: preproc_def
      name: CURL_VERSION_NTLM
      pos:
        line_end: 3181
        line_start: 3180
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<4)  '
    - item_type: preproc_def
      name: CURL_VERSION_GSSNEGOTIATE
      pos:
        line_end: 3183
        line_start: 3181
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<5)  '
    - item_type: preproc_def
      name: CURL_VERSION_DEBUG
      pos:
        line_end: 3184
        line_start: 3183
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<6)  '
    - item_type: preproc_def
      name: CURL_VERSION_ASYNCHDNS
      pos:
        line_end: 3185
        line_start: 3184
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<7)  '
    - item_type: preproc_def
      name: CURL_VERSION_SPNEGO
      pos:
        line_end: 3186
        line_start: 3185
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<8)  '
    - item_type: preproc_def
      name: CURL_VERSION_LARGEFILE
      pos:
        line_end: 3187
        line_start: 3186
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<9)  '
    - item_type: preproc_def
      name: CURL_VERSION_IDN
      pos:
        line_end: 3189
        line_start: 3187
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<10) '
    - item_type: preproc_def
      name: CURL_VERSION_SSPI
      pos:
        line_end: 3190
        line_start: 3189
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<11) '
    - item_type: preproc_def
      name: CURL_VERSION_CONV
      pos:
        line_end: 3191
        line_start: 3190
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<12) '
    - item_type: preproc_def
      name: CURL_VERSION_CURLDEBUG
      pos:
        line_end: 3193
        line_start: 3191
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<13) '
    - item_type: preproc_def
      name: CURL_VERSION_TLSAUTH_SRP
      pos:
        line_end: 3194
        line_start: 3193
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<14) '
    - item_type: preproc_def
      name: CURL_VERSION_NTLM_WB
      pos:
        line_end: 3196
        line_start: 3194
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<15) '
    - item_type: preproc_def
      name: CURL_VERSION_HTTP2
      pos:
        line_end: 3197
        line_start: 3196
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<16) '
    - item_type: preproc_def
      name: CURL_VERSION_GSSAPI
      pos:
        line_end: 3198
        line_start: 3197
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<17) '
    - item_type: preproc_def
      name: CURL_VERSION_KERBEROS5
      pos:
        line_end: 3199
        line_start: 3198
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<18) '
    - item_type: preproc_def
      name: CURL_VERSION_UNIX_SOCKETS
      pos:
        line_end: 3200
        line_start: 3199
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<19) '
    - item_type: preproc_def
      name: CURL_VERSION_PSL
      pos:
        line_end: 3202
        line_start: 3200
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<20) '
    - item_type: preproc_def
      name: CURL_VERSION_HTTPS_PROXY
      pos:
        line_end: 3203
        line_start: 3202
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<21) '
    - item_type: preproc_def
      name: CURL_VERSION_MULTI_SSL
      pos:
        line_end: 3204
        line_start: 3203
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<22) '
    - item_type: preproc_def
      name: CURL_VERSION_BROTLI
      pos:
        line_end: 3205
        line_start: 3204
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<23) '
    - item_type: preproc_def
      name: CURL_VERSION_ALTSVC
      pos:
        line_end: 3206
        line_start: 3205
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<24) '
    - item_type: preproc_def
      name: CURL_VERSION_HTTP3
      pos:
        line_end: 3207
        line_start: 3206
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<25) '
    - item_type: preproc_def
      name: CURL_VERSION_ZSTD
      pos:
        line_end: 3208
        line_start: 3207
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<26) '
    - item_type: preproc_def
      name: CURL_VERSION_UNICODE
      pos:
        line_end: 3209
        line_start: 3208
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<27) '
    - item_type: preproc_def
      name: CURL_VERSION_HSTS
      pos:
        line_end: 3210
        line_start: 3209
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<28) '
    - item_type: preproc_def
      name: CURL_VERSION_GSASL
      pos:
        line_end: 3211
        line_start: 3210
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<29) '
    - item_type: preproc_def
      name: CURL_VERSION_THREADSAFE
      pos:
        line_end: 3212
        line_start: 3211
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '(1<<30) '
    - item_type: preproc_def
      name: CURLPAUSE_RECV
      pos:
        line_end: 3257
        line_start: 3256
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CURLPAUSE_RECV_CONT
      pos:
        line_end: 3258
        line_start: 3257
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURLPAUSE_SEND
      pos:
        line_end: 3260
        line_start: 3259
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CURLPAUSE_SEND_CONT
      pos:
        line_end: 3261
        line_start: 3260
        source_file: /src/curl/include/curl/curl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURLPAUSE_ALL
      pos:
        line_end: 3263
        line_start: 3262
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURLPAUSE_RECV | CURLPAUSE_SEND)
    - item_type: preproc_def
      name: CURLPAUSE_CONT
      pos:
        line_end: 3264
        line_start: 3263
        source_file: /src/curl/include/curl/curl.h
      type_or_value: (CURLPAUSE_RECV_CONT | CURLPAUSE_SEND_CONT)
    structs:
    - fields:
      - name: '*next'
        type: struct curl_httppost
      - name: '*name'
        type: char
      - name: namelength
        type: long
      - name: '*contents'
        type: char
      - name: contentslength
        type: long
      - name: '*buffer'
        type: char
      - name: bufferlength
        type: long
      - name: '*contenttype'
        type: char
      - name: '*contentheader'
        type: struct curl_slist
      - name: '*more'
        type: struct curl_httppost
      - name: flags
        type: long
      - name: '*showfilename'
        type: char
      - name: '*userp'
        type: void
      - name: contentlen
        type: curl_off_t
      item_type: struct
      name: curl_httppost
      pos:
        line_end: 229
        line_start: 187
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: '*filename'
        type: char
      - name: filetype
        type: curlfiletype
      - name: time
        type: time_t
      - name: perm
        type: unsigned int
      - name: uid
        type: int
      - name: gid
        type: int
      - name: size
        type: curl_off_t
      - name: hardlinks
        type: long int
      - name: strings
        type: "struct {\n    /* If some of these fields is not NULL, it is a pointer
          to b_data. */\n    char *time;\n    char *perm;\n    char *user;\n    char
          *group;\n    char *target; /* pointer to the target filename of a symlink
          */\n  }"
      - name: flags
        type: unsigned int
      - name: '*b_data'
        type: char
      - name: b_size
        type: size_t
      - name: b_used
        type: size_t
      item_type: struct
      name: curl_fileinfo
      pos:
        line_end: 341
        line_start: 315
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: family
        type: int
      - name: socktype
        type: int
      - name: protocol
        type: int
      - name: addrlen
        type: unsigned int
      - name: addr
        type: struct sockaddr
      item_type: struct
      name: curl_sockaddr
      pos:
        line_end: 434
        line_start: 426
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: '*key'
        type: char
      - name: len
        type: size_t
      - name: keytype
        type: enum curl_khtype
      item_type: struct
      name: curl_khkey
      pos:
        line_end: 882
        line_start: 877
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: '*name'
        type: char
      - name: namelen
        type: size_t
      - name: includeSubDomains
        type: unsigned int
      - name: expire[18]
        type: char
      item_type: struct
      name: curl_hstsentry
      pos:
        line_end: 1050
        line_start: 1045
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: index
        type: size_t
      - name: total
        type: size_t
      item_type: struct
      name: curl_index
      pos:
        line_end: 1055
        line_start: 1052
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: option
        type: CURLformoption
      - name: '*value'
        type: char
      item_type: struct
      name: curl_forms
      pos:
        line_end: 2592
        line_start: 2589
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: '*data'
        type: char
      - name: '*next'
        type: struct curl_slist
      item_type: struct
      name: curl_slist
      pos:
        line_end: 2799
        line_start: 2796
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: id
        type: curl_sslbackend
      - name: '*name'
        type: char
      item_type: struct
      name: curl_ssl_backend
      pos:
        line_end: 2830
        line_start: 2827
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: num_of_certs
        type: int
      - name: '**certinfo'
        type: struct curl_slist
      item_type: struct
      name: curl_certinfo
      pos:
        line_end: 2882
        line_start: 2876
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: backend
        type: curl_sslbackend
      - name: '*internals'
        type: void
      item_type: struct
      name: curl_tlssessioninfo
      pos:
        line_end: 2890
        line_start: 2887
        source_file: /src/curl/include/curl/curl.h
    - fields:
      - name: age
        type: CURLversion
      - name: '*version'
        type: char
      - name: version_num
        type: unsigned int
      - name: '*host'
        type: char
      - name: features
        type: int
      - name: '*ssl_version'
        type: char
      - name: ssl_version_num
        type: long
      - name: '*libz_version'
        type: char
      - name: '* const *protocols'
        type: char
      - name: '*ares'
        type: char
      - name: ares_num
        type: int
      - name: '*libidn'
        type: char
      - name: iconv_ver_num
        type: int
      - name: '*libssh_version'
        type: char
      - name: brotli_ver_num
        type: unsigned int
      - name: '*brotli_version'
        type: char
      - name: nghttp2_ver_num
        type: unsigned int
      - name: '*nghttp2_version'
        type: char
      - name: '*quic_version'
        type: char
      - name: '*cainfo'
        type: char
      - name: '*capath'
        type: char
      - name: zstd_ver_num
        type: unsigned int
      - name: '*zstd_version'
        type: char
      - name: '*hyper_version'
        type: char
      - name: '*gsasl_version'
        type: char
      - name: '* const *feature_names'
        type: char
      - name: '*rtmp_version'
        type: char
      item_type: struct
      name: curl_version_info_data
      pos:
        line_end: 3172
        line_start: 3111
        source_file: /src/curl/include/curl/curl.h
    typedefs:
    - item_type: typedef
      name: CURL
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/curl/include/curl/curl.h
      type: void
    - item_type: typedef
      name: CURLSH
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/curl/include/curl/curl.h
      type: void
    - item_type: typedef
      name: curl_socket_t
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/curl/include/curl/curl.h
      type: SOCKET
    - item_type: typedef
      name: curl_socket_t
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_progress_callback)(void *clientp,\n                                      double
        dltotal,\n                                      double dlnow,\n                                      double
        ultotal,\n                                      double ulnow)"
      pos:
        line_end: 241
        line_start: 237
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_xferinfo_callback)(void *clientp,\n                                      curl_off_t
        dltotal,\n                                      curl_off_t dlnow,\n                                      curl_off_t
        ultotal,\n                                      curl_off_t ulnow)"
      pos:
        line_end: 250
        line_start: 246
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_write_callback)(char *buffer,\n                                      size_t
        size,\n                                      size_t nitems,\n                                      void
        *outstream)"
      pos:
        line_end: 285
        line_start: 282
        source_file: /src/curl/include/curl/curl.h
      type: size_t
    - item_type: typedef
      name: "(*curl_resolver_start_callback)(void *resolver_state,\n                                            void
        *reserved, void *userdata)"
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_chunk_bgn_callback)(const void *transfer_info,\n                                        void
        *ptr,\n                                        int remains)"
      pos:
        line_end: 353
        line_start: 351
        source_file: /src/curl/include/curl/curl.h
      type: long
    - item_type: typedef
      name: (*curl_chunk_end_callback)(void *ptr)
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/curl/include/curl/curl.h
      type: long
    - item_type: typedef
      name: "(*curl_fnmatch_callback)(void *ptr,\n                                     const
        char *pattern,\n                                     const char *string)"
      pos:
        line_end: 376
        line_start: 374
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_seek_callback)(void *instream,\n                                  curl_off_t
        offset,\n                                  int origin)"
      pos:
        line_end: 385
        line_start: 383
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_read_callback)(char *buffer,\n                                     size_t
        size,\n                                     size_t nitems,\n                                     void
        *instream)"
      pos:
        line_end: 404
        line_start: 401
        source_file: /src/curl/include/curl/curl.h
      type: size_t
    - item_type: typedef
      name: "(*curl_trailer_callback)(struct curl_slist **list,\n                                     void
        *userdata)"
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_sockopt_callback)(void *clientp,\n                                     curl_socket_t
        curlfd,\n                                     curlsocktype purpose)"
      pos:
        line_end: 424
        line_start: 422
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_opensocket_callback)(void *clientp,\n                            curlsocktype
        purpose,\n                            struct curl_sockaddr *address)"
      pos:
        line_end: 439
        line_start: 436
        source_file: /src/curl/include/curl/curl.h
      type: curl_socket_t
    - item_type: typedef
      name: (*curl_closesocket_callback)(void *clientp, curl_socket_t item)
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_ioctl_callback)(CURL *handle,\n                                         int
        cmd,\n                                         void *clientp)"
      pos:
        line_end: 459
        line_start: 457
        source_file: /src/curl/include/curl/curl.h
      type: curlioerr
    - item_type: typedef
      name: '*(*curl_malloc_callback)(size_t size)'
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/curl/include/curl/curl.h
      type: void
    - item_type: typedef
      name: (*curl_free_callback)(void *ptr)
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/curl/include/curl/curl.h
      type: void
    - item_type: typedef
      name: '*(*curl_realloc_callback)(void *ptr, size_t size)'
      pos:
        line_end: 470
        line_start: 470
        source_file: /src/curl/include/curl/curl.h
      type: void
    - item_type: typedef
      name: '*(*curl_strdup_callback)(const char *str)'
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/curl/include/curl/curl.h
      type: char
    - item_type: typedef
      name: '*(*curl_calloc_callback)(size_t nmemb, size_t size)'
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/curl/include/curl/curl.h
      type: void
    - item_type: typedef
      name: "(*curl_debug_callback)\n       (CURL *handle,      /* the handle/transfer
        this concerns */\n        curl_infotype type, /* what kind of data */\n        char
        *data,        /* points to the data */\n        size_t size,       /* size
        of the data pointed to */\n        void *userptr)"
      pos:
        line_end: 494
        line_start: 489
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_prereq_callback)(void *clientp,\n                                    char
        *conn_primary_ip,\n                                    char *conn_local_ip,\n
        \                                   int conn_primary_port,\n                                    int
        conn_local_port)"
      pos:
        line_end: 501
        line_start: 497
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: (*curl_conv_callback)(char *buffer, size_t length)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/curl/include/curl/curl.h
      type: CURLcode
    - item_type: typedef
      name: "(*curl_ssl_ctx_callback)(CURL *curl,    /* easy handle */\n                                          void
        *ssl_ctx, /* actually an OpenSSL\n                                                            or
        wolfSSL SSL_CTX,\n                                                            or
        an mbedTLS\n                                                          mbedtls_ssl_config
        */\n                                          void *userptr)"
      pos:
        line_end: 787
        line_start: 782
        source_file: /src/curl/include/curl/curl.h
      type: CURLcode
    - item_type: typedef
      name: "(*curl_sshkeycallback)(CURL *easy,     /* easy handle */\n                         const
        struct curl_khkey *knownkey, /* known */\n                         const struct
        curl_khkey *foundkey, /* found */\n                         enum curl_khmatch,
        /* libcurl's view on the keys */\n                         void *clientp)"
      pos:
        line_end: 910
        line_start: 905
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_sshhostkeycallback)(void *clientp,/* custom pointer passed */\n
        \                                          /* with CURLOPT_SSH_HOSTKEYDATA
        */\n                          int keytype, /* CURLKHTYPE */\n                          const
        char *key, /* hostkey to check */\n                          size_t keylen)"
      pos:
        line_end: 918
        line_start: 913
        source_file: /src/curl/include/curl/curl.h
      type: int
    - item_type: typedef
      name: "(*curl_hstsread_callback)(CURL *easy,\n                                              struct
        curl_hstsentry *e,\n                                              void *userp)"
      pos:
        line_end: 1065
        line_start: 1063
        source_file: /src/curl/include/curl/curl.h
      type: CURLSTScode
    - item_type: typedef
      name: "(*curl_hstswrite_callback)(CURL *easy,\n                                               struct
        curl_hstsentry *e,\n                                               struct
        curl_index *i,\n                                               void *userp)"
      pos:
        line_end: 1069
        line_start: 1066
        source_file: /src/curl/include/curl/curl.h
      type: CURLSTScode
    - item_type: typedef
      name: curl_mime
      pos:
        line_end: 2430
        line_start: 2430
        source_file: /src/curl/include/curl/curl.h
      type: curl_mime
    - item_type: typedef
      name: curl_mimepart
      pos:
        line_end: 2431
        line_start: 2431
        source_file: /src/curl/include/curl/curl.h
      type: curl_mimepart
    - item_type: typedef
      name: "(*curl_formget_callback)(void *arg, const char *buf,\n                                        size_t
        len)"
      pos:
        line_end: 2648
        line_start: 2647
        source_file: /src/curl/include/curl/curl.h
      type: size_t
    - item_type: typedef
      name: curl_ssl_backend
      pos:
        line_end: 2831
        line_start: 2831
        source_file: /src/curl/include/curl/curl.h
      type: curl_ssl_backend
    - item_type: typedef
      name: "(*curl_lock_function)(CURL *handle,\n                                   curl_lock_data
        data,\n                                   curl_lock_access locktype,\n                                   void
        *userptr)"
      pos:
        line_end: 3055
        line_start: 3052
        source_file: /src/curl/include/curl/curl.h
      type: void
    - item_type: typedef
      name: "(*curl_unlock_function)(CURL *handle,\n                                     curl_lock_data
        data,\n                                     void *userptr)"
      pos:
        line_end: 3058
        line_start: 3056
        source_file: /src/curl/include/curl/curl.h
      type: void
    - item_type: typedef
      name: curl_version_info_data
      pos:
        line_end: 3173
        line_start: 3173
        source_file: /src/curl/include/curl/curl.h
      type: curl_version_info_data
    - item_type: typedef
      name: "curl_ssls_export_cb(CURL *curl,\n                                     void
        *userptr,\n                                     const char *session_key,\n
        \                                    const unsigned char *shmac,\n                                     size_t
        shmac_len,\n                                     const unsigned char *sdata,\n
        \                                    size_t sdata_len,\n                                     curl_off_t
        valid_until,\n                                     int ietf_tls_id,\n                                     const
        char *alpn,\n                                     size_t earlydata_max)"
      pos:
        line_end: 3292
        line_start: 3282
        source_file: /src/curl/include/curl/curl.h
      type: CURLcode
    union: []
- function_names: []
  source_file: /src/curl/include/curl/options.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLOT_FLAG_ALIAS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/include/curl/options.h
      type_or_value: (1 << 0)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: id
        type: CURLoption
      - name: type
        type: curl_easytype
      - name: flags
        type: unsigned int
      item_type: struct
      name: curl_easyoption
      pos:
        line_end: 55
        line_start: 50
        source_file: /src/curl/include/curl/options.h
    typedefs: []
    union: []
- function_names:
  - curl_easy_setopt
  - curl_easy_getinfo
  - curl_multi_setopt
  - curlcheck_multicb_data_option
  - curlcheck_charpp_option
  - curlcheck_multitimer_cb
  - curlcheck_multisocket_cb
  - curlcheck_multipush_cb
  - curlcheck_multinotify_cb
  - curl_share_setopt
  - CURLWARNING
  - curlcheck_long_option
  - curlcheck_off_t_option
  - curlcheck_curl_option
  - curlcheck_string_option
  - curlcheck_write_cb_option
  - curlcheck_conv_cb_option
  - curlcheck_cb_data_option
  - curlcheck_postfields_option
  - curlcheck_slist_option
  - curlcheck_string_info
  - curlcheck_long_info
  - curlcheck_double_info
  - curlcheck_slist_info
  - curlcheck_tlssessioninfo_info
  - curlcheck_certinfo_info
  - curlcheck_socket_info
  - curlcheck_off_t_info
  - curlcheck_any_ptr
  - curlcheck_NULL
  - curlcheck_ptr
  - curlcheck_ptrptr
  - curlcheck_arr
  - curlcheck_string
  - curlcheck_curl
  - curlcheck_long
  - curlcheck_off_t
  - curlcheck_error_buffer
  - curlcheck_cb_data
  - curlcheck_cb_data
  - curlcheck_FILE
  - curlcheck_postfields
  - curlcheck_cb_compatible
  - curlcheck_resolver_start_callback
  - curlcheck_read_cb
  - curlcheck_write_cb
  - curlcheck_ioctl_cb
  - curlcheck_sockopt_cb
  - curlcheck_opensocket_cb
  - curlcheck_progress_cb
  - curlcheck_xferinfo_cb
  - curlcheck_debug_cb
  - curlcheck_ssl_ctx_cb
  - curlcheck_conv_cb
  - curlcheck_seek_cb
  - curlcheck_chunk_bgn_cb
  - curlcheck_chunk_end_cb
  - curlcheck_close_socket_cb
  - curlcheck_fnmatch_cb
  - curlcheck_hstsread_cb
  - curlcheck_hstswrite_cb
  - curlcheck_ssh_hostkey_cb
  - curlcheck_ssh_key_cb
  - curlcheck_interleave_cb
  - curlcheck_prereq_cb
  - curlcheck_trailer_cb
  source_file: /src/curl/include/curl/typecheck-gcc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*Wcurl_read_callback1)(char *, size_t, size_t, void *)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_read_callback2)(char *, size_t, size_t, const void *)
      pos:
        line_end: 726
        line_start: 726
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_read_callback3)(char *, size_t, size_t, FILE *)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_read_callback4)(void *, size_t, size_t, void *)
      pos:
        line_end: 728
        line_start: 728
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_read_callback5)(void *, size_t, size_t, const void *)
      pos:
        line_end: 729
        line_start: 729
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_read_callback6)(void *, size_t, size_t, FILE *)
      pos:
        line_end: 730
        line_start: 730
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_write_callback1)(const char *, size_t, size_t, void *)
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: "(*Wcurl_write_callback2)(const char *, size_t, size_t,\n                                        const
        void *)"
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_write_callback3)(const char *, size_t, size_t, FILE *)
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_write_callback4)(const void *, size_t, size_t, void *)
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: "(*Wcurl_write_callback5)(const void *, size_t, size_t,\n                                        const
        void *)"
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_write_callback6)(const void *, size_t, size_t, FILE *)
      pos:
        line_end: 750
        line_start: 750
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: (*Wcurl_ioctl_callback1)(CURL *, int, void *)
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: curlioerr
    - item_type: typedef
      name: (*Wcurl_ioctl_callback2)(CURL *, int, const void *)
      pos:
        line_end: 761
        line_start: 761
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: curlioerr
    - item_type: typedef
      name: (*Wcurl_ioctl_callback3)(CURL *, curliocmd, void *)
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: curlioerr
    - item_type: typedef
      name: (*Wcurl_ioctl_callback4)(CURL *, curliocmd, const void *)
      pos:
        line_end: 763
        line_start: 763
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: curlioerr
    - item_type: typedef
      name: (*Wcurl_sockopt_callback1)(void *, curl_socket_t, curlsocktype)
      pos:
        line_end: 771
        line_start: 771
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_sockopt_callback2)(const void *, curl_socket_t,\n                                       curlsocktype)"
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_opensocket_callback1)\n  (void *, curlsocktype, struct curl_sockaddr
        *)"
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: curl_socket_t
    - item_type: typedef
      name: "(*Wcurl_opensocket_callback2)\n  (void *, curlsocktype, const struct
        curl_sockaddr *)"
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: curl_socket_t
    - item_type: typedef
      name: "(*Wcurl_opensocket_callback3)\n  (const void *, curlsocktype, struct
        curl_sockaddr *)"
      pos:
        line_end: 789
        line_start: 788
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: curl_socket_t
    - item_type: typedef
      name: "(*Wcurl_opensocket_callback4)\n  (const void *, curlsocktype, const struct
        curl_sockaddr *)"
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: curl_socket_t
    - item_type: typedef
      name: "(*Wcurl_progress_callback1)(void *,\n    double, double, double, double)"
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_progress_callback2)(const void *,\n    double, double, double,
        double)"
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_debug_callback1)(CURL *,\n    curl_infotype, char *, size_t,
        void *)"
      pos:
        line_end: 822
        line_start: 821
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_debug_callback2)(CURL *,\n    curl_infotype, char *, size_t,
        const void *)"
      pos:
        line_end: 824
        line_start: 823
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_debug_callback3)(CURL *,\n    curl_infotype, const char *, size_t,
        void *)"
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_debug_callback4)(CURL *,\n    curl_infotype, const char *, size_t,
        const void *)"
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_debug_callback5)(CURL *,\n    curl_infotype, unsigned char *,
        size_t, void *)"
      pos:
        line_end: 830
        line_start: 829
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_debug_callback6)(CURL *,\n    curl_infotype, unsigned char *,
        size_t, const void *)"
      pos:
        line_end: 832
        line_start: 831
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_debug_callback7)(CURL *,\n    curl_infotype, const unsigned char
        *, size_t, void *)"
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: "(*Wcurl_debug_callback8)(CURL *,\n    curl_infotype, const unsigned char
        *, size_t, const void *)"
      pos:
        line_end: 836
        line_start: 835
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: int
    - item_type: typedef
      name: (*Wcurl_ssl_ctx_callback1)(CURL *, void *, void *)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_ssl_ctx_callback2)(CURL *, void *, const void *)
      pos:
        line_end: 852
        line_start: 852
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_ssl_ctx_callback3)(CURL *, const void *, void *)
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: "(*Wcurl_ssl_ctx_callback4)(CURL *, const void *,\n                                            const
        void *)"
      pos:
        line_end: 855
        line_start: 854
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_ssl_ctx_callback5)(CURL *, SSL_CTX *, void *)
      pos:
        line_end: 860
        line_start: 860
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_ssl_ctx_callback6)(CURL *, SSL_CTX *, const void *)
      pos:
        line_end: 861
        line_start: 861
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_ssl_ctx_callback7)(CURL *, const SSL_CTX *, void *)
      pos:
        line_end: 862
        line_start: 862
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: "(*Wcurl_ssl_ctx_callback8)(CURL *, const SSL_CTX *,\n                                            const
        void *)"
      pos:
        line_end: 864
        line_start: 863
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: Wcurl_ssl_ctx_callback5
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: Wcurl_ssl_ctx_callback1
    - item_type: typedef
      name: Wcurl_ssl_ctx_callback6
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: Wcurl_ssl_ctx_callback1
    - item_type: typedef
      name: Wcurl_ssl_ctx_callback7
      pos:
        line_end: 868
        line_start: 868
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: Wcurl_ssl_ctx_callback1
    - item_type: typedef
      name: Wcurl_ssl_ctx_callback8
      pos:
        line_end: 869
        line_start: 869
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: Wcurl_ssl_ctx_callback1
    - item_type: typedef
      name: (*Wcurl_conv_callback1)(char *, size_t length)
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_conv_callback2)(const char *, size_t length)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_conv_callback3)(void *, size_t length)
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_conv_callback4)(const void *, size_t length)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_seek_callback1)(void *, curl_off_t, int)
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: (*Wcurl_seek_callback2)(const void *, curl_off_t, int)
      pos:
        line_end: 892
        line_start: 892
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: CURLcode
    - item_type: typedef
      name: "(*Wcurl_chunk_bgn_callback1)(struct curl_fileinfo *,\n                                          void
        *, int)"
      pos:
        line_end: 901
        line_start: 900
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: long
    - item_type: typedef
      name: (*Wcurl_chunk_bgn_callback2)(void *, void *, int)
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: long
    - item_type: typedef
      name: "(*Wcurl_interleave_callback1)(void *p, size_t s,\n                                             size_t
        n, void *u)"
      pos:
        line_end: 945
        line_start: 944
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    - item_type: typedef
      name: "(*Wcurl_interleave_callback2)(char *p, size_t s,\n                                             size_t
        n, void *u)"
      pos:
        line_end: 947
        line_start: 946
        source_file: /src/curl/include/curl/typecheck-gcc.h
      type: size_t
    union: []
- function_names: []
  source_file: /src/curl/include/curl/stdcheaders.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURL_POPCOUNT64
  - CURL_CTZ64
  - CURL_POPCOUNT64
  - CURL_CTZ64
  source_file: /src/curl/include/curl/system.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/include/curl/system.h
      type_or_value: __int64
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"I64d"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"I64u"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/include/curl/system.h
      type_or_value: i64
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/include/curl/system.h
      type_or_value: ui64
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/include/curl/system.h
      type_or_value: __int64
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"I64d"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"I64u"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/include/curl/system.h
      type_or_value: i64
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/include/curl/system.h
      type_or_value: ui64
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/curl/include/curl/system.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PULL_SYS_SOCKET_H
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/curl/include/curl/system.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/curl/include/curl/system.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/curl/include/curl/system.h
      type_or_value: __int64
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"I64d"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"I64u"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/curl/include/curl/system.h
      type_or_value: i64
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/curl/include/curl/system.h
      type_or_value: ui64
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/curl/include/curl/system.h
      type_or_value: PRId64
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/curl/include/curl/system.h
      type_or_value: PRIu64
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/curl/include/curl/system.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/curl/include/curl/system.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PULL_SYS_SOCKET_H
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/curl/include/curl/system.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PULL_SYS_SOCKET_H
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/curl/include/curl/system.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PULL_SYS_SOCKET_H
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/curl/include/curl/system.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PULL_SYS_SOCKET_H
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/curl/include/curl/system.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PULL_SYS_SOCKET_H
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/curl/include/curl/system.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PULL_SYS_SOCKET_H
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/curl/include/curl/system.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PULL_SYS_SOCKET_H
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/curl/include/curl/system.h
      type_or_value: PRId64
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/curl/include/curl/system.h
      type_or_value: PRIu64
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"I64d"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"I64u"'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/curl/include/curl/system.h
      type_or_value: __int64
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/curl/include/curl/system.h
      type_or_value: i64
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/curl/include/curl/system.h
      type_or_value: ui64
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/curl/include/curl/system.h
      type_or_value: long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/curl/include/curl/system.h
      type_or_value: L
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/curl/include/curl/system.h
      type_or_value: UL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/curl/include/curl/system.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: CURL_PULL_SYS_TYPES_H
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PULL_SYS_SOCKET_H
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/curl/include/curl/system.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_OFF_T
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/curl/include/curl/system.h
      type_or_value: long long
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/curl/include/curl/system.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_T
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/curl/include/curl/system.h
      type_or_value: LL
    - item_type: preproc_def
      name: CURL_SUFFIX_CURL_OFF_TU
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/curl/include/curl/system.h
      type_or_value: ULL
    - item_type: preproc_def
      name: CURL_TYPEOF_CURL_SOCKLEN_T
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/curl/include/curl/system.h
      type_or_value: int
    structs: []
    typedefs:
    - item_type: typedef
      name: curl_socklen_t
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/curl/include/curl/system.h
      type: CURL_TYPEOF_CURL_SOCKLEN_T
    - item_type: typedef
      name: curl_off_t
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/curl/include/curl/system.h
      type: CURL_TYPEOF_CURL_OFF_T
    union: []
- function_names:
  - CURL_TEMP_PRINTF
  - CURL_TEMP_PRINTF
  source_file: /src/curl/include/curl/mprintf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/include/curl/websockets.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLWS_TEXT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/include/curl/websockets.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CURLWS_BINARY
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/include/curl/websockets.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CURLWS_CONT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/include/curl/websockets.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CURLWS_CLOSE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/include/curl/websockets.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CURLWS_PING
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/include/curl/websockets.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: CURLWS_OFFSET
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/include/curl/websockets.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: CURLWS_PONG
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/include/curl/websockets.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: CURLWS_RAW_MODE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/include/curl/websockets.h
      type_or_value: (1L << 0)
    - item_type: preproc_def
      name: CURLWS_NOAUTOPONG
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/include/curl/websockets.h
      type_or_value: (1L << 1)
    structs:
    - fields:
      - name: age
        type: int
      - name: flags
        type: int
      - name: offset
        type: curl_off_t
      - name: bytesleft
        type: curl_off_t
      - name: len
        type: size_t
      item_type: struct
      name: curl_ws_frame
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/curl/include/curl/websockets.h
    typedefs: []
    union: []
- function_names:
  - curl_multi_socket
  source_file: /src/curl/include/curl/multi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLM_CALL_MULTI_SOCKET
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/include/curl/multi.h
      type_or_value: CURLM_CALL_MULTI_PERFORM
    - item_type: preproc_def
      name: CURLPIPE_NOTHING
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/include/curl/multi.h
      type_or_value: 0L
    - item_type: preproc_def
      name: CURLPIPE_HTTP1
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/include/curl/multi.h
      type_or_value: 1L
    - item_type: preproc_def
      name: CURLPIPE_MULTIPLEX
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/include/curl/multi.h
      type_or_value: 2L
    - item_type: preproc_def
      name: CURL_WAIT_POLLIN
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: CURL_WAIT_POLLPRI
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: CURL_WAIT_POLLOUT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: CURL_POLL_NONE
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_POLL_IN
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_POLL_OUT
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CURL_POLL_INOUT
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CURL_POLL_REMOVE
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CURL_SOCKET_TIMEOUT
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/curl/include/curl/multi.h
      type_or_value: CURL_SOCKET_BAD
    - item_type: preproc_def
      name: CURL_CSELECT_IN
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: CURL_CSELECT_OUT
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: CURL_CSELECT_ERR
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: CURLMNWC_CLEAR_ALL
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/curl/include/curl/multi.h
      type_or_value: (1L << 0)
    - item_type: preproc_def
      name: CURLMNWC_CLEAR_CONNS
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/curl/include/curl/multi.h
      type_or_value: (1L << 1)
    - item_type: preproc_def
      name: CURLMNWC_CLEAR_DNS
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/curl/include/curl/multi.h
      type_or_value: (1L << 2)
    - item_type: preproc_def
      name: CURL_PUSH_OK
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_PUSH_DENY
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_PUSH_ERROROUT
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: CURLMNOTIFY_INFO_READ
      pos:
        line_end: 539
        line_start: 538
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURLMNOTIFY_EASY_DONE
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/curl/include/curl/multi.h
      type_or_value: '1'
    structs:
    - fields:
      - name: msg
        type: CURLMSG
      - name: '*easy_handle'
        type: CURL
      - name: data
        type: "union {\n    void *whatever;    /* message-specific data */\n    CURLcode
          result;   /* return code for transfer */\n  }"
      item_type: struct
      name: CURLMsg
      pos:
        line_end: 102
        line_start: 95
        source_file: /src/curl/include/curl/multi.h
    - fields:
      - name: fd
        type: curl_socket_t
      - name: events
        type: short
      - name: revents
        type: short
      item_type: struct
      name: curl_waitfd
      pos:
        line_end: 116
        line_start: 112
        source_file: /src/curl/include/curl/multi.h
    typedefs:
    - item_type: typedef
      name: CURLM
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/curl/include/curl/multi.h
      type: void
    - item_type: typedef
      name: CURLMsg
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/curl/include/curl/multi.h
      type: CURLMsg
    - item_type: typedef
      name: "(*curl_socket_callback)(CURL *easy,      /* easy handle */\n                                    curl_socket_t
        s, /* socket */\n                                    int what,        /* see
        above */\n                                    void *userp,     /* private
        callback\n                                                        pointer
        */\n                                    void *socketp)"
      pos:
        line_end: 298
        line_start: 293
        source_file: /src/curl/include/curl/multi.h
      type: int
    - item_type: typedef
      name: "(*curl_multi_timer_callback)(CURLM *m,        /* multi handle */\n                                         long
        timeout_ms, /* see above */\n                                         void
        *userp)"
      pos:
        line_end: 312
        line_start: 310
        source_file: /src/curl/include/curl/multi.h
      type: int
    - item_type: typedef
      name: "(*curl_push_callback)(CURL *parent,\n                                  CURL
        *easy,\n                                  size_t num_headers,\n                                  struct
        curl_pushheaders *headers,\n                                  void *userp)"
      pos:
        line_end: 519
        line_start: 515
        source_file: /src/curl/include/curl/multi.h
      type: int
    - item_type: typedef
      name: "(*curl_notify_callback)(CURLM *m,\n                                     unsigned
        int notification,\n                                     CURL *easy,\n                                     void
        *user_data)"
      pos:
        line_end: 547
        line_start: 544
        source_file: /src/curl/include/curl/multi.h
      type: void
    union: []
- function_names: []
  source_file: /src/curl/include/curl/header.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLH_HEADER
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/include/curl/header.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: CURLH_TRAILER
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/include/curl/header.h
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: CURLH_CONNECT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/include/curl/header.h
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: CURLH_1XX
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/include/curl/header.h
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: CURLH_PSEUDO
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/include/curl/header.h
      type_or_value: '(1 << 4) '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      - name: amount
        type: size_t
      - name: index
        type: size_t
      - name: origin
        type: unsigned int
      - name: '*anchor'
        type: void
      item_type: struct
      name: curl_header
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/curl/include/curl/header.h
    typedefs: []
    union: []
- function_names:
  - calc
  - showtable
  - main
  source_file: /src/curl/scripts/schemetable.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - main
  - main
  - main
  - main
  - main
  - main
  - main
  - main
  - main
  - main
  - main
  - check
  - main
  - check
  - main
  - main
  - main
  - main
  - main
  - main
  - enquote
  - expand
  - main
  - enquote
  - expand
  - main
  source_file: /src/curl/CMake/CurlTests.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LARGE_OFF_T
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/curl/CMake/CurlTests.c
      type_or_value: (((off_t)1 << 62) - 1 + ((off_t)1 << 62))
    structs: []
    typedefs: []
    union: []
- function_names:
  - share_destroy
  - curl_share_init
  - share_ref_inc
  - share_ref_dec
  - share_has_been_shared
  - share_lock_acquire
  - share_lock_release
  - share_in_use
  - share_unlink
  - curl_share_setopt
  - curl_share_cleanup
  - Curl_share_lock
  - Curl_share_unlock
  - Curl_share_easy_unlink
  - Curl_share_easy_link
  source_file: /src/curl/lib/curl_share.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cw_out_buf_create
  - cw_out_buf_free
  - cw_out_init
  - cw_out_bufs_free
  - cw_out_bufs_len
  - cw_out_close
  - cw_get_writefunc
  - cw_out_cb_write
  - cw_out_ptr_flush
  - cw_out_buf_flush
  - cw_out_flush_chain
  - cw_out_append
  - cw_out_do_write
  - cw_out_write
  - Curl_cw_out_is_paused
  - cw_out_flush
  - Curl_cw_out_unpause
  - Curl_cw_out_done
  source_file: /src/curl/lib/cw-out.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct cw_out_buf
      - name: b
        type: struct dynbuf
      - name: type
        type: cw_out_type
      item_type: struct
      name: cw_out_buf
      pos:
        line_end: 76
        line_start: 72
        source_file: /src/curl/lib/cw-out.c
    - fields:
      - name: super
        type: struct Curl_cwriter
      - name: '*buf'
        type: struct cw_out_buf
      item_type: struct
      name: cw_out_ctx
      pos:
        line_end: 101
        line_start: 96
        source_file: /src/curl/lib/cw-out.c
    typedefs: []
    union: []
- function_names:
  - RESOLV_FAIL
  - IS_RESOLV_FAIL
  - ipv6works
  - Curl_resolv_dns_queries
  - Curl_resolv_query_str
  - Curl_printable_address
  - get_localhost6
  - get_localhost6
  - get_localhost
  - Curl_probeipv6
  - ipv6works
  - Curl_host_is_ipnum
  - tailmatch
  - hostip_resolv_failed
  - can_resolve_dns_queries
  - Curl_resolv_announce_start
  - hostip_async_new
  - hostip_resolv_take_result
  - Curl_resolv_elapsed_ms
  - Curl_resolv_has_answers
  - Curl_resolv_get_ai
  - Curl_resolv_get_https
  - Curl_resolv_knows_https
  - hostip_resolv_start
  - hostip_resolv
  - Curl_resolv_blocking
  - alarmfunc
  - resolv_alarm_timeout
  - resolv_unix
  - Curl_resolv
  - Curl_async_get
  - Curl_resolv_take_result
  - Curl_resolv_pollset
  - Curl_resolv_destroy
  - Curl_resolv_shutdown_all
  - Curl_resolv_destroy_all
  source_file: /src/curl/lib/hostip.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/easyoptions.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURL_POPCOUNT64
  - CURL_CTZ64
  source_file: /src/curl/lib/uint-bset.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*slots'
        type: uint64_t
      - name: nslots
        type: uint32_t
      - name: first_slot_used
        type: uint32_t
      item_type: struct
      name: uint32_bset
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/curl/lib/uint-bset.h
    typedefs: []
    union: []
- function_names:
  - r_freeaddrinfo
  - async_addrinfo_cb
  - mk_getaddrinfo
  - r_getaddrinfo
  source_file: /src/curl/lib/fake_addrinfo.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*addr'
        type: struct ares_addrinfo
      item_type: struct
      name: context
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/curl/lib/fake_addrinfo.c
    typedefs: []
    union: []
- function_names:
  - Curl_pp_state_timeleft_ms
  - Curl_pp_statemach
  - Curl_pp_init
  - Curl_pp_vsendf
  - Curl_pp_sendf
  - pingpong_read
  - Curl_pp_readresp
  - Curl_pp_pollset
  - Curl_pp_needs_flush
  - Curl_pp_flushsend
  - Curl_pp_disconnect
  - Curl_pp_moredata
  source_file: /src/curl/lib/pingpong.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_http2_may_switch
  - Curl_http2_request_upgrade
  - Curl_http2_switch
  - Curl_h2_http_1_1_error
  source_file: /src/curl/lib/http2.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_MAX_CONCURRENT_STREAMS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/http2.h
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_hmac.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HMAC_MD5_LENGTH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/curl_hmac.h
      type_or_value: '16'
    structs:
    - fields:
      - name: hinit
        type: HMAC_hinit
      - name: hupdate
        type: HMAC_hupdate
      - name: hfinal
        type: HMAC_hfinal
      - name: ctxtsize
        type: unsigned int
      - name: maxkeylen
        type: unsigned int
      - name: resultlen
        type: unsigned int
      item_type: struct
      name: HMAC_params
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/curl/lib/curl_hmac.h
    - fields:
      - name: '*hash'
        type: struct HMAC_params
      - name: '*hashctxt1'
        type: void
      - name: '*hashctxt2'
        type: void
      item_type: struct
      name: HMAC_context
      pos:
        line_end: 53
        line_start: 49
        source_file: /src/curl/lib/curl_hmac.h
    typedefs:
    - item_type: typedef
      name: (*HMAC_hinit)(void *context)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/curl/lib/curl_hmac.h
      type: CURLcode
    - item_type: typedef
      name: "(*HMAC_hupdate)(void *context,\n                             const unsigned
        char *data,\n                             unsigned int len)"
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/curl/lib/curl_hmac.h
      type: void
    - item_type: typedef
      name: (*HMAC_hfinal)(unsigned char *result, void *context)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/curl/lib/curl_hmac.h
      type: void
    union: []
- function_names: []
  source_file: /src/curl/lib/ftp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_ACCEPT_TIMEOUT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/ftp.h
      type_or_value: '60000 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_range.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/bufq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFQ_OPT_NONE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/lib/bufq.h
      type_or_value: '0'
    - item_type: preproc_def
      name: BUFQ_OPT_SOFT_LIMIT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/curl/lib/bufq.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: BUFQ_OPT_NO_SPARES
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/lib/bufq.h
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: '*next'
        type: struct buf_chunk
      - name: dlen
        type: size_t
      - name: r_offset
        type: size_t
      - name: w_offset
        type: size_t
      - name: x
        type: "union {\n    uint8_t data[1];       /* the buffer for `dlen` bytes
          */\n    void *dummy;           /* alignment */\n  }"
      item_type: struct
      name: buf_chunk
      pos:
        line_end: 41
        line_start: 32
        source_file: /src/curl/lib/bufq.h
    - fields:
      - name: '*spare'
        type: struct buf_chunk
      - name: chunk_size
        type: size_t
      - name: spare_count
        type: size_t
      - name: spare_max
        type: size_t
      item_type: struct
      name: bufc_pool
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/curl/lib/bufq.h
    - fields:
      - name: '*head'
        type: struct buf_chunk
      - name: '*tail'
        type: struct buf_chunk
      - name: '*spare'
        type: struct buf_chunk
      - name: '*pool'
        type: struct bufc_pool
      - name: chunk_count
        type: size_t
      - name: max_chunks
        type: size_t
      - name: chunk_size
        type: size_t
      - name: opts
        type: int
      item_type: struct
      name: bufq
      pos:
        line_end: 99
        line_start: 90
        source_file: /src/curl/lib/bufq.h
    typedefs:
    - item_type: typedef
      name: "Curl_bufq_writer(void *writer_ctx,\n                                  const
        uint8_t *buf, size_t len,\n                                  size_t *pwritten)"
      pos:
        line_end: 205
        line_start: 203
        source_file: /src/curl/lib/bufq.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_bufq_reader(void *reader_ctx,\n                                  uint8_t
        *buf, size_t len,\n                                  size_t *pnread)"
      pos:
        line_end: 221
        line_start: 219
        source_file: /src/curl/lib/bufq.h
      type: CURLcode
    union: []
- function_names:
  - file_cleanup
  - file_easy_dtor
  - file_setup_connection
  - file_done
  - file_connect
  - file_disconnect
  - file_upload
  - file_do
  source_file: /src/curl/lib/file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOS_FILESYSTEM
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/file.c
      type_or_value: '1'
    - item_type: preproc_def
      name: AMIGA_FILESYSTEM
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/lib/file.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_META_FILE_EASY
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/lib/file.c
      type_or_value: '"meta:proto:file:easy"'
    - item_type: preproc_def
      name: DIRSEP
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/curl/lib/file.c
      type_or_value: '''\\'''
    - item_type: preproc_def
      name: DIRSEP
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/curl/lib/file.c
      type_or_value: '''/'''
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: '*freepath'
        type: char
      - name: fd
        type: int
      item_type: struct
      name: FILEPROTO
      pos:
        line_end: 82
        line_start: 77
        source_file: /src/curl/lib/file.c
    typedefs: []
    union: []
- function_names:
  - Curl_bufref_dup
  source_file: /src/curl/lib/bufref.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*dtor)(void *)
        type: void
      - name: '*ptr'
        type: unsigned char
      - name: len
        type: size_t
      item_type: struct
      name: bufref
      pos:
        line_end: 36
        line_start: 29
        source_file: /src/curl/lib/bufref.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/http1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H1_PARSE_OPT_NONE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/http1.h
      type_or_value: '0'
    - item_type: preproc_def
      name: H1_PARSE_OPT_STRICT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/http1.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: H1_PARSE_DEFAULT_MAX_LINE_LEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/http1.h
      type_or_value: DYN_HTTP_REQUEST
    structs:
    - fields:
      - name: '*req'
        type: struct httpreq
      - name: scratch
        type: struct dynbuf
      - name: scratch_skip
        type: size_t
      - name: '*line'
        type: char
      - name: max_line_len
        type: size_t
      - name: line_len
        type: size_t
      item_type: struct
      name: h1_req_parser
      pos:
        line_end: 44
        line_start: 36
        source_file: /src/curl/lib/http1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/http_ntlm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - thrdq_item_create
  - thrdq_item_destroy
  - thrdq_item_list_dtor
  - thrdq_tpool_take
  - thrdq_tpool_return
  - thrdq_tpool_process
  - thrdq_unlink
  - Curl_thrdq_create
  - Curl_thrdq_destroy
  - Curl_thrdq_send
  - Curl_thrdq_recv
  - thrdq_llist_clean_matches
  - Curl_thrdq_clear
  - thrdq_await_done
  - Curl_thrdq_set_props
  - Curl_thrdq_trace
  source_file: /src/curl/lib/thrdqueue.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: lock
        type: curl_mutex_t
      - name: await
        type: curl_cond_t
      - name: sendq
        type: struct Curl_llist
      - name: recvq
        type: struct Curl_llist
      - name: '*tpool'
        type: struct curl_thrdpool
      - name: '*fn_free'
        type: Curl_thrdq_item_free_cb
      - name: '*fn_process'
        type: Curl_thrdq_item_process_cb
      - name: '*fn_event'
        type: Curl_thrdq_ev_cb
      - name: '*fn_user_data'
        type: void
      - name: send_max_len
        type: uint32_t
      item_type: struct
      name: curl_thrdq
      pos:
        line_end: 51
        line_start: 38
        source_file: /src/curl/lib/thrdqueue.c
    - fields:
      - name: node
        type: struct Curl_llist_node
      - name: '*fn_free'
        type: Curl_thrdq_item_free_cb
      - name: '*fn_process'
        type: Curl_thrdq_item_process_cb
      - name: '*item'
        type: void
      - name: start
        type: struct curltime
      - name: timeout_ms
        type: timediff_t
      - name: '*description'
        type: char
      item_type: struct
      name: thrdq_item
      pos:
        line_end: 61
        line_start: 53
        source_file: /src/curl/lib/thrdqueue.c
    typedefs: []
    union: []
- function_names:
  - Curl_fileinfo_alloc
  - Curl_fileinfo_cleanup
  source_file: /src/curl/lib/fileinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/dict.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/file.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cidr4_match
  - cidr6_match
  - match_host
  - match_ip
  - Curl_check_noproxy
  source_file: /src/curl/lib/noproxy.c
  types:
    enum:
    - enumerators:
      - name: TYPE_HOST
      - name: TYPE_IPV6
      - name: TYPE_IPV4
      item_type: enum
      name: nametype
      pos:
        line_end: 122
        line_start: 118
        source_file: /src/curl/lib/noproxy.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURLM_NTFY
  - CURL_MNTFY_HAS_ENTRIES
  source_file: /src/curl/lib/multi_ntfy.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ntfy_cb
        type: curl_notify_callback
      - name: '*ntfy_cb_data'
        type: void
      - name: enabled
        type: struct uint32_bset
      - name: '*head'
        type: struct mntfy_chunk
      - name: '*tail'
        type: struct mntfy_chunk
      - name: failure
        type: CURLMcode
      item_type: struct
      name: curl_multi_ntfy
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/curl/lib/multi_ntfy.h
    typedefs: []
    union: []
- function_names:
  - IDN2_LOOKUP
  - IDN2_LOOKUP
  - iconv_to_utf8
  - mac_idn_to_ascii
  - mac_ascii_to_idn
  - idn_curlx_convert_wchar_to_UTF8
  - win32_idn_to_ascii
  - win32_ascii_to_idn
  - Curl_is_ASCII_name
  - Curl_is_ASCII_str
  - idn_decode
  - idn_encode
  - Curl_idn_decode
  - Curl_idn_encode
  - Curl_free_idnconverted_hostname
  - Curl_idnconvert_hostname
  source_file: /src/curl/lib/idn.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HOST_LENGTH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/idn.c
      type_or_value: '512'
    - item_type: preproc_def
      name: IDN_MAX_LENGTH
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/curl/lib/idn.c
      type_or_value: '255'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_http_neg_init
  - Curl_http_setup_conn
  - Curl_checkProxyheaders
  - header_has_value
  - http_header_is_empty
  - copy_custom_value
  - Curl_copy_header_value
  - http_output_basic
  - http_output_bearer
  - pickoneauth
  - http_perhapsrewind
  - http_should_fail
  - Curl_http_auth_act
  - output_auth_headers
  - Curl_http_output_auth
  - Curl_http_output_auth
  - authcmp
  - auth_spnego
  - auth_ntlm
  - auth_digest
  - auth_basic
  - auth_bearer
  - Curl_http_input_auth
  - http_switch_to_get
  - HTTPREQ_IS_POST
  - Curl_http_follow
  - Curl_compareheader
  - http_exp100_continue
  - cr_exp100_read
  - cr_exp100_done
  - http_exp100_add_reader
  - http_exp100_got100
  - http_exp100_is_waiting
  - http_exp100_send_anyway
  - http_exp100_is_selected
  - Curl_http_doing_pollset
  - Curl_http_perform_pollset
  - http_write_header
  - Curl_http_done
  - http_may_use_1_1
  - http_request_version
  - get_http_string
  - Curl_add_custom_headers
  - Curl_add_timecondition
  - Curl_add_timecondition
  - Curl_http_method
  - http_useragent
  - http_set_aptr_host
  - http_target
  - set_post_reader
  - set_reader
  - http_resume
  - http_req_set_TE
  - addexpect
  - http_add_content_hds
  - http_cookies
  - http_cookies
  - http_range
  - http_firstwrite
  - http_check_new_conn
  - http_add_connection_hd
  - http_add_hd
  - Curl_http
  - checkprefixmax
  - checkhttpprefix
  - checkrtspprefix
  - checkprotoprefix
  - HD_IS
  - HD_VAL
  - HD_IS_AND_SAYS
  - http_header_a
  - http_header_c
  - http_header_l
  - http_header_p
  - http_header_r
  - http_header_s
  - http_header_t
  - http_header_w
  - http_header
  - http_statusline
  - http_size
  - Curl_verify_header
  - Curl_bump_headersize
  - http_on_101_upgrade
  - http_on_1xx_response
  - http_check_auth_closure
  - http_handle_send_error
  - http_on_response
  - http_rw_hd
  - Curl_http_to_fold
  - unfold_header
  - http_parse_headers
  - Curl_http_write_resp_hd
  - Curl_http_write_resp_hds
  - Curl_http_write_resp
  - Curl_http_decode_status
  - Curl_http_req_make
  - req_assign_url_authority
  - req_assign_url_path
  - Curl_http_req_make2
  - Curl_http_req_free
  - h2_permissible_field
  - http_TE_has_token
  - Curl_http_req_to_h2
  - Curl_http_resp_make
  - Curl_http_resp_free
  source_file: /src/curl/lib/http.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: struct Curl_creader
      - name: start
        type: struct curltime
      - name: state
        type: enum expect100
      item_type: struct
      name: cr_exp100_ctx
      pos:
        line_end: 1447
        line_start: 1443
        source_file: /src/curl/lib/http.c
    - fields:
      - name: '*name'
        type: char
      - name: namelen
        type: size_t
      item_type: struct
      name: name_const
      pos:
        line_end: 4868
        line_start: 4865
        source_file: /src/curl/lib/http.c
    typedefs: []
    union: []
- function_names:
  - GOOD_EASY_HANDLE
  - GOOD_EASY_HANDLE
  - CUR_IP_QUAD_HAS_PORTS
  - CONN_INUSE
  - CONN_SOCK_IDX_VALID
  - CURL_CONN_HOST_DISPNAME
  - CURL_CONN_HOST_DISPNAME
  - IS_MIME_POST
  - IS_MIME_POST
  source_file: /src/curl/lib/urldata.h
  types:
    enum:
    - enumerators:
      - name: STRING_SSL_CAFILE
      - name: STRING_CERT_TYPE_PROXY
      - name: STRING_SSL_CAFILE_PROXY
      - name: STRING_COOKIEJAR
      - name: STRING_SSH_HOST_PUBLIC_KEY_MD5
      - name: STRING_FTP_ACCOUNT
      - name: STRING_DNS_INTERFACE
      - name: STRING_USERAGENT
      - name: STRING_RTSP_SESSION_ID
      - name: STRING_HSTS
      - name: STRING_TARGET
      - name: STRING_ECH_PUBLIC
      - name: STRING_INTERFACE
      - name: STRING_KEY_PASSWD
      - name: STRING_SSL_ISSUERCERT
      - name: STRING_SSL_ISSUERCERT_PROXY
      - name: STRING_ALTSVC
      - name: STRING_PROXYUSERNAME
      - name: STRING_TLSAUTH_PASSWORD
      - name: STRING_ECH_CONFIG
      - name: STRING_CERT
      - name: STRING_SSL_CIPHER_LIST
      - name: STRING_KEY_PASSWD_PROXY
      - name: STRING_TLSAUTH_PASSWORD_PROXY
      - name: STRING_SSL_CIPHER_LIST_PROXY
      - name: STRING_SSH_KNOWNHOSTS
      - name: STRING_FTPPORT
      - name: STRING_PROXY
      - name: STRING_USERNAME
      - name: STRING_MAIL_AUTH
      - name: STRING_RTSP_TRANSPORT
      - name: STRING_HAPROXY_CLIENT_IP
      - name: STRING_SSL_SIGNATURE_ALGORITHMS
      - name: STRING_SSH_PUBLIC_KEY
      - name: STRING_ENCODING
      - name: STRING_SSL_CAPATH
      - name: STRING_SSL_CAPATH_PROXY
      - name: STRING_CERT_PROXY
      - name: STRING_COOKIE
      - name: STRING_SET_RANGE
      - name: STRING_CUSTOMREQUEST
      - name: STRING_SET_URL
      - name: STRING_NOPROXY
      - name: STRING_AWS_SIGV4
      - name: STRING_KEY
      - name: STRING_SSL_CRLFILE
      - name: STRING_SSL_CRLFILE_PROXY
      - name: STRING_DEVICE
      - name: STRING_OPTIONS
      - name: STRING_TLSAUTH_USERNAME
      - name: STRING_LASTZEROTERMINATED
      - name: STRING_SSH_HOST_PUBLIC_KEY_SHA256
      - name: STRING_FTP_ALTERNATIVE_TO_USER
      - name: STRING_SSL_PINNEDPUBLICKEY
      - name: STRING_KEY_PROXY
      - name: STRING_TLSAUTH_USERNAME_PROXY
      - name: STRING_SSL_PINNEDPUBLICKEY_PROXY
      - name: STRING_SSL_EC_CURVES
      - name: STRING_SSL_ENGINE
      - name: STRING_RTSP_STREAM_URI
      - name: STRING_MAIL_FROM
      - name: STRING_KEY_TYPE
      - name: STRING_SERVICE_NAME
      - name: STRING_PROXY_SERVICE_NAME
      - name: STRING_SSH_PRIVATE_KEY
      - name: STRING_BINDHOST
      - name: STRING_UNIX_SOCKET_PATH
      - name: STRING_SET_REFERER
      - name: STRING_PROXYPASSWORD
      - name: STRING_DNS_SERVERS
      - name: STRING_DNS_LOCAL_IP6
      - name: STRING_COPYPOSTFIELDS
      - name: STRING_LAST
      - name: STRING_NETRC_FILE
      - name: STRING_DEFAULT_PROTOCOL
      - name: STRING_CERT_TYPE
      - name: STRING_SSL_CIPHER13_LIST
      - name: STRING_KEY_TYPE_PROXY
      - name: STRING_SSL_CIPHER13_LIST_PROXY
      - name: STRING_DOH
      - name: STRING_DNS_LOCAL_IP4
      - name: STRING_BEARER
      - name: STRING_PRE_PROXY
      - name: STRING_PASSWORD
      - name: STRING_SASL_AUTHZID
      item_type: enum
      name: dupstring
      pos:
        line_end: 901
        line_start: 770
        source_file: /src/curl/lib/urldata.h
    - enumerators:
      - name: BLOB_CERT
      - name: BLOB_CERT_PROXY
      - name: BLOB_CAINFO
      - name: BLOB_SSL_ISSUERCERT
      - name: BLOB_KEY
      - name: BLOB_KEY_PROXY
      - name: BLOB_SSL_ISSUERCERT_PROXY
      - name: BLOB_CAINFO_PROXY
      - name: BLOB_LAST
      item_type: enum
      name: dupblob
      pos:
        line_end: 915
        line_start: 903
        source_file: /src/curl/lib/urldata.h
    preproc_defs:
    - item_type: preproc_def
      name: CURL_DEFAULT_USER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/urldata.h
      type_or_value: '"anonymous"'
    - item_type: preproc_def
      name: CURL_DEFAULT_PASSWORD
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/urldata.h
      type_or_value: '"ftp@example.com"'
    - item_type: preproc_def
      name: DEFAULT_CONNCACHE_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/urldata.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_IPADR_LEN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/urldata.h
      type_or_value: sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")
    - item_type: preproc_def
      name: CURL_MAX_INPUT_LENGTH
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/urldata.h
      type_or_value: '8000000'
    - item_type: preproc_def
      name: READBUFFER_SIZE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/lib/urldata.h
      type_or_value: CURL_MAX_WRITE_SIZE
    - item_type: preproc_def
      name: READBUFFER_MAX
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/lib/urldata.h
      type_or_value: CURL_MAX_READ_SIZE
    - item_type: preproc_def
      name: READBUFFER_MIN
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/curl/lib/urldata.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: UPLOADBUFFER_DEFAULT
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/curl/lib/urldata.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: UPLOADBUFFER_MAX
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/lib/urldata.h
      type_or_value: (2 * 1024 * 1024)
    - item_type: preproc_def
      name: UPLOADBUFFER_MIN
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/curl/lib/urldata.h
      type_or_value: CURL_MAX_WRITE_SIZE
    - item_type: preproc_def
      name: CURLEASY_MAGIC_NUMBER
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/curl/lib/urldata.h
      type_or_value: 0xc0dedbadU
    - item_type: preproc_def
      name: FIRSTSOCKET
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/curl/lib/urldata.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SECONDARYSOCKET
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/curl/lib/urldata.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TRNSPRT_NONE
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/curl/lib/urldata.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TRNSPRT_TCP
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/curl/lib/urldata.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TRNSPRT_UDP
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/curl/lib/urldata.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TRNSPRT_QUIC
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/curl/lib/urldata.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TRNSPRT_UNIX
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/curl/lib/urldata.h
      type_or_value: '6'
    - item_type: preproc_def
      name: CURL_SPEED_RECORDS
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/curl/lib/urldata.h
      type_or_value: '(5 + 1) '
    - item_type: preproc_def
      name: LIBCURL_NAME
      pos:
        line_end: 1312
        line_start: 1311
        source_file: /src/curl/lib/urldata.h
      type_or_value: '"libcurl"'
    structs:
    - fields: []
      item_type: struct
      name: digestdata
      pos:
        line_end: 169
        line_start: 149
        source_file: /src/curl/lib/urldata.h
    - fields: []
      item_type: struct
      name: ConnectBits
      pos:
        line_end: 238
        line_start: 191
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: '*rawalloc'
        type: char
      - name: '*encalloc'
        type: char
      - name: '*name'
        type: char
      - name: '*dispname'
        type: char
      item_type: struct
      name: hostname
      pos:
        line_end: 245
        line_start: 240
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: remote_ip[MAX_IPADR_LEN]
        type: char
      - name: local_ip[MAX_IPADR_LEN]
        type: char
      - name: remote_port
        type: uint16_t
      - name: local_port
        type: uint16_t
      - name: transport
        type: uint8_t
      item_type: struct
      name: ip_quadruple
      pos:
        line_end: 262
        line_start: 256
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: '*peer'
        type: struct Curl_peer
      - name: '*creds'
        type: struct Curl_creds
      - name: proxytype
        type: uint8_t
      item_type: struct
      name: proxy_info
      pos:
        line_end: 273
        line_start: 269
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: cpool_node
        type: struct Curl_llist_node
      - name: cshutdn_node
        type: struct Curl_llist_node
      - name: fclosesocket
        type: curl_closesocket_callback
      - name: '*closesocket_client'
        type: void
      - name: connection_id
        type: curl_off_t
      - name: '*destination'
        type: char
      - name: meta_hash
        type: struct Curl_hash
      - name: '*origin'
        type: struct Curl_peer
      - name: '*via_peer'
        type: struct Curl_peer
      - name: '*origin2'
        type: struct Curl_peer
      - name: '*via_peer2'
        type: struct Curl_peer
      - name: '*creds'
        type: struct Curl_creds
      - name: '*options'
        type: char
      - name: created
        type: struct curltime
      - name: lastused
        type: struct curltime
      - name: sock[2]
        type: curl_socket_t
      - name: '*cfilter[2]'
        type: struct Curl_cfilter
      - name: '*recv[2]'
        type: Curl_recv
      - name: '*send[2]'
        type: Curl_send
      - name: recv_idx
        type: int
      - name: send_idx
        type: int
      - name: shutdown
        type: "struct {\n    struct curltime start[2]; /* when filter shutdown started
          */\n    timediff_t timeout_ms; /* 0 means no timeout */\n  }"
      - name: ssl_config
        type: struct ssl_primary_config
      - name: bits
        type: struct ConnectBits
      - name: '*scheme'
        type: struct Curl_scheme
      - name: '*given'
        type: struct Curl_scheme
      - name: keepalive
        type: struct curltime
      - name: '*attached_multi'
        type: struct Curl_multi
      - name: '*localdev'
        type: char
      - name: attached_xfers
        type: uint32_t
      - name: localportrange
        type: uint16_t
      - name: localport
        type: uint16_t
      - name: transport_wanted
        type: uint8_t
      - name: ip_version
        type: uint8_t
      - name: httpversion_seen
        type: uint8_t
      - name: gssapi_delegation
        type: uint8_t
      item_type: struct
      name: connectdata
      pos:
        line_end: 395
        line_start: 279
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: httpcode
        type: int
      - name: httpproxycode
        type: int
      - name: httpversion
        type: int
      - name: filetime
        type: time_t
      - name: request_size
        type: curl_off_t
      - name: numconnects
        type: curl_off_t
      - name: proxyauthavail
        type: uint32_t
      - name: httpauthavail
        type: uint32_t
      - name: proxyauthpicked
        type: uint32_t
      - name: httpauthpicked
        type: uint32_t
      - name: '*contenttype'
        type: char
      - name: '*wouldredirect'
        type: char
      - name: retry_after
        type: curl_off_t
      - name: header_size
        type: uint32_t
      - name: primary
        type: struct ip_quadruple
      - name: conn_remote_port
        type: int
      - name: '*conn_scheme'
        type: char
      - name: conn_protocol
        type: uint32_t
      - name: certs
        type: struct curl_certinfo
      - name: pxcode
        type: CURLproxycode
      item_type: struct
      name: PureInfo
      pos:
        line_end: 449
        line_start: 414
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: total_size
        type: curl_off_t
      - name: cur_size
        type: curl_off_t
      - name: speed
        type: curl_off_t
      - name: rlimit
        type: struct Curl_rlimit
      item_type: struct
      name: pgrs_dir
      pos:
        line_end: 456
        line_start: 451
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: now
        type: struct curltime
      - name: lastshow
        type: time_t
      - name: ul
        type: struct pgrs_dir
      - name: dl
        type: struct pgrs_dir
      - name: deliver
        type: curl_off_t
      - name: current_speed
        type: curl_off_t
      - name: earlydata_sent
        type: curl_off_t
      - name: timespent
        type: timediff_t
      - name: t_postqueue
        type: timediff_t
      - name: t_nslookup
        type: timediff_t
      - name: t_connect
        type: timediff_t
      - name: t_appconnect
        type: timediff_t
      - name: t_pretransfer
        type: timediff_t
      - name: t_posttransfer
        type: timediff_t
      - name: t_starttransfer
        type: timediff_t
      - name: t_redirect
        type: timediff_t
      - name: start
        type: struct curltime
      - name: t_startsingle
        type: struct curltime
      - name: t_startop
        type: struct curltime
      - name: t_startqueue
        type: struct curltime
      - name: t_acceptdata
        type: struct curltime
      - name: speed_amount[CURL_SPEED_RECORDS]
        type: curl_off_t
      - name: speed_time[CURL_SPEED_RECORDS]
        type: struct curltime
      - name: speeder_c
        type: uint32_t
      item_type: struct
      name: Progress
      pos:
        line_end: 497
        line_start: 458
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: want
        type: uint32_t
      - name: picked
        type: uint32_t
      - name: avail
        type: uint32_t
      item_type: struct
      name: auth
      pos:
        line_end: 525
        line_start: 515
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: '*next'
        type: struct Curl_data_prio_node
      - name: '*data'
        type: struct Curl_easy
      item_type: struct
      name: Curl_data_prio_node
      pos:
        line_end: 531
        line_start: 528
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: weight
        type: int
      item_type: struct
      name: Curl_data_priority
      pos:
        line_end: 540
        line_start: 538
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: list
        type: struct Curl_llist_node
      - name: time
        type: struct curltime
      - name: eid
        type: expire_id
      item_type: struct
      name: time_node
      pos:
        line_end: 569
        line_start: 565
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: '*scheme'
        type: char
      - name: '*hostname'
        type: char
      - name: '*port'
        type: char
      - name: '*user'
        type: char
      - name: '*password'
        type: char
      - name: '*options'
        type: char
      - name: '*path'
        type: char
      - name: '*query'
        type: char
      item_type: struct
      name: urlpieces
      pos:
        line_end: 581
        line_start: 572
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: keeps_speed
        type: struct curltime
      - name: lastconnect_id
        type: curl_off_t
      - name: recent_conn_id
        type: curl_off_t
      - name: headerb
        type: struct dynbuf
      - name: current_speed
        type: curl_off_t
      - name: '*initial_origin'
        type: struct Curl_peer
      - name: os_errno
        type: int
      - name: requests
        type: int
      - name: authhost
        type: struct auth
      - name: authproxy
        type: struct auth
      - name: expiretime
        type: struct curltime
      - name: timenode
        type: struct Curl_tree
      - name: timeoutlist
        type: struct Curl_llist
      - name: expires[EXPIRE_LAST]
        type: struct time_node
      - name: '*most_recent_ftp_entrypath'
        type: char
      - name: '*range'
        type: char
      - name: resume_from
        type: curl_off_t
      - name: infilesize
        type: curl_off_t
      - name: fread_func
        type: curl_read_callback
      - name: '*in'
        type: void
      - name: '*uh'
        type: CURLU
      - name: up
        type: struct urlpieces
      - name: url
        type: struct bufref
      - name: referer
        type: struct bufref
      - name: '*resolve'
        type: struct curl_slist
      - name: '*creds'
        type: struct Curl_creds
      - name: aptr
        type: "struct dynamically_allocated_data {\n    char *uagent;\n    char *accept_encoding;\n
          \   char *rangeline;\n    char *ref;\n    char *host;\n#ifndef CURL_DISABLE_RTSP\n
          \   char *rtsp_transport;\n#endif\n  }"
      - name: followlocation
        type: uint16_t
      - name: retrycount
        type: uint8_t
      - name: httpreq
        type: uint8_t
      item_type: struct
      name: UrlState
      pos:
        line_end: 757
        line_start: 583
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: '*uagent'
        type: char
      - name: '*accept_encoding'
        type: char
      - name: '*rangeline'
        type: char
      - name: '*ref'
        type: char
      - name: '*host'
        type: char
      item_type: struct
      name: dynamically_allocated_data
      pos:
        line_end: 705
        line_start: 696
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: '*err'
        type: FILE
      - name: '*debugdata'
        type: void
      - name: '*errorbuffer'
        type: char
      - name: '*out'
        type: void
      - name: '*in_set'
        type: void
      - name: '*writeheader'
        type: void
      - name: httpauth
        type: uint32_t
      - name: proxyauth
        type: uint32_t
      - name: '*postfields'
        type: void
      - name: seek_func
        type: curl_seek_callback
      - name: postfieldsize
        type: curl_off_t
      - name: fwrite_func
        type: curl_write_callback
      - name: fwrite_header
        type: curl_write_callback
      - name: fwrite_rtp
        type: curl_write_callback
      - name: fread_func_set
        type: curl_read_callback
      - name: fprogress
        type: curl_progress_callback
      - name: fxferinfo
        type: curl_xferinfo_callback
      - name: fdebug
        type: curl_debug_callback
      - name: ioctl_func
        type: curl_ioctl_callback
      - name: fsockopt
        type: curl_sockopt_callback
      - name: '*sockopt_client'
        type: void
      - name: fopensocket
        type: curl_opensocket_callback
      - name: '*opensocket_client'
        type: void
      - name: fclosesocket
        type: curl_closesocket_callback
      - name: '*closesocket_client'
        type: void
      - name: fprereq
        type: curl_prereq_callback
      - name: '*prereq_userp'
        type: void
      - name: '*seek_client'
        type: void
      - name: '*progress_client'
        type: void
      - name: '*ioctl_client'
        type: void
      - name: conn_max_idle_ms
        type: timediff_t
      - name: conn_max_age_ms
        type: timediff_t
      - name: filesize
        type: curl_off_t
      - name: low_speed_limit
        type: curl_off_t
      - name: max_send_speed
        type: curl_off_t
      - name: max_recv_speed
        type: curl_off_t
      - name: set_resume_from
        type: curl_off_t
      - name: '*headers'
        type: struct curl_slist
      - name: '*httppost'
        type: struct curl_httppost
      - name: '*resolve'
        type: struct curl_slist
      - name: '*connect_to'
        type: struct curl_slist
      - name: timevalue
        type: time_t
      - name: ssl
        type: struct ssl_config_data
      - name: general_ssl
        type: struct ssl_general_config
      - name: dns_cache_timeout_ms
        type: timediff_t
      - name: buffer_size
        type: uint32_t
      - name: upload_buffer_size
        type: uint32_t
      - name: '*private_data'
        type: void
      - name: max_filesize
        type: curl_off_t
      - name: new_file_perms
        type: uint32_t
      - name: '*str[STRING_LAST]'
        type: char
      - name: '*blobs[BLOB_LAST]'
        type: struct curl_blob
      - name: allowed_protocols
        type: curl_prot_t
      - name: redir_protocols
        type: curl_prot_t
      - name: timeout
        type: timediff_t
      - name: connecttimeout
        type: timediff_t
      - name: happy_eyeballs_timeout
        type: timediff_t
      - name: server_response_timeout
        type: timediff_t
      - name: shutdowntimeout
        type: timediff_t
      - name: tcp_keepidle
        type: int
      - name: tcp_keepintvl
        type: int
      - name: tcp_keepcnt
        type: int
      - name: resolver_start
        type: curl_resolver_start_callback
      - name: '*resolver_start_client'
        type: void
      - name: upkeep_interval_ms
        type: timediff_t
      - name: '*uh'
        type: CURLU
      - name: maxconnects
        type: uint32_t
      - name: maxredirs
        type: short
      - name: expect_100_timeout
        type: uint16_t
      - name: use_port
        type: uint16_t
      - name: low_speed_time
        type: uint16_t
      - name: use_ssl
        type: uint8_t
      - name: timecondition
        type: uint8_t
      - name: method
        type: uint8_t
      - name: httpwant
        type: uint8_t
      - name: ipver
        type: uint8_t
      - name: upload_flags
        type: uint8_t
      - name: http_follow_mode
        type: uint8_t
      item_type: struct
      name: UserDefined
      pos:
        line_end: 1219
        line_start: 917
        source_file: /src/curl/lib/urldata.h
    - fields:
      - name: magic
        type: uint32_t
      - name: id
        type: curl_off_t
      - name: mid
        type: uint32_t
      - name: master_mid
        type: uint32_t
      - name: '*sub_xfer_done'
        type: multi_sub_xfer_done_cb
      - name: '*conn'
        type: struct connectdata
      - name: mstate
        type: CURLMstate
      - name: result
        type: CURLcode
      - name: msg
        type: struct Curl_message
      - name: '*multi'
        type: struct Curl_multi
      - name: '*multi_easy'
        type: struct Curl_multi
      - name: '*share'
        type: struct Curl_share
      - name: meta_hash
        type: struct Curl_hash
      - name: req
        type: struct SingleRequest
      - name: set
        type: struct UserDefined
      - name: progress
        type: struct Progress
      - name: state
        type: struct UrlState
      - name: info
        type: struct PureInfo
      - name: tsi
        type: struct curl_tlssessioninfo
      item_type: struct
      name: Curl_easy
      pos:
        line_end: 1309
        line_start: 1244
        source_file: /src/curl/lib/urldata.h
    typedefs:
    - item_type: typedef
      name: "(Curl_send)(struct Curl_easy *data,   /* transfer */\n                             int
        sockindex,            /* socketindex */\n                             const
        uint8_t *buf,       /* data to write */\n                             size_t
        len,               /* amount to send */\n                             bool
        eos,                 /* last chunk */\n                             size_t
        *pnwritten)"
      pos:
        line_end: 79
        line_start: 74
        source_file: /src/curl/lib/urldata.h
      type: CURLcode
    - item_type: typedef
      name: "(Curl_recv)(struct Curl_easy *data,   /* transfer */\n                             int
        sockindex,            /* socketindex */\n                             char
        *buf,                /* store data here */\n                             size_t
        len,               /* max amount to read */\n                             size_t
        *pnread)"
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/curl/lib/urldata.h
      type: CURLcode
    - item_type: typedef
      name: "multi_sub_xfer_done_cb(struct Curl_easy *master_easy,\n                                    struct
        Curl_easy *sub_easy,\n                                    CURLcode result)"
      pos:
        line_end: 1232
        line_start: 1230
        source_file: /src/curl/lib/urldata.h
      type: void
    union: []
- function_names:
  - ISLOWHEXALPHA
  - ISUPHEXALPHA
  - ISLOWCNTRL
  - IS7F
  - ISLOWPRINT
  - ISPRINT
  - ISGRAPH
  - ISCNTRL
  - ISALPHA
  - ISXDIGIT
  - ISODIGIT
  - ISALNUM
  - ISUPPER
  - ISLOWER
  - ISDIGIT
  - ISBLANK
  - ISSPACE
  - ISURLPUNTCS
  - ISUNRESERVED
  - ISNEWLINE
  source_file: /src/curl/lib/curl_ctype.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VERIFYNODE
  - verifynode
  - VERIFYNODE
  - Curl_llist_init
  - Curl_llist_insert_next
  - Curl_llist_append
  - Curl_node_take_elem
  - node_uremove
  - Curl_node_remove
  - Curl_llist_destroy
  - Curl_llist_head
  - llist_tail
  - Curl_llist_count
  - Curl_node_elem
  - Curl_node_next
  - llist_node_prev
  - Curl_node_llist
  source_file: /src/curl/lib/llist.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LLISTINIT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/llist.c
      type_or_value: '0x100cc001 '
    - item_type: preproc_def
      name: NODEINIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/llist.c
      type_or_value: '0x12344321 '
    - item_type: preproc_def
      name: NODEREM
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/llist.c
      type_or_value: '0x54321012 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_creds_create
  - Curl_creds_merge
  - Curl_creds_link
  - Curl_creds_unlink
  - Curl_creds_same
  - Curl_creds_equal
  - Curl_creds_trace
  source_file: /src/curl/lib/creds.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURL_CONC_MACROS_
  - CURL_CONC_MACROS
  - CURL_PRINTF
  - CURL_PRINTF
  - select
  - select
  - curl_lseek
  - select
  - ioctl
  - FALLTHROUGH
  - FALLTHROUGH
  - CURL_UNCONST
  - CURL_UNCONST
  - sread
  - sread
  - swrite
  - swrite
  - swrite
  - CURL_SCLOSE
  - CURL_SCLOSE
  - CURL_SCLOSE
  - CURL_SCLOSE
  - CURL_SCLOSE
  - BIT
  - DEBUGF
  - DEBUGF
  - DEBUGASSERT
  - DEBUGASSERT
  - DEBUGASSERT
  - SET_SOCKERRNO
  - SET_SOCKERRNO
  - read
  - write
  - fileno
  - unlink
  - isatty
  - S_ISREG
  - S_ISDIR
  - CURL_BINMODE
  - CURL_BINMODE
  - CURL_BINMODE
  - CURLMAX
  - CURLMIN
  - STRCONST
  - CURL_ARRAYSIZE
  - curlx_safefree
  - curlx_safefreezero
  - curlx_safefreezeroz
  - ALLOC_SIZE
  - ALLOC_SIZE2
  - ALLOC_SIZE
  - ALLOC_SIZE2
  - sclose
  - fake_sclose
  - CURL_GETADDRINFO
  - CURL_FREEADDRINFO
  - CURL_SOCKET
  - CURL_SOCKETPAIR
  - CURL_ACCEPT
  - CURL_ACCEPT4
  - sclose
  - fake_sclose
  - curlx_strdup
  - curlx_malloc
  - curlx_calloc
  - curlx_realloc
  - curlx_free
  - curlx_tcsdup
  - VERBOSE
  - NOVERBOSE
  - VERBOSE
  - NOVERBOSE
  - curlx_memzero
  - curlx_memzero
  - curlx_memzero
  - curlx_memzero
  - curlx_memzero
  - curlx_memzero
  source_file: /src/curl/lib/curl_setup.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: availability
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: curl_pp_attribute_disabled
    - item_type: preproc_def
      name: availability
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: curl_pp_attribute_disabled
    - item_type: preproc_def
      name: TARGET_OS_OSX
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: TARGET_OS_MAC
    - item_type: preproc_def
      name: USE_IPV6
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _POSIX_PTHREAD_SEMANTICS
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_T
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: CURL_FORMAT_CURL_OFF_TU
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_TEMP_PRINTF
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: CURL_PRINTF
    - item_type: preproc_def
      name: __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__
      pos:
        line_end: 394
        line_start: 392
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
    - item_type: preproc_def
      name: USE_RESOLVE_ON_IPS
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_MACOS_CALL_COPYPROXIES
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '1'
    - item_type: preproc_def
      name: uint32_t
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: curl_lseek
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: _lseeki64
    - item_type: preproc_def
      name: LSEEK_ERROR
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ((__int64)-1)
    - item_type: preproc_def
      name: curl_lseek
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: llseek
    - item_type: preproc_def
      name: LSEEK_ERROR
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ((offset_t)-1)
    - item_type: preproc_def
      name: LSEEK_ERROR
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ((off_t)-1)
    - item_type: preproc_def
      name: curl_lseek
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: lseek
    - item_type: preproc_def
      name: LSEEK_ERROR
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ((off_t)-1)
    - item_type: preproc_def
      name: SIZEOF_TIME_T
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_CURL_SOCKET_T
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_CURL_SOCKET_T
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '4'
    - item_type: preproc_def
      name: FMT_SOCKET_T
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"u"'
    - item_type: preproc_def
      name: FMT_SOCKET_T
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"d"'
    - item_type: preproc_def
      name: FMT_SOCKET_T
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"zu"'
    - item_type: preproc_def
      name: FMT_SOCKET_T
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"qd"'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CURL_OFF_T_MAX
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0x7FFFFFFFFFFFFFFF'
    - item_type: preproc_def
      name: CURL_OFF_T_MIN
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: (-CURL_OFF_T_MAX - 1)
    - item_type: preproc_def
      name: FMT_OFF_T
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: CURL_FORMAT_CURL_OFF_T
    - item_type: preproc_def
      name: FMT_OFF_TU
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: CURL_FORMAT_CURL_OFF_TU
    - item_type: preproc_def
      name: TIME_T_MAX
      pos:
        line_end: 603
        line_start: 602
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: UINT_MAX
    - item_type: preproc_def
      name: TIME_T_MIN
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TIME_T_MAX
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: TIME_T_MIN
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: INT_MIN
    - item_type: preproc_def
      name: TIME_T_MAX
      pos:
        line_end: 611
        line_start: 610
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0xFFFFFFFFFFFFFFFF'
    - item_type: preproc_def
      name: TIME_T_MIN
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TIME_T_MAX
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0x7FFFFFFFFFFFFFFF'
    - item_type: preproc_def
      name: TIME_T_MIN
      pos:
        line_end: 615
        line_start: 614
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: (-TIME_T_MAX - 1)
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: 18446744073709551615U
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: 4294967295U
    - item_type: preproc_def
      name: SSIZE_MAX
      pos:
        line_end: 631
        line_start: 630
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '9223372036854775807'
    - item_type: preproc_def
      name: SSIZE_MAX
      pos:
        line_end: 633
        line_start: 632
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '2147483647'
    - item_type: preproc_def
      name: GETHOSTNAME_TYPE_ARG2
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: int
    - item_type: preproc_def
      name: GETHOSTNAME_TYPE_ARG2
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: size_t
    - item_type: preproc_def
      name: DIR_CHAR
      pos:
        line_end: 659
        line_start: 658
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"\\"'
    - item_type: preproc_def
      name: DIR_CHAR
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"/"'
    - item_type: preproc_def
      name: WARN_UNUSED_RESULT
      pos:
        line_end: 796
        line_start: 795
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __attribute__((warn_unused_result))
    - item_type: preproc_def
      name: WARN_UNUSED_RESULT
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __attribute__((warn_unused_result))
    - item_type: preproc_def
      name: CURL_NORETURN
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: CURL_NORETURN
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __declspec(noreturn)
    - item_type: preproc_def
      name: OLD_APP32_64BIT_OFF_T
      pos:
        line_end: 881
        line_start: 880
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: _APP32_64BIT_OFF_T
    - item_type: preproc_def
      name: _APP32_64BIT_OFF_T
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: OLD_APP32_64BIT_OFF_T
    - item_type: preproc_def
      name: SEND_4TH_ARG
      pos:
        line_end: 919
        line_start: 918
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: MSG_NOSIGNAL
    - item_type: preproc_def
      name: SEND_4TH_ARG
      pos:
        line_end: 921
        line_start: 920
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0'
    - item_type: preproc_def
      name: sfcntl
      pos:
        line_end: 1006
        line_start: 1005
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: lwip_fcntl
    - item_type: preproc_def
      name: sfcntl
      pos:
        line_end: 1008
        line_start: 1007
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: fcntl
    - item_type: preproc_def
      name: 'false'
      pos:
        line_end: 1016
        line_start: 1015
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0'
    - item_type: preproc_def
      name: 'true'
      pos:
        line_end: 1017
        line_start: 1016
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '1'
    - item_type: preproc_def
      name: 'false'
      pos:
        line_end: 1039
        line_start: 1038
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: bool_false
    - item_type: preproc_def
      name: 'true'
      pos:
        line_end: 1040
        line_start: 1039
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: bool_true
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 1055
        line_start: 1054
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: 'true'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 1058
        line_start: 1057
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: SOCKERRNO
      pos:
        line_end: 1092
        line_start: 1091
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ((int)WSAGetLastError())
    - item_type: preproc_def
      name: SOCKERRNO
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: errno
    - item_type: preproc_def
      name: SOCKEACCES
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEACCES
    - item_type: preproc_def
      name: SOCKEADDRINUSE
      pos:
        line_end: 1104
        line_start: 1103
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEADDRINUSE
    - item_type: preproc_def
      name: SOCKEADDRNOTAVAIL
      pos:
        line_end: 1105
        line_start: 1104
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEADDRNOTAVAIL
    - item_type: preproc_def
      name: SOCKEAFNOSUPPORT
      pos:
        line_end: 1106
        line_start: 1105
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEAFNOSUPPORT
    - item_type: preproc_def
      name: SOCKEBADF
      pos:
        line_end: 1107
        line_start: 1106
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEBADF
    - item_type: preproc_def
      name: SOCKECONNREFUSED
      pos:
        line_end: 1108
        line_start: 1107
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAECONNREFUSED
    - item_type: preproc_def
      name: SOCKECONNRESET
      pos:
        line_end: 1109
        line_start: 1108
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAECONNRESET
    - item_type: preproc_def
      name: SOCKEINPROGRESS
      pos:
        line_end: 1110
        line_start: 1109
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEINPROGRESS
    - item_type: preproc_def
      name: SOCKEINTR
      pos:
        line_end: 1111
        line_start: 1110
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEINTR
    - item_type: preproc_def
      name: SOCKEINVAL
      pos:
        line_end: 1112
        line_start: 1111
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEINVAL
    - item_type: preproc_def
      name: SOCKEISCONN
      pos:
        line_end: 1113
        line_start: 1112
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEISCONN
    - item_type: preproc_def
      name: SOCKEMSGSIZE
      pos:
        line_end: 1114
        line_start: 1113
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEMSGSIZE
    - item_type: preproc_def
      name: SOCKENOMEM
      pos:
        line_end: 1117
        line_start: 1116
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '8L  '
    - item_type: preproc_def
      name: SOCKETIMEDOUT
      pos:
        line_end: 1118
        line_start: 1117
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAETIMEDOUT
    - item_type: preproc_def
      name: SOCKEWOULDBLOCK
      pos:
        line_end: 1119
        line_start: 1118
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: WSAEWOULDBLOCK
    - item_type: preproc_def
      name: SOCKEACCES
      pos:
        line_end: 1121
        line_start: 1120
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EACCES
    - item_type: preproc_def
      name: SOCKEADDRINUSE
      pos:
        line_end: 1122
        line_start: 1121
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EADDRINUSE
    - item_type: preproc_def
      name: SOCKEADDRNOTAVAIL
      pos:
        line_end: 1123
        line_start: 1122
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EADDRNOTAVAIL
    - item_type: preproc_def
      name: SOCKEAFNOSUPPORT
      pos:
        line_end: 1124
        line_start: 1123
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EAFNOSUPPORT
    - item_type: preproc_def
      name: SOCKEBADF
      pos:
        line_end: 1125
        line_start: 1124
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EBADF
    - item_type: preproc_def
      name: SOCKECONNREFUSED
      pos:
        line_end: 1126
        line_start: 1125
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ECONNREFUSED
    - item_type: preproc_def
      name: SOCKECONNRESET
      pos:
        line_end: 1127
        line_start: 1126
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ECONNRESET
    - item_type: preproc_def
      name: SOCKEINPROGRESS
      pos:
        line_end: 1128
        line_start: 1127
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EINPROGRESS
    - item_type: preproc_def
      name: SOCKEINTR
      pos:
        line_end: 1129
        line_start: 1128
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EINTR
    - item_type: preproc_def
      name: SOCKEINVAL
      pos:
        line_end: 1130
        line_start: 1129
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EINVAL
    - item_type: preproc_def
      name: SOCKEISCONN
      pos:
        line_end: 1131
        line_start: 1130
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EISCONN
    - item_type: preproc_def
      name: SOCKEMSGSIZE
      pos:
        line_end: 1132
        line_start: 1131
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EMSGSIZE
    - item_type: preproc_def
      name: SOCKENOMEM
      pos:
        line_end: 1133
        line_start: 1132
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ENOMEM
    - item_type: preproc_def
      name: SOCKETIMEDOUT
      pos:
        line_end: 1135
        line_start: 1134
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ETIMEDOUT
    - item_type: preproc_def
      name: SOCKEWOULDBLOCK
      pos:
        line_end: 1137
        line_start: 1136
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: EWOULDBLOCK
    - item_type: preproc_def
      name: argv_item_t
      pos:
        line_end: 1144
        line_start: 1143
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __char_ptr32
    - item_type: preproc_def
      name: argv_item_t
      pos:
        line_end: 1146
        line_start: 1145
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: wchar_t *
    - item_type: preproc_def
      name: argv_item_t
      pos:
        line_end: 1148
        line_start: 1147
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: char *
    - item_type: preproc_def
      name: ZERO_NULL
      pos:
        line_end: 1155
        line_start: 1154
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Curl_nop_stmt
      pos:
        line_end: 1180
        line_start: 1179
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: do {} while(0)
    - item_type: preproc_def
      name: SHUT_RD
      pos:
        line_end: 1196
        line_start: 1195
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: SHUT_WR
      pos:
        line_end: 1200
        line_start: 1199
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SHUT_RDWR
      pos:
        line_end: 1204
        line_start: 1203
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: STDIN_FILENO
      pos:
        line_end: 1219
        line_start: 1218
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: fileno(stdin)
    - item_type: preproc_def
      name: STDOUT_FILENO
      pos:
        line_end: 1222
        line_start: 1221
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: fileno(stdout)
    - item_type: preproc_def
      name: STDERR_FILENO
      pos:
        line_end: 1225
        line_start: 1224
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: fileno(stderr)
    - item_type: preproc_def
      name: CURL_O_BINARY
      pos:
        line_end: 1231
        line_start: 1230
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: _O_BINARY
    - item_type: preproc_def
      name: CURL_O_BINARY
      pos:
        line_end: 1233
        line_start: 1232
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: O_BINARY
    - item_type: preproc_def
      name: CURL_O_BINARY
      pos:
        line_end: 1235
        line_start: 1234
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FOPEN_READTEXT
      pos:
        line_end: 1251
        line_start: 1250
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"rt"'
    - item_type: preproc_def
      name: FOPEN_WRITETEXT
      pos:
        line_end: 1252
        line_start: 1251
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"wt"'
    - item_type: preproc_def
      name: FOPEN_APPENDTEXT
      pos:
        line_end: 1253
        line_start: 1252
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"at"'
    - item_type: preproc_def
      name: FOPEN_READTEXT
      pos:
        line_end: 1261
        line_start: 1260
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"rt"'
    - item_type: preproc_def
      name: FOPEN_WRITETEXT
      pos:
        line_end: 1262
        line_start: 1261
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"w"'
    - item_type: preproc_def
      name: FOPEN_APPENDTEXT
      pos:
        line_end: 1263
        line_start: 1262
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"a"'
    - item_type: preproc_def
      name: FOPEN_READTEXT
      pos:
        line_end: 1265
        line_start: 1264
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"r"'
    - item_type: preproc_def
      name: FOPEN_WRITETEXT
      pos:
        line_end: 1266
        line_start: 1265
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"w"'
    - item_type: preproc_def
      name: FOPEN_APPENDTEXT
      pos:
        line_end: 1267
        line_start: 1266
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '"a"'
    - item_type: preproc_def
      name: CURL_SA_FAMILY_T
      pos:
        line_end: 1273
        line_start: 1272
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: ADDRESS_FAMILY
    - item_type: preproc_def
      name: CURL_SA_FAMILY_T
      pos:
        line_end: 1275
        line_start: 1274
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: sa_family_t
    - item_type: preproc_def
      name: CURL_SA_FAMILY_T
      pos:
        line_end: 1277
        line_start: 1276
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: unsigned char
    - item_type: preproc_def
      name: CURL_SA_FAMILY_T
      pos:
        line_end: 1280
        line_start: 1279
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: unsigned short
    - item_type: preproc_def
      name: STRERROR_LEN
      pos:
        line_end: 1298
        line_start: 1297
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '256'
    - item_type: preproc_def
      name: ALLOC_FUNC
      pos:
        line_end: 1354
        line_start: 1353
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __attribute__((__malloc__))
    - item_type: preproc_def
      name: ALLOC_FUNC
      pos:
        line_end: 1363
        line_start: 1362
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __attribute__((__malloc__))
    - item_type: preproc_def
      name: ALLOC_FUNC
      pos:
        line_end: 1367
        line_start: 1366
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __declspec(restrict)
    - item_type: preproc_def
      name: CURL_GETADDRINFO
      pos:
        line_end: 1454
        line_start: 1453
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: getaddrinfo
    - item_type: preproc_def
      name: CURL_FREEADDRINFO
      pos:
        line_end: 1455
        line_start: 1454
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: freeaddrinfo
    - item_type: preproc_def
      name: CURL_SOCKET
      pos:
        line_end: 1456
        line_start: 1455
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: socket
    - item_type: preproc_def
      name: CURL_SOCKETPAIR
      pos:
        line_end: 1458
        line_start: 1457
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: socketpair
    - item_type: preproc_def
      name: CURL_ACCEPT
      pos:
        line_end: 1460
        line_start: 1459
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: accept
    - item_type: preproc_def
      name: CURL_ACCEPT4
      pos:
        line_end: 1462
        line_start: 1461
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: accept4
    - item_type: preproc_def
      name: CURLX_STRDUP_LOW
      pos:
        line_end: 1470
        line_start: 1469
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: _strdup
    - item_type: preproc_def
      name: CURLX_STRDUP_LOW
      pos:
        line_end: 1472
        line_start: 1471
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: strdup
    - item_type: preproc_def
      name: curlx_tcsdup
      pos:
        line_end: 1489
        line_start: 1488
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: curlx_strdup
    - item_type: preproc_def
      name: curlx_strdup
      pos:
        line_end: 1496
        line_start: 1495
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: Curl_cstrdup
    - item_type: preproc_def
      name: curlx_malloc
      pos:
        line_end: 1497
        line_start: 1496
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: Curl_cmalloc
    - item_type: preproc_def
      name: curlx_calloc
      pos:
        line_end: 1498
        line_start: 1497
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: Curl_ccalloc
    - item_type: preproc_def
      name: curlx_realloc
      pos:
        line_end: 1499
        line_start: 1498
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: Curl_crealloc
    - item_type: preproc_def
      name: curlx_free
      pos:
        line_end: 1500
        line_start: 1499
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: Curl_cfree
    - item_type: preproc_def
      name: curlx_strdup
      pos:
        line_end: 1502
        line_start: 1501
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: CURLX_STRDUP_LOW
    - item_type: preproc_def
      name: curlx_malloc
      pos:
        line_end: 1503
        line_start: 1502
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: malloc
    - item_type: preproc_def
      name: curlx_calloc
      pos:
        line_end: 1504
        line_start: 1503
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: calloc
    - item_type: preproc_def
      name: curlx_realloc
      pos:
        line_end: 1505
        line_start: 1504
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: realloc
    - item_type: preproc_def
      name: curlx_free
      pos:
        line_end: 1506
        line_start: 1505
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: free
    - item_type: preproc_def
      name: curlx_tcsdup
      pos:
        line_end: 1511
        line_start: 1510
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: curlx_wcsdup
    - item_type: preproc_def
      name: curlx_tcsdup
      pos:
        line_end: 1513
        line_start: 1512
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: curlx_strdup
    - item_type: preproc_def
      name: UNITTEST
      pos:
        line_end: 1530
        line_start: 1529
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: static
    - item_type: preproc_def
      name: UNIX_PATH_MAX
      pos:
        line_end: 1563
        line_start: 1562
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: '108'
    - item_type: preproc_def
      name: CURL_INLINE
      pos:
        line_end: 1590
        line_start: 1589
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: 'inline '
    - item_type: preproc_def
      name: CURL_INLINE
      pos:
        line_end: 1594
        line_start: 1593
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: 'inline '
    - item_type: preproc_def
      name: CURL_INLINE
      pos:
        line_end: 1597
        line_start: 1596
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: 'inline '
    - item_type: preproc_def
      name: CURL_INLINE
      pos:
        line_end: 1600
        line_start: 1599
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __inline__
    - item_type: preproc_def
      name: CURL_INLINE
      pos:
        line_end: 1602
        line_start: 1601
        source_file: /src/curl/lib/curl_setup.h
      type_or_value: __inline
    structs:
    - fields:
      - name: tv_sec
        type: long
      - name: tv_usec
        type: long
      item_type: struct
      name: timeval
      pos:
        line_end: 910
        line_start: 907
        source_file: /src/curl/lib/curl_setup.h
    - fields:
      - name: sun_family
        type: CURL_SA_FAMILY_T
      - name: sun_path[UNIX_PATH_MAX]
        type: char
      item_type: struct
      name: sockaddr_un
      pos:
        line_end: 1567
        line_start: 1564
        source_file: /src/curl/lib/curl_setup.h
    typedefs:
    - item_type: typedef
      name: bool
      pos:
        line_end: 1014
        line_start: 1014
        source_file: /src/curl/lib/curl_setup.h
      type: int
    - item_type: typedef
      name: curl_bit
      pos:
        line_end: 1044
        line_start: 1044
        source_file: /src/curl/lib/curl_setup.h
      type: unsigned int
    - item_type: typedef
      name: '*(*curl_malloc_callback)(size_t size)'
      pos:
        line_end: 1306
        line_start: 1306
        source_file: /src/curl/lib/curl_setup.h
      type: void
    - item_type: typedef
      name: (*curl_free_callback)(void *ptr)
      pos:
        line_end: 1307
        line_start: 1307
        source_file: /src/curl/lib/curl_setup.h
      type: void
    - item_type: typedef
      name: '*(*curl_realloc_callback)(void *ptr, size_t size)'
      pos:
        line_end: 1308
        line_start: 1308
        source_file: /src/curl/lib/curl_setup.h
      type: void
    - item_type: typedef
      name: '*(*curl_strdup_callback)(const char *str)'
      pos:
        line_end: 1309
        line_start: 1309
        source_file: /src/curl/lib/curl_setup.h
      type: char
    - item_type: typedef
      name: '*(*curl_calloc_callback)(size_t nmemb, size_t size)'
      pos:
        line_end: 1310
        line_start: 1310
        source_file: /src/curl/lib/curl_setup.h
      type: void
    union: []
- function_names:
  - Curl_freeaddrinfo
  - Curl_getaddrinfo_ex
  - Curl_he2ai
  - ip2addr
  - Curl_str2addr
  - Curl_is_ipv4addr
  - Curl_is_ipaddr
  - Curl_looks_like_ipv6
  - Curl_unix2addr
  - curl_dbg_freeaddrinfo
  - curl_dbg_getaddrinfo
  - Curl_addrinfo_set_port
  source_file: /src/curl/lib/curl_addrinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: vqualifier
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/curl_addrinfo.c
      type_or_value: volatile
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURL_TRC_M_is_verbose
  - CURL_TRC_DNS_is_verbose
  - CURL_TRC_TIMER_is_verbose
  - infof
  - CURL_TRC_M
  - CURL_TRC_CF
  - CURL_TRC_WRITE
  - CURL_TRC_READ
  - CURL_TRC_DNS
  - CURL_TRC_TIMER
  - CURL_TRC_FTP
  - CURL_TRC_SMTP
  - CURL_TRC_SSLS
  - CURL_TRC_SSH
  - CURL_TRC_WS
  - infof
  - CURL_TRC_M
  - CURL_TRC_CF
  - CURL_TRC_WRITE
  - CURL_TRC_READ
  - CURL_TRC_DNS
  - CURL_TRC_TIMER
  - CURL_TRC_FTP
  - CURL_TRC_SMTP
  - CURL_TRC_SSLS
  - CURL_TRC_SSH
  - CURL_TRC_WS
  - Curl_trc_is_verbose
  - Curl_trc_cf_is_verbose
  - Curl_trc_ft_is_verbose
  - CURL_MSTATE_NAME
  - CURL_TRC_EASY_TIMERS
  - Curl_trc_is_verbose
  - Curl_trc_cf_is_verbose
  - Curl_trc_ft_is_verbose
  - CURL_MSTATE_NAME
  - CURL_TRC_EASY_TIMERS
  source_file: /src/curl/lib/curl_trc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: failf
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_failf
    - item_type: preproc_def
      name: CURL_LOG_LVL_NONE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_LOG_LVL_INFO
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: infof
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_infof
    - item_type: preproc_def
      name: CURL_TRC_M
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_multi
    - item_type: preproc_def
      name: CURL_TRC_CF
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_cf_infof
    - item_type: preproc_def
      name: CURL_TRC_WRITE
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_write
    - item_type: preproc_def
      name: CURL_TRC_READ
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_read
    - item_type: preproc_def
      name: CURL_TRC_DNS
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_dns
    - item_type: preproc_def
      name: CURL_TRC_TIMER
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_timer
    - item_type: preproc_def
      name: CURL_TRC_FTP
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_ftp
    - item_type: preproc_def
      name: CURL_TRC_SMTP
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_smtp
    - item_type: preproc_def
      name: CURL_TRC_SSLS
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_ssls
    - item_type: preproc_def
      name: CURL_TRC_SSH
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_ssh
    - item_type: preproc_def
      name: CURL_TRC_WS
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/curl/lib/curl_trc.h
      type_or_value: Curl_trc_ws
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: log_level
        type: int
      item_type: struct
      name: curl_trc_feat
      pos:
        line_end: 101
        line_start: 98
        source_file: /src/curl/lib/curl_trc.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/cf-h1-proxy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_headersep
  source_file: /src/curl/lib/transfer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/config-os400.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_CA_BUNDLE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '"/QIBM/UserData/ICSS/Cert/Server/DEFAULT.KDB"'
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '"OS/400"'
    - item_type: preproc_def
      name: HAVE_ALARM
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ARPA_INET_H
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FCNTL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FCNTL_H
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FCNTL_O_NONBLOCK
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FREEADDRINFO
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETADDRINFO
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETADDRINFO_THREADSAFE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETEUID
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETHOSTNAME
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETPEERNAME
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETPPID
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETPWUID
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETSOCKNAME
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETTIMEOFDAY
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_IOCTL_FIONBIO
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_IOCTL_SIOCGIFADDR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LBER_H
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LDAP_H
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LOCALTIME_R
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NETDB_H
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NETINET_IN_H
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NETINET_TCP_H
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NETINET_UDP_H
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NET_IF_H
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_PIPE
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_PWD_H
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_RECV
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SA_FAMILY_T
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SELECT
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SEND
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SENDMSG
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SIGACTION
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SOCKET
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDBOOL_H
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDINT_H
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDIO_H
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDLIB_H
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRICMP
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRINGS_H
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRING_H
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRUCT_TIMEVAL
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_IOCTL_H
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_PARAM_H
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_RESOURCE_H
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_STAT_H
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_TYPES_H
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_UN_H
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UNICODE_UIDNA_H
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UNISTD_H
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UTIME
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UTIME_H
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_CURL_OFF_T
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_CURL_SOCKET_T
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_INT
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_LONG
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '8       '
    - item_type: preproc_def
      name: SIZEOF_SIZE_T
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_TIME_T
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '4'
    - item_type: preproc_def
      name: STDC_HEADERS
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/curl/lib/config-os400.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RECV_TYPE_ARG1
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/curl/lib/config-os400.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_ARG2
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/curl/lib/config-os400.h
      type_or_value: char *
    - item_type: preproc_def
      name: RECV_TYPE_ARG3
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/curl/lib/config-os400.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_ARG4
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/curl/lib/config-os400.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_RETV
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/curl/lib/config-os400.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG1
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/curl/lib/config-os400.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG2
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/curl/lib/config-os400.h
      type_or_value: char *
    - item_type: preproc_def
      name: SEND_TYPE_ARG3
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/curl/lib/config-os400.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG4
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/curl/lib/config-os400.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_RETV
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/curl/lib/config-os400.h
      type_or_value: int
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_rand
  - Curl_rand
  source_file: /src/curl/lib/rand.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curl_getenv
  source_file: /src/curl/lib/getenv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/strerror.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_win32_init
  - Curl_win32_cleanup
  source_file: /src/curl/lib/system_win32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_uint32_tbl_init
  - uint32_tbl_clear_rows
  - Curl_uint32_tbl_resize
  - uint32_tbl_clear
  - Curl_uint32_tbl_destroy
  - Curl_uint32_tbl_capacity
  - Curl_uint32_tbl_count
  - Curl_uint32_tbl_get
  - Curl_uint32_tbl_add
  - Curl_uint32_tbl_remove
  - Curl_uint32_tbl_contains
  - uint32_tbl_next_at
  - Curl_uint32_tbl_first
  - Curl_uint32_tbl_next
  source_file: /src/curl/lib/uint-table.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_UINT32_TBL_MAGIC
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/uint-table.c
      type_or_value: '0x62757473'
    structs: []
    typedefs: []
    union: []
- function_names:
  - lookup
  - curl_easy_option_by_name
  - curl_easy_option_by_id
  - curl_easy_option_next
  - curl_easy_option_by_name
  - curl_easy_option_by_id
  - curl_easy_option_next
  source_file: /src/curl/lib/easygetopt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_checkheaders
  - data_pending
  - Curl_meets_timecondition
  - xfer_recv_shutdown
  - xfer_recv_shutdown_started
  - Curl_xfer_send_shutdown
  - xfer_recv_resp
  - sendrecv_dl
  - sendrecv_ul
  - Curl_sendrecv
  - Curl_init_CONNECT
  - Curl_pretransfer
  - Curl_retry_request
  - xfer_setup
  - Curl_xfer_setup_nop
  - Curl_xfer_setup_sendrecv
  - Curl_xfer_setup_send
  - Curl_xfer_setup_recv
  - Curl_xfer_set_shutdown
  - Curl_xfer_write_resp
  - Curl_xfer_write_is_paused
  - Curl_xfer_write_resp_hd
  - Curl_xfer_write_done
  - Curl_xfer_needs_flush
  - Curl_xfer_flush
  - Curl_xfer_send
  - Curl_xfer_recv
  - Curl_xfer_send_close
  - Curl_xfer_is_blocked
  - Curl_xfer_send_is_paused
  - Curl_xfer_recv_is_paused
  - Curl_xfer_pause_send
  - Curl_xfer_pause_recv
  - Curl_xfer_is_secure
  source_file: /src/curl/lib/transfer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONN_MAX_RETRIES
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/curl/lib/transfer.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - entry_new
  - entry_free
  - Curl_dynhds_init
  - Curl_dynhds_free
  - Curl_dynhds_reset
  - Curl_dynhds_count
  - Curl_dynhds_set_opts
  - Curl_dynhds_getn
  - Curl_dynhds_get
  - Curl_dynhds_cget
  - Curl_dynhds_add
  - Curl_dynhds_cadd
  - Curl_dynhds_h1_add_line
  - Curl_dynhds_h1_cadd_line
  - dynhds_contains
  - dynhds_ccontains
  - dynhds_count_name
  - dynhds_ccount_name
  - dynhds_remove
  - dynhds_set
  - dynhds_cremove
  - Curl_dynhds_h1_dprint
  - Curl_dynhds_to_nva
  source_file: /src/curl/lib/dynhds.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/uint-hash.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**table'
        type: struct uint_hash_entry
      - name: '*dtor'
        type: Curl_uint32_hash_dtor
      - name: slots
        type: uint32_t
      - name: size
        type: uint32_t
      item_type: struct
      name: uint_hash
      pos:
        line_end: 40
        line_start: 32
        source_file: /src/curl/lib/uint-hash.h
    typedefs:
    - item_type: typedef
      name: Curl_uint32_hash_dtor(uint32_t id, void *value)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/curl/lib/uint-hash.h
      type: void
    - item_type: typedef
      name: "Curl_uint32_hash_visit_cb(uint32_t id, void *value,\n                                       void
        *user_data)"
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/uint-hash.h
      type: bool
    union: []
- function_names:
  - OUTCHAR
  - dollarstring
  - is_arg_used
  - mark_arg_used
  - parse_flags
  - parse_conversion
  - parsefmt
  - out_double
  - out_number
  - out_string
  - out_pointer
  - formatf
  - addbyter
  - curl_mvsnprintf
  - curl_msnprintf
  - alloc_addbyter
  - curlx_dyn_vprintf
  - curl_mvaprintf
  - curl_maprintf
  - storebuffer
  - curl_msprintf
  - fputc_wrapper
  - curl_mprintf
  - curl_mfprintf
  - curl_mvsprintf
  - curl_mvprintf
  - curl_mvfprintf
  source_file: /src/curl/lib/mprintf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFSIZE
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '326 '
    - item_type: preproc_def
      name: MAX_PARAMETERS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '128 '
    - item_type: preproc_def
      name: MAX_SEGMENTS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '128 '
    - item_type: preproc_def
      name: PFMT_OK
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PFMT_DOLLAR
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: PFMT_DOLLARWIDTH
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '2 '
    - item_type: preproc_def
      name: PFMT_DOLLARPREC
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '3 '
    - item_type: preproc_def
      name: PFMT_MANYARGS
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '4 '
    - item_type: preproc_def
      name: PFMT_PREC
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '5 '
    - item_type: preproc_def
      name: PFMT_PRECMIX
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '6 '
    - item_type: preproc_def
      name: PFMT_WIDTH
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '7 '
    - item_type: preproc_def
      name: PFMT_INPUTGAP
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '8 '
    - item_type: preproc_def
      name: PFMT_WIDTHARG
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '9 '
    - item_type: preproc_def
      name: PFMT_PRECARG
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '10 '
    - item_type: preproc_def
      name: PFMT_MANYSEGS
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/curl/lib/mprintf.c
      type_or_value: '11 '
    structs:
    - fields:
      - name: type
        type: FormatType
      - name: val
        type: "union {\n    const char *str;\n    void *ptr;\n    int64_t nums; /*
          signed */\n    uint64_t numu; /* unsigned */\n    double dnum;\n  }"
      item_type: struct
      name: va_input
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/curl/lib/mprintf.c
    - fields:
      - name: width
        type: int
      - name: precision
        type: int
      - name: flags
        type: unsigned int
      - name: input
        type: unsigned int
      - name: '*start'
        type: char
      - name: outlen
        type: size_t
      item_type: struct
      name: outsegment
      pos:
        line_end: 120
        line_start: 113
        source_file: /src/curl/lib/mprintf.c
    - fields:
      - name: '*buffer'
        type: char
      - name: length
        type: size_t
      - name: max
        type: size_t
      item_type: struct
      name: nsprintf
      pos:
        line_end: 126
        line_start: 122
        source_file: /src/curl/lib/mprintf.c
    - fields:
      - name: '*b'
        type: struct dynbuf
      - name: merr
        type: char
      item_type: struct
      name: asprintf
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/curl/lib/mprintf.c
    - fields:
      - name: width
        type: int
      - name: prec
        type: int
      - name: flags
        type: unsigned int
      item_type: struct
      name: mproperty
      pos:
        line_end: 635
        line_start: 631
        source_file: /src/curl/lib/mprintf.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/pop3.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setopt_set_timeout_sec
  - setopt_set_timeout_ms
  - Curl_setstropt
  - Curl_setblobopt
  - setstropt_userpwd
  - setstropt_interface
  - C_SSLVERSION_VALUE
  - C_SSLVERSION_MAX_VALUE
  - protocol2num
  - httpauth
  - setopt_HTTP_VERSION
  - Curl_setopt_SSLVERSION
  - setopt_RTSP_REQUEST
  - setopt_long_bool
  - value_range
  - setopt_long_net
  - setopt_long_ssl
  - changeproxy
  - setopt_long_proxy
  - setopt_long_proxy
  - setopt_long_http
  - setopt_long_proto
  - setopt_long_misc
  - setopt_long
  - setopt_slist
  - setopt_mimepost
  - setopt_pointers
  - cookielist
  - cookiefile
  - setproxy
  - setopt_cptr_proxy
  - setopt_copypostfields
  - setopt_ech
  - setopt_ech
  - setopt_cptr
  - setopt_func
  - setopt_offt
  - setopt_blob
  - Curl_vsetopt
  - curl_easy_setopt
  source_file: /src/curl/lib/setopt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*setoptfunc)(struct Curl_easy *data,\n                                 CURLoption
        option, long arg)"
      pos:
        line_end: 1302
        line_start: 1301
        source_file: /src/curl/lib/setopt.c
      type: CURLcode
    union: []
- function_names:
  - HMAC_SHA256
  - sha256_to_hex
  - find_date_hdr
  - trim_headers
  - pair_array_free
  - dyn_array_free
  - split_to_dyn_array
  - is_reserved_char
  - uri_encode_path
  - normalize_query
  - should_urlencode
  - compare_header_names
  - merge_duplicate_headers
  - make_headers
  - parse_content_sha_hdr
  - calc_payload_hash
  - calc_s3_payload_hash
  - compare_func
  - canon_path
  - canon_query
  - Curl_output_aws_sigv4
  source_file: /src/curl/lib/http_aws_sigv4.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIMESTAMP_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: '17'
    - item_type: preproc_def
      name: SHA256_HEX_LENGTH
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: ((2 * CURL_SHA256_DIGEST_LENGTH) + 1)
    - item_type: preproc_def
      name: MAX_QUERY_COMPONENTS
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: '128'
    - item_type: preproc_def
      name: SPLIT_BY
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: '''&'''
    - item_type: preproc_def
      name: MAX_SIGV4_LEN
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: '64'
    - item_type: preproc_def
      name: DATE_HDR_KEY_LEN
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: (MAX_SIGV4_LEN + sizeof("X--Date"))
    - item_type: preproc_def
      name: DATE_FULL_HDR_LEN
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: (DATE_HDR_KEY_LEN + TIMESTAMP_SIZE + 1)
    - item_type: preproc_def
      name: CONTENT_SHA256_KEY_LEN
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: (MAX_SIGV4_LEN + sizeof("X--Content-Sha256"))
    - item_type: preproc_def
      name: CONTENT_SHA256_HDR_LEN
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: (CONTENT_SHA256_KEY_LEN + 2 + SHA256_HEX_LENGTH)
    - item_type: preproc_def
      name: S3_UNSIGNED_PAYLOAD
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/curl/lib/http_aws_sigv4.c
      type_or_value: '"UNSIGNED-PAYLOAD"'
    structs:
    - fields:
      - name: key
        type: struct dynbuf
      - name: value
        type: struct dynbuf
      item_type: struct
      name: pair
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/curl/lib/http_aws_sigv4.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/http.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_HTTP_V1x
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/http.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CURL_HTTP_V2x
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/http.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CURL_HTTP_V3x
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/http.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CURLAUTH_PICKNONE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/lib/http.h
      type_or_value: '(1 << 30) '
    - item_type: preproc_def
      name: MAX_INITIAL_POST_SIZE
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/curl/lib/http.h
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: EXPECT_100_THRESHOLD
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/curl/lib/http.h
      type_or_value: (1024 * 1024)
    - item_type: preproc_def
      name: MAX_HTTP_RESP_HEADER_SIZE
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/curl/lib/http.h
      type_or_value: (300 * 1024)
    - item_type: preproc_def
      name: MAX_HTTP_RESP_HEADER_COUNT
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/curl/lib/http.h
      type_or_value: '5000'
    - item_type: preproc_def
      name: HTTP_PSEUDO_METHOD
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/curl/lib/http.h
      type_or_value: '":method"'
    - item_type: preproc_def
      name: HTTP_PSEUDO_SCHEME
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/curl/lib/http.h
      type_or_value: '":scheme"'
    - item_type: preproc_def
      name: HTTP_PSEUDO_AUTHORITY
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/curl/lib/http.h
      type_or_value: '":authority"'
    - item_type: preproc_def
      name: HTTP_PSEUDO_PATH
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/curl/lib/http.h
      type_or_value: '":path"'
    - item_type: preproc_def
      name: HTTP_PSEUDO_STATUS
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/curl/lib/http.h
      type_or_value: '":status"'
    structs:
    - fields:
      - name: rcvd_min
        type: unsigned char
      - name: wanted
        type: http_majors
      - name: allowed
        type: http_majors
      - name: preferred
        type: http_majors
      item_type: struct
      name: http_negotiation
      pos:
        line_end: 60
        line_start: 51
        source_file: /src/curl/lib/http.h
    - fields:
      - name: headers
        type: struct dynhds
      - name: trailers
        type: struct dynhds
      - name: '*scheme'
        type: char
      - name: '*authority'
        type: char
      - name: '*path'
        type: char
      - name: method[1]
        type: char
      item_type: struct
      name: httpreq
      pos:
        line_end: 212
        line_start: 205
        source_file: /src/curl/lib/http.h
    - fields:
      - name: status
        type: int
      - name: '*description'
        type: char
      - name: headers
        type: struct dynhds
      - name: trailers
        type: struct dynhds
      - name: '*prev'
        type: struct http_resp
      item_type: struct
      name: http_resp
      pos:
        line_end: 262
        line_start: 256
        source_file: /src/curl/lib/http.h
    typedefs:
    - item_type: typedef
      name: http_majors
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/curl/lib/http.h
      type: unsigned char
    union: []
- function_names:
  - Curl_doh_wanted
  - Curl_doh
  - Curl_doh_take_result
  - Curl_doh_wanted
  source_file: /src/curl/lib/doh.h
  types:
    enum:
    - enumerators:
      - name: DOH_SLOT_IPV4
        value: '0'
      - name: DOH_SLOT_HTTPS_RR
        value: '2'
      - name: DOH_SLOT_IPV6
        value: '1'
      - name: DOH_SLOT_COUNT
      item_type: enum
      name: doh_slot_num
      pos:
        line_end: 81
        line_start: 62
        source_file: /src/curl/lib/doh.h
    preproc_defs:
    - item_type: preproc_def
      name: CURL_EZM_DOH_PROBE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/lib/doh.h
      type_or_value: '"ezm:doh-p"'
    - item_type: preproc_def
      name: DOH_MAX_DNSREQ_SIZE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/lib/doh.h
      type_or_value: (256 + 16)
    - item_type: preproc_def
      name: DOH_MAX_ADDR
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/curl/lib/doh.h
      type_or_value: '24'
    - item_type: preproc_def
      name: DOH_MAX_CNAME
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/lib/doh.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DOH_MAX_HTTPS
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/curl/lib/doh.h
      type_or_value: '4'
    - item_type: preproc_def
      name: COMMA_CHAR
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/curl/lib/doh.h
      type_or_value: ''','''
    - item_type: preproc_def
      name: BACKSLASH_CHAR
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/curl/lib/doh.h
      type_or_value: '''\\'''
    structs:
    - fields:
      - name: req_body[DOH_MAX_DNSREQ_SIZE]
        type: unsigned char
      - name: '*req_hds'
        type: struct curl_slist
      - name: resp_body
        type: struct dynbuf
      - name: req_body_len
        type: size_t
      - name: resolv_id
        type: uint32_t
      - name: dnstype
        type: DNStype
      item_type: struct
      name: doh_request
      pos:
        line_end: 97
        line_start: 90
        source_file: /src/curl/lib/doh.h
    - fields:
      - name: probe_mid
        type: uint32_t
      - name: body
        type: struct dynbuf
      - name: dnstype
        type: DNStype
      - name: result
        type: CURLcode
      item_type: struct
      name: doh_response
      pos:
        line_end: 104
        line_start: 99
        source_file: /src/curl/lib/doh.h
    - fields:
      - name: probe_resp[DOH_SLOT_COUNT]
        type: struct doh_response
      - name: pending
        type: unsigned int
      - name: port
        type: uint16_t
      - name: '*host'
        type: char
      item_type: struct
      name: doh_probes
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/curl/lib/doh.h
    - fields:
      - name: type
        type: int
      - name: ip
        type: "union {\n    unsigned char v4[4]; /* network byte order */\n    unsigned
          char v6[16];\n  }"
      item_type: struct
      name: dohaddr
      pos:
        line_end: 136
        line_start: 130
        source_file: /src/curl/lib/doh.h
    - fields:
      - name: len
        type: uint16_t
      - name: '*val'
        type: unsigned char
      item_type: struct
      name: dohhttps_rr
      pos:
        line_end: 150
        line_start: 147
        source_file: /src/curl/lib/doh.h
    - fields:
      - name: cname[DOH_MAX_CNAME]
        type: struct dynbuf
      - name: addr[DOH_MAX_ADDR]
        type: struct dohaddr
      - name: numaddr
        type: int
      - name: ttl
        type: unsigned int
      - name: numcname
        type: int
      item_type: struct
      name: dohentry
      pos:
        line_end: 163
        line_start: 153
        source_file: /src/curl/lib/doh.h
    typedefs: []
    union: []
- function_names:
  - global_init_lock
  - global_init_unlock
  - global_init
  - curl_global_init
  - curl_global_init_mem
  - curl_global_cleanup
  - curl_global_trace
  - curl_global_sslset
  - curl_easy_init
  - events_timer
  - poll2cselect
  - socketcb2poll
  - events_socket
  - events_setup
  - populate_fds
  - poll_fds
  - wait_or_timeout
  - easy_events
  - easy_events
  - easy_transfer
  - easy_perform
  - curl_easy_perform
  - curl_easy_perform_ev
  - curl_easy_cleanup
  - curl_easy_getinfo
  - dupset
  - dupeasy_meta_freeentry
  - curl_easy_duphandle
  - curl_easy_reset
  - curl_easy_pause
  - easy_connection
  - curl_easy_recv
  - Curl_connect_only_attach
  - Curl_senddata
  - curl_easy_send
  - curl_easy_upkeep
  - curl_easy_ssls_import
  - curl_easy_ssls_export
  - Curl_meta_set
  - Curl_meta_remove
  - Curl_meta_get
  - Curl_meta_reset
  source_file: /src/curl/lib/easy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEBUG_EV_POLL
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/curl/lib/easy.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*next'
        type: struct socketmonitor
      - name: socket
        type: struct pollfd
      item_type: struct
      name: socketmonitor
      pos:
        line_end: 363
        line_start: 360
        source_file: /src/curl/lib/easy.c
    - fields:
      - name: ms
        type: long
      - name: msbump
        type: bool
      - name: num_sockets
        type: int
      - name: '*list'
        type: struct socketmonitor
      - name: running_handles
        type: int
      item_type: struct
      name: events
      pos:
        line_end: 371
        line_start: 365
        source_file: /src/curl/lib/easy.c
    typedefs: []
    union: []
- function_names:
  - Curl_memrchr
  source_file: /src/curl/lib/curl_memrchr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_input_ntlm
  - Curl_output_ntlm
  source_file: /src/curl/lib/http_ntlm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/imap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IMAP_TYPE_CLEARTEXT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/lib/imap.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: IMAP_TYPE_SASL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/imap.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: IMAP_TYPE_NONE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/imap.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IMAP_TYPE_ANY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/imap.h
      type_or_value: (IMAP_TYPE_CLEARTEXT | IMAP_TYPE_SASL)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/config-riscos.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: '"ARM-RISC OS"'
    - item_type: preproc_def
      name: HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_INT
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_SIZE_T
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: '4'
    - item_type: preproc_def
      name: HAVE_RECV
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RECV_TYPE_ARG1
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_ARG2
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: void *
    - item_type: preproc_def
      name: RECV_TYPE_ARG3
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: size_t
    - item_type: preproc_def
      name: RECV_TYPE_ARG4
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_RETV
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: ssize_t
    - item_type: preproc_def
      name: HAVE_SEND
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEND_TYPE_ARG1
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG2
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: void *
    - item_type: preproc_def
      name: SEND_TYPE_ARG3
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: size_t
    - item_type: preproc_def
      name: SEND_TYPE_ARG4
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_RETV
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/curl/lib/config-riscos.h
      type_or_value: ssize_t
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/parsedate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/hash.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct Curl_hash_element
      - name: '*ptr'
        type: void
      - name: dtor
        type: Curl_hash_elem_dtor
      - name: key_len
        type: size_t
      - name: key[1]
        type: char
      item_type: struct
      name: Curl_hash_element
      pos:
        line_end: 50
        line_start: 44
        source_file: /src/curl/lib/hash.h
    - fields:
      - name: '**table'
        type: struct Curl_hash_element
      - name: hash_func
        type: hash_function
      - name: comp_func
        type: comp_function
      - name: dtor
        type: Curl_hash_dtor
      - name: slots
        type: size_t
      - name: size
        type: size_t
      item_type: struct
      name: Curl_hash
      pos:
        line_end: 66
        line_start: 52
        source_file: /src/curl/lib/hash.h
    - fields:
      - name: '*hash'
        type: struct Curl_hash
      - name: slot_index
        type: size_t
      - name: '*current'
        type: struct Curl_hash_element
      item_type: struct
      name: Curl_hash_iterator
      pos:
        line_end: 75
        line_start: 68
        source_file: /src/curl/lib/hash.h
    typedefs:
    - item_type: typedef
      name: "(*hash_function)(void *key,\n                                size_t key_length,\n
        \                               size_t slots_num)"
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/curl/lib/hash.h
      type: size_t
    - item_type: typedef
      name: "(*comp_function)(void *key1,\n                                size_t
        key1_len,\n                                void *key2,\n                                size_t
        key2_len)"
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/curl/lib/hash.h
      type: size_t
    - item_type: typedef
      name: (*Curl_hash_dtor)(void *)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/curl/lib/hash.h
      type: void
    - item_type: typedef
      name: (*Curl_hash_elem_dtor)(void *key, size_t key_len, void *p)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/curl/lib/hash.h
      type: void
    union: []
- function_names:
  - thrdslot_destroy
  - thrdslot_done
  - CURL_STDCALL::thrdslot_run
  - thrdslot_start
  - thrdpool_wake_all
  - thrdpool_join_zombies
  - thrdpool_unlink
  - thrdpool_signal
  - Curl_thrdpool_set_props
  - Curl_thrdpool_create
  - Curl_thrdpool_destroy
  - Curl_thrdpool_signal
  - thrdpool_all_idle
  - Curl_thrdpool_await_idle
  - Curl_thrdpool_trace
  source_file: /src/curl/lib/thrdpool.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: node
        type: struct Curl_llist_node
      - name: '*tpool'
        type: struct curl_thrdpool
      - name: thread
        type: curl_thread_t
      - name: await
        type: curl_cond_t
      - name: starttime
        type: struct curltime
      - name: '*work_description'
        type: char
      - name: work_timeout_ms
        type: timediff_t
      - name: id
        type: uint32_t
      item_type: struct
      name: thrdslot
      pos:
        line_end: 48
        line_start: 37
        source_file: /src/curl/lib/thrdpool.c
    - fields:
      - name: '*name'
        type: char
      - name: refcount
        type: uint64_t
      - name: lock
        type: curl_mutex_t
      - name: await
        type: curl_cond_t
      - name: slots
        type: struct Curl_llist
      - name: zombies
        type: struct Curl_llist
      - name: '*fn_take'
        type: Curl_thrdpool_take_item_cb
      - name: '*fn_process'
        type: Curl_thrdpool_process_item_cb
      - name: '*fn_return'
        type: Curl_thrdpool_return_item_cb
      - name: '*fn_user_data'
        type: void
      - name: fatal_err
        type: CURLcode
      - name: min_threads
        type: uint32_t
      - name: max_threads
        type: uint32_t
      - name: idle_time_ms
        type: uint32_t
      - name: next_id
        type: uint32_t
      item_type: struct
      name: curl_thrdpool
      pos:
        line_end: 68
        line_start: 50
        source_file: /src/curl/lib/thrdpool.c
    typedefs: []
    union: []
- function_names:
  - doh_strerror
  - doh_req_encode
  - doh_probe_write_cb
  - doh_print_buf
  - doh_probe_done
  - doh_probe_dtor
  - ERROR_CHECK_SETOPT
  - doh_probe_run
  - Curl_doh
  - doh_skipqname
  - doh_get16bit
  - doh_get32bit
  - doh_store_a
  - doh_store_aaaa
  - doh_store_https
  - doh_store_cname
  - doh_rdata
  - de_init
  - doh_resp_decode
  - doh_show
  - doh2ai
  - doh_type2name
  - de_cleanup
  - doh_decode_rdata_name
  - doh_resp_decode_httpsrr
  - doh_print_httpsrr
  - Curl_doh_take_result
  - doh_close
  - Curl_doh_cleanup
  source_file: /src/curl/lib/doh.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DNS_CLASS_IN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/doh.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: LOCAL_PB_HEXMAX
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/curl/lib/doh.c
      type_or_value: '400'
    structs: []
    typedefs: []
    union: []
- function_names:
  - checkday
  - checkmonth
  - tzcompare
  - checktz
  - skip
  - time2epoch
  - oneortwodigit
  - match_time
  - initwhen
  - datestring
  - datenum
  - datecheck
  - tzadjust
  - mktimet
  - parsedate
  - parsedate
  - curl_getdate
  - Curl_getdate_capped
  source_file: /src/curl/lib/parsedate.c
  types:
    enum:
    - enumerators:
      - name: DATE_MDAY
      - name: DATE_TIME
      - name: DATE_YEAR
      item_type: enum
      name: assume
      pos:
        line_end: 277
        line_start: 273
        source_file: /src/curl/lib/parsedate.c
    preproc_defs:
    - item_type: preproc_def
      name: PARSEDATE_OK
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/lib/parsedate.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PARSEDATE_FAIL
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/lib/parsedate.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: PARSEDATE_LATER
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/lib/parsedate.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PARSEDATE_SOONER
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/curl/lib/parsedate.c
      type_or_value: '2'
    - item_type: preproc_def
      name: tDAYZONE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/curl/lib/parsedate.c
      type_or_value: '(-60)         '
    - item_type: preproc_def
      name: LEAP_DAYS_BEFORE_1969
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/curl/lib/parsedate.c
      type_or_value: '477'
    - item_type: preproc_def
      name: NAME_LEN
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/curl/lib/parsedate.c
      type_or_value: '12'
    structs:
    - fields:
      - name: name[5]
        type: char
      - name: offset
        type: int16_t
      item_type: struct
      name: tzinfo
      pos:
        line_end: 114
        line_start: 111
        source_file: /src/curl/lib/parsedate.c
    - fields:
      - name: wday
        type: int
      - name: mon
        type: int
      - name: mday
        type: int
      - name: hour
        type: int
      - name: min
        type: int
      - name: sec
        type: int
      - name: year
        type: int
      - name: tzoff
        type: int
      item_type: struct
      name: when
      pos:
        line_end: 271
        line_start: 262
        source_file: /src/curl/lib/parsedate.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_printf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MERR_OK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/curl/lib/curl_printf.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MERR_MEM
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/lib/curl_printf.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MERR_TOO_LARGE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/curl_printf.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - smtp_parse_url_options
  - smtp_parse_url_path
  - smtp_parse_custom_request
  - smtp_parse_address
  - cr_eob_init
  - cr_eob_close
  - cr_eob_read
  - cr_eob_total_length
  - cr_eob_add
  - smtp_endofresp
  - smtp_get_message
  - smtp_state
  - smtp_perform_ehlo
  - smtp_perform_helo
  - smtp_perform_starttls
  - smtp_perform_upgrade_tls
  - smtp_perform_auth
  - smtp_continue_auth
  - smtp_cancel_auth
  - smtp_perform_authentication
  - smtp_perform_command
  - smtp_perform_mail
  - smtp_perform_rcpt_to
  - smtp_perform_quit
  - smtp_state_servergreet_resp
  - smtp_state_starttls_resp
  - smtp_state_ehlo_resp
  - smtp_state_helo_resp
  - smtp_state_auth_resp
  - smtp_state_command_resp
  - smtp_state_mail_resp
  - smtp_state_rcpt_resp
  - smtp_state_data_resp
  - smtp_state_postdata_resp
  - smtp_pp_statemachine
  - smtp_multi_statemach
  - smtp_block_statemach
  - smtp_pollset
  - smtp_connect
  - smtp_done
  - smtp_perform
  - smtp_dophase_done
  - smtp_regular_transfer
  - smtp_do
  - smtp_disconnect
  - smtp_doing
  - smtp_easy_dtor
  - smtp_conn_dtor
  - smtp_setup_connection
  source_file: /src/curl/lib/smtp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_SMTP_EASY
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/smtp.c
      type_or_value: '"meta:proto:smtp:easy"'
    - item_type: preproc_def
      name: CURL_META_SMTP_CONN
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/lib/smtp.c
      type_or_value: '"meta:proto:smtp:conn"'
    - item_type: preproc_def
      name: SMTP_EOB
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/curl/lib/smtp.c
      type_or_value: '"\r\n.\r\n"'
    - item_type: preproc_def
      name: SMTP_EOB_FIND_LEN
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/curl/lib/smtp.c
      type_or_value: '3'
    structs:
    - fields:
      - name: pp
        type: struct pingpong
      - name: sasl
        type: struct SASL
      - name: state
        type: smtpstate
      - name: '*domain'
        type: char
      item_type: struct
      name: smtp_conn
      pos:
        line_end: 120
        line_start: 108
        source_file: /src/curl/lib/smtp.c
    - fields:
      - name: transfer
        type: curl_pp_transfer
      - name: '*custom'
        type: char
      - name: '*rcpt'
        type: struct curl_slist
      - name: rcpt_last_error
        type: int
      - name: eob
        type: size_t
      item_type: struct
      name: SMTP
      pos:
        line_end: 136
        line_start: 126
        source_file: /src/curl/lib/smtp.c
    - fields:
      - name: super
        type: struct Curl_creader
      - name: buf
        type: struct bufq
      - name: n_eob
        type: size_t
      - name: eob
        type: size_t
      item_type: struct
      name: cr_eob_ctx
      pos:
        line_end: 309
        line_start: 300
        source_file: /src/curl/lib/smtp.c
    typedefs: []
    union: []
- function_names:
  - ws_frame_name_of_op
  - ws_frame_firstbyte2flags
  - ws_frame_flags2firstbyte
  - ws_dec_info
  - ws_dec_next_frame
  - ws_dec_reset
  - ws_dec_init
  - ws_dec_read_head
  - ws_dec_pass_payload
  - ws_dec_pass
  - update_meta
  - ws_cw_init
  - ws_cw_close
  - ws_enc_add_cntrl
  - ws_payload_remain
  - ws_cw_dec_next
  - ws_cw_write
  - ws_enc_info
  - ws_enc_reset
  - ws_enc_init
  - ws_enc_add_frame
  - ws_enc_write_head
  - ws_enc_write_payload
  - ws_enc_add_pending
  - ws_enc_send
  - cr_ws_init
  - cr_ws_close
  - cr_ws_read
  - Curl_ws_request
  - ws_conn_dtor
  - Curl_ws_accept
  - ws_client_collect
  - nw_in_recv
  - curl_ws_recv
  - ws_flush
  - ws_send_raw_blocking
  - ws_send_raw
  - curl_ws_send
  - ws_setup_conn
  - curl_ws_meta
  - curl_ws_start_frame
  - curl_ws_recv
  - curl_ws_send
  - curl_ws_meta
  - curl_ws_start_frame
  source_file: /src/curl/lib/ws.c
  types:
    enum:
    - enumerators:
      - name: WS_DEC_INIT
      - name: WS_DEC_HEAD
      - name: WS_DEC_PAYLOAD
      item_type: enum
      name: ws_dec_state
      pos:
        line_end: 81
        line_start: 77
        source_file: /src/curl/lib/ws.c
    preproc_defs:
    - item_type: preproc_def
      name: WSBIT_FIN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: WSBIT_RSV1
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: WSBIT_RSV2
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: WSBIT_RSV3
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: WSBIT_RSV_MASK
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/ws.c
      type_or_value: (WSBIT_RSV1 | WSBIT_RSV2 | WSBIT_RSV3)
    - item_type: preproc_def
      name: WSBIT_OPCODE_CONT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: WSBIT_OPCODE_TEXT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: WSBIT_OPCODE_BIN
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: WSBIT_OPCODE_CLOSE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x8'
    - item_type: preproc_def
      name: WSBIT_OPCODE_PING
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x9'
    - item_type: preproc_def
      name: WSBIT_OPCODE_PONG
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/ws.c
      type_or_value: '0xa'
    - item_type: preproc_def
      name: WSBIT_OPCODE_MASK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/ws.c
      type_or_value: '0xf'
    - item_type: preproc_def
      name: WSBIT_MASK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/ws.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: WS_CHUNK_SIZE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/lib/ws.c
      type_or_value: '65535'
    - item_type: preproc_def
      name: WS_CHUNK_COUNT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/ws.c
      type_or_value: '2'
    - item_type: preproc_def
      name: WS_MAX_CNTRL_LEN
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/lib/ws.c
      type_or_value: '125'
    structs:
    - fields:
      - name: frame_age
        type: int
      - name: frame_flags
        type: int
      - name: payload_offset
        type: curl_off_t
      - name: payload_len
        type: curl_off_t
      - name: head[10]
        type: uint8_t
      - name: head_len
        type: int
      - name: state
        type: enum ws_dec_state
      - name: cont_flags
        type: int
      item_type: struct
      name: ws_decoder
      pos:
        line_end: 92
        line_start: 83
        source_file: /src/curl/lib/ws.c
    - fields:
      - name: payload_len
        type: curl_off_t
      - name: payload_remain
        type: curl_off_t
      - name: xori
        type: unsigned int
      - name: mask[4]
        type: uint8_t
      - name: firstbyte
        type: uint8_t
      item_type: struct
      name: ws_encoder
      pos:
        line_end: 103
        line_start: 96
        source_file: /src/curl/lib/ws.c
    - fields:
      - name: type
        type: unsigned int
      - name: payload_len
        type: size_t
      - name: payload[WS_MAX_CNTRL_LEN]
        type: uint8_t
      item_type: struct
      name: ws_cntrl_frame
      pos:
        line_end: 112
        line_start: 108
        source_file: /src/curl/lib/ws.c
    - fields:
      - name: '*data'
        type: struct Curl_easy
      - name: dec
        type: struct ws_decoder
      - name: enc
        type: struct ws_encoder
      - name: recvbuf
        type: struct bufq
      - name: sendbuf
        type: struct bufq
      - name: recvframe
        type: struct curl_ws_frame
      - name: pending
        type: struct ws_cntrl_frame
      - name: sendbuf_payload
        type: size_t
      item_type: struct
      name: websocket
      pos:
        line_end: 125
        line_start: 116
        source_file: /src/curl/lib/ws.c
    - fields:
      - name: super
        type: struct Curl_cwriter
      - name: buf
        type: struct bufq
      item_type: struct
      name: ws_cw_ctx
      pos:
        line_end: 591
        line_start: 588
        source_file: /src/curl/lib/ws.c
    - fields:
      - name: '*data'
        type: struct Curl_easy
      - name: '*ws'
        type: struct websocket
      - name: '*next_writer'
        type: struct Curl_cwriter
      - name: cw_type
        type: int
      item_type: struct
      name: ws_cw_dec_ctx
      pos:
        line_end: 614
        line_start: 609
        source_file: /src/curl/lib/ws.c
    - fields:
      - name: super
        type: struct Curl_creader
      item_type: struct
      name: cr_ws_ctx
      pos:
        line_end: 1126
        line_start: 1122
        source_file: /src/curl/lib/ws.c
    - fields:
      - name: '*name'
        type: char
      - name: '*val'
        type: char
      item_type: struct
      name: wsfield
      pos:
        line_end: 1243
        line_start: 1240
        source_file: /src/curl/lib/ws.c
    - fields:
      - name: '*data'
        type: struct Curl_easy
      - name: '*ws'
        type: struct websocket
      - name: '*buffer'
        type: uint8_t
      - name: buflen
        type: size_t
      - name: bufidx
        type: size_t
      - name: frame_age
        type: int
      - name: frame_flags
        type: int
      - name: payload_offset
        type: curl_off_t
      - name: payload_len
        type: curl_off_t
      - name: written
        type: bool
      item_type: struct
      name: ws_collect
      pos:
        line_end: 1464
        line_start: 1453
        source_file: /src/curl/lib/ws.c
    typedefs:
    - item_type: typedef
      name: "ws_write_payload(const uint8_t *buf, size_t buflen,\n                                  int
        frame_age, int frame_flags,\n                                  curl_off_t
        payload_offset,\n                                  curl_off_t payload_len,\n
        \                                 void *userp,\n                                  size_t
        *pnwritten)"
      pos:
        line_end: 330
        line_start: 325
        source_file: /src/curl/lib/ws.c
      type: CURLcode
    union: []
- function_names: []
  source_file: /src/curl/lib/peer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_PEER_UDS_PREFIX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/peer.h
      type_or_value: '"localhost/"'
    structs:
    - fields:
      - name: '*scheme'
        type: struct Curl_scheme
      - name: '*hostname'
        type: char
      - name: '*zoneid'
        type: char
      - name: refcount
        type: uint32_t
      - name: scopeid
        type: uint32_t
      - name: port
        type: uint16_t
      - name: user_hostname[1]
        type: char
      item_type: struct
      name: Curl_peer
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/curl/lib/peer.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/slist.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tcpnodelay
  - KEEPALIVE_FACTOR
  - tcpkeepalive
  - Curl_socket_addr_from_ai
  - Curl_sock_nosigpipe
  - get_scope_id
  - socket_open
  - Curl_socket_open
  - socket_close
  - Curl_socket_close
  - Curl_parse_interface
  - bindlocal
  - verifyconnect
  - socket_connect_result
  - cf_socket_ctx_init
  - cf_socket_shutdown
  - cf_socket_destroy
  - set_local_ip
  - set_remote_ip
  - cf_socktype
  - do_connect
  - cf_tcp_connect
  - cf_socket_adjust_pollset
  - win_update_sndbuf_size
  - cf_socket_send
  - cf_socket_recv
  - cf_socket_update_data
  - cf_socket_active
  - cf_socket_cntrl
  - cf_socket_conn_is_alive
  - cf_socket_query
  - Curl_cf_tcp_create
  - linux_quic_mtu
  - linux_quic_gro
  - cf_udp_setup_quic
  - cf_udp_connect
  - Curl_cf_udp_create
  - Curl_cf_unix_create
  - cf_tcp_accept_timeleft
  - cf_tcp_set_accepted_remote_ip
  - cf_tcp_accept_connect
  - Curl_conn_tcp_listen_set
  - Curl_conn_is_tcp_listen
  - cf_is_socket
  - Curl_cf_socket_peek
  source_file: /src/curl/lib/cf-socket.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TCP_KEEPALIVE
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/curl/lib/cf-socket.c
      type_or_value: '3'
    - item_type: preproc_def
      name: TCP_KEEPCNT
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/curl/lib/cf-socket.c
      type_or_value: '16'
    - item_type: preproc_def
      name: TCP_KEEPIDLE
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/curl/lib/cf-socket.c
      type_or_value: TCP_KEEPALIVE
    - item_type: preproc_def
      name: TCP_KEEPINTVL
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/curl/lib/cf-socket.c
      type_or_value: '17'
    - item_type: preproc_def
      name: SIO_KEEPALIVE_VALS
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/curl/lib/cf-socket.c
      type_or_value: _WSAIOW(IOC_VENDOR, 4)
    - item_type: preproc_def
      name: SIO_IDEAL_SEND_BACKLOG_QUERY
      pos:
        line_end: 1419
        line_start: 1418
        source_file: /src/curl/lib/cf-socket.c
      type_or_value: '0x4004747B'
    structs:
    - fields:
      - name: onoff
        type: u_long
      - name: keepalivetime
        type: u_long
      - name: keepaliveinterval
        type: u_long
      item_type: struct
      name: tcp_keepalive
      pos:
        line_end: 175
        line_start: 171
        source_file: /src/curl/lib/cf-socket.c
    - fields:
      - name: transport
        type: uint8_t
      - name: addr
        type: struct Curl_sockaddr_ex
      - name: sock
        type: curl_socket_t
      - name: ip
        type: struct ip_quadruple
      - name: started_at
        type: struct curltime
      - name: connected_at
        type: struct curltime
      - name: first_byte_at
        type: struct curltime
      - name: error
        type: int
      item_type: struct
      name: cf_socket_ctx
      pos:
        line_end: 931
        line_start: 907
        source_file: /src/curl/lib/cf-socket.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/urlapi-int.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOST_ERROR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/urlapi-int.h
      type_or_value: '(-1) '
    - item_type: preproc_def
      name: HOST_NAME
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/urlapi-int.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HOST_IPV4
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/urlapi-int.h
      type_or_value: '2'
    - item_type: preproc_def
      name: HOST_IPV6
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/urlapi-int.h
      type_or_value: '3'
    - item_type: preproc_def
      name: QUERY_NO
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/urlapi-int.h
      type_or_value: '2'
    - item_type: preproc_def
      name: QUERY_NOT_YET
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/urlapi-int.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: QUERY_YES
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/urlapi-int.h
      type_or_value: '4'
    - item_type: preproc_def
      name: U_CURLU_URLDECODE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/urlapi-int.h
      type_or_value: (unsigned int)CURLU_URLDECODE
    - item_type: preproc_def
      name: U_CURLU_PATH_AS_IS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/urlapi-int.h
      type_or_value: (unsigned int)CURLU_PATH_AS_IS
    structs:
    - fields:
      - name: '*scheme'
        type: char
      - name: '*user'
        type: char
      - name: '*password'
        type: char
      - name: '*options'
        type: char
      - name: '*host'
        type: char
      - name: '*zoneid'
        type: char
      - name: '*port'
        type: char
      - name: '*path'
        type: char
      - name: '*query'
        type: char
      - name: '*fragment'
        type: char
      - name: portnum
        type: unsigned short
      item_type: struct
      name: Curl_URL
      pos:
        line_end: 44
        line_start: 29
        source_file: /src/curl/lib/urlapi-int.h
    typedefs: []
    union: []
- function_names:
  - get_protocol_family
  - Curl_freeset
  - up_free
  - Curl_close
  - Curl_init_userdefined
  - easy_meta_freeentry
  - Curl_open
  - Curl_conn_free
  - xfer_may_multiplex
  - proxy_info_matches
  - conn_maxage
  - Curl_conn_seems_dead
  - Curl_conn_upkeep
  - ssh_config_matches
  - url_match_connect_config
  - url_match_fully_connected
  - url_match_multi
  - url_match_multiplex_needs
  - url_match_multiplex_limits
  - url_match_ssl_use
  - url_match_proxy_use
  - url_match_proxy_use
  - url_match_http_multiplex
  - url_match_http_version
  - url_match_http_multiplex
  - url_match_http_version
  - url_match_proto_config
  - url_match_auth
  - url_match_destination
  - url_match_ssl_config
  - url_match_auth_ntlm
  - url_match_auth_nego
  - url_match_auth_nego
  - url_match_conn
  - url_match_result
  - url_attach_existing
  - allocate_conn
  - url_set_conn_scheme
  - Curl_uc_to_curlcode
  - hsts_upgrade
  - hsts_upgrade
  - str_has_ctrl
  - url_set_data_creds_netrc
  - url_set_data_creds
  - parseurlandfillconn
  - setup_range
  - setup_connection_internals
  - url_detect_proxy
  - parse_proxy
  - url_set_conn_proxies
  - Curl_parse_login_details
  - url_set_conn_login
  - parse_connect_to_string
  - url_set_conn_peer
  - url_conn_reuse_adjust
  - conn_meta_freeentry
  - url_create_needle
  - url_find_or_create_conn
  - Curl_connect
  - Curl_init_do
  - Curl_data_priority_clear_state
  - Curl_conn_meta_set
  - Curl_conn_meta_remove
  - Curl_conn_meta_get
  - Curl_1st_fatal
  source_file: /src/curl/lib/url.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*found'
        type: struct connectdata
      - name: '*data'
        type: struct Curl_easy
      - name: '*needle'
        type: struct connectdata
      item_type: struct
      name: url_conn_match
      pos:
        line_end: 705
        line_start: 686
        source_file: /src/curl/lib/url.c
    typedefs: []
    union: []
- function_names:
  - Curl_cf_def_shutdown
  - Curl_cf_def_adjust_pollset
  - Curl_cf_def_data_pending
  - Curl_cf_def_send
  - Curl_cf_def_recv
  - Curl_cf_def_conn_is_alive
  - Curl_cf_def_conn_keep_alive
  - Curl_cf_def_query
  - Curl_conn_trc_filters
  - Curl_conn_cf_discard_chain
  - Curl_conn_cf_discard_all
  - Curl_conn_shutdown
  - Curl_cf_recv
  - Curl_cf_send
  - cf_bufq_reader
  - Curl_cf_recv_bufq
  - cf_bufq_writer
  - Curl_cf_send_bufq
  - Curl_cf_create
  - Curl_conn_cf_add
  - Curl_conn_cf_insert_after
  - Curl_conn_cf_discard
  - Curl_conn_cf_connect
  - Curl_conn_cf_send
  - Curl_conn_cf_recv
  - cf_verboseconnect
  - cf_cntrl_all
  - cf_cntrl_update_info
  - conn_report_connect_stats
  - conn_remove_setup_filters
  - Curl_conn_connect
  - Curl_conn_is_setup
  - Curl_conn_is_connected
  - Curl_conn_is_ip_connected
  - cf_is_ssl
  - Curl_conn_is_ssl
  - Curl_conn_get_ssl_info
  - Curl_conn_get_ip_info
  - Curl_conn_is_multiplex
  - Curl_conn_get_transport
  - Curl_socktype_for_transport
  - Curl_protocol_for_transport
  - Curl_conn_cf_wants_httpsrr
  - Curl_conn_get_alpn_negotiated
  - Curl_conn_http_version
  - Curl_conn_data_pending
  - Curl_conn_cf_needs_flush
  - Curl_conn_needs_flush
  - Curl_conn_cf_adjust_pollset
  - Curl_conn_adjust_pollset
  - Curl_conn_cf_poll
  - Curl_conn_get_current_host
  - Curl_cf_def_cntrl
  - Curl_conn_cf_cntrl
  - Curl_conn_cf_get_socket
  - Curl_conn_cf_get_transport
  - Curl_conn_cf_get_alpn_negotiated
  - cf_get_remote_addr
  - Curl_conn_cf_get_ip_info
  - Curl_conn_get_first_socket
  - Curl_conn_get_remote_addr
  - Curl_conn_ev_data_setup
  - Curl_conn_flush
  - Curl_conn_ev_data_done_send
  - Curl_conn_ev_data_done
  - Curl_conn_ev_data_pause
  - Curl_conn_is_alive
  - Curl_conn_keep_alive
  - Curl_conn_get_max_concurrent
  - Curl_conn_get_stream_error
  - Curl_conn_sockindex
  - Curl_conn_recv
  - Curl_conn_send
  source_file: /src/curl/lib/cfilters.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_CONN_NUM_POLLS_ON_STACK
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/curl/lib/cfilters.c
      type_or_value: '5'
    structs:
    - fields:
      - name: '*data'
        type: struct Curl_easy
      - name: '*cf'
        type: struct Curl_cfilter
      item_type: struct
      name: cf_io_ctx
      pos:
        line_end: 261
        line_start: 258
        source_file: /src/curl/lib/cfilters.c
    typedefs: []
    union: []
- function_names:
  - cl_reset_writer
  - cl_reset_reader
  - Curl_client_cleanup
  - Curl_client_reset
  - Curl_client_start
  - Curl_creader_will_rewind
  - Curl_creader_set_rewind
  - Curl_cwriter_write
  - Curl_cwriter_def_init
  - Curl_cwriter_def_write
  - Curl_cwriter_def_close
  - get_max_body_write_len
  - cw_download_write
  - cw_raw_write
  - do_init_writer_stack
  - Curl_client_write
  - Curl_cwriter_create
  - Curl_cwriter_free
  - Curl_cwriter_count
  - Curl_cwriter_add
  - Curl_cwriter_get_by_name
  - Curl_cwriter_get_by_type
  - Curl_cwriter_is_content_decoding
  - Curl_cwriter_is_paused
  - Curl_cwriter_unpause
  - Curl_creader_read
  - Curl_creader_clear_eos
  - Curl_creader_def_init
  - Curl_creader_def_close
  - Curl_creader_def_read
  - Curl_creader_def_needs_rewind
  - Curl_creader_def_total_length
  - Curl_creader_def_resume_from
  - Curl_creader_def_cntrl
  - Curl_creader_def_is_paused
  - Curl_creader_def_done
  - cr_in_init
  - cr_in_read
  - cr_in_needs_rewind
  - cr_in_total_length
  - cr_in_resume_from
  - cr_in_rewind
  - cr_in_cntrl
  - cr_in_is_paused
  - Curl_creader_create
  - Curl_creader_free
  - cr_lc_init
  - cr_lc_close
  - cr_lc_read
  - cr_lc_total_length
  - cr_lc_add
  - do_init_reader_stack
  - Curl_creader_set_fread
  - Curl_creader_add
  - Curl_creader_set
  - Curl_client_read
  - Curl_creader_needs_rewind
  - cr_null_read
  - cr_null_total_length
  - Curl_creader_set_null
  - cr_buf_read
  - cr_buf_needs_rewind
  - cr_buf_cntrl
  - cr_buf_total_length
  - cr_buf_resume_from
  - Curl_creader_set_buf
  - Curl_creader_total_length
  - Curl_creader_client_length
  - Curl_creader_resume_from
  - Curl_creader_unpause
  - Curl_creader_is_paused
  - Curl_creader_done
  - Curl_creader_get_by_type
  source_file: /src/curl/lib/sendf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: struct Curl_cwriter
      item_type: struct
      name: cw_download_ctx
      pos:
        line_end: 171
        line_start: 167
        source_file: /src/curl/lib/sendf.c
    - fields:
      - name: super
        type: struct Curl_creader
      - name: read_cb
        type: curl_read_callback
      - name: '*cb_user_data'
        type: void
      - name: total_len
        type: curl_off_t
      - name: read_len
        type: curl_off_t
      - name: error_result
        type: CURLcode
      item_type: struct
      name: cr_in_ctx
      pos:
        line_end: 627
        line_start: 616
        source_file: /src/curl/lib/sendf.c
    - fields:
      - name: super
        type: struct Curl_creader
      - name: buf
        type: struct bufq
      item_type: struct
      name: cr_lc_ctx
      pos:
        line_end: 963
        line_start: 957
        source_file: /src/curl/lib/sendf.c
    - fields:
      - name: super
        type: struct Curl_creader
      - name: '*buf'
        type: char
      - name: blen
        type: size_t
      - name: index
        type: size_t
      item_type: struct
      name: cr_buf_ctx
      pos:
        line_end: 1292
        line_start: 1287
        source_file: /src/curl/lib/sendf.c
    typedefs: []
    union: []
- function_names:
  - check_gss_err
  - socks5_gss_create_service_name
  - socks5_gss_auth_loop
  - socks5_gss_auth_verify
  - socks5_gss_negotiate_enc
  - Curl_SOCKS5_gssapi_negotiate
  source_file: /src/curl/lib/socks_gssapi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_GSS_LEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/socks_gssapi.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/netrc.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: filebuf
        type: struct dynbuf
      - name: '*filename'
        type: char
      item_type: struct
      name: store_netrc
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/curl/lib/netrc.h
    typedefs: []
    union: []
- function_names:
  - uint32_hash_hash
  - Curl_uint32_hash_init
  - uint32_hash_mk_entry
  - uint32_hash_entry_clear
  - uint32_hash_entry_destroy
  - uint32_hash_entry_unlink
  - uint32_hash_elem_link
  - CURL_UINT32_HASH_SLOT
  - CURL_UINT32_HASH_SLOT_ADDR
  - Curl_uint32_hash_set
  - Curl_uint32_hash_remove
  - Curl_uint32_hash_get
  - uint_hash_clear
  - Curl_uint32_hash_destroy
  - Curl_uint32_hash_count
  - Curl_uint32_hash_visit
  source_file: /src/curl/lib/uint-hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_UINT32_HASHINIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/uint-hash.c
      type_or_value: '0x7117e779'
    structs:
    - fields:
      - name: '*next'
        type: struct uint_hash_entry
      - name: '*value'
        type: void
      - name: id
        type: uint32_t
      item_type: struct
      name: uint_hash_entry
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/curl/lib/uint-hash.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/sendf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CLIENTWRITE_BODY
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/sendf.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: CLIENTWRITE_INFO
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/sendf.h
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: CLIENTWRITE_HEADER
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/sendf.h
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: CLIENTWRITE_STATUS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/sendf.h
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: CLIENTWRITE_CONNECT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/sendf.h
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: CLIENTWRITE_1XX
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/sendf.h
      type_or_value: '(1 << 5) '
    - item_type: preproc_def
      name: CLIENTWRITE_TRAILER
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/sendf.h
      type_or_value: '(1 << 6) '
    - item_type: preproc_def
      name: CLIENTWRITE_EOS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/sendf.h
      type_or_value: '(1 << 7) '
    - item_type: preproc_def
      name: CLIENTWRITE_0LEN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/sendf.h
      type_or_value: '(1 << 8) '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*alias'
        type: char
      - name: "(*do_init)(struct Curl_easy *data,\n                      struct Curl_cwriter
          *writer)"
        type: CURLcode
      - name: "(*do_write)(struct Curl_easy *data,\n                       struct
          Curl_cwriter *writer, int type,\n                       const char *buf,
          size_t nbytes)"
        type: CURLcode
      - name: "(*do_close)(struct Curl_easy *data,\n                   struct Curl_cwriter
          *writer)"
        type: void
      - name: cwriter_size
        type: size_t
      item_type: struct
      name: Curl_cwtype
      pos:
        line_end: 120
        line_start: 109
        source_file: /src/curl/lib/sendf.h
    - fields:
      - name: '*cwt'
        type: struct Curl_cwtype
      - name: '*next'
        type: struct Curl_cwriter
      - name: '*ctx'
        type: void
      - name: phase
        type: Curl_cwriter_phase
      item_type: struct
      name: Curl_cwriter
      pos:
        line_end: 133
        line_start: 128
        source_file: /src/curl/lib/sendf.h
    - fields:
      - name: '*name'
        type: char
      - name: (*do_init)(struct Curl_easy *data, struct Curl_creader *reader)
        type: CURLcode
      - name: "(*do_read)(struct Curl_easy *data, struct Curl_creader *reader,\n                      char
          *buf, size_t blen, size_t *nread, bool *eos)"
        type: CURLcode
      - name: (*do_close)(struct Curl_easy *data, struct Curl_creader *reader)
        type: void
      - name: (*needs_rewind)(struct Curl_easy *data, struct Curl_creader *reader)
        type: bool
      - name: "(*total_length)(struct Curl_easy *data,\n                             struct
          Curl_creader *reader)"
        type: curl_off_t
      - name: "(*resume_from)(struct Curl_easy *data,\n                          struct
          Curl_creader *reader, curl_off_t offset)"
        type: CURLcode
      - name: "(*cntrl)(struct Curl_easy *data, struct Curl_creader *reader,\n                    Curl_creader_cntrl
          opcode)"
        type: CURLcode
      - name: (*is_paused)(struct Curl_easy *data, struct Curl_creader *reader)
        type: bool
      - name: "(*done)(struct Curl_easy *data,\n               struct Curl_creader
          *reader, int premature)"
        type: void
      - name: creader_size
        type: size_t
      item_type: struct
      name: Curl_crtype
      pos:
        line_end: 230
        line_start: 213
        source_file: /src/curl/lib/sendf.h
    - fields:
      - name: '*crt'
        type: struct Curl_crtype
      - name: '*next'
        type: struct Curl_creader
      - name: '*ctx'
        type: void
      - name: phase
        type: Curl_creader_phase
      item_type: struct
      name: Curl_creader
      pos:
        line_end: 252
        line_start: 247
        source_file: /src/curl/lib/sendf.h
    typedefs: []
    union: []
- function_names:
  - tftp_set_timeouts
  - setpacketevent
  - setpacketblock
  - getrpacketevent
  - getrpacketblock
  - tftp_strnlen
  - tftp_option_get
  - tftp_parse_option_ack
  - tftp_option_add
  - NEXT_BLOCKNUM
  - tftp_tx
  - tftp_connect_for_tx
  - tftp_rx
  - tftp_connect_for_rx
  - tftp_send_first
  - CURL_SENDTO_ARG5
  - CURL_SENDTO_ARG5
  - tftp_translate_code
  - tftp_state_machine
  - tftp_conn_dtor
  - tftp_connect
  - tftp_done
  - tftp_pollset
  - tftp_receive_packet
  - tftp_state_timeout
  - tftp_multi_statemach
  - tftp_doing
  - tftp_perform
  - tftp_do
  - tftp_setup_connection
  source_file: /src/curl/lib/tftp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TFTP_BLKSIZE_DEFAULT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/tftp.c
      type_or_value: '512'
    - item_type: preproc_def
      name: TFTP_OPTION_BLKSIZE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/lib/tftp.c
      type_or_value: '"blksize"'
    - item_type: preproc_def
      name: TFTP_OPTION_TSIZE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/lib/tftp.c
      type_or_value: '"tsize"'
    - item_type: preproc_def
      name: TFTP_OPTION_INTERVAL
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/lib/tftp.c
      type_or_value: '"timeout"'
    - item_type: preproc_def
      name: CURL_META_TFTP_CONN
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/lib/tftp.c
      type_or_value: '"meta:proto:tftp:conn"'
    structs:
    - fields:
      - name: '*data'
        type: unsigned char
      item_type: struct
      name: tftp_packet
      pos:
        line_end: 115
        line_start: 113
        source_file: /src/curl/lib/tftp.c
    - fields:
      - name: local_addr
        type: struct Curl_sockaddr_storage
      - name: remote_addr
        type: struct Curl_sockaddr_storage
      - name: rpacket
        type: struct tftp_packet
      - name: spacket
        type: struct tftp_packet
      - name: state
        type: tftp_state_t
      - name: mode
        type: tftp_mode_t
      - name: error
        type: tftp_error_t
      - name: event
        type: tftp_event_t
      - name: '*data'
        type: struct Curl_easy
      - name: sockfd
        type: curl_socket_t
      - name: retries
        type: int
      - name: retry_time
        type: int
      - name: retry_max
        type: int
      - name: rx_time
        type: time_t
      - name: remote_addrlen
        type: curl_socklen_t
      - name: rbytes
        type: int
      - name: sbytes
        type: size_t
      - name: blksize
        type: unsigned int
      - name: requested_blksize
        type: unsigned int
      - name: block
        type: unsigned short
      item_type: struct
      name: tftp_conn
      pos:
        line_end: 142
        line_start: 120
        source_file: /src/curl/lib/tftp.c
    typedefs: []
    union: []
- function_names:
  - IS_HTTPS_PROXY
  - IS_QUIC_PROXY
  source_file: /src/curl/lib/http_proxy.h
  types:
    enum:
    - enumerators:
      - name: HEADER_SERVER
      - name: HEADER_PROXY
      - name: HEADER_CONNECT_UDP
      - name: HEADER_CONNECT
      item_type: enum
      name: Curl_proxy_use
      pos:
        line_end: 36
        line_start: 31
        source_file: /src/curl/lib/http_proxy.h
    preproc_defs:
    - item_type: preproc_def
      name: PROXY_TIMEOUT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/http_proxy.h
      type_or_value: (3600 * 1000)
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_raw_toupper
  - Curl_raw_tolower
  - Curl_strntoupper
  - Curl_strntolower
  - Curl_safecmp
  - Curl_timestrcmp
  source_file: /src/curl/lib/strcase.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - chunk_is_empty
  - chunk_is_full
  - chunk_len
  - chunk_reset
  - chunk_append
  - chunk_read
  - chunk_slurpn
  - chunk_peek
  - chunk_peek_at
  - chunk_skip
  - chunk_list_free
  - Curl_bufcp_init
  - bufcp_take
  - bufcp_put
  - Curl_bufcp_free
  - bufq_init
  - Curl_bufq_init2
  - Curl_bufq_init
  - Curl_bufq_initp
  - Curl_bufq_free
  - Curl_bufq_reset
  - Curl_bufq_len
  - Curl_bufq_is_empty
  - Curl_bufq_is_full
  - get_spare
  - prune_head
  - get_non_full_tail
  - Curl_bufq_write
  - Curl_bufq_cwrite
  - Curl_bufq_read
  - Curl_bufq_cread
  - Curl_bufq_peek
  - Curl_bufq_peek_at
  - Curl_bufq_skip
  - Curl_bufq_pass
  - Curl_bufq_write_pass
  - Curl_bufq_sipn
  - bufq_slurpn
  - Curl_bufq_slurp
  source_file: /src/curl/lib/bufq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mnfty_chunk_create
  - mnfty_chunk_destroy
  - mnfty_chunk_reset
  - mntfy_chunk_append
  - mntfy_non_full_tail
  - mntfy_chunk_dispatch_all
  - Curl_mntfy_init
  - Curl_mntfy_resize
  - Curl_mntfy_cleanup
  - Curl_mntfy_enable
  - Curl_mntfy_disable
  - Curl_mntfy_add
  - Curl_mntfy_dispatch_all
  source_file: /src/curl/lib/multi_ntfy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_MNTFY_CHUNK_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/multi_ntfy.c
      type_or_value: '128'
    structs:
    - fields:
      - name: mid
        type: uint32_t
      - name: type
        type: uint32_t
      item_type: struct
      name: mntfy_entry
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/curl/lib/multi_ntfy.c
    - fields:
      - name: '*next'
        type: struct mntfy_chunk
      - name: r_offset
        type: size_t
      - name: w_offset
        type: size_t
      - name: entries[CURL_MNTFY_CHUNK_SIZE]
        type: struct mntfy_entry
      item_type: struct
      name: mntfy_chunk
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/curl/lib/multi_ntfy.c
    typedefs: []
    union: []
- function_names:
  - Curl_httpchunk_init
  - Curl_httpchunk_reset
  - Curl_httpchunk_free
  - Curl_httpchunk_is_done
  - httpchunk_readwrite
  - Curl_chunked_strerror
  - Curl_httpchunk_read
  - cw_chunked_init
  - cw_chunked_close
  - cw_chunked_write
  - cr_chunked_init
  - cr_chunked_close
  - add_last_chunk
  - add_chunk
  - cr_chunked_read
  - cr_chunked_total_length
  - Curl_httpchunk_add_reader
  source_file: /src/curl/lib/http_chunks.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_CHUNKED_MINLEN
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/curl/lib/http_chunks.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: CURL_CHUNKED_MAXLEN
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/curl/lib/http_chunks.c
      type_or_value: (64 * 1024)
    structs:
    - fields:
      - name: super
        type: struct Curl_cwriter
      - name: ch
        type: struct Curl_chunker
      item_type: struct
      name: chunked_writer
      pos:
        line_end: 402
        line_start: 399
        source_file: /src/curl/lib/http_chunks.c
    - fields:
      - name: super
        type: struct Curl_creader
      - name: chunkbuf
        type: struct bufq
      item_type: struct
      name: chunked_reader
      pos:
        line_end: 482
        line_start: 477
        source_file: /src/curl/lib/http_chunks.c
    typedefs: []
    union: []
- function_names:
  - tunnel_stream_init
  - tunnel_stream_reset
  - tunnel_stream_clear
  - h2_tunnel_go_state
  - CF_CTX_CALL_DATA
  - cf_h2_proxy_ctx_clear
  - cf_h2_proxy_ctx_free
  - drain_tunnel
  - proxy_h2_nw_out_writer
  - proxy_h2_client_new
  - proxy_h2_should_close_session
  - proxy_h2_nw_out_flush
  - proxy_h2_process_pending_input
  - proxy_h2_progress_ingress
  - proxy_h2_progress_egress
  - on_session_send
  - proxy_h2_on_frame_send
  - proxy_h2_on_frame_recv
  - proxy_h2_on_header
  - tunnel_send_callback
  - tunnel_recv_callback
  - proxy_h2_on_stream_close
  - proxy_h2_submit
  - submit_CONNECT
  - inspect_response
  - H2_CONNECT
  - cf_h2_proxy_ctx_init
  - cf_h2_proxy_connect
  - cf_h2_proxy_destroy
  - cf_h2_proxy_shutdown
  - cf_h2_proxy_data_pending
  - cf_h2_proxy_adjust_pollset
  - h2_handle_tunnel_close
  - tunnel_recv
  - cf_h2_proxy_recv
  - cf_h2_proxy_send
  - cf_h2_proxy_flush
  - proxy_h2_connisalive
  - cf_h2_proxy_is_alive
  - cf_h2_proxy_query
  - cf_h2_proxy_cntrl
  - Curl_cf_h2_proxy_insert_after
  source_file: /src/curl/lib/cf-h2-proxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROXY_H2_CHUNK_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/cf-h2-proxy.c
      type_or_value: (16 * 1024)
    - item_type: preproc_def
      name: PROXY_HTTP2_HUGE_WINDOW_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/cf-h2-proxy.c
      type_or_value: (100 * 1024 * 1024)
    - item_type: preproc_def
      name: H2_TUNNEL_WINDOW_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/cf-h2-proxy.c
      type_or_value: (10 * 1024 * 1024)
    - item_type: preproc_def
      name: PROXY_H2_NW_RECV_CHUNKS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/cf-h2-proxy.c
      type_or_value: (H2_TUNNEL_WINDOW_SIZE / PROXY_H2_CHUNK_SIZE)
    - item_type: preproc_def
      name: PROXY_H2_NW_SEND_CHUNKS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/cf-h2-proxy.c
      type_or_value: '1'
    - item_type: preproc_def
      name: H2_TUNNEL_RECV_CHUNKS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/cf-h2-proxy.c
      type_or_value: (H2_TUNNEL_WINDOW_SIZE / PROXY_H2_CHUNK_SIZE)
    - item_type: preproc_def
      name: H2_TUNNEL_SEND_CHUNKS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/cf-h2-proxy.c
      type_or_value: ((128 * 1024) / PROXY_H2_CHUNK_SIZE)
    structs:
    - fields:
      - name: '*resp'
        type: struct http_resp
      - name: recvbuf
        type: struct bufq
      - name: sendbuf
        type: struct bufq
      - name: '*authority'
        type: char
      - name: stream_id
        type: int32_t
      - name: error
        type: uint32_t
      - name: state
        type: h2_tunnel_state
      item_type: struct
      name: tunnel_stream
      pos:
        line_end: 76
        line_start: 65
        source_file: /src/curl/lib/cf-h2-proxy.c
    - fields:
      - name: '*h2'
        type: nghttp2_session
      - name: call_data
        type: struct cf_call_data
      - name: inbufq
        type: struct bufq
      - name: outbufq
        type: struct bufq
      - name: '*dest'
        type: struct Curl_peer
      - name: tunnel
        type: struct tunnel_stream
      - name: goaway_error
        type: int32_t
      - name: last_stream_id
        type: int32_t
      item_type: struct
      name: cf_h2_proxy_ctx
      pos:
        line_end: 195
        line_start: 178
        source_file: /src/curl/lib/cf-h2-proxy.c
    typedefs: []
    union: []
- function_names:
  - mev_in_callback
  - mev_sh_entry_hash
  - mev_sh_entry_compare
  - mev_sh_entry_dtor
  - mev_sh_entry_get
  - mev_sh_entry_add
  - mev_sh_entry_kill
  - mev_sh_entry_user_count
  - mev_sh_entry_xfer_known
  - mev_sh_entry_conn_known
  - mev_sh_entry_xfer_add
  - mev_sh_entry_conn_add
  - mev_sh_entry_xfer_remove
  - mev_sh_entry_conn_remove
  - mev_forget_socket
  - mev_sh_entry_update
  - mev_pollset_diff
  - mev_pollset_dtor
  - mev_add_new_conn_pollset
  - mev_add_new_xfer_pollset
  - mev_get_last_pollset
  - mev_assess
  - Curl_multi_ev_assess_xfer
  - Curl_multi_ev_assess_conn
  - Curl_multi_ev_assess_xfer_bset
  - Curl_multi_ev_assign
  - Curl_multi_ev_dirty_xfers
  - Curl_multi_ev_socket_done
  - Curl_multi_ev_xfer_done
  - Curl_multi_ev_conn_done
  - Curl_multi_ev_init
  - Curl_multi_ev_cleanup
  source_file: /src/curl/lib/multi_ev.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SH_ENTRY_MAGIC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/multi_ev.c
      type_or_value: '0x570091d'
    structs:
    - fields:
      - name: xfers
        type: struct uint32_spbset
      - name: '*conn'
        type: struct connectdata
      - name: '*user_data'
        type: void
      - name: action
        type: unsigned int
      - name: readers
        type: unsigned int
      - name: writers
        type: unsigned int
      item_type: struct
      name: mev_sh_entry
      pos:
        line_end: 62
        line_start: 49
        source_file: /src/curl/lib/multi_ev.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_ldap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/thrdpool.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "*Curl_thrdpool_take_item_cb(void *user_data,\n                                         const
        char **pdescription,\n                                         timediff_t
        *ptimeout_ms)"
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/curl/lib/thrdpool.h
      type: void
    - item_type: typedef
      name: Curl_thrdpool_process_item_cb(void *item)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/curl/lib/thrdpool.h
      type: void
    - item_type: typedef
      name: Curl_thrdpool_return_item_cb(void *item, void *user_data)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/curl/lib/thrdpool.h
      type: void
    union: []
- function_names:
  - check_sspi_err
  - socks5_sspi_setup
  - socks5_free_token
  - socks5_sspi_loop
  - socks5_free
  - socks5_sspi_encrypt
  - Curl_SOCKS5_gssapi_negotiate
  source_file: /src/curl/lib/socks_sspi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_getn_scheme
  - Curl_get_scheme
  source_file: /src/curl/lib/protocol.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/cf-haproxy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - streamclose
  - connclose
  - connkeep
  - streamclose
  - connclose
  - connkeep
  source_file: /src/curl/lib/connect.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_CONNECT_TIMEOUT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/connect.h
      type_or_value: '300000 '
    - item_type: preproc_def
      name: DEFAULT_SHUTDOWN_TIMEOUT_MS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/connect.h
      type_or_value: (2 * 1000)
    - item_type: preproc_def
      name: CONNCTRL_KEEP
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/lib/connect.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: CONNCTRL_CONNECTION
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/curl/lib/connect.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONNCTRL_STREAM
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/lib/connect.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_ipv6_scope
  - Curl_if2ip
  - Curl_if2ip
  - Curl_if2ip
  source_file: /src/curl/lib/if2ip.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/ftp-int.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_FTP_EASY
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/curl/lib/ftp-int.h
      type_or_value: '"meta:proto:ftp:easy"'
    - item_type: preproc_def
      name: CURL_META_FTP_CONN
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/curl/lib/ftp-int.h
      type_or_value: '"meta:proto:ftp:conn"'
    structs:
    - fields:
      - name: '*parser'
        type: struct ftp_parselist_data
      - name: backup
        type: "struct {\n    curl_write_callback write_function;\n    FILE *file_descriptor;\n
          \ }"
      item_type: struct
      name: ftp_wc
      pos:
        line_end: 86
        line_start: 79
        source_file: /src/curl/lib/ftp-int.h
    - fields:
      - name: '*path'
        type: char
      - name: '*pathalloc'
        type: char
      - name: transfer
        type: curl_pp_transfer
      - name: downloadsize
        type: curl_off_t
      item_type: struct
      name: FTP
      pos:
        line_end: 100
        line_start: 92
        source_file: /src/curl/lib/ftp-int.h
    - fields:
      - name: start
        type: int
      - name: len
        type: int
      item_type: struct
      name: pathcomp
      pos:
        line_end: 106
        line_start: 103
        source_file: /src/curl/lib/ftp-int.h
    - fields:
      - name: pp
        type: struct pingpong
      - name: '*account'
        type: char
      - name: '*alternative_to_user'
        type: char
      - name: '*entrypath'
        type: char
      - name: '*file'
        type: char
      - name: '*rawpath'
        type: char
      - name: '*dirs'
        type: struct pathcomp
      - name: '*prevpath'
        type: char
      - name: transfertype
        type: char
      - name: '*server_os'
        type: char
      - name: known_filesize
        type: curl_off_t
      - name: count1
        type: int
      - name: count2
        type: int
      - name: count3
        type: int
      - name: dirdepth
        type: unsigned short
      - name: cwdcount
        type: unsigned short
      - name: state
        type: unsigned char
      - name: use_ssl
        type: unsigned char
      - name: ccc
        type: unsigned char
      item_type: struct
      name: ftp_conn
      pos:
        line_end: 150
        line_start: 110
        source_file: /src/curl/lib/ftp-int.h
    typedefs:
    - item_type: typedef
      name: ftpstate
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/curl/lib/ftp-int.h
      type: unsigned char
    union: []
- function_names:
  - Curl_gss_log_error
  source_file: /src/curl/lib/curl_gssapi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GSSAUTH_P_NONE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/curl_gssapi.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GSSAUTH_P_INTEGRITY
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/curl_gssapi.h
      type_or_value: '2'
    - item_type: preproc_def
      name: GSSAUTH_P_PRIVACY
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/curl_gssapi.h
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_endian.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/progress.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cshutdn_run_conn_handler
  - cshutdn_run_once
  - Curl_cshutdn_run_once
  - Curl_cshutdn_terminate
  - cshutdn_destroy_oldest
  - Curl_cshutdn_close_oldest
  - cshutdn_wait
  - cshutdn_perform
  - cshutdn_terminate_all
  - Curl_cshutdn_init
  - Curl_cshutdn_destroy
  - Curl_cshutdn_count
  - Curl_cshutdn_dest_count
  - cshutdn_update_ev
  - Curl_cshutdn_add
  - Curl_cshutdn_perform
  - Curl_cshutdn_setfds
  - Curl_cshutdn_add_waitfds
  - Curl_cshutdn_add_pollfds
  source_file: /src/curl/lib/cshutdn.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_POLLS_ON_STACK
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/curl/lib/cshutdn.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - filesize
  - VmsRealFileSize
  - VmsSpecialSize
  - filesize
  - vmsfopenread
  - mimesetstate
  - escape_string
  - match_header
  - search_header
  - strippath
  - cleanup_encoder_state
  - encoder_nop_read
  - encoder_nop_size
  - encoder_7bit_read
  - encoder_base64_read
  - encoder_base64_size
  - qp_lookahead_eol
  - encoder_qp_read
  - encoder_qp_size
  - mime_mem_read
  - mime_mem_seek
  - mime_mem_free
  - mime_open_file
  - mime_file_read
  - mime_file_seek
  - mime_file_free
  - readback_bytes
  - read_part_content
  - read_encoded_part_content
  - readback_part
  - mime_subparts_read
  - mime_part_rewind
  - mime_subparts_seek
  - cleanup_part_content
  - mime_subparts_free
  - mime_subparts_unbind
  - Curl_mime_cleanpart
  - curl_mime_free
  - Curl_mime_duppart
  - curl_mime_init
  - Curl_mime_initpart
  - curl_mime_addpart
  - curl_mime_name
  - curl_mime_filename
  - curl_mime_data
  - curl_mime_filedata
  - curl_mime_type
  - curl_mime_encoder
  - curl_mime_headers
  - curl_mime_data_cb
  - Curl_mime_set_subparts
  - curl_mime_subparts
  - Curl_mime_read
  - mime_rewind
  - slist_size
  - multipart_size
  - mime_size
  - Curl_mime_add_header
  - add_content_type
  - Curl_mime_contenttype
  - content_type_match
  - add_content_disposition
  - Curl_mime_prepare_headers
  - mime_unpause
  - cr_mime_init
  - cr_mime_close
  - cr_mime_read
  - cr_mime_needs_rewind
  - cr_mime_total_length
  - cr_mime_resume_from
  - cr_mime_cntrl
  - cr_mime_is_paused
  - Curl_creader_set_mime
  - curl_mime_init
  - curl_mime_free
  - curl_mime_addpart
  - curl_mime_name
  - curl_mime_filename
  - curl_mime_type
  - curl_mime_encoder
  - curl_mime_data
  - curl_mime_filedata
  - curl_mime_data_cb
  - curl_mime_subparts
  - curl_mime_headers
  - Curl_mime_add_header
  source_file: /src/curl/lib/mime.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_MIME_LEVELS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/mime.c
      type_or_value: '40 '
    - item_type: preproc_def
      name: READ_ERROR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/mime.c
      type_or_value: ((size_t)-1)
    - item_type: preproc_def
      name: STOP_FILLING
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/mime.c
      type_or_value: ((size_t)-2)
    - item_type: preproc_def
      name: QP_OK
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/mime.c
      type_or_value: '1       '
    - item_type: preproc_def
      name: QP_SP
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/mime.c
      type_or_value: '2       '
    - item_type: preproc_def
      name: QP_CR
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/mime.c
      type_or_value: '3       '
    - item_type: preproc_def
      name: QP_LF
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/mime.c
      type_or_value: '4       '
    - item_type: preproc_def
      name: fopen_read
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/curl/lib/mime.c
      type_or_value: curlx_fopen
    - item_type: preproc_def
      name: fopen_read
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/curl/lib/mime.c
      type_or_value: vmsfopenread
    structs:
    - fields:
      - name: '*extension'
        type: char
      - name: '*type'
        type: char
      item_type: struct
      name: ContentType
      pos:
        line_end: 1648
        line_start: 1645
        source_file: /src/curl/lib/mime.c
    - fields:
      - name: super
        type: struct Curl_creader
      - name: '*part'
        type: curl_mimepart
      - name: total_len
        type: curl_off_t
      - name: read_len
        type: curl_off_t
      - name: error_result
        type: CURLcode
      - name: tmpbuf
        type: struct bufq
      item_type: struct
      name: cr_mime_ctx
      pos:
        line_end: 1876
        line_start: 1867
        source_file: /src/curl/lib/mime.c
    typedefs: []
    union: []
- function_names:
  - curl_des_set_odd_parity
  - extend_key_56_to_64
  - setup_des_key
  - setup_des_key
  - setup_des_key
  - encrypt_des
  - encrypt_des
  - encrypt_des
  - Curl_ntlm_core_lm_resp
  - Curl_ntlm_core_mk_lm_hash
  - ascii_to_unicode_le
  - Curl_ntlm_core_mk_nt_hash
  - time2filetime
  - ascii_uppercase_to_unicode_le
  - Curl_ntlm_core_mk_ntlmv2_hash
  - Curl_ntlm_core_mk_ntlmv2_resp
  - Curl_ntlm_core_mk_lmv2_resp
  source_file: /src/curl/lib/curl_ntlm_core.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DES_set_key_unchecked
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/curl_ntlm_core.c
      type_or_value: (void)DES_set_key
    - item_type: preproc_def
      name: NTLMv2_BLOB_SIGNATURE
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/curl/lib/curl_ntlm_core.c
      type_or_value: '"\x01\x01\x00\x00"'
    - item_type: preproc_def
      name: NTLMv2_BLOB_LEN
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/curl/lib/curl_ntlm_core.c
      type_or_value: (44 - 16 + ntlm->target_info_len + 4)
    structs:
    - fields:
      - name: hdr
        type: BLOBHEADER
      - name: len
        type: unsigned int
      - name: key[8]
        type: char
      item_type: struct
      name: blob
      pos:
        line_end: 251
        line_start: 247
        source_file: /src/curl/lib/curl_ntlm_core.c
    - fields:
      - name: dwLowDateTime
        type: unsigned int
      - name: dwHighDateTime
        type: unsigned int
      item_type: struct
      name: ms_filetime
      pos:
        line_end: 442
        line_start: 439
        source_file: /src/curl/lib/curl_ntlm_core.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/content_encoding.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_async_global_init
  - Curl_async_global_cleanup
  - Curl_async_get_ai
  - Curl_async_await
  - Curl_async_take_result
  - Curl_async_pollset
  - Curl_async_get_https
  - Curl_async_knows_https
  - Curl_async_shutdown
  source_file: /src/curl/lib/asyn.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: channel
        type: ares_channel
      - name: '*res_A'
        type: struct Curl_addrinfo
      - name: '*res_AAAA'
        type: struct Curl_addrinfo
      - name: ares_status
        type: int
      - name: result
        type: CURLcode
      - name: happy_eyeballs_dns_time
        type: struct curltime
      item_type: struct
      name: async_ares_ctx
      pos:
        line_end: 124
        line_start: 114
        source_file: /src/curl/lib/asyn.h
    - fields:
      - name: '*res_A'
        type: struct async_thrdd_item
      - name: '*res_AAAA'
        type: struct async_thrdd_item
      item_type: struct
      name: async_thrdd_ctx
      pos:
        line_end: 147
        line_start: 138
        source_file: /src/curl/lib/asyn.h
    - fields:
      - name: '*next'
        type: struct Curl_resolv_async
      - name: start
        type: struct curltime
      - name: interval_end
        type: timediff_t
      - name: timeout_ms
        type: timediff_t
      - name: result
        type: CURLcode
      - name: poll_interval
        type: uint32_t
      - name: id
        type: uint32_t
      - name: port
        type: uint16_t
      - name: dns_queries
        type: uint8_t
      - name: dns_responses
        type: uint8_t
      - name: transport
        type: uint8_t
      - name: queries_ongoing
        type: uint8_t
      - name: hostname[1]
        type: char
      item_type: struct
      name: Curl_resolv_async
      pos:
        line_end: 254
        line_start: 226
        source_file: /src/curl/lib/asyn.h
    typedefs: []
    union: []
- function_names:
  - PINGPONG_SETUP
  source_file: /src/curl/lib/pingpong.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PINGPONG_TIMEOUT_MS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/lib/pingpong.h
      type_or_value: (60 * 1000)
    structs:
    - fields:
      - name: nread_resp
        type: size_t
      - name: '*sendthis'
        type: char
      - name: sendleft
        type: size_t
      - name: sendsize
        type: size_t
      - name: response
        type: struct curltime
      - name: sendbuf
        type: struct dynbuf
      - name: recvbuf
        type: struct dynbuf
      - name: overflow
        type: size_t
      - name: nfinal
        type: size_t
      - name: (*statemachine)(struct Curl_easy *data, struct connectdata *conn)
        type: CURLcode
      - name: "(*endofresp)(struct Curl_easy *data, struct connectdata *conn,\n                    const
          char *ptr, size_t len, int *code)"
        type: bool
      item_type: struct
      name: pingpong
      pos:
        line_end: 70
        line_start: 47
        source_file: /src/curl/lib/pingpong.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/http_digest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_bufref_init
  - Curl_bufref_free
  - Curl_bufref_set
  - Curl_bufref_uptr
  - Curl_bufref_ptr
  - Curl_bufref_len
  - Curl_bufref_memdup0
  source_file: /src/curl/lib/bufref.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIGNATURE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/bufref.c
      type_or_value: '0x5c48e9b2    '
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_conn_dns_get_https
  - Curl_conn_dns_resolved_https
  source_file: /src/curl/lib/cf-dns.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - altsvc_debugtime
  - time
  - Curl_alpnid2str
  - altsvc_free
  - altsvc_createid
  - altsvc_create
  - altsvc_append
  - altsvc_add
  - altsvc_load
  - altsvc_out
  - Curl_altsvc_init
  - Curl_altsvc_load
  - Curl_altsvc_ctrl
  - Curl_altsvc_cleanup
  - Curl_altsvc_save
  - hostcompare
  - altsvc_flush
  - Curl_altsvc_parse
  - Curl_altsvc_lookup
  source_file: /src/curl/lib/altsvc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ALTSVC_LINE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/altsvc.c
      type_or_value: '4095'
    - item_type: preproc_def
      name: MAX_ALTSVC_DATELEN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/altsvc.c
      type_or_value: '17'
    - item_type: preproc_def
      name: MAX_ALTSVC_HOSTLEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/altsvc.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_ALTSVC_ALPNLEN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/altsvc.c
      type_or_value: '10'
    - item_type: preproc_def
      name: H3VERSION
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/altsvc.c
      type_or_value: '"h3"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - trc_write
  - CURL_TRC_IDS
  - trc_print_ids
  - trc_end_buf
  - Curl_debug
  - Curl_failf
  - Curl_reset_fail
  - trc_infof
  - Curl_infof
  - Curl_trc_cf_infof
  - Curl_trc_feat_infof
  - trc_timer_name
  - Curl_trc_timer
  - Curl_trc_easy_timers
  - Curl_trc_mstate_name
  - Curl_trc_multi
  - Curl_trc_read
  - Curl_trc_write
  - Curl_trc_dns
  - Curl_trc_ftp
  - Curl_trc_smtp
  - Curl_trc_ssls
  - Curl_trc_ssh
  - Curl_trc_ws
  - trc_apply_level_by_name
  - trc_apply_level_by_category
  - trc_opt
  - Curl_trc_opt
  - Curl_trc_init
  - Curl_trc_init
  - Curl_infof
  - Curl_trc_cf_infof
  - Curl_trc_multi
  - Curl_trc_write
  - Curl_trc_dns
  - Curl_trc_timer
  - Curl_trc_read
  - Curl_trc_ftp
  - Curl_trc_smtp
  - Curl_trc_ws
  - Curl_trc_ssh
  - Curl_trc_ssls
  source_file: /src/curl/lib/curl_trc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRC_LINE_MAX
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/curl_trc.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: CURL_TRC_FMT_IDSC
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/curl_trc.c
      type_or_value: '"[x-%" CURL_FORMAT_CURL_OFF_T "] "'
    - item_type: preproc_def
      name: CURL_TRC_FMT_IDSD
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/curl_trc.c
      type_or_value: '"[%" CURL_FORMAT_CURL_OFF_T "-x] "'
    - item_type: preproc_def
      name: CURL_TRC_FMT_IDSDC
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/curl/lib/curl_trc.c
      type_or_value: "\"[%\" CURL_FORMAT_CURL_OFF_T \"-%\" \\\n                            CURL_FORMAT_CURL_OFF_T
        \"] \""
    - item_type: preproc_def
      name: TRC_CT_NONE
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/curl/lib/curl_trc.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TRC_CT_PROTOCOL
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/curl/lib/curl_trc.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: TRC_CT_NETWORK
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/curl/lib/curl_trc.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: TRC_CT_PROXY
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/curl/lib/curl_trc.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: TRC_CT_INTERNALS
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/curl/lib/curl_trc.c
      type_or_value: (1 << 3)
    structs:
    - fields:
      - name: '*feat'
        type: struct curl_trc_feat
      - name: category
        type: unsigned int
      item_type: struct
      name: trc_feat_def
      pos:
        line_end: 524
        line_start: 521
        source_file: /src/curl/lib/curl_trc.c
    - fields:
      - name: '*cft'
        type: struct Curl_cftype
      - name: category
        type: unsigned int
      item_type: struct
      name: trc_cft_def
      pos:
        line_end: 556
        line_start: 553
        source_file: /src/curl/lib/curl_trc.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/formdata.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: name
        type: struct bufref
      - name: value
        type: struct bufref
      - name: contenttype
        type: struct bufref
      - name: showfilename
        type: struct bufref
      - name: '*buffer'
        type: char
      - name: '*userp'
        type: char
      - name: '*more'
        type: struct FormInfo
      - name: '*contentheader'
        type: struct curl_slist
      - name: contentslength
        type: curl_off_t
      - name: namelength
        type: size_t
      - name: bufferlength
        type: size_t
      - name: flags
        type: unsigned char
      item_type: struct
      name: FormInfo
      pos:
        line_end: 46
        line_start: 32
        source_file: /src/curl/lib/formdata.h
    typedefs: []
    union: []
- function_names:
  - curl_escape
  - curl_unescape
  - curl_easy_escape
  - Curl_urldecode
  - curl_easy_unescape
  - curl_free
  - Curl_hexencode
  - Curl_hexbyte
  source_file: /src/curl/lib/escape.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/setup-win32.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SOCKET
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: LWIP_POSIX_SOCKETS_IO_NAMES
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RECV_TYPE_ARG1
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_ARG3
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: size_t
    - item_type: preproc_def
      name: SEND_TYPE_ARG1
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG3
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: size_t
    - item_type: preproc_def
      name: USE_WINSOCK
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: '2'
    - item_type: preproc_def
      name: _WIN32_WINNT_VISTA
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: '0x0600   '
    - item_type: preproc_def
      name: _WIN32_WINNT_WS08
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: '0x0600   '
    - item_type: preproc_def
      name: _WIN32_WINNT_WIN7
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: '0x0601   '
    - item_type: preproc_def
      name: _WIN32_WINNT_WIN8
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: '0x0602   '
    - item_type: preproc_def
      name: _WIN32_WINNT_WINBLUE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: '0x0603   '
    - item_type: preproc_def
      name: _WIN32_WINNT_WIN10
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/lib/setup-win32.h
      type_or_value: '0x0A00   '
    structs: []
    typedefs: []
    union: []
- function_names:
  - stub_gss_init_sec_context
  - stub_gss_delete_sec_context
  - Curl_gss_init_sec_context
  - Curl_gss_delete_sec_context
  - display_gss_error
  - Curl_gss_log_error
  source_file: /src/curl/lib/curl_gssapi.c
  types:
    enum:
    - enumerators:
      - name: STUB_GSS_OK
        value: '0'
      - name: STUB_GSS_NO_MEMORY
      - name: STUB_GSS_INVALID_CTX
      - name: STUB_GSS_INVALID_ARGS
      - name: STUB_GSS_INVALID_CREDS
      - name: STUB_GSS_SERVER_ERR
      - name: STUB_GSS_NO_MECH
      - name: STUB_GSS_LAST
      item_type: enum
      name: min_err_code
      pos:
        line_end: 79
        line_start: 70
        source_file: /src/curl/lib/curl_gssapi.c
    preproc_defs:
    - item_type: preproc_def
      name: Curl_gss_alloc
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/curl_gssapi.c
      type_or_value: 'malloc  '
    - item_type: preproc_def
      name: Curl_gss_free
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/curl_gssapi.c
      type_or_value: 'free    '
    - item_type: preproc_def
      name: Curl_gss_alloc
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/curl_gssapi.c
      type_or_value: gssalloc_malloc
    - item_type: preproc_def
      name: Curl_gss_free
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/curl_gssapi.c
      type_or_value: gssalloc_free
    - item_type: preproc_def
      name: CURL_ALIGN8
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/curl_gssapi.c
      type_or_value: __attribute__((aligned(8)))
    - item_type: preproc_def
      name: GSS_LOG_BUFFER_LEN
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/curl/lib/curl_gssapi.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: sent
        type: enum { STUB_GSS_NONE, STUB_GSS_KRB5, STUB_GSS_NTLM1, STUB_GSS_NTLM3
          }
      - name: have_krb5
        type: int
      - name: have_ntlm
        type: int
      - name: flags
        type: OM_uint32
      - name: creds[250]
        type: char
      item_type: struct
      name: stub_gss_ctx_id_t_desc
      pos:
        line_end: 93
        line_start: 87
        source_file: /src/curl/lib/curl_gssapi.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/cw-out.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_psl_destroy
  - Curl_psl_use
  - Curl_psl_release
  source_file: /src/curl/lib/psl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURL_REQ_WANT_SEND
  - CURL_REQ_WANT_RECV
  - CURL_REQ_WANT_IO
  - CURL_REQ_SET_SEND
  - CURL_REQ_SET_RECV
  - CURL_REQ_CLEAR_SEND
  - CURL_REQ_CLEAR_RECV
  - CURL_REQ_CLEAR_IO
  source_file: /src/curl/lib/request.h
  types:
    enum:
    - enumerators:
      - name: EXP100_SEND_DATA
      - name: EXP100_FAILED
      - name: EXP100_AWAITING_CONTINUE
      - name: EXP100_SENDING_REQUEST
      item_type: enum
      name: expect100
      pos:
        line_end: 58
        line_start: 52
        source_file: /src/curl/lib/request.h
    - enumerators:
      - name: UPGR101_NONE
      - name: UPGR101_RECEIVED
      - name: UPGR101_WS
      - name: UPGR101_H2
      item_type: enum
      name: upgrade101
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/curl/lib/request.h
    preproc_defs:
    - item_type: preproc_def
      name: REQ_IO_RECV
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/request.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: REQ_IO_SEND
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/request.h
      type_or_value: '(1 << 1) '
    structs:
    - fields:
      - name: size
        type: curl_off_t
      - name: maxdownload
        type: curl_off_t
      - name: bytecount
        type: curl_off_t
      - name: writebytecount
        type: curl_off_t
      - name: offset
        type: curl_off_t
      - name: start
        type: struct curltime
      - name: headerbytecount
        type: unsigned int
      - name: allheadercount
        type: unsigned int
      - name: deductheadercount
        type: unsigned int
      - name: headerline
        type: int
      - name: httpcode
        type: int
      - name: httpversion_sent
        type: unsigned char
      - name: httpversion
        type: unsigned char
      - name: upgr101
        type: enum upgrade101
      - name: '*writer_stack'
        type: struct Curl_cwriter
      - name: '*reader_stack'
        type: struct Curl_creader
      - name: sendbuf
        type: struct bufq
      - name: sendbuf_hds_len
        type: size_t
      - name: timeofdoc
        type: time_t
      - name: '*location'
        type: char
      - name: '*newurl'
        type: char
      - name: io_flags
        type: uint8_t
      - name: '*hd_auth'
        type: char
      item_type: struct
      name: SingleRequest
      pos:
        line_end: 156
        line_start: 74
        source_file: /src/curl/lib/request.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/tftp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TFTP_BLKSIZE_MIN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/tftp.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TFTP_BLKSIZE_MAX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/tftp.h
      type_or_value: '65464'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_h1_req_parse_init
  - Curl_h1_req_parse_free
  - trim_line
  - detect_line
  - next_line
  - start_req
  - Curl_h1_req_parse_read
  - Curl_h1_req_write_head
  source_file: /src/curl/lib/http1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H1_MAX_URL_LEN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/http1.c
      type_or_value: (8 * 1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - smb_swap16
  - smb_swap32
  - smb_swap64
  - smb_swap16
  - smb_swap32
  - smb_swap64
  - conn_state
  - request_state
  - smb_easy_dtor
  - smb_conn_dtor
  - smb_parse_url_path
  - smb_setup_connection
  - smb_connect
  - smb_recv_message
  - smb_pop_message
  - smb_format_message
  - smb_send
  - smb_flush
  - smb_send_message
  - smb_send_negotiate
  - smb_send_setup
  - smb_send_tree_connect
  - smb_send_open
  - smb_send_close
  - smb_send_tree_disconnect
  - smb_send_read
  - smb_send_write
  - smb_send_and_recv
  - smb_connection_state
  - get_posix_time
  - smb_request_state
  - smb_pollset
  - smb_do
  source_file: /src/curl/lib/smb.c
  types:
    enum:
    - enumerators:
      - name: SMB_NOT_CONNECTED
        value: '0'
      - name: SMB_SETUP
      - name: SMB_CONNECTING
      - name: SMB_NEGOTIATE
      - name: SMB_CONNECTED
      item_type: enum
      name: smb_conn_state
      pos:
        line_end: 58
        line_start: 52
        source_file: /src/curl/lib/smb.c
    - enumerators:
      - name: SMB_REQUESTING
      - name: SMB_TREE_CONNECT
      - name: SMB_OPEN
      - name: SMB_DOWNLOAD
      - name: SMB_UPLOAD
      - name: SMB_CLOSE
      - name: SMB_TREE_DISCONNECT
      - name: SMB_DONE
      item_type: enum
      name: smb_req_state
      pos:
        line_end: 87
        line_start: 78
        source_file: /src/curl/lib/smb.c
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_SMB_EASY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/smb.c
      type_or_value: '"meta:proto:smb:easy"'
    - item_type: preproc_def
      name: CURL_META_SMB_CONN
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/smb.c
      type_or_value: '"meta:proto:smb:conn"'
    - item_type: preproc_def
      name: PACK
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/lib/smb.c
      type_or_value: __attribute__((packed))
    - item_type: preproc_def
      name: SMB_COM_CLOSE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: SMB_COM_READ_ANDX
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x2e'
    - item_type: preproc_def
      name: SMB_COM_WRITE_ANDX
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x2f'
    - item_type: preproc_def
      name: SMB_COM_TREE_DISCONNECT
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x71'
    - item_type: preproc_def
      name: SMB_COM_NEGOTIATE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x72'
    - item_type: preproc_def
      name: SMB_COM_SETUP_ANDX
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x73'
    - item_type: preproc_def
      name: SMB_COM_TREE_CONNECT_ANDX
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x75'
    - item_type: preproc_def
      name: SMB_COM_NT_CREATE_ANDX
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/lib/smb.c
      type_or_value: '0xa2'
    - item_type: preproc_def
      name: SMB_COM_NO_ANDX_COMMAND
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/curl/lib/smb.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: SMB_WC_CLOSE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: SMB_WC_READ_ANDX
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: SMB_WC_WRITE_ANDX
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x0e'
    - item_type: preproc_def
      name: SMB_WC_SETUP_ANDX
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x0d'
    - item_type: preproc_def
      name: SMB_WC_TREE_CONNECT_ANDX
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: SMB_WC_NT_CREATE_ANDX
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x18'
    - item_type: preproc_def
      name: SMB_FLAGS_CANONICAL_PATHNAMES
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SMB_FLAGS_CASELESS_PATHNAMES
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: SMB_FLAGS2_IS_LONG_NAME
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: SMB_FLAGS2_KNOWS_LONG_NAME
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: SMB_CAP_LARGE_FILES
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: SMB_GENERIC_WRITE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x40000000'
    - item_type: preproc_def
      name: SMB_GENERIC_READ
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: SMB_FILE_SHARE_ALL
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: SMB_FILE_OPEN
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SMB_FILE_OVERWRITE_IF
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: SMB_ERR_NOACCESS
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x00050001'
    - item_type: preproc_def
      name: MAX_PAYLOAD_SIZE
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/curl/lib/smb.c
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: MAX_MESSAGE_SIZE
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/curl/lib/smb.c
      type_or_value: (MAX_PAYLOAD_SIZE + 0x1000)
    - item_type: preproc_def
      name: CLIENTNAME
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/curl/lib/smb.c
      type_or_value: '"curl"'
    - item_type: preproc_def
      name: SERVICENAME
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/curl/lib/smb.c
      type_or_value: '"?????"'
    structs:
    - fields:
      - name: state
        type: enum smb_conn_state
      - name: '*user'
        type: char
      - name: '*domain'
        type: char
      - name: '*share'
        type: char
      - name: challenge[8]
        type: unsigned char
      - name: session_key
        type: unsigned int
      - name: uid
        type: unsigned short
      - name: '*recv_buf'
        type: char
      - name: '*send_buf'
        type: char
      - name: upload_size
        type: size_t
      - name: send_size
        type: size_t
      - name: sent
        type: size_t
      - name: got
        type: size_t
      item_type: struct
      name: smb_conn
      pos:
        line_end: 75
        line_start: 61
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: state
        type: enum smb_req_state
      - name: '*path'
        type: char
      - name: tid
        type: unsigned short
      - name: fid
        type: unsigned short
      - name: result
        type: CURLcode
      item_type: struct
      name: smb_request
      pos:
        line_end: 96
        line_start: 90
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: nbt_type
        type: unsigned char
      - name: nbt_flags
        type: unsigned char
      - name: nbt_length
        type: unsigned short
      - name: magic[4]
        type: unsigned char
      - name: command
        type: unsigned char
      - name: status
        type: unsigned int
      - name: flags
        type: unsigned char
      - name: flags2
        type: unsigned short
      - name: pid_high
        type: unsigned short
      - name: signature[8]
        type: unsigned char
      - name: pad
        type: unsigned short
      - name: tid
        type: unsigned short
      - name: pid
        type: unsigned short
      - name: uid
        type: unsigned short
      - name: mid
        type: unsigned short
      item_type: struct
      name: smb_header
      pos:
        line_end: 159
        line_start: 143
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: h
        type: struct smb_header
      - name: word_count
        type: unsigned char
      - name: dialect_index
        type: unsigned short
      - name: security_mode
        type: unsigned char
      - name: max_mpx_count
        type: unsigned short
      - name: max_number_vcs
        type: unsigned short
      - name: max_buffer_size
        type: unsigned int
      - name: max_raw_size
        type: unsigned int
      - name: session_key
        type: unsigned int
      - name: capabilities
        type: unsigned int
      - name: system_time_low
        type: unsigned int
      - name: system_time_high
        type: unsigned int
      - name: server_time_zone
        type: unsigned short
      - name: encryption_key_length
        type: unsigned char
      - name: byte_count
        type: unsigned short
      - name: bytes[1]
        type: char
      item_type: struct
      name: smb_negotiate_response
      pos:
        line_end: 178
        line_start: 161
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: command
        type: unsigned char
      - name: pad
        type: unsigned char
      - name: offset
        type: unsigned short
      item_type: struct
      name: andx
      pos:
        line_end: 184
        line_start: 180
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: word_count
        type: unsigned char
      - name: andx
        type: struct andx
      - name: max_buffer_size
        type: unsigned short
      - name: max_mpx_count
        type: unsigned short
      - name: vc_number
        type: unsigned short
      - name: session_key
        type: unsigned int
      - name: lengths[2]
        type: unsigned short
      - name: pad
        type: unsigned int
      - name: capabilities
        type: unsigned int
      - name: byte_count
        type: unsigned short
      - name: bytes[1024]
        type: char
      item_type: struct
      name: smb_setup
      pos:
        line_end: 198
        line_start: 186
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: word_count
        type: unsigned char
      - name: andx
        type: struct andx
      - name: flags
        type: unsigned short
      - name: pw_len
        type: unsigned short
      - name: byte_count
        type: unsigned short
      - name: bytes[1024]
        type: char
      item_type: struct
      name: smb_tree_connect
      pos:
        line_end: 207
        line_start: 200
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: word_count
        type: unsigned char
      - name: andx
        type: struct andx
      - name: pad
        type: unsigned char
      - name: name_length
        type: unsigned short
      - name: flags
        type: unsigned int
      - name: root_fid
        type: unsigned int
      - name: access
        type: unsigned int
      - name: allocation_size
        type: curl_off_t
      - name: ext_file_attributes
        type: unsigned int
      - name: share_access
        type: unsigned int
      - name: create_disposition
        type: unsigned int
      - name: create_options
        type: unsigned int
      - name: impersonation_level
        type: unsigned int
      - name: security_flags
        type: unsigned char
      - name: byte_count
        type: unsigned short
      - name: bytes[1024]
        type: char
      item_type: struct
      name: smb_nt_create
      pos:
        line_end: 226
        line_start: 209
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: h
        type: struct smb_header
      - name: word_count
        type: unsigned char
      - name: andx
        type: struct andx
      - name: op_lock_level
        type: unsigned char
      - name: fid
        type: unsigned short
      - name: create_disposition
        type: unsigned int
      - name: create_time
        type: curl_off_t
      - name: last_access_time
        type: curl_off_t
      - name: last_write_time
        type: curl_off_t
      - name: last_change_time
        type: curl_off_t
      - name: ext_file_attributes
        type: unsigned int
      - name: allocation_size
        type: curl_off_t
      - name: end_of_file
        type: curl_off_t
      item_type: struct
      name: smb_nt_create_response
      pos:
        line_end: 243
        line_start: 228
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: word_count
        type: unsigned char
      - name: andx
        type: struct andx
      - name: fid
        type: unsigned short
      - name: offset
        type: unsigned int
      - name: max_bytes
        type: unsigned short
      - name: min_bytes
        type: unsigned short
      - name: timeout
        type: unsigned int
      - name: remaining
        type: unsigned short
      - name: offset_high
        type: unsigned int
      - name: byte_count
        type: unsigned short
      item_type: struct
      name: smb_read
      pos:
        line_end: 256
        line_start: 245
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: h
        type: struct smb_header
      - name: word_count
        type: unsigned char
      - name: andx
        type: struct andx
      - name: fid
        type: unsigned short
      - name: offset
        type: unsigned int
      - name: timeout
        type: unsigned int
      - name: write_mode
        type: unsigned short
      - name: remaining
        type: unsigned short
      - name: pad
        type: unsigned short
      - name: data_length
        type: unsigned short
      - name: data_offset
        type: unsigned short
      - name: offset_high
        type: unsigned int
      - name: byte_count
        type: unsigned short
      - name: pad2
        type: unsigned char
      item_type: struct
      name: smb_write
      pos:
        line_end: 273
        line_start: 258
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: word_count
        type: unsigned char
      - name: fid
        type: unsigned short
      - name: last_mtime
        type: unsigned int
      - name: byte_count
        type: unsigned short
      item_type: struct
      name: smb_close
      pos:
        line_end: 280
        line_start: 275
        source_file: /src/curl/lib/smb.c
    - fields:
      - name: word_count
        type: unsigned char
      - name: byte_count
        type: unsigned short
      item_type: struct
      name: smb_tree_disconnect
      pos:
        line_end: 285
        line_start: 282
        source_file: /src/curl/lib/smb.c
    typedefs: []
    union: []
- function_names:
  - time2str
  - max6out
  - pgrs_speedinit
  - pgrs_speedcheck
  - Curl_pgrs_now
  - Curl_pgrsDone
  - Curl_pgrsReset
  - Curl_pgrsResetTransferSizes
  - Curl_pgrsRecvPause
  - Curl_pgrsSendPause
  - pgrs_timer_name
  - Curl_pgrsTimeWas
  - Curl_pgrsTime
  - Curl_pgrsStartNow
  - Curl_pgrs_deliver_check
  - Curl_pgrs_deliver_inc
  - Curl_pgrs_download_inc
  - Curl_pgrs_upload_inc
  - Curl_pgrsSetUploadCounter
  - Curl_pgrsSetDownloadSize
  - Curl_pgrsSetUploadSize
  - Curl_pgrsEarlyData
  - trspeed
  - progress_calc
  - pgrs_est_percent
  - pgrs_estimates
  - progress_meter
  - progress_meter
  - pgrsupdate
  - pgrs_update
  - Curl_pgrsUpdate
  - Curl_pgrsCheck
  - Curl_pgrsUpdate_nometer
  - Curl_pgrsCompleted
  source_file: /src/curl/lib/progress.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: secs
        type: curl_off_t
      - name: percent
        type: curl_off_t
      item_type: struct
      name: pgrs_estimate
      pos:
        line_end: 540
        line_start: 537
        source_file: /src/curl/lib/progress.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/escape.h
  types:
    enum:
    - enumerators:
      - name: REJECT_NADA
        value: '2'
      - name: REJECT_ZERO
      - name: REJECT_CTRL
      item_type: enum
      name: urlreject
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/curl/lib/escape.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_amiga_init
  - Curl_amiga_cleanup
  - Curl_ipv4_resolve_r
  - Curl_amiga_select
  - CURL_AMIGA_REQUEST
  - CURL_AMIGA_REQUEST
  - Curl_amiga_cleanup
  - Curl_amiga_init
  source_file: /src/curl/lib/amigaos.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_BSDSOCKET_GETHOSTBYNAME_R
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/lib/amigaos.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HAVE_BSDSOCKET_GETADDRINFO
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/amigaos.c
      type_or_value: '0x02'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sigpipe_init
  - sigpipe_ignore
  - sigpipe_restore
  - sigpipe_apply
  - sigpipe_ignore
  - sigpipe_apply
  - sigpipe_init
  - sigpipe_restore
  source_file: /src/curl/lib/sigpipe.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: old_pipe_act
        type: struct sigaction
      item_type: struct
      name: Curl_sigpipe_ctx
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/curl/lib/sigpipe.h
    - fields:
      - name: dummy
        type: bool
      item_type: struct
      name: Curl_sigpipe_ctx
      pos:
        line_end: 97
        line_start: 95
        source_file: /src/curl/lib/sigpipe.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/config-win32.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_FCNTL_H
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_IO_H
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LOCALE_H
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDBOOL_H
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_PARAM_H
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_TYPES_H
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_UTIME_H
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UNISTD_H
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LIBGEN_H
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STDC_HEADERS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_BOOL_T
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_CLOSESOCKET
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETPEERNAME
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETSOCKNAME
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETHOSTNAME
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETTIMEOFDAY
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_IOCTLSOCKET
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_IOCTLSOCKET_FIONBIO
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SELECT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SETLOCALE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SOCKET
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UTIME
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_RECV
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RECV_TYPE_ARG1
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/curl/lib/config-win32.h
      type_or_value: SOCKET
    - item_type: preproc_def
      name: RECV_TYPE_ARG2
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/lib/config-win32.h
      type_or_value: char *
    - item_type: preproc_def
      name: RECV_TYPE_ARG3
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/curl/lib/config-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_ARG4
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/curl/lib/config-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_RETV
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/curl/lib/config-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: HAVE_SEND
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEND_TYPE_ARG1
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/curl/lib/config-win32.h
      type_or_value: SOCKET
    - item_type: preproc_def
      name: SEND_TYPE_ARG2
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/curl/lib/config-win32.h
      type_or_value: char *
    - item_type: preproc_def
      name: SEND_TYPE_ARG3
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/curl/lib/config-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG4
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/curl/lib/config-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_RETV
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/curl/lib/config-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: HAVE_BASENAME
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SIGNAL
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ssize_t
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/curl/lib/config-win32.h
      type_or_value: __int64
    - item_type: preproc_def
      name: ssize_t
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/curl/lib/config-win32.h
      type_or_value: int
    - item_type: preproc_def
      name: SIZEOF_INT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_LONG
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_SIZE_T
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_SIZE_T
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_CURL_OFF_T
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_TIME_T
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_TIME_T
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '4'
    - item_type: preproc_def
      name: HAVE_FREEADDRINFO
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETADDRINFO
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETADDRINFO_THREADSAFE
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRUCT_SOCKADDR_STORAGE
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRUCT_TIMEVAL
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '64'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '4'
    - item_type: preproc_def
      name: USE_RESOLV_THREADED
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LDAP_SSL
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_WIN32_LDAP
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '"i386-pc-win32"'
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '"x86_64-pc-win32"'
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '"ia64-pc-win32"'
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '"thumbv7a-pc-win32"'
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '"aarch64-pc-win32"'
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/curl/lib/config-win32.h
      type_or_value: '"unknown-pc-win32"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_creds_has_user
  - Curl_creds_has_passwd
  - Curl_creds_has_oauth_bearer
  - Curl_creds_has_sasl_service
  - Curl_creds_user
  - Curl_creds_passwd
  - Curl_creds_oauth_bearer
  - Curl_creds_sasl_authzid
  - Curl_creds_sasl_service
  source_file: /src/curl/lib/creds.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CREDS_NONE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/creds.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: CREDS_URL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/creds.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CREDS_OPTION
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/creds.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: CREDS_NETRC
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/creds.h
      type_or_value: '3 '
    structs:
    - fields:
      - name: '*user'
        type: char
      - name: '*passwd'
        type: char
      - name: '*oauth_bearer'
        type: char
      - name: '*sasl_authzid'
        type: char
      - name: '*sasl_service'
        type: char
      - name: refcount
        type: uint32_t
      - name: source
        type: uint8_t
      - name: buf[1]
        type: char
      item_type: struct
      name: Curl_creds
      pos:
        line_end: 42
        line_start: 33
        source_file: /src/curl/lib/creds.h
    typedefs: []
    union: []
- function_names:
  - curl_thread_create_thunk
  - Curl_thread_create
  - Curl_thread_destroy
  - Curl_thread_join
  - Curl_thread_create
  - Curl_thread_destroy
  - Curl_thread_join
  - Curl_cond_signal
  - Curl_cond_wait
  - Curl_cond_timedwait
  - Curl_cond_signal
  - Curl_cond_wait
  - Curl_cond_timedwait
  source_file: /src/curl/lib/curl_threads.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*func)(void *)
        type: unsigned int
      - name: '*arg'
        type: void
      item_type: struct
      name: Curl_actual_call
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/curl/lib/curl_threads.c
    typedefs: []
    union: []
- function_names:
  - Curl_uint32_spbset_init
  - uint32_spbset_clear
  - Curl_uint32_spbset_destroy
  - Curl_uint32_spbset_count
  - uint32_spbset_get_chunk
  - Curl_uint32_spbset_add
  - Curl_uint32_spbset_remove
  - Curl_uint32_spbset_contains
  - Curl_uint32_spbset_first
  - uint32_spbset_chunk_first
  - uint32_spbset_chunk_next
  - Curl_uint32_spbset_next
  source_file: /src/curl/lib/uint-spbset.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_UINT32_SPBSET_MAGIC
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/uint-spbset.c
      type_or_value: '0x70737362'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/cshutdn.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: struct Curl_llist
      - name: '*multi'
        type: struct Curl_multi
      item_type: struct
      name: cshutdn
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/curl/lib/cshutdn.h
    typedefs: []
    union: []
- function_names:
  - http_auth_nego_reset
  - Curl_input_negotiate
  - Curl_output_negotiate
  source_file: /src/curl/lib/http_negotiate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_sspi_global_init
  - Curl_sspi_global_cleanup
  - Curl_create_sspi_identity
  - Curl_sspi_free_identity
  source_file: /src/curl/lib/curl_sspi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_blockread_all
  - sxstate
  - sxstate
  - socks_failed
  - socks_flush
  - socks_recv
  - socks4_req_add_hd
  - socks4_req_add_user
  - socks4_resolving
  - socks4_check_resp
  - socks4_connect
  - socks5_req0_init
  - socks5_check_resp0
  - socks5_auth_init
  - socks5_check_auth_resp
  - socks5_req1_init
  - socks5_resolving
  - socks5_recv_resp1
  - socks5_connect
  - socks_proxy_ctx_free
  - socks_proxy_cf_connect
  - socks_cf_adjust_pollset
  - socks_proxy_cf_destroy
  - socks_cf_query
  - Curl_cf_socks_proxy_insert_after
  source_file: /src/curl/lib/socks.c
  types:
    enum:
    - enumerators:
      - name: SOCKS_ST_INIT
      - name: SOCKS4_ST_START
      - name: SOCKS4_ST_SEND
      - name: SOCKS4_ST_RESOLVING
      - name: SOCKS4_ST_RECV
      - name: SOCKS5_ST_START
      - name: SOCKS5_ST_REQ0_SEND
      - name: SOCKS5_ST_RESP0_RECV
      - name: SOCKS5_ST_GSSAPI_INIT
      - name: SOCKS5_ST_AUTH_INIT
      - name: SOCKS5_ST_REQ1_INIT
      - name: SOCKS5_ST_RESOLVING
      - name: SOCKS5_ST_REQ1_SEND
      - name: SOCKS5_ST_RESP1_RECV
      - name: SOCKS5_ST_AUTH_SEND
      - name: SOCKS_ST_SUCCESS
      - name: SOCKS_ST_FAILED
      - name: SOCKS5_ST_AUTH_RECV
      item_type: enum
      name: socks_state_t
      pos:
        line_end: 68
        line_start: 46
        source_file: /src/curl/lib/socks.c
    preproc_defs:
    - item_type: preproc_def
      name: SOCKS_CHUNK_SIZE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/curl/lib/socks.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: SOCKS_CHUNKS
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/lib/socks.c
      type_or_value: '1'
    structs:
    - fields:
      - name: state
        type: enum socks_state_t
      - name: iobuf
        type: struct bufq
      - name: '*dest'
        type: struct Curl_peer
      - name: '*creds'
        type: struct Curl_creds
      - name: presult
        type: CURLproxycode
      - name: resolv_id
        type: uint32_t
      - name: ip_version
        type: uint8_t
      - name: proxy_type
        type: uint8_t
      - name: version
        type: unsigned char
      item_type: struct
      name: socks_ctx
      pos:
        line_end: 109
        line_start: 96
        source_file: /src/curl/lib/socks.c
    typedefs: []
    union: []
- function_names:
  - SOCKET_READABLE
  - SOCKET_WRITABLE
  - VALID_SOCK
  - FDSET_SOCK
  - VERIFY_SOCK
  - VALID_SOCK
  - FDSET_SOCK
  - VERIFY_SOCK
  - Curl_pollset_add_in
  - Curl_pollset_remove_in
  - Curl_pollset_add_out
  - Curl_pollset_remove_out
  - Curl_pollset_add_inout
  - Curl_pollset_set_in_only
  - Curl_pollset_set_out_only
  source_file: /src/curl/lib/select.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLLIN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/select.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: POLLPRI
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/select.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: POLLOUT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/select.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: POLLERR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/select.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: POLLHUP
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/select.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: POLLNVAL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/select.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: POLLRDNORM
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/select.h
      type_or_value: POLLIN
    - item_type: preproc_def
      name: POLLWRNORM
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/select.h
      type_or_value: POLLOUT
    - item_type: preproc_def
      name: POLLRDBAND
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/select.h
      type_or_value: POLLPRI
    - item_type: preproc_def
      name: CURL_CSELECT_IN2
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/select.h
      type_or_value: (CURL_CSELECT_ERR << 1)
    - item_type: preproc_def
      name: EZ_POLLSET_DEF_COUNT
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/lib/select.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CURL_EASY_POLLSET_MAGIC
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/curl/lib/select.h
      type_or_value: '0x7a657370'
    structs:
    - fields:
      - name: fd
        type: curl_socket_t
      - name: events
        type: short
      - name: revents
        type: short
      item_type: struct
      name: pollfd
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/curl/lib/select.h
    - fields:
      - name: '*sockets'
        type: curl_socket_t
      - name: '*actions'
        type: unsigned char
      - name: n
        type: unsigned int
      - name: count
        type: unsigned int
      - name: def_sockets[EZ_POLLSET_DEF_COUNT]
        type: curl_socket_t
      - name: def_actions[EZ_POLLSET_DEF_COUNT]
        type: unsigned char
      item_type: struct
      name: easy_pollset
      pos:
        line_end: 127
        line_start: 117
        source_file: /src/curl/lib/select.h
    - fields:
      - name: '*pfds'
        type: struct pollfd
      - name: n
        type: unsigned int
      - name: count
        type: unsigned int
      item_type: struct
      name: curl_pollfds
      pos:
        line_end: 202
        line_start: 197
        source_file: /src/curl/lib/select.h
    - fields:
      - name: '*wfds'
        type: struct curl_waitfd
      - name: n
        type: unsigned int
      - name: count
        type: unsigned int
      item_type: struct
      name: Curl_waitfds
      pos:
        line_end: 222
        line_start: 218
        source_file: /src/curl/lib/select.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/multiif.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/gopher.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/llist.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*_head'
        type: struct Curl_llist_node
      - name: '*_tail'
        type: struct Curl_llist_node
      - name: _dtor
        type: Curl_llist_dtor
      - name: _size
        type: size_t
      item_type: struct
      name: Curl_llist
      pos:
        line_end: 40
        line_start: 32
        source_file: /src/curl/lib/llist.h
    - fields:
      - name: '*_list'
        type: struct Curl_llist
      - name: '*_ptr'
        type: void
      - name: '*_prev'
        type: struct Curl_llist_node
      - name: '*_next'
        type: struct Curl_llist_node
      item_type: struct
      name: Curl_llist_node
      pos:
        line_end: 50
        line_start: 42
        source_file: /src/curl/lib/llist.h
    typedefs:
    - item_type: typedef
      name: (*Curl_llist_dtor)(void *user, void *elem)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/curl/lib/llist.h
      type: void
    union: []
- function_names:
  - CURL_TELOPT
  - CURL_TELOPT
  - CURL_TELOPT_OK
  - CURL_TELCMD_OK
  - CURL_TELCMD
  - CURL_TELCMD
  source_file: /src/curl/lib/arpa_telnet.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_TELOPT_BINARY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: CURL_TELOPT_ECHO
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: CURL_TELOPT_SGA
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '3   '
    - item_type: preproc_def
      name: CURL_TELOPT_EXOPL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '255 '
    - item_type: preproc_def
      name: CURL_TELOPT_TTYPE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '24  '
    - item_type: preproc_def
      name: CURL_TELOPT_NAWS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '31  '
    - item_type: preproc_def
      name: CURL_TELOPT_XDISPLOC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '35  '
    - item_type: preproc_def
      name: CURL_TELOPT_NEW_ENVIRON
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '39  '
    - item_type: preproc_def
      name: CURL_NEW_ENV_VAR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_NEW_ENV_VALUE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TELOPT_MAXIMUM
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: CURL_TELOPT_NEW_ENVIRON
    - item_type: preproc_def
      name: CURL_NTELOPTS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '40'
    - item_type: preproc_def
      name: CURL_xEOF
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '236 '
    - item_type: preproc_def
      name: CURL_SE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '240 '
    - item_type: preproc_def
      name: CURL_NOP
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '241 '
    - item_type: preproc_def
      name: CURL_DM
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '242 '
    - item_type: preproc_def
      name: CURL_GA
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '249 '
    - item_type: preproc_def
      name: CURL_SB
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '250 '
    - item_type: preproc_def
      name: CURL_WILL
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '251 '
    - item_type: preproc_def
      name: CURL_WONT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '252 '
    - item_type: preproc_def
      name: CURL_DO
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '253 '
    - item_type: preproc_def
      name: CURL_DONT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '254 '
    - item_type: preproc_def
      name: CURL_IAC
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '255 '
    - item_type: preproc_def
      name: CURL_TELCMD_MINIMUM
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: 'CURL_xEOF '
    - item_type: preproc_def
      name: CURL_TELCMD_MAXIMUM
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: 'CURL_IAC  '
    - item_type: preproc_def
      name: CURL_TELQUAL_IS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_TELQUAL_SEND
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_TELQUAL_INFO
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CURL_TELQUAL_NAME
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/lib/arpa_telnet.h
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - parsekeyword
  - charclass
  - setcharorrange
  - setcharset
  - loop
  - Curl_fnmatch
  - Curl_fnmatch
  source_file: /src/curl/lib/curl_fnmatch.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLFNM_CHARSET_LEN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (sizeof(char) * 256)
    - item_type: preproc_def
      name: CURLFNM_CHSET_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 15)
    - item_type: preproc_def
      name: CURLFNM_NEGATE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: CURLFNM_CHARSET_LEN
    - item_type: preproc_def
      name: CURLFNM_ALNUM
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 1)
    - item_type: preproc_def
      name: CURLFNM_DIGIT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 2)
    - item_type: preproc_def
      name: CURLFNM_XDIGIT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 3)
    - item_type: preproc_def
      name: CURLFNM_ALPHA
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 4)
    - item_type: preproc_def
      name: CURLFNM_PRINT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 5)
    - item_type: preproc_def
      name: CURLFNM_BLANK
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 6)
    - item_type: preproc_def
      name: CURLFNM_LOWER
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 7)
    - item_type: preproc_def
      name: CURLFNM_GRAPH
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 8)
    - item_type: preproc_def
      name: CURLFNM_SPACE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 9)
    - item_type: preproc_def
      name: CURLFNM_UPPER
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: (CURLFNM_CHARSET_LEN + 10)
    - item_type: preproc_def
      name: SETCHARSET_OK
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SETCHARSET_FAIL
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/curl_fnmatch.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_headers_init
  - Curl_headers_push
  - Curl_headers_cleanup
  source_file: /src/curl/lib/headers.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: node
        type: struct Curl_llist_node
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      - name: request
        type: int
      - name: type
        type: unsigned char
      - name: buffer[1]
        type: char
      item_type: struct
      name: Curl_header_store
      pos:
        line_end: 36
        line_start: 29
        source_file: /src/curl/lib/headers.h
    typedefs: []
    union: []
- function_names:
  - Curl_wakeup_destroy
  source_file: /src/curl/lib/socketpair.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_hc_baller_discard
  - cf_hc_baller_is_connecting
  - cf_hc_baller_has_started
  - cf_hc_baller_reply_ms
  - cf_hc_baller_data_pending
  - cf_hc_baller_needs_flush
  - cf_hc_baller_cntrl
  - cf_hc_ctx_close
  - cf_hc_ctx_destroy
  - cf_hc_baller_assign
  - cf_hc_baller_init
  - cf_hc_baller_connect
  - baller_connected
  - time_to_start_baller2
  - cf_hc_may_h3
  - cf_hc_get_httpsrr_alpn
  - cf_hc_get_pref_alpn
  - cf_hc_get_first_alpn
  - cf_hc_set_baller1
  - cf_hc_set_baller2
  - cf_hc_connect
  - cf_hc_shutdown
  - cf_hc_adjust_pollset
  - cf_hc_data_pending
  - cf_get_max_baller_time
  - cf_hc_query
  - cf_hc_cntrl
  - cf_hc_destroy
  - cf_hc_create
  - cf_hc_add
  - Curl_cf_https_setup
  source_file: /src/curl/lib/cf-https-connect.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*cf'
        type: struct Curl_cfilter
      - name: result
        type: CURLcode
      - name: started
        type: struct curltime
      - name: reply_ms
        type: int
      - name: transport
        type: uint8_t
      - name: alpn_id
        type: enum alpnid
      item_type: struct
      name: cf_hc_baller
      pos:
        line_end: 58
        line_start: 49
        source_file: /src/curl/lib/cf-https-connect.c
    - fields:
      - name: state
        type: cf_hc_state
      - name: started
        type: struct curltime
      - name: result
        type: CURLcode
      - name: check_h3_result
        type: CURLcode
      - name: ballers[2]
        type: struct cf_hc_baller
      - name: baller_count
        type: size_t
      - name: soft_eyeballs_timeout_ms
        type: timediff_t
      - name: hard_eyeballs_timeout_ms
        type: timediff_t
      - name: def_transport
        type: uint8_t
      item_type: struct
      name: cf_hc_ctx
      pos:
        line_end: 122
        line_start: 109
        source_file: /src/curl/lib/cf-https-connect.c
    typedefs: []
    union: []
- function_names:
  - curl_easy_strerror
  - curl_multi_strerror
  - curl_share_strerror
  - curl_url_strerror
  - Curl_sspi_strerror
  - SEC2TXT
  source_file: /src/curl/lib/strerror.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURL_DNSQ_IP
  - Curl_probeipv6
  - Curl_resolv_shutdown_all
  - Curl_resolv_destroy_all
  - Curl_resolv_take_result
  - Curl_resolv_elapsed_ms
  - Curl_resolv_has_answers
  - Curl_resolv_get_ai
  - Curl_resolv_get_https
  - Curl_resolv_knows_https
  - Curl_resolv_pollset
  - Curl_resolv_destroy
  source_file: /src/curl/lib/hostip.h
  types:
    enum:
    - enumerators:
      - name: ALPN_none
        value: '0'
      - name: ALPN_h3
        value: CURLALTSVC_H3
      - name: ALPN_h1
        value: CURLALTSVC_H1
      - name: ALPN_h2
        value: CURLALTSVC_H2
      item_type: enum
      name: alpnid
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/curl/lib/hostip.h
    preproc_defs:
    - item_type: preproc_def
      name: CURL_HOSTENT_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/hostip.h
      type_or_value: '9000'
    - item_type: preproc_def
      name: CURL_TIMEOUT_RESOLVE_MS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/hostip.h
      type_or_value: (300 * 1000)
    - item_type: preproc_def
      name: CURL_DNSQ_A
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/hostip.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: CURL_DNSQ_AAAA
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/hostip.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: CURL_DNSQ_HTTPS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/hostip.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: CURL_DNSQ_ALL
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/hostip.h
      type_or_value: (CURL_DNSQ_A | CURL_DNSQ_AAAA | CURL_DNSQ_HTTPS)
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_hash_print
  - Curl_hash_init
  - hash_elem_create
  - hash_elem_clear_ptr
  - hash_elem_destroy
  - hash_elem_unlink
  - hash_elem_link
  - CURL_HASH_SLOT
  - CURL_HASH_SLOT_ADDR
  - Curl_hash_add2
  - Curl_hash_add
  - Curl_hash_delete
  - Curl_hash_pick
  - Curl_hash_destroy
  - Curl_hash_clean
  - Curl_hash_count
  - Curl_hash_clean_with_criterium
  - Curl_hash_str
  - curlx_str_key_compare
  - Curl_hash_start_iterate
  - Curl_hash_next_element
  source_file: /src/curl/lib/hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASHINIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/hash.c
      type_or_value: '0x7017e781'
    - item_type: preproc_def
      name: ITERINIT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/hash.c
      type_or_value: '0x5FEDCBA9'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/cf-h2-proxy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/functypes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RECV_TYPE_ARG1
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/functypes.h
      type_or_value: SOCKET
    - item_type: preproc_def
      name: RECV_TYPE_ARG2
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/functypes.h
      type_or_value: char *
    - item_type: preproc_def
      name: RECV_TYPE_ARG3
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_RETV
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG1
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/functypes.h
      type_or_value: SOCKET
    - item_type: preproc_def
      name: SEND_TYPE_ARG2
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/functypes.h
      type_or_value: char *
    - item_type: preproc_def
      name: SEND_TYPE_ARG3
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_RETV
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_ARG1
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/functypes.h
      type_or_value: long
    - item_type: preproc_def
      name: RECV_TYPE_ARG2
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/functypes.h
      type_or_value: char *
    - item_type: preproc_def
      name: RECV_TYPE_ARG3
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/functypes.h
      type_or_value: long
    - item_type: preproc_def
      name: RECV_TYPE_ARG4
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/functypes.h
      type_or_value: long
    - item_type: preproc_def
      name: RECV_TYPE_RETV
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/lib/functypes.h
      type_or_value: long
    - item_type: preproc_def
      name: SEND_TYPE_ARG1
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG2
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/functypes.h
      type_or_value: char *
    - item_type: preproc_def
      name: SEND_TYPE_ARG3
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_RETV
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_ARG1
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_ARG2
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/lib/functypes.h
      type_or_value: void *
    - item_type: preproc_def
      name: RECV_TYPE_ARG3
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/functypes.h
      type_or_value: size_t
    - item_type: preproc_def
      name: RECV_TYPE_ARG4
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_RETV
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/lib/functypes.h
      type_or_value: ssize_t
    - item_type: preproc_def
      name: SEND_TYPE_ARG1
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG2
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/curl/lib/functypes.h
      type_or_value: void *
    - item_type: preproc_def
      name: SEND_TYPE_ARG3
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/lib/functypes.h
      type_or_value: size_t
    - item_type: preproc_def
      name: SEND_TYPE_ARG4
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/lib/functypes.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_RETV
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/curl/lib/functypes.h
      type_or_value: ssize_t
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/altsvc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ALTSVC_ENTRIES
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/altsvc.h
      type_or_value: '5000'
    structs:
    - fields:
      - name: '*host'
        type: char
      - name: port
        type: uint16_t
      - name: alpnid
        type: enum alpnid
      item_type: struct
      name: althost
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/curl/lib/altsvc.h
    - fields:
      - name: src
        type: struct althost
      - name: dst
        type: struct althost
      - name: expires
        type: time_t
      - name: node
        type: struct Curl_llist_node
      item_type: struct
      name: altsvc
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/curl/lib/altsvc.h
    - fields:
      - name: '*filename'
        type: char
      - name: list
        type: struct Curl_llist
      - name: flags
        type: long
      item_type: struct
      name: altsvcinfo
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/curl/lib/altsvc.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/socks.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_win32_init
  source_file: /src/curl/lib/system_win32.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CF_CTX_CALL_DATA
  - free_push_headers
  - h2_stream_ctx_free
  - h2_stream_hash_free
  - cf_h2_ctx_init
  - cf_h2_ctx_free
  - cf_h2_initial_win_size
  - populate_settings
  - populate_binsettings
  - cf_h2_update_settings
  - H2_STREAM_CTX
  - h2_stream_ctx_create
  - cf_h2_get_desired_local_win
  - cf_h2_update_local_win
  - cf_h2_update_local_win
  - http2_data_setup
  - nw_out_flush
  - http2_data_done
  - h2_client_new
  - should_close_session
  - h2_process_pending_input
  - http2_connisalive
  - http2_send_ping
  - Curl_http2_ver
  - send_callback
  - curl_pushheader_bynum
  - curl_pushheader_byname
  - h2_duphandle
  - set_transfer_url
  - discard_newhandle
  - push_promise
  - h2_xfer_write_resp_hd
  - h2_xfer_write_resp
  - on_stream_frame
  - Curl_nghttp2_fr_print
  - on_frame_send
  - on_frame_recv
  - cf_h2_on_invalid_frame_recv
  - on_data_chunk_recv
  - on_stream_close
  - on_begin_headers
  - cf_h2_header_error
  - on_header
  - req_body_read_callback
  - error_callback
  - Curl_http2_request_upgrade
  - http2_handle_stream_close
  - sweight_wanted
  - sweight_in_effect
  - h2_pri_spec
  - h2_progress_egress
  - stream_recv
  - h2_progress_ingress
  - cf_h2_recv
  - cf_h2_body_send
  - h2_submit
  - cf_h2_send
  - cf_h2_flush
  - cf_h2_adjust_pollset
  - cf_h2_ctx_open
  - cf_h2_connect
  - cf_h2_destroy
  - cf_h2_shutdown
  - http2_data_pause
  - cf_h2_cntrl
  - cf_h2_data_pending
  - cf_h2_is_alive
  - cf_h2_keep_alive
  - cf_h2_query
  - http2_cfilter_add
  - http2_cfilter_insert_after
  - Curl_http2_may_switch
  - Curl_http2_switch
  - Curl_http2_switch_at
  - Curl_http2_upgrade
  - Curl_h2_http_1_1_error
  - Curl_nghttp2_malloc
  - Curl_nghttp2_free
  - Curl_nghttp2_calloc
  - Curl_nghttp2_realloc
  - curl_pushheader_bynum
  - curl_pushheader_byname
  source_file: /src/curl/lib/http2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NGHTTP2_HAS_SET_LOCAL_WINDOW_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/http2.c
      type_or_value: '1'
    - item_type: preproc_def
      name: H2_CHUNK_SIZE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/http2.c
      type_or_value: (16 * 1024)
    - item_type: preproc_def
      name: H2_CONN_WINDOW_SIZE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/http2.c
      type_or_value: (10 * 1024 * 1024)
    - item_type: preproc_def
      name: H2_NW_RECV_CHUNKS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/http2.c
      type_or_value: (H2_CONN_WINDOW_SIZE / H2_CHUNK_SIZE)
    - item_type: preproc_def
      name: H2_NW_SEND_CHUNKS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/http2.c
      type_or_value: '1'
    - item_type: preproc_def
      name: H2_STREAM_WINDOW_SIZE_MAX
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/lib/http2.c
      type_or_value: (10 * 1024 * 1024)
    - item_type: preproc_def
      name: H2_STREAM_WINDOW_SIZE_INITIAL
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/lib/http2.c
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: H2_STREAM_WINDOW_SIZE_INITIAL
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/lib/http2.c
      type_or_value: H2_STREAM_WINDOW_SIZE_MAX
    - item_type: preproc_def
      name: H2_STREAM_SEND_CHUNKS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/http2.c
      type_or_value: ((64 * 1024) / H2_CHUNK_SIZE)
    - item_type: preproc_def
      name: H2_STREAM_POOL_SPARES
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/http2.c
      type_or_value: (H2_CONN_WINDOW_SIZE / H2_CHUNK_SIZE)
    - item_type: preproc_def
      name: HTTP2_HUGE_WINDOW_SIZE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/lib/http2.c
      type_or_value: (100 * H2_STREAM_WINDOW_SIZE_MAX)
    - item_type: preproc_def
      name: H2_SETTINGS_IV_LEN
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/lib/http2.c
      type_or_value: '3'
    - item_type: preproc_def
      name: H2_BINSETTINGS_LEN
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/lib/http2.c
      type_or_value: '80'
    - item_type: preproc_def
      name: MAX_ACC
      pos:
        line_end: 2150
        line_start: 2149
        source_file: /src/curl/lib/http2.c
      type_or_value: '60000  '
    structs:
    - fields:
      - name: '*h2'
        type: nghttp2_session
      - name: call_data
        type: struct cf_call_data
      - name: inbufq
        type: struct bufq
      - name: outbufq
        type: struct bufq
      - name: stream_bufcp
        type: struct bufc_pool
      - name: scratch
        type: struct dynbuf
      - name: streams
        type: struct uint_hash
      - name: drain_total
        type: size_t
      - name: initial_win_size
        type: uint32_t
      - name: max_concurrent_streams
        type: uint32_t
      - name: goaway_error
        type: uint32_t
      - name: remote_max_sid
        type: int32_t
      - name: local_max_sid
        type: int32_t
      item_type: struct
      name: cf_h2_ctx
      pos:
        line_end: 115
        line_start: 91
        source_file: /src/curl/lib/http2.c
    - fields:
      - name: sendbuf
        type: struct bufq
      - name: h1
        type: struct h1_req_parser
      - name: resp_trailers
        type: struct dynhds
      - name: resp_hds_len
        type: size_t
      - name: nrcvd_data
        type: curl_off_t
      - name: '**push_headers'
        type: char
      - name: push_headers_used
        type: size_t
      - name: push_headers_alloc
        type: size_t
      - name: status_code
        type: int
      - name: error
        type: uint32_t
      - name: xfer_result
        type: CURLcode
      - name: local_window_size
        type: int32_t
      - name: id
        type: int32_t
      item_type: struct
      name: h2_stream_ctx
      pos:
        line_end: 149
        line_start: 124
        source_file: /src/curl/lib/http2.c
    - fields:
      - name: '*data'
        type: struct Curl_easy
      - name: '*stream'
        type: struct h2_stream_ctx
      - name: '*frame'
        type: nghttp2_push_promise
      item_type: struct
      name: curl_pushheaders
      pos:
        line_end: 650
        line_start: 646
        source_file: /src/curl/lib/http2.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/easyif.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/cf-socket.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: curl_sa_addr
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/cf-socket.h
      type_or_value: addr.sa
    - item_type: preproc_def
      name: curl_sa_addrbuf
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/cf-socket.h
      type_or_value: addr.buf
    structs:
    - fields:
      - name: family
        type: int
      - name: socktype
        type: int
      - name: protocol
        type: int
      - name: addrlen
        type: unsigned int
      - name: addr
        type: "union {\n    struct sockaddr sa;\n    struct Curl_sockaddr_storage
          buf;\n  }"
      item_type: struct
      name: Curl_sockaddr_ex
      pos:
        line_end: 52
        line_start: 43
        source_file: /src/curl/lib/cf-socket.h
    typedefs: []
    union: []
- function_names:
  - gopher_connect
  - gopher_connecting
  - gopher_do
  source_file: /src/curl/lib/gopher.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_dns_ctx_create
  - cf_dns_ctx_destroy
  - cf_dns_report_addr
  - cf_dns_report
  - cf_dns_report
  - cf_dns_start
  - cf_dns_ready_to_connect
  - cf_dns_connect
  - cf_dns_destroy
  - cf_dns_adjust_pollset
  - cf_dns_cntrl
  - cf_dns_create
  - Curl_cf_dns_add
  - Curl_cf_dns_insert_after
  - cf_dns_result
  - Curl_conn_dns_result
  - cf_dns_get_nth_ai
  - Curl_cf_dns_get_ai
  - Curl_conn_dns_get_ai
  - Curl_conn_dns_get_https
  - Curl_conn_dns_resolved_https
  source_file: /src/curl/lib/cf-dns.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_HEV3_RESOLVE_DELAY_MS
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/curl/lib/cf-dns.c
      type_or_value: '50'
    structs:
    - fields:
      - name: '*dns'
        type: struct Curl_dns_entry
      - name: '*peer'
        type: struct Curl_peer
      - name: resolv_result
        type: CURLcode
      - name: resolv_id
        type: uint32_t
      - name: dns_queries
        type: uint8_t
      - name: transport
        type: uint8_t
      item_type: struct
      name: cf_dns_ctx
      pos:
        line_end: 48
        line_start: 37
        source_file: /src/curl/lib/cf-dns.c
    typedefs: []
    union: []
- function_names:
  - unescape_word
  - sendf
  - dict_do
  source_file: /src/curl/lib/dict.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DICT_MATCH
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/dict.c
      type_or_value: '"/MATCH:"'
    - item_type: preproc_def
      name: DICT_MATCH2
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/dict.c
      type_or_value: '"/M:"'
    - item_type: preproc_def
      name: DICT_MATCH3
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/dict.c
      type_or_value: '"/FIND:"'
    - item_type: preproc_def
      name: DICT_DEFINE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/dict.c
      type_or_value: '"/DEFINE:"'
    - item_type: preproc_def
      name: DICT_DEFINE2
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/dict.c
      type_or_value: '"/D:"'
    - item_type: preproc_def
      name: DICT_DEFINE3
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/dict.c
      type_or_value: '"/LOOKUP:"'
    - item_type: preproc_def
      name: DYN_DICT_WORD
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/dict.c
      type_or_value: '10000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_win32_random
  - weak_random
  - randit
  - Curl_rand_bytes
  - Curl_rand_hex
  - Curl_rand_alnum
  source_file: /src/curl/lib/rand.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATUS_SUCCESS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/rand.c
      type_or_value: ((NTSTATUS)0x00000000L)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/splay.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*smaller'
        type: struct Curl_tree
      - name: '*larger'
        type: struct Curl_tree
      - name: '*samen'
        type: struct Curl_tree
      - name: '*samep'
        type: struct Curl_tree
      - name: key
        type: struct curltime
      - name: '*ptr'
        type: void
      item_type: struct
      name: Curl_tree
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/curl/lib/splay.h
    typedefs: []
    union: []
- function_names:
  - Curl_initinfo
  - getinfo_char
  - DOUBLE_SECS
  - getinfo_offt
  - getinfo_double
  - getinfo_slist
  - getinfo_socket
  - Curl_getinfo
  source_file: /src/curl/lib/getinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: '*to_ulong'
        type: unsigned long
      - name: '*to_long'
        type: long
      item_type: union
      name: lptr
      pos:
        line_end: 194
        line_start: 191
        source_file: /src/curl/lib/getinfo.c
    - fields:
      - name: '*to_certinfo'
        type: struct curl_certinfo
      - name: '*to_slist'
        type: struct curl_slist
      item_type: union
      name: ptr
      pos:
        line_end: 568
        line_start: 565
        source_file: /src/curl/lib/getinfo.c
- function_names: []
  source_file: /src/curl/lib/conncache.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CPOOL_LIMIT_OK
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/lib/conncache.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CPOOL_LIMIT_DEST
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/curl/lib/conncache.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CPOOL_LIMIT_TOTAL
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/lib/conncache.h
      type_or_value: '2'
    structs:
    - fields:
      - name: dest2bundle
        type: struct Curl_hash
      - name: num_conn
        type: size_t
      - name: next_connection_id
        type: curl_off_t
      - name: next_easy_id
        type: curl_off_t
      - name: last_cleanup
        type: struct curltime
      - name: '*idata'
        type: struct Curl_easy
      - name: '*share'
        type: struct Curl_share
      item_type: struct
      name: cpool
      pos:
        line_end: 59
        line_start: 48
        source_file: /src/curl/lib/conncache.h
    typedefs:
    - item_type: typedef
      name: "Curl_cpool_conn_match_cb(struct connectdata *conn,\n                                      void
        *userdata)"
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/lib/conncache.h
      type: bool
    - item_type: typedef
      name: Curl_cpool_done_match_cb(void *userdata)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/curl/lib/conncache.h
      type: bool
    - item_type: typedef
      name: "Curl_cpool_conn_do_cb(struct connectdata *conn,\n                                   struct
        Curl_easy *data,\n                                   void *cbdata)"
      pos:
        line_end: 143
        line_start: 141
        source_file: /src/curl/lib/conncache.h
      type: void
    union: []
- function_names:
  - dynhds_add_custom
  - proxy_http_ver_major
  - http_proxy_create_CONNECT
  - http_proxy_create_CONNECTUDP
  - Curl_http_proxy_create_tunnel_request
  - Curl_http_proxy_inspect_tunnel_response
  - http_proxy_cf_connect
  - cf_http_proxy_query
  - cf_https_proxy_ctx_free
  - http_proxy_cf_destroy
  - Curl_cf_http_proxy_insert_after
  - Curl_http_proxy_transport
  source_file: /src/curl/lib/http_proxy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*dest'
        type: struct Curl_peer
      - name: proxytype
        type: uint8_t
      item_type: struct
      name: cf_proxy_ctx
      pos:
        line_end: 178
        line_start: 173
        source_file: /src/curl/lib/http_proxy.c
    typedefs: []
    union: []
- function_names:
  - imap_sendf
  - imap_atom
  - imap_find_literal
  - imap_matchresp
  - imap_endofresp
  - imap_get_message
  - imap_state
  - imap_perform_capability
  - imap_perform_starttls
  - imap_perform_upgrade_tls
  - imap_perform_login
  - imap_perform_authenticate
  - imap_continue_authenticate
  - imap_cancel_authenticate
  - imap_perform_authentication
  - imap_perform_list
  - imap_perform_select
  - imap_perform_fetch
  - imap_perform_append
  - imap_perform_search
  - imap_perform_logout
  - imap_state_servergreet_resp
  - imap_state_capability_resp
  - imap_state_starttls_resp
  - imap_state_auth_resp
  - imap_state_login_resp
  - is_custom_fetch_listing_match
  - is_custom_fetch_listing
  - imap_state_listsearch_resp
  - imap_state_select_resp
  - imap_state_fetch_resp
  - imap_state_fetch_final_resp
  - imap_state_append_resp
  - imap_state_append_final_resp
  - imap_pp_statemachine
  - imap_multi_statemach
  - imap_block_statemach
  - imap_pollset
  - imap_easy_reset
  - imap_is_bchar
  - imap_parse_url_options
  - imap_parse_url_path
  - imap_parse_custom_request
  - imap_connect
  - imap_done
  - imap_perform
  - imap_dophase_done
  - imap_regular_transfer
  - imap_do
  - imap_disconnect
  - imap_doing
  - imap_easy_dtor
  - imap_conn_dtor
  - imap_setup_connection
  source_file: /src/curl/lib/imap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_IMAP_EASY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/imap.c
      type_or_value: '"meta:proto:imap:easy"'
    - item_type: preproc_def
      name: CURL_META_IMAP_CONN
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/imap.c
      type_or_value: '"meta:proto:imap:conn"'
    - item_type: preproc_def
      name: IMAP_RESP_OK
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/curl/lib/imap.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IMAP_RESP_NOT_OK
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/curl/lib/imap.c
      type_or_value: '2'
    - item_type: preproc_def
      name: IMAP_RESP_PREAUTH
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/curl/lib/imap.c
      type_or_value: '3'
    structs:
    - fields:
      - name: pp
        type: struct pingpong
      - name: sasl
        type: struct SASL
      - name: dyn
        type: struct dynbuf
      - name: '*mailbox'
        type: char
      - name: state
        type: imapstate
      - name: mb_uidvalidity
        type: unsigned int
      - name: resptag[5]
        type: char
      - name: preftype
        type: unsigned char
      - name: cmdid
        type: unsigned char
      item_type: struct
      name: imap_conn
      pos:
        line_end: 119
        line_start: 103
        source_file: /src/curl/lib/imap.c
    - fields:
      - name: transfer
        type: curl_pp_transfer
      - name: '*mailbox'
        type: char
      - name: '*uid'
        type: char
      - name: '*mindex'
        type: char
      - name: '*section'
        type: char
      - name: '*partial'
        type: char
      - name: '*query'
        type: char
      - name: '*custom'
        type: char
      - name: '*custom_params'
        type: char
      - name: uidvalidity
        type: unsigned int
      item_type: struct
      name: IMAP
      pos:
        line_end: 137
        line_start: 125
        source_file: /src/curl/lib/imap.c
    - fields:
      - name: bit
        type: int
      - name: '*flag'
        type: char
      item_type: struct
      name: ulbits
      pos:
        line_end: 146
        line_start: 143
        source_file: /src/curl/lib/imap.c
    typedefs: []
    union: []
- function_names:
  - memrchr
  source_file: /src/curl/lib/curl_memrchr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_httpsrr_trace
  source_file: /src/curl/lib/httpsrr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_MAXLEN_host_name
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/httpsrr.h
      type_or_value: '253'
    - item_type: preproc_def
      name: MAX_HTTPSRR_ALPNS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/httpsrr.h
      type_or_value: '4'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_MANDATORY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/httpsrr.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_ALPN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/httpsrr.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_NO_DEF_ALPN
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/httpsrr.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_PORT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/httpsrr.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_IPV4
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/httpsrr.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_ECH
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/lib/httpsrr.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: HTTPS_RR_CODE_IPV6
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/lib/httpsrr.h
      type_or_value: '0x06'
    structs:
    - fields:
      - name: '*rrname'
        type: char
      - name: '*target'
        type: char
      - name: '*ipv4hints'
        type: unsigned char
      - name: ipv4hints_len
        type: size_t
      - name: '*echconfiglist'
        type: unsigned char
      - name: echconfiglist_len
        type: size_t
      - name: '*ipv6hints'
        type: unsigned char
      - name: ipv6hints_len
        type: size_t
      - name: alpns[MAX_HTTPSRR_ALPNS]
        type: unsigned char
      - name: port
        type: uint16_t
      - name: priority
        type: uint16_t
      item_type: struct
      name: Curl_https_rrinfo
      pos:
        line_end: 60
        line_start: 39
        source_file: /src/curl/lib/httpsrr.h
    typedefs: []
    union: []
- function_names:
  - slist_get_last
  - Curl_slist_append_nodup
  - curl_slist_append
  - Curl_slist_duplicate
  - curl_slist_free_all
  source_file: /src/curl/lib/slist.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_SEP
  - IS_SEP
  - IS_SEP
  - dirslash
  - Curl_fopen
  source_file: /src/curl/lib/curl_fopen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATHSEP
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/curl_fopen.c
      type_or_value: '"\\"'
    - item_type: preproc_def
      name: PATHSEP
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/curl_fopen.c
      type_or_value: '"\\"'
    - item_type: preproc_def
      name: PATHSEP
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/curl_fopen.c
      type_or_value: '"/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_sasl_decode_mech
  - Curl_sasl_parse_url_auth_option
  - Curl_sasl_init
  - sasl_state
  - get_server_message
  - build_message
  - Curl_sasl_can_authenticate
  - sasl_choose_external
  - sasl_choose_krb5
  - sasl_choose_gsasl
  - sasl_choose_digest
  - sasl_choose_ntlm
  - sasl_choose_oauth
  - sasl_choose_oauth2
  - sasl_choose_plain
  - sasl_choose_login
  - Curl_sasl_start
  - Curl_sasl_continue
  - sasl_unchosen
  - Curl_sasl_is_blocked
  source_file: /src/curl/lib/curl_sasl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_SASL_KERBEROS5
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/curl/lib/curl_sasl.c
      type_or_value: 'TRUE'
    - item_type: preproc_def
      name: CURL_SASL_KERBEROS5
      pos:
        line_end: 852
        line_start: 851
        source_file: /src/curl/lib/curl_sasl.c
      type_or_value: 'FALSE'
    - item_type: preproc_def
      name: CURL_SASL_GASL
      pos:
        line_end: 855
        line_start: 854
        source_file: /src/curl/lib/curl_sasl.c
      type_or_value: 'TRUE'
    - item_type: preproc_def
      name: CURL_SASL_GASL
      pos:
        line_end: 857
        line_start: 856
        source_file: /src/curl/lib/curl_sasl.c
      type_or_value: 'FALSE'
    - item_type: preproc_def
      name: CURL_SASL_DIGEST
      pos:
        line_end: 860
        line_start: 859
        source_file: /src/curl/lib/curl_sasl.c
      type_or_value: 'TRUE'
    - item_type: preproc_def
      name: CURL_SASL_DIGEST
      pos:
        line_end: 862
        line_start: 861
        source_file: /src/curl/lib/curl_sasl.c
      type_or_value: 'FALSE'
    - item_type: preproc_def
      name: CURL_SASL_NTLM
      pos:
        line_end: 865
        line_start: 864
        source_file: /src/curl/lib/curl_sasl.c
      type_or_value: 'TRUE'
    - item_type: preproc_def
      name: CURL_SASL_NTLM
      pos:
        line_end: 867
        line_start: 866
        source_file: /src/curl/lib/curl_sasl.c
      type_or_value: 'FALSE'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: len
        type: size_t
      - name: bit
        type: unsigned short
      item_type: struct
      name: "mechtable[] = {\n  { \"LOGIN\",        5,  SASL_MECH_LOGIN },\n  { \"PLAIN\",
        \       5,  SASL_MECH_PLAIN },\n  { \"CRAM-MD5\",     8,  SASL_MECH_CRAM_MD5
        },\n  { \"DIGEST-MD5\",   10, SASL_MECH_DIGEST_MD5 },\n  { \"GSSAPI\",       6,
        \ SASL_MECH_GSSAPI },\n  { \"EXTERNAL\",     8,  SASL_MECH_EXTERNAL },\n  {
        \"NTLM\",         4,  SASL_MECH_NTLM },\n  { \"XOAUTH2\",      7,  SASL_MECH_XOAUTH2
        },\n  { \"OAUTHBEARER\",  11, SASL_MECH_OAUTHBEARER },\n  { \"SCRAM-SHA-1\",
        \ 11, SASL_MECH_SCRAM_SHA_1 },\n  { \"SCRAM-SHA-256\",13, SASL_MECH_SCRAM_SHA_256
        },\n  { ZERO_NULL,      0,  0 }\n}"
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/curl/lib/curl_sasl.c
    - fields:
      - name: '*sasl'
        type: struct SASL
      - name: '*conn'
        type: struct connectdata
      - name: enabledmechs
        type: unsigned short
      - name: '*mech'
        type: char
      - name: state1
        type: saslstate
      - name: state2
        type: saslstate
      - name: resp
        type: struct bufref
      - name: result
        type: CURLcode
      item_type: struct
      name: sasl_ctx
      pos:
        line_end: 297
        line_start: 288
        source_file: /src/curl/lib/curl_sasl.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/fileinfo.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: info
        type: struct curl_fileinfo
      - name: list
        type: struct Curl_llist_node
      - name: buf
        type: struct dynbuf
      item_type: struct
      name: fileinfo
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/curl/lib/fileinfo.h
    typedefs: []
    union: []
- function_names:
  - my_md4_init
  - my_md4_update
  - my_md4_final
  - my_md4_init
  - my_md4_update
  - my_md4_final
  - my_md4_init
  - my_md4_update
  - my_md4_final
  - my_md4_init
  - my_md4_update
  - my_md4_final
  - MD4_F
  - MD4_G
  - MD4_H
  - MD4_STEP
  - MD4_SET
  - MD4_GET
  - MD4_SET
  - MD4_GET
  - my_md4_body
  - my_md4_init
  - my_md4_update
  - my_md4_final
  - Curl_md4it
  source_file: /src/curl/lib/md4.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: my_md4_ctx
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/md4.c
      type_or_value: MD4_CTX
    - item_type: preproc_def
      name: my_md4_init
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/md4.c
      type_or_value: MD4_Init
    - item_type: preproc_def
      name: my_md4_update
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/md4.c
      type_or_value: MD4_Update
    - item_type: preproc_def
      name: my_md4_final
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/md4.c
      type_or_value: MD4_Final
    structs:
    - fields:
      - name: hCryptProv
        type: HCRYPTPROV
      - name: hHash
        type: HCRYPTHASH
      item_type: struct
      name: md4_ctx
      pos:
        line_end: 116
        line_start: 113
        source_file: /src/curl/lib/md4.c
    - fields:
      - name: lo
        type: uint32_t
      - name: a
        type: uint32_t
      - name: buffer[64]
        type: unsigned char
      - name: block[16]
        type: uint32_t
      item_type: struct
      name: md4_ctx
      pos:
        line_end: 218
        line_start: 213
        source_file: /src/curl/lib/md4.c
    typedefs:
    - item_type: typedef
      name: my_md4_ctx
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/curl/lib/md4.c
      type: wc_Md4
    - item_type: typedef
      name: my_md4_ctx
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/curl/lib/md4.c
      type: Md4
    - item_type: typedef
      name: my_md4_ctx
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/curl/lib/md4.c
      type: CC_MD4_CTX
    - item_type: typedef
      name: my_md4_ctx
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/curl/lib/md4.c
      type: md4_ctx
    - item_type: typedef
      name: my_md4_ctx
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/curl/lib/md4.c
      type: md4_ctx
    - item_type: typedef
      name: my_md4_ctx
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/curl/lib/md4.c
      type: md4_ctx
    union: []
- function_names:
  - Curl_rtsp_parseheader
  source_file: /src/curl/lib/rtsp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/mqtt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_sspi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SP_NAME_DIGEST
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: '"WDigest"'
    - item_type: preproc_def
      name: SP_NAME_NTLM
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: '"NTLM"'
    - item_type: preproc_def
      name: SP_NAME_NEGOTIATE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: '"Negotiate"'
    - item_type: preproc_def
      name: SP_NAME_KERBEROS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: '"Kerberos"'
    - item_type: preproc_def
      name: ISC_REQ_USE_HTTP_STYLE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: '0x01000000'
    - item_type: preproc_def
      name: SEC_E_INVALID_PARAMETER
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: ((HRESULT)0x8009035DL)
    - item_type: preproc_def
      name: SEC_E_DELEGATION_POLICY
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: ((HRESULT)0x8009035EL)
    - item_type: preproc_def
      name: SEC_E_POLICY_NLTM_ONLY
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: ((HRESULT)0x8009035FL)
    - item_type: preproc_def
      name: SEC_I_SIGNATURE_NEEDED
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: ((HRESULT)0x0009035CL)
    - item_type: preproc_def
      name: KERB_WRAP_NO_ENCRYPT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/curl_sspi.h
      type_or_value: '0x80000001'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GOOD_SHARE_HANDLE
  - CURL_SHARE_KEEP_CONNECT
  - CURL_SHARE_ssl_scache
  source_file: /src/curl/lib/curl_share.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_GOOD_SHARE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/curl_share.h
      type_or_value: '0x7e117a1e'
    structs:
    - fields:
      - name: magic
        type: unsigned int
      - name: specifier
        type: unsigned int
      - name: ref_count
        type: uint32_t
      - name: lockfunc
        type: curl_lock_function
      - name: unlockfunc
        type: curl_unlock_function
      - name: '*clientdata'
        type: void
      - name: '*admin'
        type: struct Curl_easy
      - name: cpool
        type: struct cpool
      - name: dnscache
        type: struct Curl_dnscache
      item_type: struct
      name: Curl_share
      pos:
        line_end: 76
        line_start: 43
        source_file: /src/curl/lib/curl_share.h
    typedefs: []
    union: []
- function_names:
  - Curl_input_digest
  - Curl_output_digest
  - Curl_http_auth_cleanup_digest
  source_file: /src/curl/lib/http_digest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rlimit_update
  - rlimit_tune_steps
  - Curl_rlimit_init
  - Curl_rlimit_start
  - Curl_rlimit_per_step
  - Curl_rlimit_active
  - Curl_rlimit_is_blocked
  - Curl_rlimit_avail
  - Curl_rlimit_drain
  - Curl_rlimit_wait_ms
  - Curl_rlimit_next_step_ms
  - Curl_rlimit_block
  source_file: /src/curl/lib/ratelimit.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_US_PER_SEC
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/ratelimit.c
      type_or_value: '1000000'
    - item_type: preproc_def
      name: CURL_RLIMIT_MIN_RATE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/ratelimit.c
      type_or_value: '(4 * 1024)  '
    - item_type: preproc_def
      name: CURL_RLIMIT_STEP_MIN_MS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/ratelimit.c
      type_or_value: '2  '
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_psl_use
  source_file: /src/curl/lib/psl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PSL_TTL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/psl.h
      type_or_value: '(72 * 3600)     '
    structs:
    - fields:
      - name: '*psl'
        type: psl_ctx_t
      - name: expires
        type: time_t
      item_type: struct
      name: PslCache
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/curl/lib/psl.h
    typedefs: []
    union: []
- function_names:
  - mqtt_easy_dtor
  - mqtt_conn_dtor
  - mqtt_setup_conn
  - mqtt_send
  - mqtt_pollset
  - mqtt_encode_len
  - add_passwd
  - add_user
  - add_client_id
  - init_connpack
  - mqtt_connect
  - mqtt_disconnect
  - mqtt_recv_atleast
  - mqtt_recv_consume
  - mqtt_verify_connack
  - mqtt_get_topic
  - mqtt_subscribe
  - mqtt_verify_suback
  - mqtt_publish
  - mqtt_decode_len
  - mqstate
  - mqtt_read_publish
  - mqtt_do
  - mqtt_done
  - mqtt_ping
  - mqtt_doing
  - mqtts_connecting
  source_file: /src/curl/lib/mqtt.c
  types:
    enum:
    - enumerators:
      - name: MQTT_FIRST
      - name: MQTT_SUBACK_COMING
      - name: MQTT_REMAINING_LENGTH
      - name: MQTT_CONNACK
      - name: MQTT_SUBACK
      - name: MQTT_PUBWAIT
      - name: MQTT_PUB_REMAIN
      - name: MQTT_NOSTATE
      item_type: enum
      name: mqttstate
      pos:
        line_end: 71
        line_start: 61
        source_file: /src/curl/lib/mqtt.c
    preproc_defs:
    - item_type: preproc_def
      name: MQTT_MSG_CONNECT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: MQTT_MSG_PUBLISH
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '0x30'
    - item_type: preproc_def
      name: MQTT_MSG_SUBSCRIBE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: MQTT_MSG_SUBACK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '0x90'
    - item_type: preproc_def
      name: MQTT_MSG_DISCONNECT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '0xe0'
    - item_type: preproc_def
      name: MQTT_MSG_PINGRESP
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '0xD0'
    - item_type: preproc_def
      name: MQTT_CONNACK_LEN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MQTT_SUBACK_LEN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '3'
    - item_type: preproc_def
      name: MQTT_CLIENTID_LEN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '12 '
    - item_type: preproc_def
      name: CURL_META_MQTT_EASY
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '"meta:proto:mqtt:easy"'
    - item_type: preproc_def
      name: CURL_META_MQTT_CONN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '"meta:proto:mqtt:conn"'
    - item_type: preproc_def
      name: MAX_MQTT_MESSAGE_SIZE
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/curl/lib/mqtt.c
      type_or_value: '0xFFFFFFF'
    structs:
    - fields:
      - name: state
        type: enum mqttstate
      - name: nextstate
        type: enum mqttstate
      - name: packetid
        type: unsigned int
      item_type: struct
      name: mqtt_conn
      pos:
        line_end: 78
        line_start: 73
        source_file: /src/curl/lib/mqtt.c
    - fields:
      - name: sendbuf
        type: struct dynbuf
      - name: recvbuf
        type: struct dynbuf
      - name: npacket
        type: size_t
      - name: remaining_length
        type: size_t
      - name: pkt_hd[4]
        type: unsigned char
      - name: lastTime
        type: struct curltime
      - name: firstbyte
        type: unsigned char
      item_type: struct
      name: MQTT
      pos:
        line_end: 91
        line_start: 81
        source_file: /src/curl/lib/mqtt.c
    typedefs: []
    union: []
- function_names:
  - isatty
  - puts
  source_file: /src/curl/lib/setup-os400.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NI_MAXHOST
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: '1025'
    - item_type: preproc_def
      name: NI_MAXSERV
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: '32'
    - item_type: preproc_def
      name: getaddrinfo
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_getaddrinfo_a
    - item_type: preproc_def
      name: getnameinfo
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_getnameinfo_a
    - item_type: preproc_def
      name: gss_import_name
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_gss_import_name_a
    - item_type: preproc_def
      name: gss_display_status
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_gss_display_status_a
    - item_type: preproc_def
      name: gss_init_sec_context
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_gss_init_sec_context_a
    - item_type: preproc_def
      name: gss_delete_sec_context
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_gss_delete_sec_context_a
    - item_type: preproc_def
      name: BerValue
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: struct berval
    - item_type: preproc_def
      name: ldap_url_parse
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: ldap_url_parse_utf8
    - item_type: preproc_def
      name: ldap_init
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_ldap_init_a
    - item_type: preproc_def
      name: ldap_simple_bind_s
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_ldap_simple_bind_s_a
    - item_type: preproc_def
      name: ldap_search_s
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_ldap_search_s_a
    - item_type: preproc_def
      name: ldap_get_values_len
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_ldap_get_values_len_a
    - item_type: preproc_def
      name: ldap_err2string
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_ldap_err2string_a
    - item_type: preproc_def
      name: ldap_get_dn
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_ldap_get_dn_a
    - item_type: preproc_def
      name: ldap_first_attribute
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_ldap_first_attribute_a
    - item_type: preproc_def
      name: ldap_next_attribute
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_ldap_next_attribute_a
    - item_type: preproc_def
      name: connect
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_connect
    - item_type: preproc_def
      name: bind
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_bind
    - item_type: preproc_def
      name: sendto
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_sendto
    - item_type: preproc_def
      name: recvfrom
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_recvfrom
    - item_type: preproc_def
      name: getpeername
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_getpeername
    - item_type: preproc_def
      name: getsockname
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_getsockname
    - item_type: preproc_def
      name: zlibVersion
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_zlibVersion
    - item_type: preproc_def
      name: inflateInit_
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_inflateInit_
    - item_type: preproc_def
      name: inflateInit2_
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_inflateInit2_
    - item_type: preproc_def
      name: inflate
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_inflate
    - item_type: preproc_def
      name: inflateEnd
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/curl/lib/setup-os400.h
      type_or_value: Curl_os400_inflateEnd
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_amiga_init
  - Curl_amiga_cleanup
  source_file: /src/curl/lib/amigaos.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_fopen.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oldap_state
  - oldap_map_error
  - oldap_url_parse
  - oldap_parse_login_options
  - oldap_setup_connection
  - oldap_get_message
  - oldap_perform_auth
  - oldap_continue_auth
  - oldap_cancel_auth
  - oldap_perform_bind
  - oldap_perform_mechs
  - oldap_perform_sasl
  - ldapsb_tls_setup
  - ldapsb_tls_remove
  - ldapsb_tls_close
  - ldapsb_tls_ctrl
  - ldapsb_tls_read
  - ldapsb_tls_write
  - ssl_installed
  - oldap_ssl_connect
  - oldap_perform_starttls
  - oldap_easy_dtor
  - oldap_conn_dtor
  - oldap_connect
  - oldap_state_mechs_resp
  - oldap_state_sasl_resp
  - oldap_state_bind_resp
  - oldap_connecting
  - oldap_disconnect
  - oldap_do
  - oldap_done
  - client_write
  - oldap_recv
  - Curl_ldap_version
  source_file: /src/curl/lib/openldap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_LDAP_EASY
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl/lib/openldap.c
      type_or_value: '"meta:proto:ldap:easy"'
    - item_type: preproc_def
      name: CURL_META_LDAP_CONN
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/lib/openldap.c
      type_or_value: '"meta:proto:ldap:conn"'
    structs:
    - fields:
      - name: sasl
        type: struct SASL
      - name: '*ld'
        type: LDAP
      - name: '*recv'
        type: Curl_recv
      - name: '*send'
        type: Curl_send
      - name: '*servercred'
        type: struct berval
      - name: state
        type: ldapstate
      - name: proto
        type: int
      - name: msgid
        type: int
      item_type: struct
      name: ldapconninfo
      pos:
        line_end: 104
        line_start: 95
        source_file: /src/curl/lib/openldap.c
    - fields:
      - name: msgid
        type: int
      - name: nument
        type: int
      item_type: struct
      name: ldapreqinfo
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/curl/lib/openldap.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/smtp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AddHttpPost
  - NewFormInfo
  - FormInfoCopyField
  - AddFormInfo
  - free_formlist
  - FormAddCheck
  - free_chain
  - FormAdd
  - form_ptr_arg
  - form_int_arg
  - form_int_arg
  - curl_formadd
  - curl_formget
  - curl_formfree
  - setname
  - Curl_getformdata
  - curl_formadd
  - curl_formget
  - curl_formfree
  source_file: /src/curl/lib/formdata.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HTTPPOST_PTRNAME
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/formdata.c
      type_or_value: CURL_HTTPPOST_PTRNAME
    - item_type: preproc_def
      name: HTTPPOST_FILENAME
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/formdata.c
      type_or_value: CURL_HTTPPOST_FILENAME
    - item_type: preproc_def
      name: HTTPPOST_PTRCONTENTS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/formdata.c
      type_or_value: CURL_HTTPPOST_PTRCONTENTS
    - item_type: preproc_def
      name: HTTPPOST_READFILE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/formdata.c
      type_or_value: CURL_HTTPPOST_READFILE
    - item_type: preproc_def
      name: HTTPPOST_PTRBUFFER
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/formdata.c
      type_or_value: CURL_HTTPPOST_PTRBUFFER
    - item_type: preproc_def
      name: HTTPPOST_CALLBACK
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/formdata.c
      type_or_value: CURL_HTTPPOST_CALLBACK
    - item_type: preproc_def
      name: HTTPPOST_BUFFER
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/formdata.c
      type_or_value: CURL_HTTPPOST_BUFFER
    structs: []
    typedefs: []
    union: []
- function_names:
  - GOOD_MULTI_HANDLE
  - GOOD_MULTI_HANDLE
  - multi_now
  - mstate_enter_connect
  - mstate_enter_did
  - mstate_enter_done
  - mstate_enter_completed
  - mstate
  - multistate
  - multistate
  - ph_freeentry
  - multi_addmsg
  - Curl_multi_handle
  - curl_multi_init
  - multi_warn_debug
  - multi_warn_debug
  - Curl_is_connecting
  - multi_assess_wakeup
  - multi_xfers_add
  - curl_multi_add_handle
  - debug_print_sock_hash
  - multi_conn_should_close
  - multi_done_locked
  - multi_done
  - close_connect_only
  - curl_multi_remove_handle
  - Curl_multiplex_wanted
  - Curl_detach_connection
  - Curl_attach_connection
  - multi_adjust_pollset
  - mstate_connecting_pollset
  - mstate_protocol_pollset
  - mstate_do_pollset
  - mstate_domore_pollset
  - mstate_perform_pollset
  - Curl_multi_pollset
  - curl_multi_fdset
  - curl_multi_waitfds
  - reset_socket_fdwrite
  - multi_winsock_select
  - multi_posix_poll
  - multi_wait
  - curl_multi_wait
  - curl_multi_poll
  - curl_multi_wakeup
  - multi_ischanged
  - Curl_multi_connchanged
  - Curl_multi_add_perform
  - multi_do
  - multi_do_more
  - multi_handle_timeout
  - protocol_connecting
  - protocol_doing
  - protocol_connect
  - set_in_callback
  - multi_posttransfer
  - multi_follow
  - mspeed_check
  - multistate_performing
  - multistate_do
  - multistate_ratelimiting
  - multistate_connect
  - is_finished
  - handle_completed
  - multistate_init
  - multistate_setup
  - multistate_connecting
  - multistate_protoconnect
  - multistate_protoconnecting
  - multistate_doing
  - multistate_doing_more
  - multistate_did
  - multistate_done
  - multi_runsingle
  - multi_perform
  - curl_multi_perform
  - curl_multi_cleanup
  - curl_multi_info_read
  - Curl_multi_will_close
  - add_next_timeout
  - multi_mark_expired_as_dirty
  - multi_run_dirty
  - multi_socket
  - curl_multi_setopt
  - curl_multi_socket
  - curl_multi_socket_action
  - curl_multi_socket_all
  - multi_has_dirties
  - multi_timeout
  - curl_multi_timeout
  - Curl_update_timer
  - multi_deltimeout
  - multi_addtimeout
  - Curl_expire_ex
  - Curl_expire
  - Curl_expire_done
  - Curl_expire_clear
  - curl_multi_assign
  - move_pending_to_connect
  - process_pending_handles
  - Curl_set_in_callback
  - Curl_is_in_callback
  - Curl_multi_max_concurrent_streams
  - curl_multi_get_handles
  - curl_multi_get_offt
  - Curl_multi_xfer_buf_borrow
  - Curl_multi_xfer_buf_release
  - Curl_multi_xfer_ulbuf_borrow
  - Curl_multi_xfer_ulbuf_release
  - Curl_multi_xfer_sockbuf_borrow
  - Curl_multi_xfer_sockbuf_release
  - multi_xfer_bufs_free
  - Curl_multi_get_easy
  - Curl_multi_xfers_running
  - Curl_multi_mark_dirty
  - Curl_multi_clear_dirty
  - curl_multi_notify_enable
  - curl_multi_notify_disable
  - multi_xfer_dump
  - multi_xfer_tbl_dump
  source_file: /src/curl/lib/multi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_XFER_TABLE_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/multi.c
      type_or_value: '512'
    - item_type: preproc_def
      name: CURL_SOCKET_HASH_TABLE_SIZE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/multi.c
      type_or_value: '911'
    - item_type: preproc_def
      name: CURL_CONNECTION_HASH_SIZE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/multi.c
      type_or_value: '97'
    - item_type: preproc_def
      name: CURL_DNS_HASH_SIZE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/lib/multi.c
      type_or_value: '71'
    - item_type: preproc_def
      name: CURL_TLS_SESSION_SIZE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/lib/multi.c
      type_or_value: '25'
    - item_type: preproc_def
      name: CURL_MULTI_HANDLE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/lib/multi.c
      type_or_value: '0x000bab1e'
    - item_type: preproc_def
      name: NUM_POLLS_ON_STACK
      pos:
        line_end: 1537
        line_start: 1536
        source_file: /src/curl/lib/multi.c
      type_or_value: '10'
    structs:
    - fields: []
      item_type: struct
      name: multi_done_ctx
      pos:
        line_end: 602
        line_start: 600
        source_file: /src/curl/lib/multi.c
    typedefs:
    - item_type: typedef
      name: "(*mstate_enter_func)(struct Curl_easy *data,\n                                  CURLMstate
        from_state)"
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl/lib/multi.c
      type: void
    union: []
- function_names:
  - Curl_get_line
  source_file: /src/curl/lib/curl_get_line.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - peer_parse_clear
  - peer_create
  - peer_parse_host
  - Curl_peer_create
  - Curl_peer_uds_create
  - Curl_peer_link
  - Curl_peer_unlink
  - Curl_peer_equal
  - peer_same_hostname
  - Curl_peer_same_destination
  - Curl_peer_from_url
  - Curl_peer_from_connect_to
  - Curl_scheme_to_proxytype
  - Curl_peer_from_proxy_url
  source_file: /src/curl/lib/peer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNIX_SOCKET_PREFIX
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/curl/lib/peer.c
      type_or_value: '"localhost"'
    structs:
    - fields:
      - name: '*scheme'
        type: struct Curl_scheme
      - name: host_user
        type: struct Curl_str
      - name: host
        type: struct Curl_str
      - name: zoneid
        type: struct Curl_str
      - name: '*tmp_host_user'
        type: char
      - name: '*tmp_host'
        type: char
      - name: '*tmp_zoneid'
        type: char
      - name: scopeid
        type: uint32_t
      - name: port
        type: uint16_t
      - name: ipv6
        type: bool
      - name: unix_socket
        type: bool
      - name: abstract_uds
        type: bool
      item_type: struct
      name: peer_parse
      pos:
        line_end: 91
        line_start: 78
        source_file: /src/curl/lib/peer.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/smb.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FREE_ON_WINLDAP
  - FREE_ON_WINLDAP
  - LDAP_TRACE
  - LDAP_TRACE
  - ldap_win_bind_auth
  - ldap_win_bind
  - ldap_do
  - ldap_trace_low
  - str2scope
  - num_entries
  - ldap_url_parse2_low
  - ldap_url_parse_low
  - ldap_free_urldesc_low
  - Curl_ldap_version
  source_file: /src/curl/lib/ldap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LDAP_DEPRECATED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/ldap.c
      type_or_value: '1     '
    - item_type: preproc_def
      name: curl_ldap_num_t
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/ldap.c
      type_or_value: ULONG
    - item_type: preproc_def
      name: curl_ldap_num_t
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/lib/ldap.c
      type_or_value: int
    - item_type: preproc_def
      name: LDAPURLDesc
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/curl/lib/ldap.c
      type_or_value: struct ldap_urldesc
    - item_type: preproc_def
      name: ldap_free_urldesc
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl/lib/ldap.c
      type_or_value: ldap_free_urldesc_low
    - item_type: preproc_def
      name: ldap_err2string
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/curl/lib/ldap.c
      type_or_value: ldap_err2stringA
    - item_type: preproc_def
      name: LDAP_OPT_ON
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/curl/lib/ldap.c
      type_or_value: ((void *)(size_t)1)
    - item_type: preproc_def
      name: LDAP_OPT_OFF
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/curl/lib/ldap.c
      type_or_value: ((void *)(size_t)0)
    structs:
    - fields:
      - name: '*lud_host'
        type: char
      - name: lud_port
        type: int
      - name: lud_scope
        type: int
      - name: '**lud_exts'
        type: char
      - name: lud_attrs_dups
        type: size_t
      item_type: struct
      name: ldap_urldesc
      pos:
        line_end: 110
        line_start: 90
        source_file: /src/curl/lib/ldap.c
    typedefs: []
    union: []
- function_names:
  - Curl_sync_getaddrinfo
  - Curl_ipv4_resolve_r
  source_file: /src/curl/lib/hostip4.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_gethostname
  source_file: /src/curl/lib/curl_gethostname.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_get_line.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_easyopts_check
  source_file: /src/curl/lib/easyoptions.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_range
  source_file: /src/curl/lib/curl_range.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_HMAC_init
  - Curl_HMAC_update
  - Curl_HMAC_final
  - Curl_hmacit
  source_file: /src/curl/lib/hmac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/uint-spbset.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_UINT32_SPBSET_CH_SLOTS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/uint-spbset.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CURL_UINT32_SPBSET_CH_MASK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/uint-spbset.h
      type_or_value: ((CURL_UINT32_SPBSET_CH_SLOTS * 64) - 1)
    structs:
    - fields:
      - name: '*next'
        type: struct uint32_spbset_chunk
      - name: slots[CURL_UINT32_SPBSET_CH_SLOTS]
        type: uint64_t
      - name: offset
        type: uint32_t
      item_type: struct
      name: uint32_spbset_chunk
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/curl/lib/uint-spbset.h
    - fields:
      - name: head
        type: struct uint32_spbset_chunk
      item_type: struct
      name: uint32_spbset
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/curl/lib/uint-spbset.h
    typedefs: []
    union: []
- function_names:
  - Curl_async_global_init
  - Curl_async_global_cleanup
  - async_item_description
  - async_item_description
  - async_thrdd_item_destroy
  - async_thrdd_item_create
  - async_thrdd_rr_done
  - async_rr_start
  - Curl_async_thrdd_shutdown
  - async_thrdd_match_item
  - Curl_async_thrdd_destroy
  - Curl_async_await
  - async_thrdd_item_process
  - async_thrdd_item_process
  - async_thrdd_event
  - async_thrdd_item_free
  - Curl_async_thrdd_multi_init
  - Curl_async_thrdd_multi_destroy
  - async_thrdd_report_item
  - Curl_async_thrdd_multi_process
  - Curl_async_thrdd_multi_set_props
  - async_thrdd_query
  - Curl_async_getaddrinfo
  - Curl_async_pollset
  - Curl_async_take_result
  - async_thrdd_get_ai
  - Curl_async_get_ai
  - Curl_async_get_https
  - Curl_async_knows_https
  source_file: /src/curl/lib/asyn-thrdd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RESOLVER_ENOMEM
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/asyn-thrdd.c
      type_or_value: 'EAI_MEMORY  '
    - item_type: preproc_def
      name: RESOLVER_ENOMEM
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/asyn-thrdd.c
      type_or_value: SOCKENOMEM
    - item_type: preproc_def
      name: CURL_ASYN_ITEM_DESC_LEN
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/curl/lib/asyn-thrdd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: async_thrdd_event
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/curl/lib/asyn-thrdd.c
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: '*res'
        type: struct Curl_addrinfo
      - name: sock_error
        type: int
      - name: mid
        type: uint32_t
      - name: resolv_id
        type: uint32_t
      - name: port
        type: uint16_t
      - name: transport
        type: uint8_t
      - name: dns_queries
        type: uint8_t
      - name: hostname[1]
        type: char
      item_type: struct
      name: async_thrdd_item
      pos:
        line_end: 124
        line_start: 108
        source_file: /src/curl/lib/asyn-thrdd.c
    - fields:
      - name: mid
        type: uint32_t
      - name: resolv_id
        type: uint32_t
      item_type: struct
      name: async_thrdd_match_ctx
      pos:
        line_end: 262
        line_start: 259
        source_file: /src/curl/lib/asyn-thrdd.c
    typedefs: []
    union: []
- function_names:
  - Curl_macos_init
  source_file: /src/curl/lib/macos.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/cw-pause.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STARTS_WITH_DRIVE_PREFIX
  - STARTS_WITH_URL_DRIVE_PREFIX
  - free_urlhandle
  - find_host_sep
  - cc2cu
  - urlencode_str
  - Curl_is_absolute_url
  - Curl_junkscan
  - parse_hostname_login
  - parse_port
  - ipv6_parse
  - hostname_check
  - ipv4_normalize
  - urldecode_host
  - parse_authority
  - Curl_url_set_authority
  - is_dot
  - ISSLASH
  - dedotdotify
  - parse_file
  - parse_scheme
  - guess_scheme
  - handle_fragment
  - handle_query
  - handle_path
  - parseurl
  - parseurl_and_replace
  - redirect_url
  - curl_url
  - curl_url_cleanup
  - DUP
  - curl_url_dup
  - host_decode
  - host_encode
  - host_decode
  - host_encode
  - urlget_format
  - file_url
  - urlget_url
  - curl_url_get
  - set_url_scheme
  - set_url_port
  - set_url
  - urlset_clear
  - allowed_in_path
  - curl_url_set
  - Curl_url_same_origin
  source_file: /src/curl/lib/urlapi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SCHEME_LEN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/urlapi.c
      type_or_value: '40'
    - item_type: preproc_def
      name: AF_INET6
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/urlapi.c
      type_or_value: (AF_INET + 1)
    - item_type: preproc_def
      name: DEFAULT_SCHEME
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/urlapi.c
      type_or_value: '"https"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_ws_request
  - Curl_ws_free
  source_file: /src/curl/lib/ws.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_PROTO_WS_CONN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/ws.h
      type_or_value: '"meta:proto:ws:conn"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/ftplistparser.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: '*pattern'
        type: char
      - name: filelist
        type: struct Curl_llist
      - name: '*ftpwc'
        type: struct ftp_wc
      - name: dtor
        type: wildcard_dtor
      - name: state
        type: unsigned char
      item_type: struct
      name: WildcardData
      pos:
        line_end: 65
        line_start: 58
        source_file: /src/curl/lib/ftplistparser.h
    typedefs:
    - item_type: typedef
      name: (*wildcard_dtor)(void *ptr)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/curl/lib/ftplistparser.h
      type: void
    union: []
- function_names: []
  source_file: /src/curl/lib/telnet.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CPOOL_IS_LOCKED
  - CPOOL_LOCK
  - CPOOL_UNLOCK
  - cpool_bundle_create
  - cpool_bundle_destroy
  - cpool_bundle_add
  - cpool_bundle_remove
  - cpool_bundle_free_entry
  - Curl_cpool_init
  - cpool_get_first
  - cpool_find_bundle
  - cpool_remove_bundle
  - cpool_remove_conn
  - cpool_discard_conn
  - Curl_cpool_destroy
  - cpool_get_instance
  - Curl_cpool_xfer_init
  - cpool_add_bundle
  - cpool_bundle_get_oldest_idle
  - cpool_get_oldest_idle
  - Curl_cpool_check_limits
  - Curl_cpool_add
  - cpool_foreach
  - Curl_cpool_conn_now_idle
  - Curl_cpool_find
  - Curl_conn_terminate
  - cpool_reap_dead_cb
  - Curl_cpool_prune_dead
  - conn_upkeep
  - Curl_cpool_upkeep
  - cpool_find_conn
  - Curl_cpool_get_conn
  - cpool_do_conn
  - Curl_cpool_do_by_id
  - Curl_cpool_do_locked
  - cpool_mark_stale
  - cpool_reap_no_reuse
  - Curl_cpool_nw_changed
  - Curl_cpool_print
  source_file: /src/curl/lib/conncache.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: conns
        type: struct Curl_llist
      - name: dest_len
        type: size_t
      - name: dest[1]
        type: char
      item_type: struct
      name: cpool_bundle
      pos:
        line_end: 66
        line_start: 62
        source_file: /src/curl/lib/conncache.c
    - fields:
      - name: checked
        type: size_t
      - name: reaped
        type: size_t
      item_type: struct
      name: cpool_reaper_ctx
      pos:
        line_end: 689
        line_start: 686
        source_file: /src/curl/lib/conncache.c
    - fields:
      - name: id
        type: curl_off_t
      - name: '*conn'
        type: struct connectdata
      item_type: struct
      name: cpool_find_ctx
      pos:
        line_end: 763
        line_start: 760
        source_file: /src/curl/lib/conncache.c
    - fields:
      - name: id
        type: curl_off_t
      - name: '*cb'
        type: Curl_cpool_conn_do_cb
      - name: '*cbdata'
        type: void
      item_type: struct
      name: cpool_do_conn_ctx
      pos:
        line_end: 797
        line_start: 793
        source_file: /src/curl/lib/conncache.c
    typedefs: []
    union: []
- function_names:
  - cap_expires
  - freecookie
  - cookie_tailmatch
  - pathmatch
  - get_top_domain
  - cookie_hash_domain
  - cookiehash
  - sanitize_cookie_path
  - strstore
  - remove_expired
  - bad_domain
  - invalid_octets
  - storecookie
  - parse_first_pair
  - parse_flag
  - parse_domain
  - parse_maxage
  - parse_expires
  - parse_cookie_header
  - parse_netscape
  - is_public_suffix
  - replace_existing
  - Curl_cookie_add
  - Curl_cookie_init
  - cookie_load
  - Curl_cookie_loadfiles
  - cookie_sort
  - cookie_sort_ct
  - Curl_secure_context
  - Curl_cookie_getlist
  - Curl_cookie_clearall
  - Curl_cookie_clearsess
  - Curl_cookie_cleanup
  - get_netscape_format
  - cookie_output
  - cookie_list
  - Curl_cookie_list
  - Curl_flush_cookies
  - Curl_cookie_run
  source_file: /src/curl/lib/cookie.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COOKIES_MAXAGE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/cookie.c
      type_or_value: (400 * 24 * 3600)
    - item_type: preproc_def
      name: MAX_DATE_LENGTH
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/curl/lib/cookie.c
      type_or_value: '80'
    - item_type: preproc_def
      name: COOKIE_NAME
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/curl/lib/cookie.c
      type_or_value: '0'
    - item_type: preproc_def
      name: COOKIE_VALUE
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/curl/lib/cookie.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COOKIE_DOMAIN
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/curl/lib/cookie.c
      type_or_value: '2'
    - item_type: preproc_def
      name: COOKIE_PATH
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/curl/lib/cookie.c
      type_or_value: '3'
    - item_type: preproc_def
      name: COOKIE_PIECES
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/curl/lib/cookie.c
      type_or_value: '4 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/uint-table.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**rows'
        type: void
      - name: '*entry_dtor'
        type: Curl_uint32_tbl_entry_dtor
      - name: nrows
        type: uint32_t
      - name: nentries
        type: uint32_t
      - name: last_key_added
        type: uint32_t
      item_type: struct
      name: uint32_tbl
      pos:
        line_end: 39
        line_start: 30
        source_file: /src/curl/lib/uint-table.h
    typedefs:
    - item_type: typedef
      name: Curl_uint32_tbl_entry_dtor(uint32_t key, void *entry)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/curl/lib/uint-table.h
      type: void
    union: []
- function_names:
  - Curl_sync_getaddrinfo
  source_file: /src/curl/lib/hostip6.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SHORTPAIR
  - LONGQUARTET
  source_file: /src/curl/lib/curl_ntlm_core.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/http_aws_sigv4.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/dnscache.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*addr'
        type: struct Curl_addrinfo
      - name: timestamp
        type: struct curltime
      - name: refcount
        type: uint32_t
      - name: port
        type: uint16_t
      - name: dns_queries
        type: uint8_t
      - name: dns_responses
        type: uint8_t
      - name: hostname[1]
        type: char
      item_type: struct
      name: Curl_dns_entry
      pos:
        line_end: 53
        line_start: 38
        source_file: /src/curl/lib/dnscache.h
    - fields:
      - name: entries
        type: struct Curl_hash
      item_type: struct
      name: Curl_dnscache
      pos:
        line_end: 89
        line_start: 87
        source_file: /src/curl/lib/dnscache.h
    typedefs: []
    union: []
- function_names:
  - DllMain
  source_file: /src/curl/lib/dllmain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vms_translate_path
  - vms_translate_path
  - vms_getenv
  - vms_getpwuid
  - CONF_modules_load_file
  source_file: /src/curl/lib/setup-vms.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: getenv
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: decc_getenv
    - item_type: preproc_def
      name: getpwuid
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: decc_getpwuid
    - item_type: preproc_def
      name: getenv
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: vms_getenv
    - item_type: preproc_def
      name: getpwuid
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: vms_getpwuid
    - item_type: preproc_def
      name: sys$assign
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SYS$ASSIGN
    - item_type: preproc_def
      name: sys$dassgn
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SYS$DASSGN
    - item_type: preproc_def
      name: sys$qiow
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SYS$QIOW
    - item_type: preproc_def
      name: decc_getpwuid
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: DECC$__LONG_GID_GETPWUID
    - item_type: preproc_def
      name: decc_getpwuid
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: decc$__32_getpwuid
    - item_type: preproc_def
      name: decc_getpwuid
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: decc$getpwuid
    - item_type: preproc_def
      name: ASN1_INTEGER_get
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ASN1_INTEGER_GET
    - item_type: preproc_def
      name: ASN1_STRING_data
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ASN1_STRING_DATA
    - item_type: preproc_def
      name: ASN1_STRING_length
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ASN1_STRING_LENGTH
    - item_type: preproc_def
      name: ASN1_STRING_print
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ASN1_STRING_PRINT
    - item_type: preproc_def
      name: ASN1_STRING_to_UTF8
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ASN1_STRING_TO_UTF8
    - item_type: preproc_def
      name: ASN1_STRING_type
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ASN1_STRING_TYPE
    - item_type: preproc_def
      name: BIO_ctrl
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: BIO_CTRL
    - item_type: preproc_def
      name: BIO_free
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: BIO_FREE
    - item_type: preproc_def
      name: BIO_new
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: BIO_NEW
    - item_type: preproc_def
      name: BIO_s_mem
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: BIO_S_MEM
    - item_type: preproc_def
      name: BN_bn2bin
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: BN_BN2BIN
    - item_type: preproc_def
      name: BN_num_bits
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: BN_NUM_BITS
    - item_type: preproc_def
      name: CRYPTO_cleanup_all_ex_data
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: CRYPTO_CLEANUP_ALL_EX_DATA
    - item_type: preproc_def
      name: CRYPTO_free
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: CRYPTO_FREE
    - item_type: preproc_def
      name: CRYPTO_malloc
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: CRYPTO_MALLOC
    - item_type: preproc_def
      name: CONF_modules_load_file
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: CONF_MODULES_LOAD_FILE
    - item_type: preproc_def
      name: CONF_MFLAGS_IGNORE_MISSING_FILE
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: DES_ecb_encrypt
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: DES_ECB_ENCRYPT
    - item_type: preproc_def
      name: DES_set_key
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: DES_SET_KEY
    - item_type: preproc_def
      name: DES_set_odd_parity
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: DES_SET_ODD_PARITY
    - item_type: preproc_def
      name: ENGINE_ctrl
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_CTRL
    - item_type: preproc_def
      name: ENGINE_ctrl_cmd
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_CTRL_CMD
    - item_type: preproc_def
      name: ENGINE_finish
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_FINISH
    - item_type: preproc_def
      name: ENGINE_free
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_FREE
    - item_type: preproc_def
      name: ENGINE_get_first
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_GET_FIRST
    - item_type: preproc_def
      name: ENGINE_get_id
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_GET_ID
    - item_type: preproc_def
      name: ENGINE_get_next
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_GET_NEXT
    - item_type: preproc_def
      name: ENGINE_init
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_INIT
    - item_type: preproc_def
      name: ENGINE_load_builtin_engines
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_LOAD_BUILTIN_ENGINES
    - item_type: preproc_def
      name: ENGINE_load_private_key
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_LOAD_PRIVATE_KEY
    - item_type: preproc_def
      name: ENGINE_set_default
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ENGINE_SET_DEFAULT
    - item_type: preproc_def
      name: ERR_clear_error
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ERR_CLEAR_ERROR
    - item_type: preproc_def
      name: ERR_error_string
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ERR_ERROR_STRING
    - item_type: preproc_def
      name: ERR_error_string_n
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ERR_ERROR_STRING_N
    - item_type: preproc_def
      name: ERR_free_strings
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ERR_FREE_STRINGS
    - item_type: preproc_def
      name: ERR_get_error
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ERR_GET_ERROR
    - item_type: preproc_def
      name: ERR_peek_error
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ERR_PEEK_ERROR
    - item_type: preproc_def
      name: ERR_remove_state
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ERR_REMOVE_STATE
    - item_type: preproc_def
      name: EVP_PKEY_copy_parameters
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: EVP_PKEY_COPY_PARAMETERS
    - item_type: preproc_def
      name: EVP_PKEY_free
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: EVP_PKEY_FREE
    - item_type: preproc_def
      name: EVP_cleanup
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: EVP_CLEANUP
    - item_type: preproc_def
      name: GENERAL_NAMES_free
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: GENERAL_NAMES_FREE
    - item_type: preproc_def
      name: i2d_X509_PUBKEY
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: I2D_X509_PUBKEY
    - item_type: preproc_def
      name: MD4_Final
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: MD4_FINAL
    - item_type: preproc_def
      name: MD4_Init
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: MD4_INIT
    - item_type: preproc_def
      name: MD4_Update
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: MD4_UPDATE
    - item_type: preproc_def
      name: MD5_Final
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: MD5_FINAL
    - item_type: preproc_def
      name: MD5_Init
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: MD5_INIT
    - item_type: preproc_def
      name: MD5_Update
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: MD5_UPDATE
    - item_type: preproc_def
      name: OPENSSL_add_all_algo_noconf
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: OPENSSL_ADD_ALL_ALGO_NOCONF
    - item_type: preproc_def
      name: OPENSSL_load_builtin_modules
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: OPENSSL_LOAD_BUILTIN_MODULES
    - item_type: preproc_def
      name: PEM_read_X509
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: PEM_READ_X509
    - item_type: preproc_def
      name: PEM_write_bio_X509
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: PEM_WRITE_BIO_X509
    - item_type: preproc_def
      name: PKCS12_free
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: PKCS12_FREE
    - item_type: preproc_def
      name: PKCS12_parse
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: PKCS12_PARSE
    - item_type: preproc_def
      name: RAND_add
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: RAND_ADD
    - item_type: preproc_def
      name: RAND_bytes
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: RAND_BYTES
    - item_type: preproc_def
      name: RAND_file_name
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: RAND_FILE_NAME
    - item_type: preproc_def
      name: RAND_load_file
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: RAND_LOAD_FILE
    - item_type: preproc_def
      name: RAND_status
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: RAND_STATUS
    - item_type: preproc_def
      name: SSL_CIPHER_get_name
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CIPHER_GET_NAME
    - item_type: preproc_def
      name: SSL_CTX_add_client_CA
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_ADD_CLIENT_CA
    - item_type: preproc_def
      name: SSL_CTX_callback_ctrl
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_CALLBACK_CTRL
    - item_type: preproc_def
      name: SSL_CTX_check_private_key
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_CHECK_PRIVATE_KEY
    - item_type: preproc_def
      name: SSL_CTX_ctrl
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_CTRL
    - item_type: preproc_def
      name: SSL_CTX_free
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_FREE
    - item_type: preproc_def
      name: SSL_CTX_get_cert_store
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_GET_CERT_STORE
    - item_type: preproc_def
      name: SSL_CTX_load_verify_locations
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_LOAD_VERIFY_LOCATIONS
    - item_type: preproc_def
      name: SSL_CTX_new
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_NEW
    - item_type: preproc_def
      name: SSL_CTX_set_cipher_list
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_SET_CIPHER_LIST
    - item_type: preproc_def
      name: SSL_CTX_set_def_passwd_cb_ud
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_SET_DEF_PASSWD_CB_UD
    - item_type: preproc_def
      name: SSL_CTX_set_default_passwd_cb
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_SET_DEFAULT_PASSWD_CB
    - item_type: preproc_def
      name: SSL_CTX_set_msg_callback
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_SET_MSG_CALLBACK
    - item_type: preproc_def
      name: SSL_CTX_set_verify
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_SET_VERIFY
    - item_type: preproc_def
      name: SSL_CTX_use_PrivateKey
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_USE_PRIVATEKEY
    - item_type: preproc_def
      name: SSL_CTX_use_PrivateKey_file
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_USE_PRIVATEKEY_FILE
    - item_type: preproc_def
      name: SSL_CTX_use_cert_chain_file
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_USE_CERT_CHAIN_FILE
    - item_type: preproc_def
      name: SSL_CTX_use_certificate
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_USE_CERTIFICATE
    - item_type: preproc_def
      name: SSL_CTX_use_certificate_file
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CTX_USE_CERTIFICATE_FILE
    - item_type: preproc_def
      name: SSL_SESSION_free
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_SESSION_FREE
    - item_type: preproc_def
      name: SSL_connect
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_CONNECT
    - item_type: preproc_def
      name: SSL_free
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_FREE
    - item_type: preproc_def
      name: SSL_get1_session
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET1_SESSION
    - item_type: preproc_def
      name: SSL_get_certificate
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET_CERTIFICATE
    - item_type: preproc_def
      name: SSL_get_current_cipher
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET_CURRENT_CIPHER
    - item_type: preproc_def
      name: SSL_get_error
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET_ERROR
    - item_type: preproc_def
      name: SSL_get_peer_cert_chain
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET_PEER_CERT_CHAIN
    - item_type: preproc_def
      name: SSL_get_peer_certificate
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET_PEER_CERTIFICATE
    - item_type: preproc_def
      name: SSL_get_privatekey
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET_PRIVATEKEY
    - item_type: preproc_def
      name: SSL_get_session
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET_SESSION
    - item_type: preproc_def
      name: SSL_get_shutdown
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET_SHUTDOWN
    - item_type: preproc_def
      name: SSL_get_verify_result
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_GET_VERIFY_RESULT
    - item_type: preproc_def
      name: SSL_library_init
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_LIBRARY_INIT
    - item_type: preproc_def
      name: SSL_load_error_strings
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_LOAD_ERROR_STRINGS
    - item_type: preproc_def
      name: SSL_new
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_NEW
    - item_type: preproc_def
      name: SSL_peek
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_PEEK
    - item_type: preproc_def
      name: SSL_pending
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_PENDING
    - item_type: preproc_def
      name: SSL_read
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_READ
    - item_type: preproc_def
      name: SSL_set_connect_state
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_SET_CONNECT_STATE
    - item_type: preproc_def
      name: SSL_set_fd
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_SET_FD
    - item_type: preproc_def
      name: SSL_set_session
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_SET_SESSION
    - item_type: preproc_def
      name: SSL_shutdown
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_SHUTDOWN
    - item_type: preproc_def
      name: SSL_version
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_VERSION
    - item_type: preproc_def
      name: SSL_write
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSL_WRITE
    - item_type: preproc_def
      name: SSLeay
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSLEAY
    - item_type: preproc_def
      name: SSLv23_client_method
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSLV23_CLIENT_METHOD
    - item_type: preproc_def
      name: SSLv3_client_method
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SSLV3_CLIENT_METHOD
    - item_type: preproc_def
      name: TLSv1_client_method
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: TLSV1_CLIENT_METHOD
    - item_type: preproc_def
      name: UI_create_method
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_CREATE_METHOD
    - item_type: preproc_def
      name: UI_destroy_method
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_DESTROY_METHOD
    - item_type: preproc_def
      name: UI_get0_user_data
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_GET0_USER_DATA
    - item_type: preproc_def
      name: UI_get_input_flags
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_GET_INPUT_FLAGS
    - item_type: preproc_def
      name: UI_get_string_type
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_GET_STRING_TYPE
    - item_type: preproc_def
      name: UI_create_method
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_CREATE_METHOD
    - item_type: preproc_def
      name: UI_destroy_method
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_DESTROY_METHOD
    - item_type: preproc_def
      name: UI_method_get_closer
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_METHOD_GET_CLOSER
    - item_type: preproc_def
      name: UI_method_get_opener
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_METHOD_GET_OPENER
    - item_type: preproc_def
      name: UI_method_get_reader
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_METHOD_GET_READER
    - item_type: preproc_def
      name: UI_method_get_writer
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_METHOD_GET_WRITER
    - item_type: preproc_def
      name: UI_method_set_closer
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_METHOD_SET_CLOSER
    - item_type: preproc_def
      name: UI_method_set_opener
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_METHOD_SET_OPENER
    - item_type: preproc_def
      name: UI_method_set_reader
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_METHOD_SET_READER
    - item_type: preproc_def
      name: UI_method_set_writer
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_METHOD_SET_WRITER
    - item_type: preproc_def
      name: UI_OpenSSL
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_OPENSSL
    - item_type: preproc_def
      name: UI_set_result
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: UI_SET_RESULT
    - item_type: preproc_def
      name: X509V3_EXT_print
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509V3_EXT_PRINT
    - item_type: preproc_def
      name: X509_EXTENSION_get_critical
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_EXTENSION_GET_CRITICAL
    - item_type: preproc_def
      name: X509_EXTENSION_get_data
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_EXTENSION_GET_DATA
    - item_type: preproc_def
      name: X509_EXTENSION_get_object
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_EXTENSION_GET_OBJECT
    - item_type: preproc_def
      name: X509_LOOKUP_file
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_LOOKUP_FILE
    - item_type: preproc_def
      name: X509_NAME_ENTRY_get_data
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_NAME_ENTRY_GET_DATA
    - item_type: preproc_def
      name: X509_NAME_get_entry
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_NAME_GET_ENTRY
    - item_type: preproc_def
      name: X509_NAME_get_index_by_NID
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_NAME_GET_INDEX_BY_NID
    - item_type: preproc_def
      name: X509_NAME_print_ex
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_NAME_PRINT_EX
    - item_type: preproc_def
      name: X509_STORE_CTX_get_current_cert
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_STORE_CTX_GET_CURRENT_CERT
    - item_type: preproc_def
      name: X509_STORE_add_lookup
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_STORE_ADD_LOOKUP
    - item_type: preproc_def
      name: X509_STORE_set_flags
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_STORE_SET_FLAGS
    - item_type: preproc_def
      name: X509_check_issued
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_CHECK_ISSUED
    - item_type: preproc_def
      name: X509_free
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_FREE
    - item_type: preproc_def
      name: X509_get_ext_d2i
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_GET_EXT_D2I
    - item_type: preproc_def
      name: X509_get_issuer_name
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_GET_ISSUER_NAME
    - item_type: preproc_def
      name: X509_get_pubkey
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_GET_PUBKEY
    - item_type: preproc_def
      name: X509_get_serialNumber
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_GET_SERIALNUMBER
    - item_type: preproc_def
      name: X509_get_subject_name
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_GET_SUBJECT_NAME
    - item_type: preproc_def
      name: X509_load_crl_file
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_LOAD_CRL_FILE
    - item_type: preproc_def
      name: X509_verify_cert_error_string
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: X509_VERIFY_CERT_ERROR_STRING
    - item_type: preproc_def
      name: d2i_PKCS12_fp
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: D2I_PKCS12_FP
    - item_type: preproc_def
      name: i2t_ASN1_OBJECT
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: I2T_ASN1_OBJECT
    - item_type: preproc_def
      name: sk_num
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SK_NUM
    - item_type: preproc_def
      name: sk_pop
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SK_POP
    - item_type: preproc_def
      name: sk_pop_free
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SK_POP_FREE
    - item_type: preproc_def
      name: sk_value
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SK_VALUE
    - item_type: preproc_def
      name: SHA256_Final
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SHA256_FINAL
    - item_type: preproc_def
      name: SHA256_Init
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SHA256_INIT
    - item_type: preproc_def
      name: SHA256_Update
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: SHA256_UPDATE
    - item_type: preproc_def
      name: USE_UPPERCASE_GSSAPI
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: '1'
    - item_type: preproc_def
      name: gss_seal
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: GSS_SEAL
    - item_type: preproc_def
      name: gss_unseal
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: GSS_UNSEAL
    - item_type: preproc_def
      name: USE_UPPERCASE_KRBAPI
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: '1'
    - item_type: preproc_def
      name: inflate
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: INFLATE
    - item_type: preproc_def
      name: inflateEnd
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: INFLATEEND
    - item_type: preproc_def
      name: inflateInit2_
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: INFLATEINIT2_
    - item_type: preproc_def
      name: inflateInit_
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: INFLATEINIT_
    - item_type: preproc_def
      name: zlibVersion
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: ZLIBVERSION
    - item_type: preproc_def
      name: OpenSSL_add_all_algorithms
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/curl/lib/setup-vms.h
      type_or_value: OPENSSL_ADD_ALL_ALGORITHMS
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_fnmatch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_FNMATCH_MATCH
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/curl/lib/curl_fnmatch.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_FNMATCH_NOMATCH
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/curl/lib/curl_fnmatch.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_FNMATCH_FAIL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/lib/curl_fnmatch.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_haproxy_ctx_free
  - cf_haproxy_connect
  - cf_haproxy_destroy
  - cf_haproxy_adjust_pollset
  - cf_haproxy_create
  - Curl_cf_haproxy_insert_after
  source_file: /src/curl/lib/cf-haproxy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: state
        type: int
      - name: data_out
        type: struct dynbuf
      item_type: struct
      name: cf_haproxy_ctx
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/curl/lib/cf-haproxy.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_sha256.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_SHA256_DIGEST_LENGTH
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/curl_sha256.h
      type_or_value: '32 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/noproxy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/multihandle.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLPIPE_ANY
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/lib/multihandle.h
      type_or_value: (CURLPIPE_MULTIPLEX)
    - item_type: preproc_def
      name: INITIAL_MAX_CONCURRENT_STREAMS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/multihandle.h
      type_or_value: ((1U << 31) - 1)
    structs:
    - fields:
      - name: list
        type: struct Curl_llist_node
      - name: extmsg
        type: struct CURLMsg
      item_type: struct
      name: Curl_message
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/curl/lib/multihandle.h
    - fields:
      - name: magic
        type: unsigned int
      - name: xfers_alive
        type: unsigned int
      - name: xfers_total_ever
        type: curl_off_t
      - name: xfers
        type: struct uint32_tbl
      - name: process
        type: struct uint32_bset
      - name: dirty
        type: struct uint32_bset
      - name: pending
        type: struct uint32_bset
      - name: msgsent
        type: struct uint32_bset
      - name: msglist
        type: struct Curl_llist
      - name: '*admin'
        type: struct Curl_easy
      - name: socket_cb
        type: curl_socket_callback
      - name: '*socket_userp'
        type: void
      - name: push_cb
        type: curl_push_callback
      - name: '*push_userp'
        type: void
      - name: dnscache
        type: struct Curl_dnscache
      - name: '*ssl_scache'
        type: struct Curl_ssl_scache
      - name: now
        type: struct curltime
      - name: '*timetree'
        type: struct Curl_tree
      - name: '*xfer_buf'
        type: char
      - name: xfer_buf_len
        type: size_t
      - name: '*xfer_ulbuf'
        type: char
      - name: xfer_ulbuf_len
        type: size_t
      - name: '*xfer_sockbuf'
        type: char
      - name: xfer_sockbuf_len
        type: size_t
      - name: ev
        type: struct curl_multi_ev
      - name: ntfy
        type: struct curl_multi_ntfy
      - name: proto_hash
        type: struct Curl_hash
      - name: cshutdn
        type: struct cshutdn
      - name: cpool
        type: struct cpool
      - name: max_host_connections
        type: size_t
      - name: max_total_connections
        type: size_t
      - name: timer_cb
        type: curl_multi_timer_callback
      - name: '*timer_userp'
        type: void
      - name: last_timeout_ms
        type: long
      - name: last_expire_ts
        type: struct curltime
      - name: max_concurrent_streams
        type: unsigned int
      - name: maxconnects
        type: unsigned int
      - name: last_pending_mid
        type: uint32_t
      - name: last_resolv_id
        type: uint32_t
      item_type: struct
      name: Curl_multi
      pos:
        line_end: 196
        line_start: 80
        source_file: /src/curl/lib/multihandle.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_gethostname.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOSTNAME_MAX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/lib/curl_gethostname.h
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_sha512_256.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_SHA512_256_DIGEST_LENGTH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/curl_sha512_256.h
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_macos_init
  source_file: /src/curl/lib/macos.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_uint32_bset_init
  - Curl_uint32_bset_resize
  - Curl_uint32_bset_destroy
  - uint32_bset_capacity
  - Curl_uint32_bset_count
  - Curl_uint32_bset_empty
  - Curl_uint32_bset_clear
  - Curl_uint32_bset_add
  - Curl_uint32_bset_remove
  - Curl_uint32_bset_contains
  - Curl_uint32_bset_first
  - Curl_uint32_bset_next
  - Curl_popcount64
  - Curl_ctz64
  source_file: /src/curl/lib/uint-bset.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_UINT32_BSET_MAGIC
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/uint-bset.c
      type_or_value: '0x62757473'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_async_timeleft_ms
  - Curl_ares_pollset
  - Curl_ares_timeout_ms
  - Curl_ares_perform
  - Curl_async_shutdown
  - Curl_async_destroy
  - Curl_async_failed
  source_file: /src/curl/lib/asyn-base.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sasl_mech_equal
  source_file: /src/curl/lib/curl_sasl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SASL_MECH_LOGIN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: SASL_MECH_PLAIN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: SASL_MECH_CRAM_MD5
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: SASL_MECH_DIGEST_MD5
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: SASL_MECH_GSSAPI
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: SASL_MECH_EXTERNAL
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: SASL_MECH_NTLM
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: SASL_MECH_XOAUTH2
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: SASL_MECH_OAUTHBEARER
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: SASL_MECH_SCRAM_SHA_1
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: SASL_MECH_SCRAM_SHA_256
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: SASL_AUTH_NONE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SASL_AUTH_ANY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: SASL_AUTH_DEFAULT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: (SASL_AUTH_ANY & ~SASL_MECH_EXTERNAL)
    - item_type: preproc_def
      name: SASL_MECH_STRING_LOGIN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"LOGIN"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_PLAIN
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"PLAIN"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_CRAM_MD5
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"CRAM-MD5"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_DIGEST_MD5
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"DIGEST-MD5"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_GSSAPI
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"GSSAPI"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_EXTERNAL
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"EXTERNAL"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_NTLM
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"NTLM"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_XOAUTH2
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"XOAUTH2"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_OAUTHBEARER
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"OAUTHBEARER"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_SCRAM_SHA_1
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"SCRAM-SHA-1"'
    - item_type: preproc_def
      name: SASL_MECH_STRING_SCRAM_SHA_256
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '"SCRAM-SHA-256"'
    - item_type: preproc_def
      name: SASL_FLAG_BASE64
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/curl_sasl.h
      type_or_value: '0x0001  '
    structs:
    - fields:
      - name: '*service'
        type: char
      - name: "(*sendauth)(struct Curl_easy *data, const char *mech,\n                       const
          struct bufref *ir)"
        type: CURLcode
      - name: "(*contauth)(struct Curl_easy *data, const char *mech,\n                       const
          struct bufref *contauth)"
        type: CURLcode
      - name: (*cancelauth)(struct Curl_easy *data, const char *mech)
        type: CURLcode
      - name: (*getmessage)(struct Curl_easy *data, struct bufref *out)
        type: CURLcode
      - name: maxirlen
        type: size_t
      - name: contcode
        type: int
      - name: finalcode
        type: int
      - name: defmechs
        type: unsigned short
      - name: flags
        type: unsigned short
      item_type: struct
      name: SASLproto
      pos:
        line_end: 114
        line_start: 94
        source_file: /src/curl/lib/curl_sasl.h
    - fields:
      - name: '*params'
        type: struct SASLproto
      - name: state
        type: saslstate
      - name: '*curmech'
        type: char
      - name: authmechs
        type: unsigned short
      - name: prefmech
        type: unsigned short
      - name: authused
        type: unsigned short
      item_type: struct
      name: SASL
      pos:
        line_end: 127
        line_start: 117
        source_file: /src/curl/lib/curl_sasl.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/multi_ev.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_MEV_POLLSET
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/multi_ev.h
      type_or_value: '"meta:mev:ps"'
    structs:
    - fields:
      - name: sh_entries
        type: struct Curl_hash
      item_type: struct
      name: curl_multi_ev
      pos:
        line_end: 37
        line_start: 35
        source_file: /src/curl/lib/multi_ev.h
    typedefs: []
    union: []
- function_names:
  - Curl_mime_duppart
  - Curl_mime_set_subparts
  - Curl_mime_prepare_headers
  - Curl_creader_set_mime
  source_file: /src/curl/lib/mime.h
  types:
    enum:
    - enumerators:
      - name: MIMEKIND_NONE
        value: '0'
      - name: MIMEKIND_CALLBACK
      - name: MIMEKIND_MULTIPART
      - name: MIMEKIND_DATA
      - name: MIMEKIND_FILE
      - name: MIMEKIND_LAST
      item_type: enum
      name: mimekind
      pos:
        line_end: 49
        line_start: 42
        source_file: /src/curl/lib/mime.h
    - enumerators:
      - name: MIMESTATE_BEGIN
      - name: MIMESTATE_BODY
      - name: MIMESTATE_CURLHEADERS
      - name: MIMESTATE_USERHEADERS
      - name: MIMESTATE_EOH
      - name: MIMESTATE_BOUNDARY1
      - name: MIMESTATE_BOUNDARY2
      - name: MIMESTATE_CONTENT
      - name: MIMESTATE_END
      - name: MIMESTATE_LAST
      item_type: enum
      name: mimestate
      pos:
        line_end: 63
        line_start: 52
        source_file: /src/curl/lib/mime.h
    - enumerators:
      - name: MIMESTRATEGY_MAIL
      - name: MIMESTRATEGY_FORM
      - name: MIMESTRATEGY_LAST
      item_type: enum
      name: mimestrategy
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/curl/lib/mime.h
    preproc_defs:
    - item_type: preproc_def
      name: MIME_BOUNDARY_DASHES
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/lib/mime.h
      type_or_value: '24  '
    - item_type: preproc_def
      name: MIME_RAND_BOUNDARY_CHARS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/mime.h
      type_or_value: '22  '
    - item_type: preproc_def
      name: MAX_ENCODED_LINE_LENGTH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/mime.h
      type_or_value: '76  '
    - item_type: preproc_def
      name: ENCODING_BUFFER_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/mime.h
      type_or_value: '256 '
    - item_type: preproc_def
      name: MIME_USERHEADERS_OWNER
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/mime.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: MIME_BODY_ONLY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/mime.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: MIME_FAST_READ
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/mime.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: FILE_CONTENTTYPE_DEFAULT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/mime.h
      type_or_value: '"application/octet-stream"'
    - item_type: preproc_def
      name: MULTIPART_CONTENTTYPE_DEFAULT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/mime.h
      type_or_value: '"multipart/mixed"'
    - item_type: preproc_def
      name: DISPOSITION_DEFAULT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/mime.h
      type_or_value: '"attachment"'
    - item_type: preproc_def
      name: MIME_BOUNDARY_LEN
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/lib/mime.h
      type_or_value: (MIME_BOUNDARY_DASHES + MIME_RAND_BOUNDARY_CHARS)
    - item_type: preproc_def
      name: Curl_mime_read
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/curl/lib/mime.h
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: '*   name'
        type: char
      - name: "(*encodefunc)(char *buffer, size_t size, bool ateof,\n                               curl_mimepart
          *part)"
        type: size_t
      - name: (*sizefunc)(curl_mimepart *part)
        type: curl_off_t
      item_type: struct
      name: mime_encoder
      pos:
        line_end: 78
        line_start: 73
        source_file: /src/curl/lib/mime.h
    - fields:
      - name: pos
        type: size_t
      - name: bufbeg
        type: size_t
      - name: bufend
        type: size_t
      - name: buf[ENCODING_BUFFER_SIZE]
        type: char
      item_type: struct
      name: mime_encoder_state
      pos:
        line_end: 86
        line_start: 81
        source_file: /src/curl/lib/mime.h
    - fields:
      - name: state
        type: enum mimestate
      - name: '*ptr'
        type: void
      - name: offset
        type: curl_off_t
      item_type: struct
      name: mime_state
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/curl/lib/mime.h
    - fields:
      - name: '*parent'
        type: curl_mimepart
      - name: '*firstpart'
        type: curl_mimepart
      - name: '*lastpart'
        type: curl_mimepart
      - name: boundary[MIME_BOUNDARY_LEN + 1]
        type: char
      - name: state
        type: struct mime_state
      item_type: struct
      name: curl_mime
      pos:
        line_end: 105
        line_start: 99
        source_file: /src/curl/lib/mime.h
    - fields:
      - name: '*parent'
        type: curl_mime
      - name: '*nextpart'
        type: curl_mimepart
      - name: kind
        type: enum mimekind
      - name: flags
        type: unsigned int
      - name: '*data'
        type: char
      - name: readfunc
        type: curl_read_callback
      - name: seekfunc
        type: curl_seek_callback
      - name: freefunc
        type: curl_free_callback
      - name: '*arg'
        type: void
      - name: '*fp'
        type: FILE
      - name: '*curlheaders'
        type: struct curl_slist
      - name: '*userheaders'
        type: struct curl_slist
      - name: '*mimetype'
        type: char
      - name: '*filename'
        type: char
      - name: '*name'
        type: char
      - name: datasize
        type: curl_off_t
      - name: state
        type: struct mime_state
      - name: '*encoder'
        type: struct mime_encoder
      - name: encstate
        type: struct mime_encoder_state
      - name: lastreadstatus
        type: size_t
      item_type: struct
      name: curl_mimepart
      pos:
        line_end: 129
        line_start: 108
        source_file: /src/curl/lib/mime.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/fake_addrinfo.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_FAKE_GETADDRINFO
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/fake_addrinfo.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/config-mac.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_OS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '"mac"'
    - item_type: preproc_def
      name: USE_MANUAL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NETINET_IN_H
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NETDB_H
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ARPA_INET_H
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UNISTD_H
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NET_IF_H
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_TYPES_H
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETTIMEOFDAY
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FCNTL_H
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UTIME_H
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_UTIME_H
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_IOCTL_H
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ALARM
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UTIME
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SELECT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SOCKET
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRUCT_TIMEVAL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SIGACTION
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_IOCTL_FIONBIO
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_INT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_LONG
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_SIZE_T
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_CURL_OFF_T
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HAVE_RECV
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RECV_TYPE_ARG1
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/lib/config-mac.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_ARG2
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/lib/config-mac.h
      type_or_value: void *
    - item_type: preproc_def
      name: RECV_TYPE_ARG3
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/lib/config-mac.h
      type_or_value: size_t
    - item_type: preproc_def
      name: RECV_TYPE_ARG4
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/config-mac.h
      type_or_value: int
    - item_type: preproc_def
      name: RECV_TYPE_RETV
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/lib/config-mac.h
      type_or_value: ssize_t
    - item_type: preproc_def
      name: HAVE_SEND
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/config-mac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEND_TYPE_ARG1
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/config-mac.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_ARG2
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/config-mac.h
      type_or_value: void *
    - item_type: preproc_def
      name: SEND_TYPE_ARG3
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/config-mac.h
      type_or_value: size_t
    - item_type: preproc_def
      name: SEND_TYPE_ARG4
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/config-mac.h
      type_or_value: int
    - item_type: preproc_def
      name: SEND_TYPE_RETV
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/config-mac.h
      type_or_value: ssize_t
    structs: []
    typedefs: []
    union: []
- function_names:
  - casecompare
  - ncasecompare
  - curl_strequal
  - curl_strnequal
  source_file: /src/curl/lib/strequal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STATUSCODE
  - LASTLINE
  - FTP_CSTATE
  - ftp_state_low
  - ftp_state
  - ftp_state
  - freedirs
  - numof_slashes
  - ftp_parse_url_path
  - ftp_need_type
  - close_secondarysocket
  - ftp_cw_lc_write
  - ftp_check_ctrl_on_data_wait
  - ftp_initiate_transfer
  - ftp_endofresp
  - ftp_readresp
  - getftpresponse
  - ftp_state_user
  - ftp_state_pwd
  - ftp_pollset
  - ftp_domore_pollset
  - pathlen
  - pathpiece
  - ftp_state_cwd
  - ftp_port_parse_string
  - ftp_port_default_host
  - ftp_port_resolve_host
  - ftp_port_open_socket
  - ftp_port_bind_socket
  - ftp_port_listen
  - ftp_port_send_command
  - ftp_state_use_port
  - ftp_state_use_pasv
  - ftp_state_prepare_transfer
  - ftp_state_rest
  - ftp_state_size
  - ftp_state_list
  - ftp_state_list_prequote
  - ftp_state_retr_prequote
  - ftp_state_stor_prequote
  - ftp_state_type
  - ftp_state_mdtm
  - ftp_state_ul_setup
  - ftp_state_retr
  - ftp_state_quote
  - ftp_epsv_disable
  - ftp_control_addr_dup
  - match_pasv_6nums
  - ftp_state_pasv_resp
  - ftp_statemach
  - ftp_do_more
  - ftp_dophase_done
  - ftp_state_port_resp
  - twodigit
  - ftp_213_date
  - client_write_header
  - ftp_state_mdtm_resp
  - ftp_state_type_resp
  - ftp_state_size_resp
  - ftp_state_rest_resp
  - ftp_state_stor_resp
  - ftp_state_get_resp
  - ftp_state_loggedin
  - ftp_state_user_resp
  - ftp_state_acct_resp
  - ftp_pwd_resp
  - ftp_wait_resp
  - ftp_pp_statemachine
  - ftp_multi_statemach
  - ftp_block_statemach
  - ftp_connect
  - ftp_sendquote
  - ftp_done_status
  - ftp_done_wildcard
  - ftp_done_path
  - ftp_done_secondary_socket
  - ftp_done_control_reply
  - ftp_done_check_partial
  - ftp_done
  - ftp_nb_type
  - ftp_perform
  - wc_data_dtor
  - init_wc_data
  - wc_statemach
  - ftp_regular_transfer
  - ftp_do
  - ftp_quit
  - ftp_disconnect
  - ftp_doing
  - ftp_easy_dtor
  - ftp_conn_dtor
  - type_url_check
  - ftp_setup_connection
  - ftp_conns_match
  source_file: /src/curl/lib/ftp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NI_MAXHOST
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/ftp.c
      type_or_value: '1025'
    - item_type: preproc_def
      name: INET_ADDRSTRLEN
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/ftp.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FTP_MAX_DIR_DEPTH
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/curl/lib/ftp.c
      type_or_value: '1000'
    structs:
    - fields:
      - name: super
        type: struct Curl_cwriter
      - name: newline_pending
        type: bool
      item_type: struct
      name: ftp_cw_lc_ctx
      pos:
        line_end: 370
        line_start: 367
        source_file: /src/curl/lib/ftp.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/thrdqueue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "Curl_thrdq_ev_cb(const struct curl_thrdq *tqueue,\n                              Curl_thrdq_event
        ev,\n                              void *user_data)"
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/curl/lib/thrdqueue.h
      type: void
    - item_type: typedef
      name: Curl_thrdq_item_process_cb(void *item)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/curl/lib/thrdqueue.h
      type: void
    - item_type: typedef
      name: Curl_thrdq_item_free_cb(void *item)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/curl/lib/thrdqueue.h
      type: void
    - item_type: typedef
      name: Curl_thrdq_item_match_cb(void *item, void *match_data)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/curl/lib/thrdqueue.h
      type: bool
    union: []
- function_names:
  - Curl_hsts_loadcb
  - Curl_hsts_loadfiles
  source_file: /src/curl/lib/hsts.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HSTS_ENTRIES
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/hsts.h
      type_or_value: '10000'
    structs:
    - fields:
      - name: node
        type: struct Curl_llist_node
      - name: expires
        type: curl_off_t
      - name: host[1]
        type: char
      item_type: struct
      name: stsentry
      pos:
        line_end: 45
        line_start: 40
        source_file: /src/curl/lib/hsts.h
    - fields:
      - name: list
        type: struct Curl_llist
      - name: '*filename'
        type: char
      - name: flags
        type: unsigned int
      item_type: struct
      name: hsts
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/curl/lib/hsts.h
    typedefs: []
    union: []
- function_names:
  - CF_DATA_SAVE
  - CF_DATA_RESTORE
  - CF_DATA_SAVE
  - CF_DATA_RESTORE
  - CF_DATA_CURRENT
  source_file: /src/curl/lib/cfilters.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_CTRL_DATA_SETUP
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '4  '
    - item_type: preproc_def
      name: CF_CTRL_DATA_PAUSE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '6  '
    - item_type: preproc_def
      name: CF_CTRL_DATA_DONE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '7  '
    - item_type: preproc_def
      name: CF_CTRL_DATA_DONE_SEND
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '8  '
    - item_type: preproc_def
      name: CF_CTRL_CONN_INFO_UPDATE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '(256 + 0) '
    - item_type: preproc_def
      name: CF_CTRL_FORGET_SOCKET
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '(256 + 1) '
    - item_type: preproc_def
      name: CF_CTRL_FLUSH
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '(256 + 2) '
    - item_type: preproc_def
      name: CF_QUERY_MAX_CONCURRENT
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '1  '
    - item_type: preproc_def
      name: CF_QUERY_CONNECT_REPLY_MS
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '2  '
    - item_type: preproc_def
      name: CF_QUERY_SOCKET
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '3  '
    - item_type: preproc_def
      name: CF_QUERY_TIMER_CONNECT
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '4  '
    - item_type: preproc_def
      name: CF_QUERY_TIMER_APPCONNECT
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '5  '
    - item_type: preproc_def
      name: CF_QUERY_STREAM_ERROR
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '6  '
    - item_type: preproc_def
      name: CF_QUERY_NEED_FLUSH
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '7  '
    - item_type: preproc_def
      name: CF_QUERY_IP_INFO
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '8  '
    - item_type: preproc_def
      name: CF_QUERY_HTTP_VERSION
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '9  '
    - item_type: preproc_def
      name: CF_QUERY_REMOTE_ADDR
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '10  '
    - item_type: preproc_def
      name: CF_QUERY_HOST_PORT
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '11  '
    - item_type: preproc_def
      name: CF_QUERY_SSL_INFO
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '12  '
    - item_type: preproc_def
      name: CF_QUERY_SSL_CTX_INFO
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '13  '
    - item_type: preproc_def
      name: CF_QUERY_TRANSPORT
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '14  '
    - item_type: preproc_def
      name: CF_QUERY_ALPN_NEGOTIATED
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '15  '
    - item_type: preproc_def
      name: CF_TYPE_IP_CONNECT
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/curl/lib/cfilters.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CF_TYPE_SSL
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/curl/lib/cfilters.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CF_TYPE_MULTIPLEX
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/curl/lib/cfilters.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CF_TYPE_PROXY
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/curl/lib/cfilters.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CF_TYPE_HTTP
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/curl/lib/cfilters.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: CF_TYPE_SETUP
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/curl/lib/cfilters.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: CF_TYPE_HTTPSRR
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/curl/lib/cfilters.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: CURL_CF_SSL_DEFAULT
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/curl/lib/cfilters.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: CURL_CF_SSL_DISABLE
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_CF_SSL_ENABLE
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/curl/lib/cfilters.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: flags
        type: int
      - name: log_level
        type: int
      - name: '*destroy'
        type: Curl_cft_destroy_this
      - name: '*do_connect'
        type: Curl_cft_connect
      - name: '*do_shutdown'
        type: Curl_cft_shutdown
      - name: '*adjust_pollset'
        type: Curl_cft_adjust_pollset
      - name: '*has_data_pending'
        type: Curl_cft_data_pending
      - name: '*do_send'
        type: Curl_cft_send
      - name: '*do_recv'
        type: Curl_cft_recv
      - name: '*cntrl'
        type: Curl_cft_cntrl
      - name: '*is_alive'
        type: Curl_cft_conn_is_alive
      - name: '*keep_alive'
        type: Curl_cft_conn_keep_alive
      - name: '*query'
        type: Curl_cft_query
      item_type: struct
      name: Curl_cftype
      pos:
        line_end: 225
        line_start: 210
        source_file: /src/curl/lib/cfilters.h
    - fields:
      - name: '*cft'
        type: struct Curl_cftype
      - name: '*next'
        type: struct Curl_cfilter
      - name: '*ctx'
        type: void
      - name: '*conn'
        type: struct connectdata
      - name: sockindex
        type: int
      item_type: struct
      name: Curl_cfilter
      pos:
        line_end: 236
        line_start: 228
        source_file: /src/curl/lib/cfilters.h
    - fields:
      - name: '*data'
        type: struct Curl_easy
      item_type: struct
      name: cf_call_data
      pos:
        line_end: 645
        line_start: 640
        source_file: /src/curl/lib/cfilters.h
    typedefs:
    - item_type: typedef
      name: "Curl_cft_destroy_this(struct Curl_cfilter *cf,\n                                       struct
        Curl_easy *data)"
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/cfilters.h
      type: void
    - item_type: typedef
      name: "Curl_cft_shutdown(struct Curl_cfilter *cf,\n                                   struct
        Curl_easy *data,\n                                   bool *done)"
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/curl/lib/cfilters.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_cft_connect(struct Curl_cfilter *cf,\n                                  struct
        Curl_easy *data,\n                                  bool *done)"
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/curl/lib/cfilters.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_cft_adjust_pollset(struct Curl_cfilter *cf,\n                                         struct
        Curl_easy *data,\n                                         struct easy_pollset
        *ps)"
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/curl/lib/cfilters.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_cft_data_pending(struct Curl_cfilter *cf,\n                                       const
        struct Curl_easy *data)"
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/cfilters.h
      type: bool
    - item_type: typedef
      name: "Curl_cft_send(struct Curl_cfilter *cf,\n                               struct
        Curl_easy *data, /* transfer */\n                               const uint8_t
        *buf,     /* data to write */\n                               size_t len,
        \            /* amount to write */\n                               bool eos,
        \              /* last chunk */\n                               size_t *pnwritten)"
      pos:
        line_end: 89
        line_start: 84
        source_file: /src/curl/lib/cfilters.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_cft_recv(struct Curl_cfilter *cf,\n                               struct
        Curl_easy *data, /* transfer */\n                               char *buf,
        \             /* store data here */\n                               size_t
        len,             /* amount to read */\n                               size_t
        *pnread)"
      pos:
        line_end: 95
        line_start: 91
        source_file: /src/curl/lib/cfilters.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_cft_conn_is_alive(struct Curl_cfilter *cf,\n                                        struct
        Curl_easy *data,\n                                        bool *input_pending)"
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/curl/lib/cfilters.h
      type: bool
    - item_type: typedef
      name: "Curl_cft_conn_keep_alive(struct Curl_cfilter *cf,\n                                          struct
        Curl_easy *data)"
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/lib/cfilters.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_cft_cntrl(struct Curl_cfilter *cf,\n                                struct
        Curl_easy *data,\n                                int event, int arg1, void
        *arg2)"
      pos:
        line_end: 130
        line_start: 128
        source_file: /src/curl/lib/cfilters.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_cft_query(struct Curl_cfilter *cf,\n                                struct
        Curl_easy *data,\n                                int query, int *pres1, void
        *pres2)"
      pos:
        line_end: 184
        line_start: 182
        source_file: /src/curl/lib/cfilters.h
      type: CURLcode
    union: []
- function_names:
  - Curl_cookie_list
  - Curl_cookie_loadfiles
  - Curl_cookie_init
  - Curl_cookie_run
  - Curl_cookie_cleanup
  - Curl_flush_cookies
  source_file: /src/curl/lib/cookie.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COOKIE_PREFIX__SECURE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/cookie.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: COOKIE_PREFIX__HOST
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/cookie.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: COOKIE_HASH_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/cookie.h
      type_or_value: '63'
    - item_type: preproc_def
      name: MAX_COOKIE_LINE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/cookie.h
      type_or_value: '5000'
    - item_type: preproc_def
      name: MAX_NAME
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/lib/cookie.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_SET_COOKIE_AMOUNT
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/lib/cookie.h
      type_or_value: '50'
    - item_type: preproc_def
      name: MAX_COOKIE_HEADER_LEN
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/lib/cookie.h
      type_or_value: '8190'
    - item_type: preproc_def
      name: MAX_COOKIE_SEND_AMOUNT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/lib/cookie.h
      type_or_value: '150'
    structs:
    - fields:
      - name: node
        type: struct Curl_llist_node
      - name: getnode
        type: struct Curl_llist_node
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      - name: '*path'
        type: char
      - name: '*domain'
        type: char
      - name: expires
        type: curl_off_t
      - name: creationtime
        type: unsigned int
      item_type: struct
      name: Cookie
      pos:
        line_end: 44
        line_start: 29
        source_file: /src/curl/lib/cookie.h
    - fields:
      - name: cookielist[COOKIE_HASH_SIZE]
        type: struct Curl_llist
      - name: next_expiration
        type: curl_off_t
      - name: numcookies
        type: unsigned int
      - name: lastct
        type: unsigned int
      item_type: struct
      name: CookieInfo
      pos:
        line_end: 63
        line_start: 55
        source_file: /src/curl/lib/cookie.h
    typedefs: []
    union: []
- function_names:
  - curl2netrc
  - netrc_tokenstr
  - netrc_lexer_init
  - netrc_lexer_cleanup
  - netrc_skip_blanks
  - netrc_skip_to_empty_line
  - netrc_lexer_quoted
  - netrc_lexer_push
  - netrc_lexer_next
  - netrc_scan_reset
  - netrc_scan_init
  - netrc_scan_cleanup
  - netrc_scan_literal
  - netrc_scan_end_entry
  - netrc_scan
  - file2memory
  - netrc_scan_file
  - Curl_netrc_scan
  - Curl_netrc_init
  - Curl_netrc_cleanup
  - Curl_netrc_strerror
  source_file: /src/curl/lib/netrc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_NETRC_LINE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/lib/netrc.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: MAX_NETRC_FILE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/netrc.c
      type_or_value: (128 * 1024)
    - item_type: preproc_def
      name: MAX_NETRC_TOKEN
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/netrc.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: NETRC_DEBUG
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/netrc.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*data'
        type: struct Curl_easy
      - name: '*content'
        type: char
      - name: '*pos'
        type: char
      - name: literal
        type: struct dynbuf
      - name: token
        type: curl_netrc_token
      - name: pushed
        type: bool
      item_type: struct
      name: netrc_lexer
      pos:
        line_end: 105
        line_start: 98
        source_file: /src/curl/lib/netrc.c
    - fields:
      - name: lexer
        type: struct netrc_lexer
      - name: '*hostname'
        type: char
      - name: '*user'
        type: char
      - name: '*login'
        type: char
      - name: '*passwd'
        type: char
      - name: '*creds'
        type: struct Curl_creds
      - name: matches_host
        type: bool
      - name: found
        type: bool
      item_type: struct
      name: netrc_scanner
      pos:
        line_end: 328
        line_start: 319
        source_file: /src/curl/lib/netrc.c
    typedefs: []
    union: []
- function_names:
  - CURL_SB_CLEAR
  - CURL_SB_TERM
  - CURL_SB_ACCUM
  - CURL_SB_GET
  - CURL_SB_LEN
  - printoption
  - printoption
  - telnet_easy_dtor
  - init_telnet
  - send_negotiation
  - set_remote_option
  - set_local_option
  - telnet_negotiate
  - rec_will
  - rec_wont
  - printsub
  - send_telnet_data
  - sendsuboption
  - rec_do
  - rec_dont
  - str_is_nonascii
  - check_telnet_options
  - bad_option
  - suboption
  - telrcv
  - startskipping
  - writebyte
  - bufferflush
  - telnet_done
  - telnet_do
  source_file: /src/curl/lib/telnet.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUBBUFSIZE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/telnet.c
      type_or_value: '512'
    - item_type: preproc_def
      name: CURL_NO
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/telnet.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_YES
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/lib/telnet.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_WANTYES
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/lib/telnet.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CURL_WANTNO
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/lib/telnet.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CURL_EMPTY
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/lib/telnet.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_OPPOSITE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/curl/lib/telnet.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_META_TELNET_EASY
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/curl/lib/telnet.c
      type_or_value: '"meta:proto:telnet:easy"'
    structs:
    - fields:
      - name: please_negotiate
        type: int
      - name: already_negotiated
        type: int
      - name: us[256]
        type: int
      - name: usq[256]
        type: int
      - name: us_preferred[256]
        type: int
      - name: him[256]
        type: int
      - name: himq[256]
        type: int
      - name: him_preferred[256]
        type: int
      - name: subnegotiation[256]
        type: int
      - name: '*subopt_ttype'
        type: char
      - name: '*subopt_xdisploc'
        type: char
      - name: subopt_wsx
        type: unsigned short
      - name: subopt_wsy
        type: unsigned short
      - name: telrcv_state
        type: TelnetReceive
      - name: '*telnet_vars'
        type: struct curl_slist
      - name: out
        type: struct dynbuf
      - name: subbuffer[SUBBUFSIZE]
        type: unsigned char
      - name: '*subpointer'
        type: unsigned char
      item_type: struct
      name: TELNET
      pos:
        line_end: 128
        line_start: 107
        source_file: /src/curl/lib/telnet.c
    typedefs: []
    union: []
- function_names:
  - my_md5_init
  - my_md5_update
  - my_md5_final
  - my_md5_init
  - my_md5_update
  - my_md5_final
  - my_md5_init
  - my_md5_update
  - my_md5_final
  - my_md5_init
  - my_md5_update
  - my_md5_final
  - my_md5_init
  - my_md5_update
  - my_md5_final
  - my_md5_init
  - my_md5_update
  - my_md5_final
  - MD5_F
  - MD5_G
  - MD5_H
  - MD5_H2
  - MD5_I
  - MD5_STEP
  - MD5_SET
  - MD5_GET
  - MD5_SET
  - MD5_GET
  - my_md5_body
  - my_md5_init
  - my_md5_update
  - my_md5_final
  - Curl_md5it
  - Curl_MD5_init
  - Curl_MD5_update
  - Curl_MD5_final
  source_file: /src/curl/lib/md5.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: my_md5_ctx
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/curl/lib/md5.c
      type_or_value: CC_MD5_CTX
    structs:
    - fields:
      - name: hCryptProv
        type: HCRYPTPROV
      - name: hHash
        type: HCRYPTHASH
      item_type: struct
      name: md5_ctx
      pos:
        line_end: 191
        line_start: 188
        source_file: /src/curl/lib/md5.c
    - fields:
      - name: lo
        type: uint32_t
      - name: a
        type: uint32_t
      - name: buffer[64]
        type: unsigned char
      - name: block[16]
        type: uint32_t
      item_type: struct
      name: md5_ctx
      pos:
        line_end: 264
        line_start: 259
        source_file: /src/curl/lib/md5.c
    typedefs:
    - item_type: typedef
      name: my_md5_ctx
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/curl/lib/md5.c
      type: md5_ctx
    - item_type: typedef
      name: my_md5_ctx
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/curl/lib/md5.c
      type: MD5_CTX
    - item_type: typedef
      name: my_md5_ctx
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/curl/lib/md5.c
      type: wc_Md5
    - item_type: typedef
      name: my_md5_ctx
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/curl/lib/md5.c
      type: psa_hash_operation_t
    - item_type: typedef
      name: my_md5_ctx
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/curl/lib/md5.c
      type: md5_ctx
    - item_type: typedef
      name: my_md5_ctx
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/curl/lib/md5.c
      type: md5_ctx
    union: []
- function_names:
  - Curl_alpn2alpnid
  - Curl_str2alpnid
  - timeleft_now_ms
  - Curl_timeleft_ms
  - Curl_shutdown_start
  - Curl_shutdown_timeleft
  - Curl_conn_shutdown_timeleft
  - Curl_shutdown_clear
  - Curl_shutdown_started
  - Curl_addr2string
  - Curl_getconnectinfo
  - cf_setup_add_haproxy
  - cf_setup_add_socks
  - cf_setup_add_http_proxy
  - cf_setup_add_ip_happy
  - cf_setup_add_origin_filters
  - cf_setup_connect_steps
  - cf_setup_connect
  - cf_setup_destroy
  - cf_setup_create
  - cf_setup_add
  - Curl_cf_setup_insert_after
  - Curl_conn_setup
  - Curl_conn_set_multiplex
  - Curl_conn_get_destination
  - Curl_conn_get_first_peer
  source_file: /src/curl/lib/connect.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: state
        type: cf_setup_state
      - name: ssl_mode
        type: int
      - name: transport
        type: uint8_t
      - name: retry_count
        type: uint8_t
      item_type: struct
      name: cf_setup_ctx
      pos:
        line_end: 344
        line_start: 339
        source_file: /src/curl/lib/connect.c
    typedefs: []
    union: []
- function_names:
  - pop3_parse_url_options
  - pop3_parse_url_path
  - pop3_parse_custom_request
  - pop3_is_multiline
  - pop3_endofresp
  - pop3_get_message
  - pop3_state
  - pop3_perform_capa
  - pop3_perform_starttls
  - pop3_perform_upgrade_tls
  - pop3_perform_user
  - pop3_perform_apop
  - pop3_perform_auth
  - pop3_continue_auth
  - pop3_cancel_auth
  - pop3_perform_authentication
  - pop3_perform_command
  - pop3_perform_quit
  - pop3_state_servergreet_resp
  - pop3_state_capa_resp
  - pop3_state_starttls_resp
  - pop3_state_auth_resp
  - pop3_state_apop_resp
  - pop3_state_user_resp
  - pop3_state_pass_resp
  - pop3_write
  - pop3_state_command_resp
  - pop3_statemachine
  - pop3_multi_statemach
  - pop3_block_statemach
  - pop3_pollset
  - pop3_connect
  - pop3_done
  - pop3_perform
  - pop3_dophase_done
  - pop3_regular_transfer
  - pop3_do
  - pop3_disconnect
  - pop3_doing
  - pop3_easy_dtor
  - pop3_conn_dtor
  - pop3_setup_connection
  source_file: /src/curl/lib/pop3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POP3_TYPE_CLEARTEXT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/pop3.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: POP3_TYPE_APOP
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/pop3.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: POP3_TYPE_SASL
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/pop3.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: POP3_TYPE_NONE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/pop3.c
      type_or_value: '0'
    - item_type: preproc_def
      name: POP3_TYPE_ANY
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/lib/pop3.c
      type_or_value: (POP3_TYPE_CLEARTEXT | POP3_TYPE_APOP | POP3_TYPE_SASL)
    - item_type: preproc_def
      name: POP3_EOB
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/lib/pop3.c
      type_or_value: '"\x0d\x0a\x2e\x0d\x0a"'
    - item_type: preproc_def
      name: POP3_EOB_LEN
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/lib/pop3.c
      type_or_value: '5'
    - item_type: preproc_def
      name: CURL_META_POP3_EASY
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/lib/pop3.c
      type_or_value: '"meta:proto:pop3:easy"'
    - item_type: preproc_def
      name: CURL_META_POP3_CONN
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/lib/pop3.c
      type_or_value: '"meta:proto:pop3:conn"'
    structs:
    - fields:
      - name: transfer
        type: curl_pp_transfer
      - name: '*id'
        type: char
      - name: '*custom'
        type: char
      item_type: struct
      name: POP3
      pos:
        line_end: 100
        line_start: 96
        source_file: /src/curl/lib/pop3.c
    - fields:
      - name: pp
        type: struct pingpong
      - name: state
        type: pop3state
      - name: eob
        type: size_t
      - name: strip
        type: size_t
      - name: sasl
        type: struct SASL
      - name: '*apoptimestamp'
        type: char
      - name: authtypes
        type: unsigned char
      - name: preftype
        type: unsigned char
      item_type: struct
      name: pop3_conn
      pos:
        line_end: 135
        line_start: 122
        source_file: /src/curl/lib/pop3.c
    - fields:
      - name: '*name'
        type: char
      - name: nlen
        type: unsigned short
      item_type: struct
      name: pop3_cmd
      pos:
        line_end: 142
        line_start: 137
        source_file: /src/curl/lib/pop3.c
    typedefs: []
    union: []
- function_names:
  - copy_header_external
  - curl_easy_header
  - curl_easy_nextheader
  - namevalue
  - Curl_headers_push
  - headers_reset
  - hds_cw_collect_write
  - Curl_headers_init
  - Curl_headers_cleanup
  - curl_easy_header
  - curl_easy_nextheader
  source_file: /src/curl/lib/headers.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: super
        type: struct Curl_cwriter
      item_type: struct
      name: hds_cw_collect_ctx
      pos:
        line_end: 293
        line_start: 291
        source_file: /src/curl/lib/headers.c
    typedefs: []
    union: []
- function_names:
  - hsts_debugtime
  - time
  - Curl_hsts_init
  - hsts_free
  - Curl_hsts_cleanup
  - hsts_append
  - hsts_create
  - hsts_check
  - Curl_hsts_parse
  - hsts_push
  - hsts_out
  - Curl_hsts_save
  - hsts_add_host_expire
  - hsts_add
  - hsts_pull
  - hsts_load
  - Curl_hsts_loadfile
  - Curl_hsts_loadcb
  - Curl_hsts_loadfiles
  - Curl_hsts_applies
  source_file: /src/curl/lib/hsts.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HSTS_LINE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/hsts.c
      type_or_value: '4095'
    - item_type: preproc_def
      name: MAX_HSTS_HOSTLEN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/hsts.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_HSTS_DATELEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/hsts.c
      type_or_value: '17'
    - item_type: preproc_def
      name: UNLIMITED
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/hsts.c
      type_or_value: '"unlimited"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - httpsrr_decode_alpn
  - httpsrr_print_addr
  - Curl_httpsrr_trace
  - Curl_httpsrr_print
  - Curl_httpsrr_set
  - Curl_httpsrr_dup_move
  - Curl_httpsrr_cleanup
  - Curl_httpsrr_applicable
  - httpsrr_opt
  - Curl_httpsrr_from_ares
  source_file: /src/curl/lib/httpsrr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cw_pause_buf_create
  - cw_pause_buf_free
  - cw_pause_init
  - cw_pause_bufs_free
  - cw_pause_close
  - cw_pause_flush
  - cw_pause_write
  - Curl_cw_pause_flush
  source_file: /src/curl/lib/cw-pause.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CW_PAUSE_BUF_CHUNK
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/cw-pause.c
      type_or_value: (16 * 1024)
    - item_type: preproc_def
      name: CW_PAUSE_DEC_WRITE_CHUNK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/cw-pause.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: '*next'
        type: struct cw_pause_buf
      - name: b
        type: struct bufq
      - name: type
        type: int
      item_type: struct
      name: cw_pause_buf
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/curl/lib/cw-pause.c
    - fields:
      - name: super
        type: struct Curl_cwriter
      - name: '*buf'
        type: struct cw_pause_buf
      - name: buf_total
        type: size_t
      item_type: struct
      name: cw_pause_ctx
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/curl/lib/cw-pause.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/sockaddr.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buffer
        type: "union {\n    struct sockaddr sa;\n    struct sockaddr_in sa_in;\n#ifdef
          USE_IPV6\n    struct sockaddr_in6 sa_in6;\n#endif\n#ifdef HAVE_STRUCT_SOCKADDR_STORAGE\n
          \   struct sockaddr_storage sa_stor;\n#else\n    char cbuf[256];   /* this
          should be big enough to fit a lot */\n#endif\n  }"
      item_type: struct
      name: Curl_sockaddr_storage
      pos:
        line_end: 40
        line_start: 27
        source_file: /src/curl/lib/sockaddr.h
    typedefs: []
    union: []
- function_names:
  - RTP_PKT_LENGTH
  - rtsp_do_pollset
  - rtsp_easy_dtor
  - rtsp_conn_dtor
  - rtsp_setup_connection
  - rtsp_conn_is_dead
  - rtsp_connect
  - rtsp_done
  - rtsp_setup_body
  - rtsp_do
  - rtp_write_body_junk
  - rtp_client_write
  - rtsp_filter_rtp
  - rtsp_rtp_write_resp
  - rtsp_rtp_write_resp_hd
  - rtsp_parse_transport
  - Curl_rtsp_parseheader
  source_file: /src/curl/lib/rtsp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_RTSP_EASY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/rtsp.c
      type_or_value: '"meta:proto:rtsp:easy"'
    - item_type: preproc_def
      name: CURL_META_RTSP_CONN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/rtsp.c
      type_or_value: '"meta:proto:rtsp:conn"'
    - item_type: preproc_def
      name: MAX_RTP_BUFFERSIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/lib/rtsp.c
      type_or_value: '1000000 '
    structs:
    - fields:
      - name: buf
        type: struct dynbuf
      - name: rtp_channel
        type: int
      - name: rtp_len
        type: size_t
      - name: state
        type: rtp_parse_st
      item_type: struct
      name: rtsp_conn
      pos:
        line_end: 64
        line_start: 58
        source_file: /src/curl/lib/rtsp.c
    - fields:
      - name: CSeq_sent
        type: uint32_t
      - name: CSeq_recv
        type: uint32_t
      item_type: struct
      name: RTSP
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/curl/lib/rtsp.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/cf-ip-happy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "cf_ip_connect_create(struct Curl_cfilter **pcf,\n                                      struct
        Curl_easy *data,\n                                      struct connectdata
        *conn,\n                                      struct Curl_sockaddr_ex *addr,\n
        \                                     uint8_t transport_in,\n                                      uint8_t
        transport_out)"
      pos:
        line_end: 50
        line_start: 45
        source_file: /src/curl/lib/cf-ip-happy.h
      type: CURLcode
    union: []
- function_names:
  - Curl_async_global_init
  - Curl_async_global_cleanup
  - sock_state_cb
  - async_ares_init
  - async_ares_cleanup
  - Curl_async_ares_shutdown
  - Curl_async_ares_destroy
  - Curl_async_pollset
  - Curl_async_take_result
  - async_ares_poll_timeout
  - async_ares_get_ai
  - Curl_async_get_ai
  - Curl_async_get_https
  - Curl_async_knows_https
  - Curl_async_await
  - async_ares_node2addr
  - async_ares_A_cb
  - async_ares_AAAA_cb
  - async_ares_rr_done
  - Curl_async_getaddrinfo
  - async_ares_set_dns_servers
  - async_ares_set_dns_interface
  - async_ares_set_dns_local_ip4
  - async_ares_set_dns_local_ip6
  source_file: /src/curl/lib/asyn-ares.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CARES_TIMEOUT_PER_ATTEMPT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/asyn-ares.c
      type_or_value: '2000'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/http_chunks.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHUNK_MAXNUM_LEN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/http_chunks.h
      type_or_value: (SIZEOF_CURL_OFF_T * 2)
    structs:
    - fields:
      - name: datasize
        type: curl_off_t
      - name: state
        type: ChunkyState
      - name: last_code
        type: CHUNKcode
      - name: trailer
        type: struct dynbuf
      - name: hexindex
        type: unsigned char
      - name: hexbuffer[CHUNK_MAXNUM_LEN + 1]
        type: char
      item_type: struct
      name: Curl_chunker
      pos:
        line_end: 101
        line_start: 93
        source_file: /src/curl/lib/http_chunks.h
    typedefs: []
    union: []
- function_names:
  - Curl_sha512_256_init
  - Curl_sha512_256_update
  - Curl_sha512_256_finish
  - Curl_sha512_256_init
  - Curl_sha512_256_update
  - Curl_sha512_256_finish
  - Curl_sha512_256_init
  - Curl_sha512_256_update
  - Curl_sha512_256_finish
  - CURL_GET_64BIT_BE
  - CURL_PUT_64BIT_BE
  - Curl_rotr64
  - Curl_sha512_256_init
  - Curl_sha512_256_transform
  - Sha512_Ch
  - Sha512_Maj
  - SIG0
  - SIG1
  - sig0
  - sig1
  - SHA2STEP64
  - SHA2STEP64RV
  - SHA512_GET_W_FROM_DATA
  - Wgen
  - Curl_sha512_256_update
  - Curl_sha512_256_finish
  - Curl_sha512_256it
  - Curl_sha512_256_update_i
  - Curl_sha512_256_finish_v
  source_file: /src/curl/lib/curl_sha512_256.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_OPENSSL_SHA512_256
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAS_SHA512_256_IMPLEMENTATION
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '1'
    - item_type: preproc_def
      name: NEED_NETBSD_SHA512_256_WORKAROUND
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_WOLFSSL_SHA512_256
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAS_SHA512_256_IMPLEMENTATION
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_GNUTLS_SHA512_256
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_SHA512_256_BLOCK_SIZE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '128'
    - item_type: preproc_def
      name: CURL_SHA512_256_DIGEST_SIZE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: CURL_SHA512_256_DIGEST_LENGTH
    - item_type: preproc_def
      name: CURL_SHA512_256_DIGEST_SIZE
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: WC_SHA512_256_DIGEST_SIZE
    - item_type: preproc_def
      name: CURL_SHA512_256_BLOCK_SIZE
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: WC_SHA512_256_BLOCK_SIZE
    - item_type: preproc_def
      name: CURL_SHA512_256_BLOCK_SIZE
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: SHA512_256_BLOCK_SIZE
    - item_type: preproc_def
      name: CURL_SHA512_256_DIGEST_SIZE
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: SHA512_256_DIGEST_SIZE
    - item_type: preproc_def
      name: CURL_FORCEINLINE
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: CURL_INLINE __attribute__((always_inline))
    - item_type: preproc_def
      name: CURL_FORCEINLINE
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: __forceinline
    - item_type: preproc_def
      name: CURL_FORCEINLINE
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: CURL_INLINE
    - item_type: preproc_def
      name: SHA512_256_WORD_SIZE_BITS
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '64'
    - item_type: preproc_def
      name: SHA512_256_BYTES_IN_WORD
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: (SHA512_256_WORD_SIZE_BITS / 8)
    - item_type: preproc_def
      name: SHA512_256_HASH_SIZE_WORDS
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SHA512_256_DIGEST_SIZE_WORDS
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: (SHA512_256_HASH_SIZE_WORDS / 2)
    - item_type: preproc_def
      name: CURL_SHA512_256_DIGEST_SIZE
      pos:
        line_end: 386
        line_start: 384
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: (SHA512_256_DIGEST_SIZE_WORDS * SHA512_256_BYTES_IN_WORD)
    - item_type: preproc_def
      name: SHA512_256_BLOCK_SIZE_BITS
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: CURL_SHA512_256_BLOCK_SIZE
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: (SHA512_256_BLOCK_SIZE_BITS / 8)
    - item_type: preproc_def
      name: SHA512_256_BLOCK_SIZE_WORDS
      pos:
        line_end: 402
        line_start: 400
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: (SHA512_256_BLOCK_SIZE_BITS / SHA512_256_WORD_SIZE_BITS)
    - item_type: preproc_def
      name: SHA512_256_SIZE_OF_LEN_ADD_BITS
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: '128'
    - item_type: preproc_def
      name: SHA512_256_SIZE_OF_LEN_ADD
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/curl/lib/curl_sha512_256.c
      type_or_value: (SHA512_256_SIZE_OF_LEN_ADD_BITS / 8)
    structs:
    - fields:
      - name: H[SHA512_256_HASH_SIZE_WORDS]
        type: uint64_t
      - name: buffer[SHA512_256_BLOCK_SIZE_WORDS]
        type: uint64_t
      - name: count
        type: uint64_t
      - name: count_bits_hi
        type: uint64_t
      item_type: struct
      name: Curl_sha512_256ctx
      pos:
        line_end: 428
        line_start: 406
        source_file: /src/curl/lib/curl_sha512_256.c
    typedefs:
    - item_type: typedef
      name: '*Curl_sha512_256_ctx'
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/curl/lib/curl_sha512_256.c
      type: EVP_MD_CTX
    - item_type: typedef
      name: Curl_sha512_256_ctx
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/curl/lib/curl_sha512_256.c
      type: wc_Sha512
    - item_type: typedef
      name: Curl_sha512_256_ctx
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/curl/lib/curl_sha512_256.c
      type: sha512_256_ctx
    - item_type: typedef
      name: Curl_sha512_256_ctx
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/curl/lib/curl_sha512_256.c
      type: Curl_sha512_256ctx
    union: []
- function_names: []
  source_file: /src/curl/lib/ratelimit.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: rate_per_sec
        type: int64_t
      - name: burst_per_sec
        type: int64_t
      - name: rate_per_step
        type: int64_t
      - name: burst_per_step
        type: int64_t
      - name: step_us
        type: timediff_t
      - name: tokens
        type: int64_t
      - name: spare_us
        type: timediff_t
      - name: ts
        type: struct curltime
      item_type: struct
      name: Curl_rlimit
      pos:
        line_end: 66
        line_start: 56
        source_file: /src/curl/lib/ratelimit.h
    typedefs: []
    union: []
- function_names:
  - fileinfo_dtor
  - Curl_wildcard_init
  - Curl_wildcard_dtor
  - Curl_ftp_parselist_data_alloc
  - Curl_ftp_parselist_data_free
  - Curl_ftp_parselist_geterror
  - ftp_pl_get_permission
  - ftp_pl_insert_finfo
  - unix_filetype
  - parse_unix_totalsize
  - parse_unix_permission
  - parse_unix_hlinks
  - parse_unix_user
  - parse_unix_group
  - parse_unix_size
  - parse_unix_time
  - parse_unix_filename
  - parse_unix_symlink
  - parse_unix
  - parse_winnt
  - Curl_ftp_parselist
  source_file: /src/curl/lib/ftplistparser.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FTP_LP_MALFORMATED_PERM
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/curl/lib/ftplistparser.c
      type_or_value: '0x01000000'
    - item_type: preproc_def
      name: MAX_FTPLIST_BUFFER
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/curl/lib/ftplistparser.c
      type_or_value: '10000 '
    structs:
    - fields:
      - name: os_type
        type: "enum {\n    OS_TYPE_UNKNOWN = 0,\n    OS_TYPE_UNIX,\n    OS_TYPE_WIN_NT\n
          \ }"
      - name: state
        type: "union {\n    struct {\n      pl_unix_mainstate main;\n      pl_unix_substate
          sub;\n    } UNIX;\n\n    struct {\n      pl_winNT_mainstate main;\n      pl_winNT_substate
          sub;\n    } NT;\n  }"
      - name: error
        type: CURLcode
      - name: '*file_data'
        type: struct fileinfo
      - name: item_length
        type: unsigned int
      - name: item_offset
        type: size_t
      - name: offsets
        type: "struct {\n    size_t filename;\n    size_t user;\n    size_t group;\n
          \   size_t time;\n    size_t perm;\n    size_t symlink_target;\n  }"
      item_type: struct
      name: ftp_parselist_data
      pos:
        line_end: 173
        line_start: 142
        source_file: /src/curl/lib/ftplistparser.c
    typedefs: []
    union:
    - fields:
      - name: total_dirsize
        type: "enum {\n    PL_UNIX_TOTALSIZE_INIT = 0,\n    PL_UNIX_TOTALSIZE_READING\n
          \ }"
      - name: hlinks
        type: "enum {\n    PL_UNIX_HLINKS_PRESPACE = 0,\n    PL_UNIX_HLINKS_NUMBER\n
          \ }"
      - name: user
        type: "enum {\n    PL_UNIX_USER_PRESPACE = 0,\n    PL_UNIX_USER_PARSING\n
          \ }"
      - name: group
        type: "enum {\n    PL_UNIX_GROUP_PRESPACE = 0,\n    PL_UNIX_GROUP_NAME\n  }"
      - name: size
        type: "enum {\n    PL_UNIX_SIZE_PRESPACE = 0,\n    PL_UNIX_SIZE_NUMBER\n  }"
      - name: time
        type: "enum {\n    PL_UNIX_TIME_PREPART1 = 0,\n    PL_UNIX_TIME_PART1,\n    PL_UNIX_TIME_PREPART2,\n
          \   PL_UNIX_TIME_PART2,\n    PL_UNIX_TIME_PREPART3,\n    PL_UNIX_TIME_PART3\n
          \ }"
      - name: filename
        type: "enum {\n    PL_UNIX_FILENAME_PRESPACE = 0,\n    PL_UNIX_FILENAME_NAME,\n
          \   PL_UNIX_FILENAME_WINDOWSEOL\n  }"
      - name: symlink
        type: "enum {\n    PL_UNIX_SYMLINK_PRESPACE = 0,\n    PL_UNIX_SYMLINK_NAME,\n
          \   PL_UNIX_SYMLINK_PRETARGET1,\n    PL_UNIX_SYMLINK_PRETARGET2,\n    PL_UNIX_SYMLINK_PRETARGET3,\n
          \   PL_UNIX_SYMLINK_PRETARGET4,\n    PL_UNIX_SYMLINK_TARGET,\n    PL_UNIX_SYMLINK_WINDOWSEOL\n
          \ }"
      item_type: union
      name: pl_unix_substate
      pos:
        line_end: 116
        line_start: 65
        source_file: /src/curl/lib/ftplistparser.c
    - fields:
      - name: time
        type: "enum {\n    PL_WINNT_TIME_PRESPACE = 0,\n    PL_WINNT_TIME_TIME\n  }"
      - name: dirorsize
        type: "enum {\n    PL_WINNT_DIRORSIZE_PRESPACE = 0,\n    PL_WINNT_DIRORSIZE_CONTENT\n
          \ }"
      - name: filename
        type: "enum {\n    PL_WINNT_FILENAME_PRESPACE = 0,\n    PL_WINNT_FILENAME_CONTENT,\n
          \   PL_WINNT_FILENAME_WINEOL\n  }"
      item_type: union
      name: pl_winNT_substate
      pos:
        line_end: 139
        line_start: 125
        source_file: /src/curl/lib/ftplistparser.c
- function_names: []
  source_file: /src/curl/lib/curl_md5.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MD5_DIGEST_LEN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/curl_md5.h
      type_or_value: '16'
    structs:
    - fields:
      - name: md5_init_func
        type: Curl_MD5_init_func
      - name: md5_update_func
        type: Curl_MD5_update_func
      - name: md5_final_func
        type: Curl_MD5_final_func
      - name: md5_ctxtsize
        type: unsigned int
      - name: md5_resultlen
        type: unsigned int
      item_type: struct
      name: MD5_params
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/curl/lib/curl_md5.h
    - fields:
      - name: '*md5_hash'
        type: struct MD5_params
      - name: '*md5_hashctx'
        type: void
      item_type: struct
      name: MD5_context
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/curl/lib/curl_md5.h
    typedefs:
    - item_type: typedef
      name: (*Curl_MD5_init_func)(void *context)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/curl/lib/curl_md5.h
      type: CURLcode
    - item_type: typedef
      name: "(*Curl_MD5_update_func)(void *context,\n                                     const
        unsigned char *data,\n                                     unsigned int len)"
      pos:
        line_end: 36
        line_start: 34
        source_file: /src/curl/lib/curl_md5.h
      type: void
    - item_type: typedef
      name: (*Curl_MD5_final_func)(unsigned char *result, void *context)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/curl/lib/curl_md5.h
      type: void
    union: []
- function_names: []
  source_file: /src/curl/lib/cf-https-connect.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_ipv6_scope
  source_file: /src/curl/lib/if2ip.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPV6_SCOPE_GLOBAL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/if2ip.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: IPV6_SCOPE_LINKLOCAL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/if2ip.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: IPV6_SCOPE_SITELOCAL
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/if2ip.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: IPV6_SCOPE_UNIQUELOCAL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/if2ip.h
      type_or_value: '3       '
    - item_type: preproc_def
      name: IPV6_SCOPE_NODELOCAL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/if2ip.h
      type_or_value: '4       '
    - item_type: preproc_def
      name: IFNAMSIZ
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/if2ip.h
      type_or_value: '16'
    - item_type: preproc_def
      name: IFHWADDRLEN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/if2ip.h
      type_or_value: '6'
    - item_type: preproc_def
      name: ifr_name
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/if2ip.h
      type_or_value: 'ifr_ifrn.ifrn_name '
    - item_type: preproc_def
      name: ifr_addr
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/if2ip.h
      type_or_value: 'ifr_ifru.ifru_addr '
    - item_type: preproc_def
      name: ifr_broadaddr
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/if2ip.h
      type_or_value: 'ifr_ifru.ifru_broadaddr '
    - item_type: preproc_def
      name: ifr_netmask
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/if2ip.h
      type_or_value: 'ifr_ifru.ifru_netmask '
    - item_type: preproc_def
      name: ifr_flags
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/if2ip.h
      type_or_value: 'ifr_ifru.ifru_flags '
    - item_type: preproc_def
      name: ifr_hwaddr
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/lib/if2ip.h
      type_or_value: 'ifr_ifru.ifru_hwaddr '
    - item_type: preproc_def
      name: ifr_metric
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/lib/if2ip.h
      type_or_value: 'ifr_ifru.ifru_metric '
    - item_type: preproc_def
      name: ifr_mtu
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/lib/if2ip.h
      type_or_value: 'ifr_ifru.ifru_mtu '
    - item_type: preproc_def
      name: SIOCGIFADDR
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/lib/if2ip.h
      type_or_value: '_IOW(''s'', 102, struct ifreq) '
    structs:
    - fields:
      - name: ifr_ifrn
        type: "union {\n    char ifrn_name[IFNAMSIZ]; /* if name, e.g. \"en0\" */\n
          \ }"
      - name: ifr_ifru
        type: "union {\n    struct sockaddr ifru_addr;\n    struct sockaddr ifru_broadaddr;\n
          \   struct sockaddr ifru_netmask;\n    struct sockaddr ifru_hwaddr;\n    short
          ifru_flags;\n    int ifru_metric;\n    int ifru_mtu;\n  }"
      item_type: struct
      name: ifreq
      pos:
        line_end: 73
        line_start: 57
        source_file: /src/curl/lib/if2ip.h
    typedefs: []
    union: []
- function_names:
  - Curl_data_priority_add_child
  source_file: /src/curl/lib/url.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_URL_LEN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/url.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: CURL_DEFAULT_PROXY_PORT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/url.h
      type_or_value: '1080 '
    - item_type: preproc_def
      name: CURL_DEFAULT_HTTPS_PROXY_PORT
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/curl/lib/url.h
      type_or_value: '443 '
    structs: []
    typedefs:
    - item_type: typedef
      name: Curl_meta_dtor(void *key, size_t key_len, void *meta_data)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/curl/lib/url.h
      type: void
    union: []
- function_names:
  - Curl_read16_le
  - Curl_read32_le
  - Curl_read16_be
  source_file: /src/curl/lib/curl_endian.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tunnel_is_established
  - tunnel_is_failed
  - h1_proxy_is_udp
  - tunnel_reinit
  - tunnel_init
  - h1_tunnel_go_state
  - tunnel_free
  - cf_tunnel_free
  - tunnel_want_send
  - start_CONNECT
  - send_CONNECT
  - on_resp_header_udp
  - on_resp_header
  - single_header
  - recv_CONNECT_resp
  - H1_CONNECT
  - cf_h1_proxy_connect
  - cf_h1_proxy_adjust_pollset
  - cf_h1_proxy_data_pending
  - cf_h1_proxy_destroy
  - cf_h1_proxy_query
  - Curl_cf_h1_proxy_insert_after
  source_file: /src/curl/lib/cf-h1-proxy.c
  types:
    enum:
    - enumerators:
      - name: KEEPON_DONE
      - name: KEEPON_IGNORE
      - name: KEEPON_CONNECT
      item_type: enum
      name: keeponval
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/curl/lib/cf-h1-proxy.c
    preproc_defs:
    - item_type: preproc_def
      name: SELECT_OK
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/curl/lib/cf-h1-proxy.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SELECT_ERROR
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/curl/lib/cf-h1-proxy.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*dest'
        type: struct Curl_peer
      - name: rcvbuf
        type: struct dynbuf
      - name: request_data
        type: struct dynbuf
      - name: nsent
        type: size_t
      - name: headerlines
        type: size_t
      - name: ch
        type: struct Curl_chunker
      - name: httpversion
        type: int
      - name: keepon
        type: "enum keeponval {\n    KEEPON_DONE,\n    KEEPON_CONNECT,\n    KEEPON_IGNORE\n
          \ }"
      - name: cl
        type: curl_off_t
      - name: tunnel_state
        type: h1_tunnel_state
      item_type: struct
      name: h1_tunnel_state
      pos:
        line_end: 74
        line_start: 55
        source_file: /src/curl/lib/cf-h1-proxy.c
    - fields:
      - name: '*ts'
        type: struct h1_tunnel_state
      item_type: struct
      name: cf_h1_proxy_ctx
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/curl/lib/cf-h1-proxy.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/protocol.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PORT_FTP
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/protocol.h
      type_or_value: '21'
    - item_type: preproc_def
      name: PORT_FTPS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/protocol.h
      type_or_value: '990'
    - item_type: preproc_def
      name: PORT_TELNET
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/protocol.h
      type_or_value: '23'
    - item_type: preproc_def
      name: PORT_HTTP
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/protocol.h
      type_or_value: '80'
    - item_type: preproc_def
      name: PORT_HTTPS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/protocol.h
      type_or_value: '443'
    - item_type: preproc_def
      name: PORT_DICT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/protocol.h
      type_or_value: '2628'
    - item_type: preproc_def
      name: PORT_LDAP
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/protocol.h
      type_or_value: '389'
    - item_type: preproc_def
      name: PORT_LDAPS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/protocol.h
      type_or_value: '636'
    - item_type: preproc_def
      name: PORT_TFTP
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/protocol.h
      type_or_value: '69'
    - item_type: preproc_def
      name: PORT_SSH
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/protocol.h
      type_or_value: '22'
    - item_type: preproc_def
      name: PORT_IMAP
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/protocol.h
      type_or_value: '143'
    - item_type: preproc_def
      name: PORT_IMAPS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/protocol.h
      type_or_value: '993'
    - item_type: preproc_def
      name: PORT_POP3
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/protocol.h
      type_or_value: '110'
    - item_type: preproc_def
      name: PORT_POP3S
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/protocol.h
      type_or_value: '995'
    - item_type: preproc_def
      name: PORT_SMB
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/protocol.h
      type_or_value: '445'
    - item_type: preproc_def
      name: PORT_SMBS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/protocol.h
      type_or_value: '445'
    - item_type: preproc_def
      name: PORT_SMTP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/protocol.h
      type_or_value: '25'
    - item_type: preproc_def
      name: PORT_SMTPS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/protocol.h
      type_or_value: '465 '
    - item_type: preproc_def
      name: PORT_RTSP
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/protocol.h
      type_or_value: '554'
    - item_type: preproc_def
      name: PORT_GOPHER
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/protocol.h
      type_or_value: '70'
    - item_type: preproc_def
      name: PORT_SOCKS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/protocol.h
      type_or_value: '1080'
    - item_type: preproc_def
      name: PORT_MQTT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/protocol.h
      type_or_value: '1883'
    - item_type: preproc_def
      name: PORT_MQTTS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/protocol.h
      type_or_value: '8883'
    - item_type: preproc_def
      name: CURLPROTO_WS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/protocol.h
      type_or_value: (1L << 30)
    - item_type: preproc_def
      name: CURLPROTO_WSS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/protocol.h
      type_or_value: ((curl_prot_t)1 << 31)
    - item_type: preproc_def
      name: CURLPROTO_MQTTS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/protocol.h
      type_or_value: (1LL << 32)
    - item_type: preproc_def
      name: CURLPROTO_SOCKS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/protocol.h
      type_or_value: (1LL << 33)
    - item_type: preproc_def
      name: CURLPROTO_64ALL
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/lib/protocol.h
      type_or_value: ((uint64_t)0xffffffffffffffff)
    - item_type: preproc_def
      name: CURLPROTO_REDIR
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/curl/lib/protocol.h
      type_or_value: "(CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_FTP | \\\n                         CURLPROTO_FTPS)"
    - item_type: preproc_def
      name: CURLPROTO_MASK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/protocol.h
      type_or_value: '0x3fffffff'
    - item_type: preproc_def
      name: PROTO_FAMILY_HTTP
      pos:
        line_end: 85
        line_start: 83
        source_file: /src/curl/lib/protocol.h
      type_or_value: "(CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_WS | \\\n                           CURLPROTO_WSS)"
    - item_type: preproc_def
      name: PROTO_FAMILY_FTP
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/lib/protocol.h
      type_or_value: (CURLPROTO_FTP | CURLPROTO_FTPS)
    - item_type: preproc_def
      name: PROTO_FAMILY_POP3
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/lib/protocol.h
      type_or_value: (CURLPROTO_POP3 | CURLPROTO_POP3S)
    - item_type: preproc_def
      name: PROTO_FAMILY_SMB
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/curl/lib/protocol.h
      type_or_value: (CURLPROTO_SMB | CURLPROTO_SMBS)
    - item_type: preproc_def
      name: PROTO_FAMILY_SMTP
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/lib/protocol.h
      type_or_value: (CURLPROTO_SMTP | CURLPROTO_SMTPS)
    - item_type: preproc_def
      name: PROTO_FAMILY_SSH
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/lib/protocol.h
      type_or_value: (CURLPROTO_SCP | CURLPROTO_SFTP)
    - item_type: preproc_def
      name: CURL_LIST_ONLY_PROTOCOL
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/lib/protocol.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PROTOPT_NONE
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/curl/lib/protocol.h
      type_or_value: '0             '
    - item_type: preproc_def
      name: PROTOPT_SSL
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 0)       '
    - item_type: preproc_def
      name: PROTOPT_DUAL
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 1)      '
    - item_type: preproc_def
      name: PROTOPT_CLOSEACTION
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: PROTOPT_DIRLOCK
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/curl/lib/protocol.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: PROTOPT_NONETWORK
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: PROTOPT_NEEDSPWD
      pos:
        line_end: 217
        line_start: 215
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 5)  '
    - item_type: preproc_def
      name: PROTOPT_NOURLQUERY
      pos:
        line_end: 219
        line_start: 217
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 6)  '
    - item_type: preproc_def
      name: PROTOPT_CREDSPERREQUEST
      pos:
        line_end: 222
        line_start: 219
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 7) '
    - item_type: preproc_def
      name: PROTOPT_ALPN
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 8) '
    - item_type: preproc_def
      name: PROTOPT_URLOPTIONS
      pos:
        line_end: 226
        line_start: 224
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 10) '
    - item_type: preproc_def
      name: PROTOPT_PROXY_AS_HTTP
      pos:
        line_end: 230
        line_start: 226
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 11) '
    - item_type: preproc_def
      name: PROTOPT_WILDCARD
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 12)  '
    - item_type: preproc_def
      name: PROTOPT_USERPWDCTRL
      pos:
        line_end: 233
        line_start: 231
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 13) '
    - item_type: preproc_def
      name: PROTOPT_NOTCPPROXY
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 14)  '
    - item_type: preproc_def
      name: PROTOPT_SSL_REUSE
      pos:
        line_end: 237
        line_start: 234
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 15)   '
    - item_type: preproc_def
      name: PROTOPT_CONN_REUSE
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 16)  '
    - item_type: preproc_def
      name: PROTOPT_NO_TRANSFER
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 17) '
    - item_type: preproc_def
      name: PROTOPT_HTTP_PROXY_TUNNEL
      pos:
        line_end: 241
        line_start: 239
        source_file: /src/curl/lib/protocol.h
      type_or_value: '(1 << 18) '
    structs:
    - fields:
      - name: "(*setup_connection)(struct Curl_easy *data,\n                               struct
          connectdata *conn)"
        type: CURLcode
      - name: (*do_it)(struct Curl_easy *data, bool *done)
        type: CURLcode
      - name: (*done)(struct Curl_easy *, CURLcode, bool)
        type: CURLcode
      - name: (*do_more)(struct Curl_easy *, domore *)
        type: CURLcode
      - name: (*connect_it)(struct Curl_easy *data, bool *done)
        type: CURLcode
      - name: (*connecting)(struct Curl_easy *data, bool *done)
        type: CURLcode
      - name: (*doing)(struct Curl_easy *data, bool *done)
        type: CURLcode
      - name: "(*proto_pollset)(struct Curl_easy *data,\n                            struct
          easy_pollset *ps)"
        type: CURLcode
      - name: "(*doing_pollset)(struct Curl_easy *data,\n                            struct
          easy_pollset *ps)"
        type: CURLcode
      - name: "(*domore_pollset)(struct Curl_easy *data,\n                            struct
          easy_pollset *ps)"
        type: CURLcode
      - name: "(*perform_pollset)(struct Curl_easy *data,\n                              struct
          easy_pollset *ps)"
        type: CURLcode
      - name: "(*disconnect)(struct Curl_easy *, struct connectdata *,\n                         bool
          dead_connection)"
        type: CURLcode
      - name: "(*write_resp)(struct Curl_easy *data, const char *buf, size_t blen,\n
          \                        bool is_eos)"
        type: CURLcode
      - name: "(*write_resp_hd)(struct Curl_easy *data,\n                            const
          char *hd, size_t hdlen, bool is_eos)"
        type: CURLcode
      - name: "(*connection_is_dead)(struct Curl_easy *data,\n                             struct
          connectdata *conn)"
        type: bool
      - name: (*attach)(struct Curl_easy *data, struct connectdata *conn)
        type: void
      - name: "(*follow)(struct Curl_easy *data, const char *newurl,\n                     followtype
          type)"
        type: CURLcode
      item_type: struct
      name: Curl_protocol
      pos:
        line_end: 203
        line_start: 116
        source_file: /src/curl/lib/protocol.h
    - fields:
      - name: '*name'
        type: char
      - name: '*run'
        type: struct Curl_protocol
      - name: protocol
        type: curl_prot_t
      - name: family
        type: curl_prot_t
      - name: flags
        type: uint32_t
      - name: defport
        type: uint16_t
      item_type: struct
      name: Curl_scheme
      pos:
        line_end: 252
        line_start: 243
        source_file: /src/curl/lib/protocol.h
    typedefs:
    - item_type: typedef
      name: curl_prot_t
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/curl/lib/protocol.h
      type: curl_off_t
    union: []
- function_names:
  - checkprefix
  source_file: /src/curl/lib/strcase.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - brotli_version
  - zstd_version
  - psl_version
  - idn_version
  - curl_version
  - idn_present
  - https_proxy_present
  - ech_present
  - FEATURE
  - curl_version_info
  source_file: /src/curl/lib/version.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VERSION_PARTS
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/curl/lib/version.c
      type_or_value: '16 '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*present)(curl_version_info_data *info)
        type: int
      - name: bitmask
        type: int
      item_type: struct
      name: feat
      pos:
        line_end: 425
        line_start: 421
        source_file: /src/curl/lib/version.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_addrinfo.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ai_flags
        type: int
      - name: ai_family
        type: int
      - name: ai_socktype
        type: int
      - name: ai_protocol
        type: int
      - name: ai_addrlen
        type: curl_socklen_t
      - name: '*ai_canonname'
        type: char
      - name: '*ai_addr'
        type: struct sockaddr
      - name: '*ai_next'
        type: struct Curl_addrinfo
      item_type: struct
      name: Curl_addrinfo
      pos:
        line_end: 60
        line_start: 51
        source_file: /src/curl/lib/curl_addrinfo.h
    typedefs: []
    union: []
- function_names:
  - our_select
  - Curl_socket_check
  - Curl_poll
  - Curl_pollfds_init
  - Curl_pollfds_reset
  - Curl_pollfds_cleanup
  - cpfds_increase
  - cpfds_add_sock
  - Curl_pollfds_add_sock
  - Curl_pollfds_add_ps
  - Curl_waitfds_init
  - cwfds_add_sock
  - Curl_waitfds_add_ps
  - Curl_pollset_reset
  - Curl_pollset_init
  - Curl_pollset_create
  - Curl_pollset_cleanup
  - Curl_pollset_move
  - Curl_pollset_change
  - Curl_pollset_set
  - Curl_pollset_poll
  - Curl_pollset_check
  - Curl_pollset_want_recv
  - Curl_pollset_want_send
  source_file: /src/curl/lib/select.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/dynhds.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DYNHDS_OPT_NONE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/dynhds.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DYNHDS_OPT_LOWERCASE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/dynhds.h
      type_or_value: (1 << 0)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      - name: namelen
        type: size_t
      - name: valuelen
        type: size_t
      item_type: struct
      name: dynhds_entry
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/curl/lib/dynhds.h
    - fields:
      - name: '**hds'
        type: struct dynhds_entry
      - name: hds_len
        type: size_t
      - name: hds_allc
        type: size_t
      - name: max_entries
        type: size_t
      - name: strs_len
        type: size_t
      - name: max_strs_size
        type: size_t
      - name: opts
        type: int
      item_type: struct
      name: dynhds
      pos:
        line_end: 50
        line_start: 42
        source_file: /src/curl/lib/dynhds.h
    typedefs: []
    union: []
- function_names:
  - get_cf_create
  - debug_set_transport_provider
  - cf_ai_iter_init
  - cf_ai_iter_next
  - cf_ai_iter_has_more
  - cf_ip_attempt_free
  - cf_ip_attempt_new
  - cf_ip_attempt_connect
  - cf_ip_attempt_restart
  - cf_ip_ballers_clear
  - cf_ip_ballers_init
  - cf_ip_ballers_prune
  - cf_ip_ballers_run
  - cf_ip_ballers_shutdown
  - cf_ip_ballers_pollset
  - cf_ip_ballers_pending
  - cf_ip_ballers_max_time
  - cf_ip_ballers_min_reply_ms
  - is_connected
  - cf_ip_happy_init
  - cf_ip_happy_ctx_clear
  - cf_ip_happy_ctx_destroy
  - cf_ip_happy_shutdown
  - cf_ip_happy_adjust_pollset
  - cf_ip_happy_connect
  - cf_ip_happy_data_pending
  - cf_ip_happy_query
  - cf_ip_happy_destroy
  - cf_ip_happy_create
  - cf_ip_happy_insert_after
  source_file: /src/curl/lib/cf-ip-happy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IP_HE_MAX_CONCURRENT_ATTEMPTS
      pos:
        line_end: 740
        line_start: 739
        source_file: /src/curl/lib/cf-ip-happy.c
      type_or_value: '6'
    structs:
    - fields:
      - name: '*cf_create'
        type: cf_ip_connect_create
      - name: transport
        type: uint8_t
      - name: tunnel_proxy
        type: bool
      item_type: struct
      name: transport_provider
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/curl/lib/cf-ip-happy.c
    - fields:
      - name: '*cf'
        type: struct Curl_cfilter
      - name: ai_family
        type: int
      - name: n
        type: unsigned int
      item_type: struct
      name: cf_ai_iter
      pos:
        line_end: 121
        line_start: 117
        source_file: /src/curl/lib/cf-ip-happy.c
    - fields:
      - name: '*next'
        type: struct cf_ip_attempt
      - name: addr
        type: struct Curl_sockaddr_ex
      - name: '*cf'
        type: struct Curl_cfilter
      - name: '*cf_create'
        type: cf_ip_connect_create
      - name: started
        type: struct curltime
      - name: result
        type: CURLcode
      - name: ai_family
        type: int
      - name: transport_in
        type: uint8_t
      - name: transport_out
        type: uint8_t
      - name: error
        type: int
      item_type: struct
      name: cf_ip_attempt
      pos:
        line_end: 170
        line_start: 155
        source_file: /src/curl/lib/cf-ip-happy.c
    - fields:
      - name: '*running'
        type: struct cf_ip_attempt
      - name: '*winner'
        type: struct cf_ip_attempt
      - name: addr_iter
        type: struct cf_ai_iter
      - name: '*cf_create'
        type: cf_ip_connect_create
      - name: started
        type: struct curltime
      - name: last_attempt_started
        type: struct curltime
      - name: attempt_delay_ms
        type: timediff_t
      - name: last_attempt_ai_family
        type: int
      - name: max_concurrent
        type: uint32_t
      - name: transport_in
        type: uint8_t
      - name: transport_out
        type: uint8_t
      item_type: struct
      name: cf_ip_ballers
      pos:
        line_end: 266
        line_start: 251
        source_file: /src/curl/lib/cf-ip-happy.c
    - fields:
      - name: '*peer'
        type: struct Curl_peer
      - name: '*cf_create'
        type: cf_ip_connect_create
      - name: state
        type: cf_connect_state
      - name: ballers
        type: struct cf_ip_ballers
      - name: started
        type: struct curltime
      - name: transport_in
        type: uint8_t
      - name: transport_out
        type: uint8_t
      item_type: struct
      name: cf_ip_happy_ctx
      pos:
        line_end: 678
        line_start: 669
        source_file: /src/curl/lib/cf-ip-happy.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/http_negotiate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dnscache_entry_free
  - create_dnscache_id
  - dnscache_entry_is_stale
  - dnscache_prune
  - dnscache_get
  - dnscache_lock
  - dnscache_unlock
  - Curl_dnscache_prune
  - Curl_dnscache_clear
  - fetch_addr
  - Curl_dnscache_get
  - num_addresses
  - dns_shuffle_addr
  - dnscache_ai_has_family
  - dnscache_entry_create
  - Curl_dnscache_mk_entry
  - Curl_dnscache_mk_entry2
  - Curl_dns_entry_set_https_rr
  - dnscache_add_addr
  - Curl_dnscache_add
  - Curl_dnscache_add_negative
  - Curl_dns_entry_unlink
  - dnscache_entry_dtor
  - Curl_dnscache_init
  - Curl_dnscache_destroy
  - Curl_loadhostpairs
  source_file: /src/curl/lib/dnscache.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HOSTCACHE_LEN
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/dnscache.c
      type_or_value: '(255 + 7) '
    - item_type: preproc_def
      name: MAX_DNS_CACHE_SIZE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/dnscache.c
      type_or_value: '29999'
    structs:
    - fields:
      - name: now
        type: struct curltime
      - name: oldest_ms
        type: timediff_t
      - name: max_age_ms
        type: timediff_t
      item_type: struct
      name: dnscache_prune_data
      pos:
        line_end: 95
        line_start: 91
        source_file: /src/curl/lib/dnscache.c
    typedefs: []
    union: []
- function_names:
  - my_sha256_init
  - my_sha256_update
  - my_sha256_final
  - my_sha256_init
  - my_sha256_update
  - my_sha256_final
  - my_sha256_init
  - my_sha256_update
  - my_sha256_final
  - my_sha256_init
  - my_sha256_update
  - my_sha256_final
  - my_sha256_init
  - my_sha256_update
  - my_sha256_final
  - my_sha256_init
  - my_sha256_update
  - my_sha256_final
  - WPA_GET_BE32
  - WPA_PUT_BE32
  - WPA_PUT_BE64
  - RORc
  - Sha256_Ch
  - Sha256_Maj
  - Sha256_S
  - Sha256_R
  - Sigma0
  - Sigma1
  - Gamma0
  - Gamma1
  - sha256_compress
  - RND
  - my_sha256_init
  - my_sha256_update
  - my_sha256_final
  - Curl_sha256it
  source_file: /src/curl/lib/sha256.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_SHA256_BLOCK_SIZE
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/curl/lib/sha256.c
      type_or_value: '64'
    structs:
    - fields:
      - name: '*openssl_ctx'
        type: EVP_MD_CTX
      item_type: struct
      name: ossl_sha256_ctx
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/curl/lib/sha256.c
    - fields:
      - name: hCryptProv
        type: HCRYPTPROV
      - name: hHash
        type: HCRYPTHASH
      item_type: struct
      name: sha256_ctx
      pos:
        line_end: 202
        line_start: 199
        source_file: /src/curl/lib/sha256.c
    - fields:
      - name: length
        type: uint64_t
      - name: state[8]
        type: unsigned long
      - name: buf[64]
        type: unsigned char
      item_type: struct
      name: sha256_state
      pos:
        line_end: 281
        line_start: 277
        source_file: /src/curl/lib/sha256.c
    typedefs:
    - item_type: typedef
      name: my_sha256_ctx
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/curl/lib/sha256.c
      type: ossl_sha256_ctx
    - item_type: typedef
      name: my_sha256_ctx
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/curl/lib/sha256.c
      type: wc_Sha256
    - item_type: typedef
      name: my_sha256_ctx
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/curl/lib/sha256.c
      type: sha256_ctx
    - item_type: typedef
      name: my_sha256_ctx
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/curl/lib/sha256.c
      type: psa_hash_operation_t
    - item_type: typedef
      name: my_sha256_ctx
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/curl/lib/sha256.c
      type: CC_SHA256_CTX
    - item_type: typedef
      name: my_sha256_ctx
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/curl/lib/sha256.c
      type: sha256_ctx
    - item_type: typedef
      name: my_sha256_ctx
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/curl/lib/sha256.c
      type: sha256_state
    union: []
- function_names:
  - zalloc_cb
  - zfree_cb
  - process_zlib_error
  - exit_zlib
  - process_trailer
  - inflate_stream
  - deflate_do_init
  - deflate_do_write
  - deflate_do_close
  - gzip_do_init
  - gzip_do_write
  - gzip_do_close
  - brotli_map_error
  - brotli_do_init
  - brotli_do_write
  - brotli_do_close
  - Curl_zstd_alloc
  - Curl_zstd_free
  - zstd_do_init
  - zstd_do_write
  - zstd_do_close
  - Curl_get_content_encodings
  - error_do_init
  - error_do_write
  - error_do_close
  - find_unencode_writer
  - Curl_build_unencoding_stack
  - Curl_build_unencoding_stack
  - Curl_get_content_encodings
  source_file: /src/curl/lib/content_encoding.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONTENT_ENCODING_DEFAULT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/content_encoding.c
      type_or_value: '"identity"'
    - item_type: preproc_def
      name: MAX_ENCODE_STACK
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/content_encoding.c
      type_or_value: '5'
    - item_type: preproc_def
      name: DECOMPRESS_BUFFER_SIZE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/content_encoding.c
      type_or_value: '16384 '
    structs:
    - fields:
      - name: super
        type: struct Curl_cwriter
      - name: zlib_init
        type: zlibInitState
      - name: buffer[DECOMPRESS_BUFFER_SIZE]
        type: char
      - name: trailerlen
        type: uInt
      - name: z
        type: z_stream
      item_type: struct
      name: zlib_writer
      pos:
        line_end: 85
        line_start: 79
        source_file: /src/curl/lib/content_encoding.c
    - fields:
      - name: super
        type: struct Curl_cwriter
      - name: buffer[DECOMPRESS_BUFFER_SIZE]
        type: char
      - name: '*br'
        type: BrotliDecoderState
      item_type: struct
      name: brotli_writer
      pos:
        line_end: 366
        line_start: 362
        source_file: /src/curl/lib/content_encoding.c
    - fields:
      - name: super
        type: struct Curl_cwriter
      - name: '*zds'
        type: ZSTD_DStream
      - name: buffer[DECOMPRESS_BUFFER_SIZE]
        type: char
      item_type: struct
      name: zstd_writer
      pos:
        line_end: 498
        line_start: 494
        source_file: /src/curl/lib/content_encoding.c
    typedefs: []
    union: []
- function_names:
  - splay_compare
  - Curl_splay
  - Curl_splayinsert
  - Curl_splaygetbest
  - Curl_splayremove
  - Curl_splayset
  - Curl_splayget
  source_file: /src/curl/lib/splay.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curl_md4.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MD4_DIGEST_LENGTH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/curl_md4.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - curl_simple_lock_lock
  - curl_simple_lock_unlock
  - curl_simple_lock_lock
  - curl_simple_lock_unlock
  - curl_simple_lock_lock
  - curl_simple_lock_unlock
  source_file: /src/curl/lib/easy_lock.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: curl_simple_lock
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/easy_lock.h
      type_or_value: SRWLOCK
    - item_type: preproc_def
      name: CURL_SIMPLE_LOCK_INIT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/easy_lock.h
      type_or_value: SRWLOCK_INIT
    - item_type: preproc_def
      name: curl_simple_lock
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/easy_lock.h
      type_or_value: atomic_int
    - item_type: preproc_def
      name: CURL_SIMPLE_LOCK_INIT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/easy_lock.h
      type_or_value: '0'
    - item_type: preproc_def
      name: curl_simple_lock
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/lib/easy_lock.h
      type_or_value: pthread_mutex_t
    - item_type: preproc_def
      name: CURL_SIMPLE_LOCK_INIT
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/lib/easy_lock.h
      type_or_value: PTHREAD_MUTEX_INITIALIZER
    structs: []
    typedefs: []
    union: []
- function_names:
  - wakeup_eventfd
  - wakeup_pipe
  - wakeup_socketpair
  - wakeup_inet
  - Curl_wakeup_init
  - Curl_wakeup_signal
  - Curl_wakeup_consume
  - Curl_wakeup_destroy
  source_file: /src/curl/lib/socketpair.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INADDR_LOOPBACK
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/curl/lib/socketpair.c
      type_or_value: '0x7f000001'
    - item_type: preproc_def
      name: wakeup_write
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/curl/lib/socketpair.c
      type_or_value: write
    - item_type: preproc_def
      name: wakeup_read
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/curl/lib/socketpair.c
      type_or_value: read
    - item_type: preproc_def
      name: wakeup_close
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/curl/lib/socketpair.c
      type_or_value: close
    - item_type: preproc_def
      name: wakeup_write
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/curl/lib/socketpair.c
      type_or_value: swrite
    - item_type: preproc_def
      name: wakeup_read
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/curl/lib/socketpair.c
      type_or_value: sread
    - item_type: preproc_def
      name: wakeup_close
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/curl/lib/socketpair.c
      type_or_value: sclose
    structs: []
    typedefs: []
    union:
    - fields:
      - name: inaddr
        type: struct sockaddr_in
      - name: addr
        type: struct sockaddr
      item_type: union
      name: a
      pos:
        line_end: 151
        line_start: 148
        source_file: /src/curl/lib/socketpair.c
- function_names:
  - Curl_setopt_SSLVERSION
  source_file: /src/curl/lib/setopt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/getinfo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curl_dbg_lock
  - curl_dbg_unlock
  - curl_dbg_cleanup
  - error_bt_callback
  - full_callback
  - dump_bt
  - curl_dbg_memdebug
  - curl_dbg_memlimit
  - countcheck
  - curl_dbg_malloc
  - curl_dbg_calloc
  - curl_dbg_strdup
  - curl_dbg_wcsdup
  - curl_dbg_realloc
  - curl_dbg_free
  - curl_dbg_socket
  - curl_dbg_socketpair
  - curl_dbg_accept
  - curl_dbg_accept4
  - curl_dbg_mark_sclose
  - curl_dbg_sclose
  - curl_dbg_fopen
  - curl_dbg_freopen
  - curl_dbg_fdopen
  - curl_dbg_fclose
  - curl_dbg_vlog
  - curl_dbg_log_locked
  - curl_dbg_log
  source_file: /src/curl/lib/memdebug.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: size_t
      - name: mem[1]
        type: "union {\n    curl_off_t o;\n    double d;\n    void *p;\n  }"
      item_type: struct
      name: memdebug
      pos:
        line_end: 46
        line_start: 37
        source_file: /src/curl/lib/memdebug.c
    typedefs: []
    union: []
- function_names:
  - Curl_idn_decode
  source_file: /src/curl/lib/idn.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_req_init
  - Curl_req_soft_reset
  - Curl_req_start
  - Curl_req_done
  - Curl_req_hard_reset
  - Curl_req_free
  - xfer_send
  - req_send_buffer_flush
  - req_set_upload_done
  - req_flush
  - add_from_client
  - req_send_buffer_add
  - Curl_req_send
  - Curl_req_sendbuf_empty
  - Curl_req_want_send
  - Curl_req_want_recv
  - Curl_req_done_sending
  - Curl_req_send_more
  - Curl_req_abort_sending
  - Curl_req_stop_send_recv
  source_file: /src/curl/lib/request.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_mutex_init
  - Curl_mutex_acquire
  - Curl_mutex_release
  - Curl_mutex_destroy
  - Curl_cond_init
  - Curl_cond_destroy
  - Curl_mutex_init
  - Curl_mutex_acquire
  - Curl_mutex_release
  - Curl_mutex_destroy
  - Curl_cond_init
  - Curl_cond_destroy
  source_file: /src/curl/lib/curl_threads.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_THREAD_RETURN_T
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: curl_mutex_t
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: pthread_mutex_t
    - item_type: preproc_def
      name: curl_thread_t
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: pthread_t *
    - item_type: preproc_def
      name: curl_thread_t_null
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: (pthread_t *)0
    - item_type: preproc_def
      name: curl_cond_t
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: pthread_cond_t
    - item_type: preproc_def
      name: CURL_THREAD_RETURN_T
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: DWORD
    - item_type: preproc_def
      name: CURL_STDCALL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: WINAPI
    - item_type: preproc_def
      name: curl_mutex_t
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: CRITICAL_SECTION
    - item_type: preproc_def
      name: curl_thread_t
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: HANDLE
    - item_type: preproc_def
      name: curl_thread_t_null
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: (HANDLE)0
    - item_type: preproc_def
      name: curl_cond_t
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/curl_threads.h
      type_or_value: CONDITION_VARIABLE
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/openssl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSL_get1_peer_certificate
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/curl/lib/vtls/openssl.h
      type_or_value: SSL_get_peer_certificate
    structs:
    - fields:
      - name: '*ssl_ctx'
        type: SSL_CTX
      - name: '*ssl'
        type: SSL
      - name: '*bio_method'
        type: BIO_METHOD
      - name: io_result
        type: CURLcode
      - name: blocked_ssl_write_len
        type: int
      item_type: struct
      name: ossl_ctx
      pos:
        line_end: 123
        line_start: 107
        source_file: /src/curl/lib/vtls/openssl.h
    typedefs:
    - item_type: typedef
      name: "Curl_ossl_ctx_setup_cb(struct Curl_cfilter *cf,\n                                        struct
        Curl_easy *data,\n                                        void *user_data)"
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/curl/lib/vtls/openssl.h
      type: CURLcode
    - item_type: typedef
      name: Curl_ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/curl/lib/vtls/openssl.h
      type: int
    - item_type: typedef
      name: "Curl_ossl_init_session_reuse_cb(struct Curl_cfilter *cf,\n                                                 struct
        Curl_easy *data,\n                                                 struct
        alpn_spec *alpns,\n                                                 struct
        Curl_ssl_session *scs,\n                                                 bool
        *do_early_data)"
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/curl/lib/vtls/openssl.h
      type: CURLcode
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/mbedtls.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pmatch
  - hostmatch
  - Curl_cert_hostcheck
  source_file: /src/curl/lib/vtls/hostcheck.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/wolfssl.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ssl_ctx'
        type: struct WOLFSSL_CTX
      - name: '*ssl'
        type: struct WOLFSSL
      - name: io_result
        type: CURLcode
      - name: hs_result
        type: CURLcode
      - name: io_send_blocked_len
        type: int
      item_type: struct
      name: wssl_ctx
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/curl/lib/vtls/wolfssl.h
    typedefs:
    - item_type: typedef
      name: "Curl_wssl_ctx_setup_cb(struct Curl_cfilter *cf,\n                                        struct
        Curl_easy *data,\n                                        void *user_data)"
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/curl/lib/vtls/wolfssl.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_wssl_init_session_reuse_cb(struct Curl_cfilter *cf,\n                                                 struct
        Curl_easy *data,\n                                                 struct
        alpn_spec *alpns,\n                                                 struct
        Curl_ssl_session *scs,\n                                                 bool
        *do_early_data)"
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/curl/lib/vtls/wolfssl.h
      type: CURLcode
    union: []
- function_names:
  - spack_enc8
  - spack_dec8
  - spack_enc16
  - spack_dec16
  - spack_enc32
  - spack_dec32
  - spack_enc64
  - spack_dec64
  - spack_encstr16
  - spack_decstr16
  - spack_encdata16
  - spack_decdata16
  - Curl_ssl_session_pack
  - Curl_ssl_session_unpack
  source_file: /src/curl/lib/vtls/vtls_spack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_SPACK_VERSION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/vtls/vtls_spack.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: CURL_SPACK_IETF_ID
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/vtls/vtls_spack.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: CURL_SPACK_VALID_UNTIL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/vtls/vtls_spack.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: CURL_SPACK_TICKET
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/vtls/vtls_spack.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: CURL_SPACK_ALPN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/vtls/vtls_spack.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: CURL_SPACK_EARLYDATA
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/vtls/vtls_spack.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: CURL_SPACK_QUICTP
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/vtls/vtls_spack.c
      type_or_value: '0x07'
    structs: []
    typedefs: []
    union: []
- function_names:
  - wssl_tls13_secret_callback
  - wssl_log_tls12_secret
  - wssl_do_file_type
  - wssl_bio_cf_create
  - wssl_bio_cf_destroy
  - wssl_bio_cf_ctrl
  - wssl_bio_cf_out_write
  - wssl_bio_cf_in_read
  - wssl_bio_cf_init_methods
  - wssl_bio_cf_free_methods
  - wssl_bio_cf_init_methods
  - wssl_bio_cf_free_methods
  - Curl_wssl_cache_session
  - wssl_vtls_new_session_cb
  - wssl_on_session_reuse
  - wssl_setup_session
  - wssl_populate_x509_store
  - wssl_x509_share_free
  - wssl_cached_x509_store_expired
  - wssl_cached_x509_store_different
  - wssl_get_cached_x509_store
  - wssl_set_cached_x509_store
  - Curl_wssl_setup_x509_store
  - wssl_add_default_ciphers
  - wssl_legacy_CTX_set_min_proto_version
  - wssl_legacy_CTX_set_max_proto_version
  - wssl_client_cert
  - ssl_version
  - wssl_init_ciphers
  - wssl_init_curves
  - wssl_init_ssl_handle
  - wssl_init_ech
  - Curl_wssl_ctx_init
  - Curl_wssl_need_httpsrr
  - wssl_connect_step1
  - wssl_strerror
  - Curl_wssl_verify_pinned
  - wssl_send_earlydata
  - wssl_handshake
  - wssl_send
  - wssl_shutdown
  - wssl_close
  - wssl_recv
  - Curl_wssl_version
  - wssl_init
  - wssl_cleanup
  - wssl_data_pending
  - Curl_wssl_report_handshake
  - wssl_connect
  - wssl_random
  - wssl_sha256sum
  - wssl_get_internals
  source_file: /src/curl/lib/vtls/wolfssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WOLFSSL_BIO_CTRL_GET_CLOSE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: BIO_CTRL_GET_CLOSE
    - item_type: preproc_def
      name: WOLFSSL_BIO_CTRL_SET_CLOSE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: BIO_CTRL_SET_CLOSE
    - item_type: preproc_def
      name: WOLFSSL_BIO_CTRL_FLUSH
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: BIO_CTRL_FLUSH
    - item_type: preproc_def
      name: WOLFSSL_BIO_CTRL_DUP
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: BIO_CTRL_DUP
    - item_type: preproc_def
      name: wolfSSL_BIO_set_retry_write
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: BIO_set_retry_write
    - item_type: preproc_def
      name: wolfSSL_BIO_set_retry_read
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: BIO_set_retry_read
    - item_type: preproc_def
      name: MPROTO_WSSL_X509_KEY
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: '"tls:wssl:x509:share"'
    - item_type: preproc_def
      name: wolfSSL_CTX_set_min_proto_version
      pos:
        line_end: 911
        line_start: 910
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: wssl_legacy_CTX_set_min_proto_version
    - item_type: preproc_def
      name: wolfSSL_CTX_set_max_proto_version
      pos:
        line_end: 912
        line_start: 911
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: wssl_legacy_CTX_set_max_proto_version
    - item_type: preproc_def
      name: QUIC_GROUPS
      pos:
        line_end: 1079
        line_start: 1078
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: '"P-256:P-384:P-521"'
    - item_type: preproc_def
      name: MAX_CIPHER_LEN
      pos:
        line_end: 1081
        line_start: 1080
        source_file: /src/curl/lib/vtls/wolfssl.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: group
        type: word16
      - name: '*name'
        type: char
      item_type: struct
      name: group_name_map
      pos:
        line_end: 224
        line_start: 221
        source_file: /src/curl/lib/vtls/wolfssl.c
    - fields:
      - name: '*CAfile'
        type: char
      - name: '*store'
        type: WOLFSSL_X509_STORE
      - name: time
        type: struct curltime
      item_type: struct
      name: wssl_x509_share
      pos:
        line_end: 687
        line_start: 683
        source_file: /src/curl/lib/vtls/wolfssl.c
    typedefs: []
    union: []
- function_names:
  - c_memmem
  - add_certs_data_to_store
  - add_certs_file_to_store
  - cert_get_name_string
  - get_num_host_info
  - get_alt_name_info
  - Curl_verify_host
  - Curl_verify_certificate
  source_file: /src/curl/lib/vtls/schannel_verify.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BACKEND
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/vtls/schannel_verify.c
      type_or_value: ((struct schannel_ssl_backend_data *)connssl->backend)
    - item_type: preproc_def
      name: MAX_CAFILE_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/vtls/schannel_verify.c
      type_or_value: '(1024 * 1024) '
    - item_type: preproc_def
      name: BEGIN_CERT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/vtls/schannel_verify.c
      type_or_value: '"-----BEGIN CERTIFICATE-----"'
    - item_type: preproc_def
      name: END_CERT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/vtls/schannel_verify.c
      type_or_value: '"\n-----END CERTIFICATE-----"'
    - item_type: preproc_def
      name: CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/lib/vtls/schannel_verify.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: CERT_NAME_SEARCH_ALL_NAMES_FLAG
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/curl/lib/vtls/schannel_verify.c
      type_or_value: '0x2'
    structs:
    - fields:
      - name: cbSize
        type: DWORD
      - name: hRestrictedRoot
        type: HCERTSTORE
      - name: hRestrictedTrust
        type: HCERTSTORE
      - name: hRestrictedOther
        type: HCERTSTORE
      - name: cAdditionalStore
        type: DWORD
      - name: '*rghAdditionalStore'
        type: HCERTSTORE
      - name: dwFlags
        type: DWORD
      - name: dwUrlRetrievalTimeout
        type: DWORD
      - name: MaximumCachedCertificates
        type: DWORD
      - name: CycleDetectionModulus
        type: DWORD
      - name: hExclusiveRoot
        type: HCERTSTORE
      - name: hExclusiveTrustedPeople
        type: HCERTSTORE
      - name: dwExclusiveFlags
        type: DWORD
      item_type: struct
      name: cert_chain_engine_config_win8
      pos:
        line_end: 71
        line_start: 57
        source_file: /src/curl/lib/vtls/schannel_verify.c
    - fields:
      - name: cbSize
        type: DWORD
      - name: hRestrictedRoot
        type: HCERTSTORE
      - name: hRestrictedTrust
        type: HCERTSTORE
      - name: hRestrictedOther
        type: HCERTSTORE
      - name: cAdditionalStore
        type: DWORD
      - name: '*rghAdditionalStore'
        type: HCERTSTORE
      - name: dwFlags
        type: DWORD
      - name: dwUrlRetrievalTimeout
        type: DWORD
      - name: MaximumCachedCertificates
        type: DWORD
      - name: CycleDetectionModulus
        type: DWORD
      - name: hExclusiveRoot
        type: HCERTSTORE
      - name: hExclusiveTrustedPeople
        type: HCERTSTORE
      item_type: struct
      name: cert_chain_engine_config_win7
      pos:
        line_end: 92
        line_start: 79
        source_file: /src/curl/lib/vtls/schannel_verify.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/rustls.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getASN1Element_
  - getASN1Element
  - searchOID
  - bool2str
  - octet2str
  - bit2str
  - int2str
  - utf8asn1str
  - encodeOID
  - OID2str
  - GTime2str
  - UTime2str
  - ASN1tostr
  - encodeDN
  - Curl_parseX509
  - dumpAlgo
  - ssl_push_certinfo
  - ssl_push_certinfo_dyn
  - do_pubkey_field
  - do_pubkey
  - DNtostr
  - Curl_extract_certinfo
  source_file: /src/curl/lib/vtls/x509asn1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_ASN1_MAX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/vtls/x509asn1.c
      type_or_value: '((size_t)0x40000)      '
    - item_type: preproc_def
      name: CURL_ASN1_MAX_RECURSIONS
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/lib/vtls/x509asn1.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*numoid'
        type: char
      - name: '*textoid'
        type: char
      item_type: struct
      name: Curl_OID
      pos:
        line_end: 58
        line_start: 55
        source_file: /src/curl/lib/vtls/x509asn1.c
    typedefs: []
    union: []
- function_names:
  - tls_log_func
  - gtls_push
  - gtls_pull
  - gtls_init
  - gtls_cleanup
  - showtime
  - load_file
  - unload_file
  - cf_gtls_handshake
  - gnutls_do_file_type
  - gnutls_set_ssl_version_min_max
  - Curl_gtls_shared_creds_create
  - Curl_gtls_shared_creds_up_ref
  - Curl_gtls_shared_creds_free
  - gtls_populate_creds
  - gtls_shared_creds_expired
  - gtls_shared_creds_different
  - gtls_get_cached_creds
  - gtls_shared_creds_hash_free
  - gtls_set_cached_creds
  - Curl_gtls_client_trust_setup
  - gtls_get_ietf_proto
  - Curl_gtls_cache_session
  - cf_gtls_update_session_id
  - gtls_handshake_cb
  - gtls_set_priority
  - gtls_client_init
  - keylog_callback
  - gtls_on_session_reuse
  - Curl_gtls_ctx_init
  - gtls_connect_step1
  - pkp_pin_peer_pubkey
  - Curl_gtls_report_handshake
  - gtls_msg_verify_result
  - gtls_infof_cert
  - gtls_verify_ocsp_status
  - gtls_chain_get_der
  - gtls_verify_cert
  - Curl_gtls_verifyserver
  - gtls_verifyserver
  - gtls_send_earlydata
  - gtls_connect_common
  - gtls_connect
  - gtls_data_pending
  - gtls_send
  - gtls_shutdown
  - gtls_close
  - gtls_recv
  - Curl_gtls_version
  - gtls_random
  - gtls_sha256sum
  - gtls_cert_status_request
  - gtls_get_internals
  source_file: /src/curl/lib/vtls/gtls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GNUTLS_CIPHERS
      pos:
        line_end: 314
        line_start: 312
        source_file: /src/curl/lib/vtls/gtls.c
      type_or_value: "\"NORMAL:%PROFILE_MEDIUM:-ARCFOUR-128:\" \\\n  \"-CTYPE-ALL:+CTYPE-X509\""
    - item_type: preproc_def
      name: GNUTLS_SRP
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/curl/lib/vtls/gtls.c
      type_or_value: '"+SRP"'
    - item_type: preproc_def
      name: QUIC_PRIORITY
      pos:
        line_end: 324
        line_start: 319
        source_file: /src/curl/lib/vtls/gtls.c
      type_or_value: "\"NORMAL:%PROFILE_MEDIUM:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:\"
        \\\n  \"+AES-256-GCM:+CHACHA20-POLY1305:+AES-128-CCM:-GROUP-ALL:\" \\\n  \"+GROUP-SECP256R1:+GROUP-X25519:+GROUP-SECP384R1:+GROUP-SECP521R1:\"
        \\\n  \"%DISABLE_TLS13_COMPAT_MODE\""
    - item_type: preproc_def
      name: MPROTO_GTLS_X509_KEY
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/curl/lib/vtls/gtls.c
      type_or_value: '"tls:gtls:x509:share"'
    structs:
    - fields:
      - name: gtls
        type: struct gtls_ctx
      item_type: struct
      name: gtls_ssl_backend_data
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/curl/lib/vtls/gtls.c
    - fields:
      - name: '*certs'
        type: gnutls_datum_t
      - name: num_certs
        type: unsigned int
      item_type: struct
      name: gtls_cert_chain
      pos:
        line_end: 1556
        line_start: 1553
        source_file: /src/curl/lib/vtls/gtls.c
    typedefs: []
    union: []
- function_names:
  - CURLECH_ENABLED
  - Curl_ssl_init
  - Curl_ssl_cleanup
  - Curl_ssl_close_all
  - Curl_ssl_set_engine
  - Curl_ssl_set_engine_default
  - Curl_ssl_engines_list
  - Curl_ssl_free_certinfo
  - Curl_ssl_random
  - Curl_ssl_cert_status_request
  - Curl_ssl_supports
  - Curl_ssl_cfilter_add
  - Curl_ssl_cfilter_remove
  - Curl_ssl_cf_get_config
  - Curl_ssl_cf_get_primary_config
  source_file: /src/curl/lib/vtls/vtls.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSLSUPP_CA_PATH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: SSLSUPP_CERTINFO
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: SSLSUPP_PINNEDPUBKEY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: SSLSUPP_SSL_CTX
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: SSLSUPP_HTTPS_PROXY
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: SSLSUPP_TLS13_CIPHERSUITES
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 5) '
    - item_type: preproc_def
      name: SSLSUPP_CAINFO_BLOB
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: SSLSUPP_ECH
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: SSLSUPP_CA_CACHE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: SSLSUPP_CIPHER_LIST
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 9) '
    - item_type: preproc_def
      name: SSLSUPP_SIGNATURE_ALGORITHMS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 10) '
    - item_type: preproc_def
      name: SSLSUPP_ISSUERCERT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 11) '
    - item_type: preproc_def
      name: SSLSUPP_SSL_EC_CURVES
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 12) '
    - item_type: preproc_def
      name: SSLSUPP_CRLFILE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 13) '
    - item_type: preproc_def
      name: SSLSUPP_ISSUERCERT_BLOB
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1 << 14) '
    - item_type: preproc_def
      name: CURLECH_DISABLE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURLECH_GREASE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURLECH_ENABLE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CURLECH_HARD
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ALPN_ACCEPTED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '"ALPN: server accepted "'
    - item_type: preproc_def
      name: VTLS_INFOF_NO_ALPN
      pos:
        line_end: 64
        line_start: 62
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '"ALPN: server did not agree on a protocol. Uses default."'
    - item_type: preproc_def
      name: VTLS_INFOF_ALPN_OFFER_1STR
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '"ALPN: curl offers %s"'
    - item_type: preproc_def
      name: VTLS_INFOF_ALPN_ACCEPTED
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: ALPN_ACCEPTED "%.*s"
    - item_type: preproc_def
      name: VTLS_INFOF_NO_ALPN_DEFERRED
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '"ALPN: deferred handshake for early data without specific protocol."'
    - item_type: preproc_def
      name: VTLS_INFOF_ALPN_DEFERRED
      pos:
        line_end: 73
        line_start: 71
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '"ALPN: deferred handshake for early data using ''%.*s''."'
    - item_type: preproc_def
      name: CURL_IETF_PROTO_UNKNOWN
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: CURL_IETF_PROTO_SSL3
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '0x0300'
    - item_type: preproc_def
      name: CURL_IETF_PROTO_TLS1
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '0x0301'
    - item_type: preproc_def
      name: CURL_IETF_PROTO_TLS1_1
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '0x0302'
    - item_type: preproc_def
      name: CURL_IETF_PROTO_TLS1_2
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '0x0303'
    - item_type: preproc_def
      name: CURL_IETF_PROTO_TLS1_3
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '0x0304'
    - item_type: preproc_def
      name: CURL_IETF_PROTO_DTLS1
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '0xFEFF'
    - item_type: preproc_def
      name: CURL_IETF_PROTO_DTLS1_2
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '0xFEFD'
    - item_type: preproc_def
      name: MAX_PINNED_PUBKEY_SIZE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '(1024 * 1024) '
    - item_type: preproc_def
      name: CURL_X509_STR_MAX
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '100000'
    - item_type: preproc_def
      name: MAX_ALLOWED_CERT_AMOUNT
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '100'
    - item_type: preproc_def
      name: SSL_CB_MAX_SIZE
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '85'
    - item_type: preproc_def
      name: SSL_SHUTDOWN_TIMEOUT
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/curl/lib/vtls/vtls.h
      type_or_value: '10000 '
    structs:
    - fields:
      - name: '*dest'
        type: struct Curl_peer
      - name: '*sni'
        type: char
      - name: '*scache_key'
        type: char
      - name: type
        type: ssl_peer_type
      - name: transport
        type: uint8_t
      item_type: struct
      name: ssl_peer
      pos:
        line_end: 96
        line_start: 90
        source_file: /src/curl/lib/vtls/vtls.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/apple.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUPPORTS_SecTrustEvaluateWithError
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/vtls/apple.c
      type_or_value: '1'
    - item_type: preproc_def
      name: REQUIRES_SecTrustEvaluateWithError
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/vtls/apple.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SUPPORTS_SecOCSP
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/vtls/apple.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - map_error
  - rustls_failf
  - cr_data_pending
  - read_cb
  - write_cb
  - tls_recv_more
  - cr_recv
  - cr_flush_out
  - cr_send
  - cr_verify_none
  - read_file_into
  - cr_get_selected_ciphers
  - cr_keylog_log_cb
  - init_config_builder
  - init_config_builder_alpn
  - init_config_builder_verifier_crl
  - init_config_builder_verifier
  - init_config_builder_platform_verifier
  - init_config_builder_keylog
  - init_config_builder_client_auth
  - cr_ech_need_httpsrr
  - init_config_builder_ech
  - cr_init_backend
  - cr_set_negotiated_alpn
  - cr_connect
  - cr_get_internals
  - cr_shutdown
  - cr_close
  - cr_version
  - cr_random
  - cr_cleanup
  source_file: /src/curl/lib/vtls/rustls.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*config'
        type: struct rustls_client_config
      - name: '*conn'
        type: struct rustls_connection
      - name: plain_out_buffered
        type: size_t
      item_type: struct
      name: rustls_ssl_backend_data
      pos:
        line_end: 53
        line_start: 47
        source_file: /src/curl/lib/vtls/rustls.c
    - fields:
      - name: '*cf'
        type: struct Curl_cfilter
      - name: '*data'
        type: struct Curl_easy
      item_type: struct
      name: io_ctx
      pos:
        line_end: 95
        line_start: 92
        source_file: /src/curl/lib/vtls/rustls.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/gtls.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: creds
        type: gnutls_certificate_credentials_t
      - name: '*CAfile'
        type: char
      - name: time
        type: struct curltime
      - name: refcount
        type: size_t
      item_type: struct
      name: gtls_shared_creds
      pos:
        line_end: 56
        line_start: 50
        source_file: /src/curl/lib/vtls/gtls.h
    - fields:
      - name: session
        type: gnutls_session_t
      - name: '*shared_creds'
        type: struct gtls_shared_creds
      - name: io_result
        type: CURLcode
      item_type: struct
      name: gtls_ctx
      pos:
        line_end: 71
        line_start: 63
        source_file: /src/curl/lib/vtls/gtls.h
    typedefs:
    - item_type: typedef
      name: "Curl_gtls_ctx_setup_cb(struct Curl_cfilter *cf,\n                                        struct
        Curl_easy *data,\n                                        void *user_data)"
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/curl/lib/vtls/gtls.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_gtls_init_session_reuse_cb(struct Curl_cfilter *cf,\n                                                 struct
        Curl_easy *data,\n                                                 struct
        alpn_spec *alpns,\n                                                 struct
        Curl_ssl_session *scs,\n                                                 bool
        *do_early_data)"
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/curl/lib/vtls/gtls.h
      type: CURLcode
    union: []
- function_names:
  - Curl_tls_keylog_open
  - Curl_tls_keylog_close
  - Curl_tls_keylog_enabled
  - Curl_tls_keylog_file_name
  - Curl_tls_keylog_write_line
  - Curl_tls_keylog_write
  - Curl_tls_keylog_enabled
  - Curl_tls_keylog_file_name
  source_file: /src/curl/lib/vtls/keylog.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SCH_DEV
  - SCH_DEV_SHOWBOOL
  - SCH_DEV
  - SCH_DEV_SHOWBOOL
  - InitSecBuffer
  - InitSecBufferDesc
  - schannel_set_ssl_version_min_max
  - CIPHEROPTION
  - get_alg_id_by_name
  - set_ssl_ciphers
  - get_cert_location
  - get_client_cert
  - acquire_sspi_handle
  - schannel_acquire_credential_handle
  - schannel_connect_step1
  - schannel_error
  - schannel_pkp_pin_peer_pubkey
  - ensure_encoding_size
  - ensure_decoding_size
  - schannel_connect_step2
  - valid_cert_encoding
  - traverse_cert_store
  - cert_counter_callback
  - add_cert_to_certinfo
  - schannel_session_free
  - schannel_connect_step3
  - schannel_connect
  - schannel_recv_renegotiate
  - schannel_send
  - schannel_recv
  - schannel_data_pending
  - schannel_shutdown
  - schannel_close
  - schannel_init
  - schannel_cleanup
  - schannel_version
  - schannel_random
  - schannel_checksum
  - schannel_sha256sum
  - schannel_get_internals
  - Curl_schannel_get_cached_cert_store
  - schannel_cert_share_free
  - Curl_schannel_set_cached_cert_store
  source_file: /src/curl/lib/vtls/schannel.c
  types:
    enum:
    - enumerators:
      - name: SCH_RENEG_CALLER_IS_RECV
      - name: SCH_RENEG_CALLER_IS_SEND
      item_type: enum
      name: schannel_renegotiate_caller_t
      pos:
        line_end: 1764
        line_start: 1761
        source_file: /src/curl/lib/vtls/schannel.c
    preproc_defs:
    - item_type: preproc_def
      name: SP_PROT_TLS1_0_CLIENT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: SP_PROT_TLS1_CLIENT
    - item_type: preproc_def
      name: SP_PROT_TLS1_1_CLIENT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: SP_PROT_TLS1_2_CLIENT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: SP_PROT_TLS1_3_CLIENT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: SCH_USE_STRONG_CRYPTO
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '0x00400000'
    - item_type: preproc_def
      name: SECBUFFER_ALERT
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '17'
    - item_type: preproc_def
      name: CURL_SCHANNEL_BUFFER_INIT_SIZE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: CURL_SCHANNEL_BUFFER_FREE_SIZE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: CERT_THUMBPRINT_STR_LEN
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '40'
    - item_type: preproc_def
      name: CERT_THUMBPRINT_DATA_LEN
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '20'
    - item_type: preproc_def
      name: PKCS12_NO_PERSIST_KEY
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: CERT_FIND_HAS_PRIVATE_KEY
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: (21 << CERT_COMPARE_SHIFT)
    - item_type: preproc_def
      name: MPROTO_SCHANNEL_CERT_SHARE_KEY
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '"tls:schannel:cert:share"'
    - item_type: preproc_def
      name: NUM_CIPHERS
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '47 '
    - item_type: preproc_def
      name: MAX_RENEG_BLOCK_TIME
      pos:
        line_end: 1773
        line_start: 1772
        source_file: /src/curl/lib/vtls/schannel.c
      type_or_value: '(60 * 1000) '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: id
        type: int
      item_type: struct
      name: algo
      pos:
        line_end: 208
        line_start: 205
        source_file: /src/curl/lib/vtls/schannel.c
    - fields:
      - name: '*data'
        type: struct Curl_easy
      - name: result
        type: CURLcode
      - name: idx
        type: int
      - name: certs_count
        type: int
      item_type: struct
      name: Adder_args
      pos:
        line_end: 1544
        line_start: 1539
        source_file: /src/curl/lib/vtls/schannel.c
    typedefs:
    - item_type: typedef
      name: "(*Read_crt_func)(const CERT_CONTEXT *ccert_context,\n                              bool
        reverse_order, void *arg)"
      pos:
        line_end: 1500
        line_start: 1499
        source_file: /src/curl/lib/vtls/schannel.c
      type: bool
    - item_type: typedef
      name: '*(APIENTRY *WINE_GET_VERSION_FN)(void)'
      pos:
        line_end: 2595
        line_start: 2595
        source_file: /src/curl/lib/vtls/schannel.c
      type: char
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/cipher_suite.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GOOD_SCACHE
  - cf_ssl_peer_key_add_path
  - cf_ssl_peer_key_add_hash
  - cf_ssl_peer_key_add_mtls
  - cf_ssl_peer_key_is_global
  - Curl_ssl_peer_key_build
  - Curl_ssl_peer_key_make
  - cf_ssl_scache_get
  - cf_ssl_scache_session_ldestroy
  - Curl_ssl_session_create
  - Curl_ssl_session_create2
  - Curl_ssl_session_destroy
  - cf_ssl_scache_clear_peer
  - cf_ssl_scache_peer_set_obj
  - cf_ssl_cache_peer_update
  - cf_ssl_scache_peer_init
  - cf_scache_session_remove
  - cf_scache_session_expired
  - cf_scache_peer_remove_expired
  - cf_scache_peer_remove_non13
  - Curl_ssl_scache_create
  - Curl_ssl_scache_destroy
  - Curl_ssl_scache_use
  - Curl_ssl_scache_lock
  - Curl_ssl_scache_unlock
  - cf_ssl_scache_match_auth
  - cf_ssl_find_peer_by_key
  - cf_ssl_get_free_peer
  - cf_ssl_add_peer
  - cf_scache_peer_add_session
  - cf_scache_add_session
  - Curl_ssl_scache_put
  - Curl_ssl_scache_return
  - Curl_ssl_scache_take
  - Curl_ssl_scache_add_obj
  - Curl_ssl_scache_get_obj
  - Curl_ssl_scache_remove_all
  - Curl_ssl_scache_is_locked
  - cf_ssl_scache_peer_set_hmac
  - cf_ssl_find_peer_by_hmac
  - Curl_ssl_session_import
  - Curl_ssl_session_export
  source_file: /src/curl/lib/vtls/vtls_scache.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_SCACHE_MAGIC
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/vtls/vtls_scache.c
      type_or_value: '0x000e1551'
    - item_type: preproc_def
      name: CURL_SSLS_LOCAL_SUFFIX
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/curl/lib/vtls/vtls_scache.c
      type_or_value: '":L"'
    - item_type: preproc_def
      name: CURL_SSLS_GLOBAL_SUFFIX
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/curl/lib/vtls/vtls_scache.c
      type_or_value: '":G"'
    - item_type: preproc_def
      name: CURL_SSL_TICKET_MAX
      pos:
        line_end: 1079
        line_start: 1078
        source_file: /src/curl/lib/vtls/vtls_scache.c
      type_or_value: (16 * 1024)
    structs:
    - fields:
      - name: '*ssl_peer_key'
        type: char
      - name: '*clientcert'
        type: char
      - name: '*key_passwd'
        type: char
      - name: '*srp_username'
        type: char
      - name: '*srp_password'
        type: char
      - name: sessions
        type: struct Curl_llist
      - name: '*sobj'
        type: void
      - name: '*sobj_free'
        type: Curl_ssl_scache_obj_dtor
      - name: key_salt[CURL_SHA256_DIGEST_LENGTH]
        type: unsigned char
      - name: key_hmac[CURL_SHA256_DIGEST_LENGTH]
        type: unsigned char
      - name: max_sessions
        type: size_t
      - name: age
        type: long
      item_type: struct
      name: Curl_ssl_scache_peer
      pos:
        line_end: 64
        line_start: 49
        source_file: /src/curl/lib/vtls/vtls_scache.c
    - fields:
      - name: magic
        type: unsigned int
      - name: '*peers'
        type: struct Curl_ssl_scache_peer
      - name: peer_count
        type: size_t
      - name: default_lifetime_secs
        type: int
      - name: age
        type: long
      item_type: struct
      name: Curl_ssl_scache
      pos:
        line_end: 361
        line_start: 354
        source_file: /src/curl/lib/vtls/vtls_scache.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/schannel.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CF_CTX_CALL_DATA
  source_file: /src/curl/lib/vtls/vtls_int.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALPN_HTTP_1_0_LENGTH
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ALPN_HTTP_1_0
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '"http/1.0"'
    - item_type: preproc_def
      name: ALPN_HTTP_1_1_LENGTH
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ALPN_HTTP_1_1
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '"http/1.1"'
    - item_type: preproc_def
      name: ALPN_H2_LENGTH
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ALPN_H2
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '"h2"'
    - item_type: preproc_def
      name: ALPN_H3_LENGTH
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ALPN_H3
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '"h3"'
    - item_type: preproc_def
      name: ALPN_NAME_MAX
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '10'
    - item_type: preproc_def
      name: ALPN_ENTRIES_MAX
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ALPN_PROTO_BUF_MAX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: (ALPN_ENTRIES_MAX * (ALPN_NAME_MAX + 1))
    - item_type: preproc_def
      name: CURL_SSL_IO_NEED_NONE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_SSL_IO_NEED_RECV
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CURL_SSL_IO_NEED_SEND
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CURL_SSL_EARLY_MAX
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl/lib/vtls/vtls_int.h
      type_or_value: (64 * 1024)
    structs:
    - fields:
      - name: entries[ALPN_ENTRIES_MAX][ALPN_NAME_MAX]
        type: char
      - name: count
        type: size_t
      item_type: struct
      name: alpn_spec
      pos:
        line_end: 58
        line_start: 55
        source_file: /src/curl/lib/vtls/vtls_int.h
    - fields:
      - name: data[ALPN_PROTO_BUF_MAX]
        type: unsigned char
      - name: len
        type: int
      item_type: struct
      name: alpn_proto_buf
      pos:
        line_end: 63
        line_start: 60
        source_file: /src/curl/lib/vtls/vtls_int.h
    - fields:
      - name: '*ssl_impl'
        type: struct Curl_ssl
      - name: peer
        type: struct ssl_peer
      - name: '*alpn'
        type: struct alpn_spec
      - name: '*backend'
        type: void
      - name: call_data
        type: struct cf_call_data
      - name: handshake_done
        type: struct curltime
      - name: negotiated
        type: "struct {\n    char *alpn;                     /* ALPN value or NULL
          */\n  }"
      - name: earlydata
        type: struct bufq
      - name: earlydata_max
        type: size_t
      - name: earlydata_skip
        type: size_t
      - name: state
        type: ssl_connection_state
      - name: connecting_state
        type: ssl_connect_state
      - name: earlydata_state
        type: ssl_earlydata_state
      - name: io_need
        type: int
      item_type: struct
      name: ssl_connect_data
      pos:
        line_end: 133
        line_start: 112
        source_file: /src/curl/lib/vtls/vtls_int.h
    - fields:
      - name: info
        type: curl_ssl_backend
      - name: supports
        type: unsigned int
      - name: sizeof_ssl_backend_data
        type: size_t
      - name: (*init)(void)
        type: int
      - name: (*cleanup)(void)
        type: void
      - name: (*version)(char *buffer, size_t size)
        type: size_t
      - name: "(*shut_down)(struct Curl_cfilter *cf, struct Curl_easy *data,\n                        bool
          send_shutdown, bool *done)"
        type: CURLcode
      - name: (*data_pending)(struct Curl_cfilter *cf, const struct Curl_easy *data)
        type: bool
      - name: "(*random)(struct Curl_easy *data, unsigned char *entropy,\n                     size_t
          length)"
        type: CURLcode
      - name: (*cert_status_request)(void)
        type: bool
      - name: "(*do_connect)(struct Curl_cfilter *cf, struct Curl_easy *data,\n                         bool
          *done)"
        type: CURLcode
      - name: "(*adjust_pollset)(struct Curl_cfilter *cf, struct Curl_easy *data,\n
          \                            struct easy_pollset *ps)"
        type: CURLcode
      - name: '*(*get_internals)(struct ssl_connect_data *connssl, CURLINFO info)'
        type: void
      - name: (*close)(struct Curl_cfilter *cf, struct Curl_easy *data)
        type: void
      - name: (*close_all)(struct Curl_easy *data)
        type: void
      - name: (*set_engine)(struct Curl_easy *data, const char *engine)
        type: CURLcode
      - name: (*set_engine_default)(struct Curl_easy *data)
        type: CURLcode
      - name: '*(*engines_list)(struct Curl_easy *data)'
        type: struct curl_slist
      - name: "(*sha256sum)(const unsigned char *input, size_t inputlen,\n                        unsigned
          char *sha256sum, size_t sha256sumlen)"
        type: CURLcode
      - name: "(*recv_plain)(struct Curl_cfilter *cf, struct Curl_easy *data,\n                         char
          *buf, size_t len, size_t *pnread)"
        type: CURLcode
      - name: "(*send_plain)(struct Curl_cfilter *cf, struct Curl_easy *data,\n                         const
          void *mem, size_t len, size_t *pnwritten)"
        type: CURLcode
      - name: "(*get_channel_binding)(struct Curl_easy *data, int sockindex,\n                                  struct
          dynbuf *binding)"
        type: CURLcode
      item_type: struct
      name: Curl_ssl
      pos:
        line_end: 187
        line_start: 137
        source_file: /src/curl/lib/vtls/vtls_int.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/apple.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "Curl_vtls_get_cert_der(struct Curl_cfilter *cf,\n                                        struct
        Curl_easy *data,\n                                        void *user_data,\n
        \                                       size_t i,\n                                        unsigned
        char **pder,\n                                        size_t *pder_len)"
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/curl/lib/vtls/apple.h
      type: CURLcode
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/vtls_spack.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/vtls_config.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*CApath'
        type: char
      - name: '*CAfile'
        type: char
      - name: '*issuercert'
        type: char
      - name: '*clientcert'
        type: char
      - name: '*cipher_list'
        type: char
      - name: '*cipher_list13'
        type: char
      - name: '*signature_algorithms'
        type: char
      - name: '*pinned_key'
        type: char
      - name: '*CRLfile'
        type: char
      - name: '*cert_type'
        type: char
      - name: '*key'
        type: char
      - name: '*key_type'
        type: char
      - name: '*key_passwd'
        type: char
      - name: '*cert_blob'
        type: struct curl_blob
      - name: '*ca_info_blob'
        type: struct curl_blob
      - name: '*issuercert_blob'
        type: struct curl_blob
      - name: '*key_blob'
        type: struct curl_blob
      - name: '*curves'
        type: char
      - name: version_max
        type: uint32_t
      - name: ssl_options
        type: uint8_t
      - name: version
        type: uint8_t
      item_type: struct
      name: ssl_primary_config
      pos:
        line_end: 62
        line_start: 31
        source_file: /src/curl/lib/vtls/vtls_config.h
    - fields:
      - name: primary
        type: struct ssl_primary_config
      - name: certverifyresult
        type: long
      - name: fsslctx
        type: curl_ssl_ctx_callback
      - name: '*fsslctxp'
        type: void
      item_type: struct
      name: ssl_config_data
      pos:
        line_end: 82
        line_start: 64
        source_file: /src/curl/lib/vtls/vtls_config.h
    - fields:
      - name: ca_cache_timeout
        type: int
      item_type: struct
      name: ssl_general_config
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/curl/lib/vtls/vtls_config.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/vtls_scache.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_SCACHE_MAX_13_LIFETIME_SEC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/vtls/vtls_scache.h
      type_or_value: (60 * 60 * 24 * 7)
    - item_type: preproc_def
      name: CURL_SCACHE_MAX_12_LIFETIME_SEC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/vtls/vtls_scache.h
      type_or_value: (60 * 60 * 24)
    structs:
    - fields:
      - name: '*sdata'
        type: void
      - name: sdata_len
        type: size_t
      - name: valid_until
        type: curl_off_t
      - name: ietf_tls_id
        type: int
      - name: '*alpn'
        type: char
      - name: earlydata_max
        type: size_t
      - name: '*quic_tp'
        type: unsigned char
      - name: quic_tp_len
        type: size_t
      - name: list
        type: struct Curl_llist_node
      item_type: struct
      name: Curl_ssl_session
      pos:
        line_end: 149
        line_start: 139
        source_file: /src/curl/lib/vtls/vtls_scache.h
    typedefs:
    - item_type: typedef
      name: Curl_ssl_scache_obj_dtor(void *sobj)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/curl/lib/vtls/vtls_scache.h
      type: void
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/schannel_int.h
  types:
    enum:
    - enumerators:
      - name: TlsParametersCngAlgUsageKeyExchange
      - name: TlsParametersCngAlgUsageCipher
      - name: TlsParametersCngAlgUsageSignature
      - name: TlsParametersCngAlgUsageDigest
      - name: TlsParametersCngAlgUsageCertSig
      item_type: enum
      name: _eTlsAlgorithmUsage
      pos:
        line_end: 54
        line_start: 48
        source_file: /src/curl/lib/vtls/schannel_int.h
    preproc_defs:
    - item_type: preproc_def
      name: CERT_STORE_PROV_MEMORY
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/curl/lib/vtls/schannel_int.h
      type_or_value: ((LPCSTR)(size_t)2)
    - item_type: preproc_def
      name: CERT_STORE_PROV_SYSTEM_A
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/vtls/schannel_int.h
      type_or_value: ((LPCSTR)(size_t)9)
    - item_type: preproc_def
      name: CERT_STORE_PROV_SYSTEM_W
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/vtls/schannel_int.h
      type_or_value: ((LPCSTR)(size_t)10)
    - item_type: preproc_def
      name: SCH_CREDENTIALS_VERSION
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/vtls/schannel_int.h
      type_or_value: '0x00000005'
    structs:
    - fields:
      - name: eAlgorithmUsage
        type: eTlsAlgorithmUsage
      - name: strCngAlgId
        type: UNICODE_STRING
      - name: cChainingModes
        type: DWORD
      - name: rgstrChainingModes
        type: PUNICODE_STRING
      - name: dwMinBitLength
        type: DWORD
      - name: dwMaxBitLength
        type: DWORD
      item_type: struct
      name: _CRYPTO_SETTINGS
      pos:
        line_end: 64
        line_start: 57
        source_file: /src/curl/lib/vtls/schannel_int.h
    - fields:
      - name: cAlpnIds
        type: DWORD
      - name: rgstrAlpnIds
        type: PUNICODE_STRING
      - name: grbitDisabledProtocols
        type: DWORD
      - name: cDisabledCrypto
        type: DWORD
      - name: pDisabledCrypto
        type: PCRYPTO_SETTINGS
      - name: dwFlags
        type: DWORD
      item_type: struct
      name: _TLS_PARAMETERS
      pos:
        line_end: 74
        line_start: 67
        source_file: /src/curl/lib/vtls/schannel_int.h
    - fields:
      - name: dwVersion
        type: DWORD
      - name: dwCredFormat
        type: DWORD
      - name: cCreds
        type: DWORD
      - name: '*paCred'
        type: PCCERT_CONTEXT
      - name: hRootStore
        type: HCERTSTORE
      - name: cMappers
        type: DWORD
      - name: '**aphMappers'
        type: struct _HMAPPER
      - name: dwSessionLifespan
        type: DWORD
      - name: dwFlags
        type: DWORD
      - name: cTlsParameters
        type: DWORD
      - name: pTlsParameters
        type: PTLS_PARAMETERS
      item_type: struct
      name: _SCH_CREDENTIALS
      pos:
        line_end: 91
        line_start: 77
        source_file: /src/curl/lib/vtls/schannel_int.h
    - fields:
      - name: cred_handle
        type: CredHandle
      - name: '*sni_hostname'
        type: TCHAR
      - name: client_cert_store
        type: HCERTSTORE
      - name: refcount
        type: int
      item_type: struct
      name: Curl_schannel_cred
      pos:
        line_end: 100
        line_start: 95
        source_file: /src/curl/lib/vtls/schannel_int.h
    - fields:
      - name: ctxt_handle
        type: CtxtHandle
      item_type: struct
      name: Curl_schannel_ctxt
      pos:
        line_end: 104
        line_start: 102
        source_file: /src/curl/lib/vtls/schannel_int.h
    - fields:
      - name: length
        type: size_t
      - name: offset
        type: size_t
      - name: '*buffer'
        type: unsigned char
      item_type: struct
      name: sbuffer
      pos:
        line_end: 111
        line_start: 107
        source_file: /src/curl/lib/vtls/schannel_int.h
    - fields:
      - name: encdata
        type: struct sbuffer
      - name: decdata
        type: struct sbuffer
      - name: '*cred'
        type: struct Curl_schannel_cred
      - name: '*ctxt'
        type: struct Curl_schannel_ctxt
      - name: stream_sizes
        type: SecPkgContext_StreamSizes
      - name: req_flags
        type: unsigned long
      - name: recv_unrecoverable_err
        type: CURLcode
      - name: renegotiate_state
        type: "struct schannel_renegotiate_state {\n    bool started;\n    struct
          curltime start_time;\n    int io_need;\n  }"
      item_type: struct
      name: schannel_ssl_backend_data
      pos:
        line_end: 137
        line_start: 113
        source_file: /src/curl/lib/vtls/schannel_int.h
    - fields:
      - name: started
        type: bool
      - name: start_time
        type: struct curltime
      - name: io_need
        type: int
      item_type: struct
      name: schannel_renegotiate_state
      pos:
        line_end: 125
        line_start: 121
        source_file: /src/curl/lib/vtls/schannel_int.h
    - fields:
      - name: CAinfo_blob_digest[CURL_SHA256_DIGEST_LENGTH]
        type: unsigned char
      - name: CAinfo_blob_size
        type: size_t
      - name: '*CAfile'
        type: char
      - name: cert_store
        type: HCERTSTORE
      - name: time
        type: struct curltime
      item_type: struct
      name: schannel_cert_share
      pos:
        line_end: 147
        line_start: 139
        source_file: /src/curl/lib/vtls/schannel_int.h
    - fields:
      - name: size
        type: DWORD
      - name: bData
        type: "union {\n    struct in_addr  ia;  /* 04 bytes */\n    struct in6_addr
          ia6; /* 16 bytes */\n  }"
      item_type: struct
      name: num_ip_data
      pos:
        line_end: 158
        line_start: 152
        source_file: /src/curl/lib/vtls/schannel_int.h
    typedefs: []
    union: []
- function_names:
  - CS_ZIP_IDX
  - CS_ENTRY
  - cs_str_to_zip
  - cs_zip_to_str
  - Curl_cipher_suite_lookup_id
  - cs_is_separator
  - Curl_cipher_suite_walk_str
  - Curl_cipher_suite_get_str
  source_file: /src/curl/lib/vtls/cipher_suite.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CS_LIST_LEN
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/curl/lib/vtls/cipher_suite.c
      type_or_value: CURL_ARRAYSIZE(cs_list)
    structs:
    - fields:
      - name: id
        type: uint16_t
      - name: zip[6]
        type: uint8_t
      item_type: struct
      name: cs_entry
      pos:
        line_end: 156
        line_start: 153
        source_file: /src/curl/lib/vtls/cipher_suite.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/hostcheck.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/x509asn1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_ASN1_BOOLEAN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CURL_ASN1_INTEGER
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CURL_ASN1_BIT_STRING
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CURL_ASN1_OCTET_STRING
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CURL_ASN1_NULL
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CURL_ASN1_OBJECT_IDENTIFIER
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '6'
    - item_type: preproc_def
      name: CURL_ASN1_ENUMERATED
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '10'
    - item_type: preproc_def
      name: CURL_ASN1_UTF8_STRING
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '12'
    - item_type: preproc_def
      name: CURL_ASN1_NUMERIC_STRING
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '18'
    - item_type: preproc_def
      name: CURL_ASN1_PRINTABLE_STRING
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '19'
    - item_type: preproc_def
      name: CURL_ASN1_TELETEX_STRING
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '20'
    - item_type: preproc_def
      name: CURL_ASN1_IA5_STRING
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '22'
    - item_type: preproc_def
      name: CURL_ASN1_UTC_TIME
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '23'
    - item_type: preproc_def
      name: CURL_ASN1_GENERALIZED_TIME
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '24'
    - item_type: preproc_def
      name: CURL_ASN1_VISIBLE_STRING
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '26'
    - item_type: preproc_def
      name: CURL_ASN1_UNIVERSAL_STRING
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '28'
    - item_type: preproc_def
      name: CURL_ASN1_BMP_STRING
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/lib/vtls/x509asn1.h
      type_or_value: '30'
    structs:
    - fields:
      - name: '*header'
        type: char
      - name: '*beg'
        type: char
      - name: '*end'
        type: char
      - name: eclass
        type: unsigned char
      - name: tag
        type: unsigned char
      item_type: struct
      name: Curl_asn1Element
      pos:
        line_end: 85
        line_start: 78
        source_file: /src/curl/lib/vtls/x509asn1.h
    - fields:
      - name: certificate
        type: struct Curl_asn1Element
      - name: version
        type: struct Curl_asn1Element
      - name: serialNumber
        type: struct Curl_asn1Element
      - name: signatureAlgorithm
        type: struct Curl_asn1Element
      - name: signature
        type: struct Curl_asn1Element
      - name: issuer
        type: struct Curl_asn1Element
      - name: notBefore
        type: struct Curl_asn1Element
      - name: notAfter
        type: struct Curl_asn1Element
      - name: subject
        type: struct Curl_asn1Element
      - name: subjectPublicKeyInfo
        type: struct Curl_asn1Element
      - name: subjectPublicKeyAlgorithm
        type: struct Curl_asn1Element
      - name: subjectPublicKey
        type: struct Curl_asn1Element
      - name: issuerUniqueID
        type: struct Curl_asn1Element
      - name: subjectUniqueID
        type: struct Curl_asn1Element
      - name: extensions
        type: struct Curl_asn1Element
      item_type: struct
      name: Curl_X509certificate
      pos:
        line_end: 104
        line_start: 88
        source_file: /src/curl/lib/vtls/x509asn1.h
    typedefs: []
    union: []
- function_names:
  - DECLARE_PKEY_PARAM_BIGNUM
  - FREE_PKEY_PARAM_BIGNUM
  - DECLARE_PKEY_PARAM_BIGNUM
  - push_certinfo
  - pubkey_show
  - print_pubkey_BN
  - asn1_object_dump
  - X509V3_ext
  - get_pkey_rsa
  - get_pkey_dsa
  - get_pkey_dh
  - ossl_certchain
  - ossl_bio_cf_create
  - ossl_bio_cf_destroy
  - ossl_bio_cf_ctrl
  - ossl_bio_cf_out_write
  - ossl_bio_cf_in_read
  - ossl_bio_cf_method_create
  - ossl_bio_cf_method_free
  - ossl_keylog_callback
  - ossl_log_tls12_secret
  - SSL_ERROR_to_str
  - ossl_strerror
  - passwd_callback
  - rand_enough
  - ossl_seed
  - ossl_do_file_type
  - ssl_ui_reader
  - ssl_ui_writer
  - is_pkcs11_uri
  - use_certificate_blob
  - use_privatekey_blob
  - use_certificate_chain_blob
  - enginecheck
  - providercheck
  - engineload
  - providerload
  - pkcs12load
  - client_cert
  - x509_name_oneline
  - ossl_init
  - ossl_cleanup
  - ossl_set_engine
  - ossl_set_engine_default
  - ossl_engines_list
  - ossl_provider_cleanup
  - ossl_set_provider
  - ossl_shutdown
  - ossl_close
  - ossl_close_all
  - ossl_verifyhost
  - verifystatus
  - ssl_msg_type
  - tls_rt_type
  - ossl_set_ssl_version_min_max
  - Curl_ossl_add_session
  - ossl_new_session_cb
  - load_cacert_from_memory
  - ossl_win_load_store
  - ossl_windows_load_anchors
  - ossl_load_trust_anchors
  - ossl_populate_x509_store
  - oss_x509_share_free
  - ossl_cached_x509_store_expired
  - ossl_cached_x509_store_different
  - ossl_get_cached_x509_store
  - ossl_set_cached_x509_store
  - Curl_ssl_setup_x509_store
  - ossl_init_session_and_alpns
  - Curl_ossl_need_httpsrr
  - ossl_init_ech
  - Curl_ossl_need_httpsrr
  - ossl_init_ssl
  - ossl_init_method
  - OSSL_CURVE_CAST
  - OSSL_CURVE_CAST
  - OSSL_SIGALG_CAST
  - ossl_on_session_reuse
  - Curl_ossl_report_handshake
  - ossl_connect_step1
  - ossl_trace_ech_retry_configs
  - ossl_connect_step2
  - ossl_pkp_pin_peer_pubkey
  - infof_certstack
  - ossl_check_issuer
  - ossl_check_pinned_key
  - ossl_infof_cert
  - ossl_chain_get_der
  - ossl_apple_verify
  - ossl_connect_step3
  - ossl_send_earlydata
  - ossl_connect
  - ossl_data_pending
  - ossl_send
  - ossl_recv
  - ossl_get_channel_binding
  - Curl_ossl_version
  - ossl_random
  - ossl_sha256sum
  - ossl_cert_status_request
  - ossl_get_internals
  source_file: /src/curl/lib/vtls/openssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_SSL_CTX_SET_DEFAULT_READ_BUFFER_LEN
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_EVP_PKEY_GET_PARAMS
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OSSL_PACKAGE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '"LibreSSL"'
    - item_type: preproc_def
      name: OSSL_PACKAGE
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '"AWS-LC"'
    - item_type: preproc_def
      name: OSSL_PACKAGE
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '"BoringSSL"'
    - item_type: preproc_def
      name: OSSL_PACKAGE
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '"quictls"'
    - item_type: preproc_def
      name: OSSL_PACKAGE
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '"OpenSSL"'
    - item_type: preproc_def
      name: ossl_valsize_t
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: numcert_t
    - item_type: preproc_def
      name: SSL_FILETYPE_ENGINE
      pos:
        line_end: 817
        line_start: 816
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '42'
    - item_type: preproc_def
      name: SSL_FILETYPE_PKCS12
      pos:
        line_end: 820
        line_start: 819
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '43'
    - item_type: preproc_def
      name: SSL_FILETYPE_PROVIDER
      pos:
        line_end: 823
        line_start: 822
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '44'
    - item_type: preproc_def
      name: MAX_PROVIDER_LEN
      pos:
        line_end: 1757
        line_start: 1756
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '128 '
    - item_type: preproc_def
      name: MPROTO_OSSL_X509_KEY
      pos:
        line_end: 3156
        line_start: 3155
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '"tls:ossl:x509:share"'
    - item_type: preproc_def
      name: EVP_PKEY_get_security_bits
      pos:
        line_end: 4478
        line_start: 4477
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: EVP_PKEY_security_bits
    - item_type: preproc_def
      name: MAX_CERT_NAME_LENGTH
      pos:
        line_end: 4601
        line_start: 4600
        source_file: /src/curl/lib/vtls/openssl.c
      type_or_value: '2048'
    structs:
    - fields:
      - name: '*cert_id'
        type: char
      - name: '*cert'
        type: X509
      item_type: struct
      name: params
      pos:
        line_end: 1182
        line_start: 1179
        source_file: /src/curl/lib/vtls/openssl.c
    - fields:
      - name: '*CAfile'
        type: char
      - name: '*store'
        type: X509_STORE
      - name: time
        type: struct curltime
      item_type: struct
      name: ossl_x509_share
      pos:
        line_end: 3163
        line_start: 3157
        source_file: /src/curl/lib/vtls/openssl.c
    - fields:
      - name: '*sk'
        type: STACK_OF
      - name: num_certs
        type: size_t
      item_type: struct
      name: ossl_certs_ctx
      pos:
        line_end: 4656
        line_start: 4653
        source_file: /src/curl/lib/vtls/openssl.c
    typedefs:
    - item_type: typedef
      name: numcert_t
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/curl/lib/vtls/openssl.c
      type: size_t
    - item_type: typedef
      name: sslerr_t
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/curl/lib/vtls/openssl.c
      type: uint32_t
    - item_type: typedef
      name: numcert_t
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/curl/lib/vtls/openssl.c
      type: int
    - item_type: typedef
      name: sslerr_t
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/curl/lib/vtls/openssl.c
      type: unsigned long
    - item_type: typedef
      name: pubkeytype_t
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/curl/lib/vtls/openssl.c
      type: X509_PUBKEY
    - item_type: typedef
      name: pubkeytype_t
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/curl/lib/vtls/openssl.c
      type: X509_PUBKEY
    - item_type: typedef
      name: ctx_option_t
      pos:
        line_end: 2633
        line_start: 2633
        source_file: /src/curl/lib/vtls/openssl.c
      type: uint32_t
    - item_type: typedef
      name: ctx_option_t
      pos:
        line_end: 2635
        line_start: 2635
        source_file: /src/curl/lib/vtls/openssl.c
      type: uint64_t
    - item_type: typedef
      name: ctx_option_t
      pos:
        line_end: 2637
        line_start: 2637
        source_file: /src/curl/lib/vtls/openssl.c
      type: long
    - item_type: typedef
      name: ctx_option_t
      pos:
        line_end: 2639
        line_start: 2639
        source_file: /src/curl/lib/vtls/openssl.c
      type: unsigned long
    union: []
- function_names:
  - alpn_get_spec
  - Curl_ssl_backend
  - Curl_ssl_init
  - ssl_prefs_check
  - cf_ctx_new
  - cf_ctx_free
  - Curl_ssl_get_channel_binding
  - Curl_ssl_close_all
  - Curl_ssl_adjust_pollset
  - Curl_ssl_set_engine
  - Curl_ssl_set_engine_default
  - Curl_ssl_engines_list
  - Curl_ssl_version
  - Curl_ssl_free_certinfo
  - Curl_ssl_init_certinfo
  - Curl_ssl_push_certinfo_len
  - Curl_ssl_random
  - pubkey_pem_to_der
  - Curl_pin_peer_pubkey
  - Curl_ssl_cert_status_request
  - multissl_init
  - multissl_random
  - multissl_connect
  - multissl_adjust_pollset
  - multissl_get_internals
  - multissl_close
  - multissl_recv_plain
  - multissl_send_plain
  - Curl_ssl_cleanup
  - multissl_version
  - multissl_setup
  - Curl_init_sslset_nolock
  - Curl_init_sslset_nolock
  - Curl_ssl_peer_cleanup
  - cf_close
  - get_peer_type
  - Curl_ssl_peer_init
  - ssl_cf_destroy
  - ssl_cf_connect
  - ssl_cf_set_earlydata
  - ssl_cf_connect_deferred
  - ssl_cf_data_pending
  - ssl_cf_send
  - ssl_cf_recv
  - ssl_cf_shutdown
  - ssl_cf_adjust_pollset
  - ssl_cf_query
  - ssl_cf_cntrl
  - cf_ssl_is_alive
  - cf_ssl_create
  - Curl_ssl_cfilter_add
  - Curl_cf_ssl_insert_after
  - cf_ssl_proxy_create
  - Curl_cf_ssl_proxy_insert_after
  - Curl_ssl_supports
  - vtls_shutdown_blocking
  - Curl_ssl_cfilter_remove
  - Curl_ssl_cf_is_proxy
  - Curl_ssl_cf_get_config
  - Curl_ssl_cf_get_primary_config
  - Curl_alpn_to_proto_buf
  - Curl_alpn_to_proto_str
  - Curl_alpn_contains_proto
  - Curl_alpn_restrict_to
  - Curl_alpn_copy
  - Curl_alpn_set_negotiated
  - Curl_on_session_reuse
  source_file: /src/curl/lib/vtls/vtls.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vtls/keylog.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KEYLOG_LABEL_MAXLEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/lib/vtls/keylog.h
      type_or_value: (sizeof("CLIENT_HANDSHAKE_TRAFFIC_SECRET") - 1)
    - item_type: preproc_def
      name: CLIENT_RANDOM_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/vtls/keylog.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SECRET_MAXLEN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/vtls/keylog.h
      type_or_value: '48'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CLONE_STRING
  - CLONE_BLOB
  - blobdup
  - blobcmp
  - Curl_ssl_config_init
  - Curl_ssl_config_cleanup
  - match_ssl_primary_config
  - Curl_ssl_conn_config_match
  - clone_ssl_primary_config
  - ssl_easy_config_compl_options
  - Curl_ssl_easy_config_complete
  - Curl_ssl_conn_config_init
  - Curl_ssl_conn_config_cleanup
  - Curl_ssl_conn_config_update
  source_file: /src/curl/lib/vtls/vtls_config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mbedtls_strerror
  - mbed_debug
  - mbedtls_bio_cf_write
  - mbedtls_bio_cf_read
  - mbed_cipher_suite_get_str
  - mbed_cipher_suite_walk_str
  - mbed_dump_cert_info
  - mbed_extract_certinfo
  - mbed_verify_cb
  - mbed_load_cacert
  - mbed_load_clicert
  - mbed_load_privkey
  - mbed_load_crl
  - mbed_connect_step1
  - mbed_connect_step2
  - mbed_new_session
  - mbed_send
  - mbedtls_shutdown
  - mbedtls_close
  - mbed_recv
  - mbedtls_version
  - mbedtls_random
  - mbedtls_connect
  - mbedtls_init
  - mbedtls_cleanup
  - mbedtls_data_pending
  - mbedtls_sha256sum
  - mbedtls_get_internals
  source_file: /src/curl/lib/vtls/mbedtls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RSA_PUB_DER_MAX_BYTES
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/curl/lib/vtls/mbedtls.c
      type_or_value: (38 + (2 * MBEDTLS_MPI_MAX_SIZE))
    - item_type: preproc_def
      name: ECP_PUB_DER_MAX_BYTES
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/curl/lib/vtls/mbedtls.c
      type_or_value: (30 + (2 * MBEDTLS_ECP_MAX_BYTES))
    - item_type: preproc_def
      name: PUB_DER_MAX_BYTES
      pos:
        line_end: 180
        line_start: 178
        source_file: /src/curl/lib/vtls/mbedtls.c
      type_or_value: "(RSA_PUB_DER_MAX_BYTES > ECP_PUB_DER_MAX_BYTES ? \\\n                             RSA_PUB_DER_MAX_BYTES
        : ECP_PUB_DER_MAX_BYTES)"
    - item_type: preproc_def
      name: mbed_cipher_suite_get_str
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/curl/lib/vtls/mbedtls.c
      type_or_value: Curl_cipher_suite_get_str
    - item_type: preproc_def
      name: mbed_cipher_suite_walk_str
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/curl/lib/vtls/mbedtls.c
      type_or_value: Curl_cipher_suite_walk_str
    structs:
    - fields:
      - name: ssl
        type: mbedtls_ssl_context
      - name: cacert
        type: mbedtls_x509_crt
      - name: clicert
        type: mbedtls_x509_crt
      - name: pk
        type: mbedtls_pk_context
      - name: config
        type: mbedtls_ssl_config
      - name: '*ciphersuites'
        type: int
      - name: send_blocked_len
        type: size_t
      item_type: struct
      name: mbed_ssl_backend_data
      pos:
        line_end: 93
        line_start: 76
        source_file: /src/curl/lib/vtls/mbedtls.c
    - fields:
      - name: entropy
        type: mbedtls_entropy_context
      - name: drbg
        type: mbedtls_ctr_drbg_context
      item_type: struct
      name: rng_context_t
      pos:
        line_end: 101
        line_start: 98
        source_file: /src/curl/lib/vtls/mbedtls.c
    typedefs: []
    union: []
- function_names:
  - Curl_auth_is_gssapi_supported
  - Curl_auth_create_gssapi_user_message
  - Curl_auth_create_gssapi_security_message
  - Curl_auth_cleanup_gssapi
  source_file: /src/curl/lib/vauth/krb5_sspi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GSS_ERROR
  - Curl_auth_is_digest_supported
  - Curl_auth_is_ntlm_supported
  - Curl_auth_is_gssapi_supported
  source_file: /src/curl/lib/vauth/vauth.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_GSASL_CONN
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/curl/lib/vauth/vauth.h
      type_or_value: '"meta:auth:gsasl:conn"'
    - item_type: preproc_def
      name: CURL_META_NTLM_CONN
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/curl/lib/vauth/vauth.h
      type_or_value: '"meta:auth:ntml:conn"'
    - item_type: preproc_def
      name: CURL_META_NTLM_PROXY_CONN
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/curl/lib/vauth/vauth.h
      type_or_value: '"meta:auth:ntml-proxy:conn"'
    - item_type: preproc_def
      name: CURL_META_KRB5_CONN
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/curl/lib/vauth/vauth.h
      type_or_value: '"meta:auth:krb5:conn"'
    - item_type: preproc_def
      name: CURL_META_NEGO_CONN
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/curl/lib/vauth/vauth.h
      type_or_value: '"meta:auth:nego:conn"'
    - item_type: preproc_def
      name: CURL_META_NEGO_PROXY_CONN
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/curl/lib/vauth/vauth.h
      type_or_value: '"meta:auth:nego-proxy:conn"'
    structs:
    - fields:
      - name: '*ctx'
        type: Gsasl
      - name: '*client'
        type: Gsasl_session
      item_type: struct
      name: gsasldata
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/curl/lib/vauth/vauth.h
    - fields: []
      item_type: struct
      name: ntlmdata
      pos:
        line_end: 184
        line_start: 161
        source_file: /src/curl/lib/vauth/vauth.h
    - fields: []
      item_type: struct
      name: kerberos5data
      pos:
        line_end: 246
        line_start: 233
        source_file: /src/curl/lib/vauth/vauth.h
    - fields: []
      item_type: struct
      name: negotiatedata
      pos:
        line_end: 317
        line_start: 288
        source_file: /src/curl/lib/vauth/vauth.h
    typedefs: []
    union: []
- function_names:
  - Curl_auth_create_cram_md5_message
  source_file: /src/curl/lib/vauth/cram.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vauth/digest.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DIGEST_MAX_VALUE_LENGTH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/vauth/digest.h
      type_or_value: '256'
    - item_type: preproc_def
      name: DIGEST_MAX_CONTENT_LENGTH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/vauth/digest.h
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_is_spnego_supported
  - Curl_auth_decode_spnego_message
  - Curl_auth_create_spnego_message
  - Curl_auth_cleanup_spnego
  source_file: /src/curl/lib/vauth/spnego_sspi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_gsasl_is_supported
  - Curl_auth_gsasl_token
  - Curl_auth_gsasl_cleanup
  source_file: /src/curl/lib/vauth/gsasl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_create_plain_message
  - Curl_auth_create_login_message
  - Curl_auth_create_external_message
  source_file: /src/curl/lib/vauth/cleartext.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_is_digest_supported
  - Curl_auth_create_digest_md5_message
  - Curl_override_sspi_http_realm
  - Curl_auth_decode_digest_http_message
  - Curl_auth_create_digest_http_message
  - Curl_auth_digest_cleanup
  source_file: /src/curl/lib/vauth/digest_sspi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_create_oauth_bearer_message
  - Curl_auth_create_xoauth_bearer_message
  source_file: /src/curl/lib/vauth/oauth2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_is_spnego_supported
  - Curl_auth_decode_spnego_message
  - Curl_auth_create_spnego_message
  - Curl_auth_cleanup_spnego
  source_file: /src/curl/lib/vauth/spnego_gssapi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_is_gssapi_supported
  - Curl_auth_create_gssapi_user_message
  - Curl_auth_create_gssapi_security_message
  - Curl_auth_cleanup_gssapi
  source_file: /src/curl/lib/vauth/krb5_gssapi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_build_spn
  - Curl_auth_build_spn
  - Curl_auth_user_contains_domain
  - Curl_auth_allowed_to_host
  - Curl_auth_allowed_to_origin
  - ntlm_conn_dtor
  - Curl_auth_ntlm_get
  - Curl_auth_ntlm_remove
  - krb5_conn_dtor
  - Curl_auth_krb5_get
  - gsasl_conn_dtor
  - Curl_auth_gsasl_get
  - nego_conn_dtor
  - Curl_auth_nego_get
  source_file: /src/curl/lib/vauth/vauth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_is_ntlm_supported
  - Curl_auth_create_ntlm_type1_message
  - Curl_auth_decode_ntlm_type2_message
  - Curl_auth_create_ntlm_type3_message
  - Curl_auth_cleanup_ntlm
  source_file: /src/curl/lib/vauth/ntlm_sspi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_auth_digest_get_pair
  - auth_digest_md5_to_ascii
  - auth_digest_sha256_to_ascii
  - auth_digest_string_quoted
  - auth_digest_get_key_value
  - auth_digest_get_qop_values
  - auth_decode_digest_md5_message
  - Curl_auth_is_digest_supported
  - Curl_auth_create_digest_md5_message
  - Curl_auth_decode_digest_http_message
  - auth_create_digest_http_message
  - Curl_auth_create_digest_http_message
  - Curl_auth_digest_cleanup
  source_file: /src/curl/lib/vauth/digest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SESSION_ALGO
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: ALGO_MD5
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ALGO_MD5SESS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: (ALGO_MD5 | SESSION_ALGO)
    - item_type: preproc_def
      name: ALGO_SHA256
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ALGO_SHA256SESS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: (ALGO_SHA256 | SESSION_ALGO)
    - item_type: preproc_def
      name: ALGO_SHA512_256
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: '4'
    - item_type: preproc_def
      name: ALGO_SHA512_256SESS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: (ALGO_SHA512_256 | SESSION_ALGO)
    - item_type: preproc_def
      name: DIGEST_QOP_VALUE_AUTH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: DIGEST_QOP_VALUE_AUTH_INT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: DIGEST_QOP_VALUE_AUTH_CONF
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: DIGEST_QOP_VALUE_STRING_AUTH
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: '"auth"'
    - item_type: preproc_def
      name: DIGEST_QOP_VALUE_STRING_AUTH_INT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: '"auth-int"'
    - item_type: preproc_def
      name: DIGEST_QOP_VALUE_STRING_AUTH_CONF
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/vauth/digest.c
      type_or_value: '"auth-conf"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEBUG_OUT
  - ntlm_print_flags
  - ntlm_print_hex
  - DEBUG_OUT
  - ntlm_decode_type2_target
  - Curl_auth_is_ntlm_supported
  - Curl_auth_decode_ntlm_type2_message
  - unicodecpy
  - Curl_auth_create_ntlm_type1_message
  - Curl_auth_create_ntlm_type3_message
  - Curl_auth_cleanup_ntlm
  source_file: /src/curl/lib/vauth/ntlm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEBUG_ME
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: '0'
    - item_type: preproc_def
      name: NTLMSSP_SIGNATURE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: '"\x4e\x54\x4c\x4d\x53\x53\x50"'
    - item_type: preproc_def
      name: NTLM_BUFSIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_UNICODE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_OEM
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: NTLMFLAG_REQUEST_TARGET
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_SIGN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_SEAL
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_DATAGRAM_STYLE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_LM_KEY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_NTLM_KEY
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_ANONYMOUS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_DOMAIN_SUPPLIED
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_WORKSTATION_SUPPLIED
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 13)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_LOCAL_CALL
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_ALWAYS_SIGN
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 15)
    - item_type: preproc_def
      name: NTLMFLAG_TARGET_TYPE_DOMAIN
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: NTLMFLAG_TARGET_TYPE_SERVER
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 17)
    - item_type: preproc_def
      name: NTLMFLAG_TARGET_TYPE_SHARE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 18)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_NTLM2_KEY
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 19)
    - item_type: preproc_def
      name: NTLMFLAG_REQUEST_INIT_RESPONSE
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 20)
    - item_type: preproc_def
      name: NTLMFLAG_REQUEST_ACCEPT_RESPONSE
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 21)
    - item_type: preproc_def
      name: NTLMFLAG_REQUEST_NONNT_SESSION_KEY
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 22)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_TARGET_INFO
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 23)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_128
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 29)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_KEY_EXCHANGE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 30)
    - item_type: preproc_def
      name: NTLMFLAG_NEGOTIATE_56
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/curl/lib/vauth/ntlm.c
      type_or_value: (1 << 31)
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_ssh_statename
  - myssh_to
  - Curl_ssh_init
  source_file: /src/curl/lib/vssh/ssh.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_META_SSH_EASY
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/curl/lib/vssh/ssh.h
      type_or_value: '"meta:proto:ssh:easy"'
    - item_type: preproc_def
      name: CURL_META_SSH_CONN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/vssh/ssh.h
      type_or_value: '"meta:proto:ssh:conn"'
    - item_type: preproc_def
      name: CURL_PATH_MAX
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/lib/vssh/ssh.h
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*path'
        type: char
      item_type: struct
      name: SSHPROTO
      pos:
        line_end: 137
        line_start: 124
        source_file: /src/curl/lib/vssh/ssh.h
    - fields:
      - name: '*authlist'
        type: char
      - name: '*passphrase'
        type: char
      - name: '*rsa_pub'
        type: char
      - name: '*rsa'
        type: char
      - name: state
        type: sshstate
      - name: nextstate
        type: sshstate
      - name: '*quote_item'
        type: struct curl_slist
      - name: '*quote_path1'
        type: char
      - name: '*quote_path2'
        type: char
      - name: '*homedir'
        type: char
      - name: secondCreateDirs
        type: int
      - name: waitfor
        type: int
      - name: '*slash_pos'
        type: char
      item_type: struct
      name: ssh_conn
      pos:
        line_end: 218
        line_start: 141
        source_file: /src/curl/lib/vssh/ssh.h
    typedefs: []
    union: []
- function_names:
  - Curl_ssh_statename
  - Curl_ssh_set_state
  - Curl_getworkingpath
  - Curl_get_pathname
  - Curl_ssh_range
  source_file: /src/curl/lib/vssh/vssh.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SSHPATH_LEN
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/curl/lib/vssh/vssh.c
      type_or_value: '100000 '
    - item_type: preproc_def
      name: MAX_PATHLENGTH
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/curl/lib/vssh/vssh.c
      type_or_value: '65535 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - SSH_STRING_FREE_CHAR
  - sftp_error_to_CURLE
  - myssh_is_known
  - myssh_to_ERROR
  - myssh_to_SFTP_CLOSE
  - myssh_to_PASSWD_AUTH
  - myssh_to_KEY_AUTH
  - myssh_to_GSSAPI_AUTH
  - myssh_in_SFTP_READDIR_INIT
  - myssh_in_SFTP_READDIR
  - myssh_in_SFTP_READDIR_LINK
  - myssh_in_SFTP_READDIR_BOTTOM
  - myssh_in_SFTP_READDIR_DONE
  - myssh_quote_error
  - myssh_in_SFTP_QUOTE_STATVFS
  - myssh_auth_interactive
  - myssh_state_init
  - myssh_block2waitfor
  - myssh_in_S_STARTUP
  - myssh_in_AUTHLIST
  - myssh_in_AUTH_PKEY_INIT
  - myssh_in_AUTH_PKEY
  - myssh_in_AUTH_GSSAPI
  - myssh_in_AUTH_KEY_INIT
  - myssh_in_AUTH_KEY
  - myssh_in_AUTH_PASS_INIT
  - myssh_in_AUTH_PASS
  - myssh_in_AUTH_DONE
  - myssh_in_UPLOAD_INIT
  - myssh_in_SFTP_DOWNLOAD_INIT
  - myssh_in_SFTP_DOWNLOAD_STAT
  - myssh_in_SFTP_CLOSE
  - myssh_in_SFTP_SHUTDOWN
  - myssh_in_SFTP_INIT
  - myssh_in_SFTP_REALPATH
  - myssh_in_SFTP_QUOTE_INIT
  - myssh_in_SFTP_POSTQUOTE_INIT
  - quote_error
  - myssh_in_SFTP_QUOTE
  - myssh_in_SFTP_NEXT_QUOTE
  - myssh_in_SFTP_QUOTE_STAT
  - conn_forget_socket
  - myssh_SESSION_DISCONNECT
  - myssh_SSH_SCP_DOWNLOAD
  - myssh_in_TRANS_INIT
  - sshc_cleanup
  - myssh_in_SFTP_QUOTE_SETSTAT
  - myssh_in_SFTP_QUOTE_SYMLINK
  - myssh_in_SFTP_QUOTE_MKDIR
  - myssh_in_SFTP_QUOTE_RENAME
  - myssh_in_SFTP_QUOTE_RMDIR
  - myssh_in_SFTP_QUOTE_UNLINK
  - myssh_in_SFTP_GETINFO
  - myssh_in_SFTP_FILETIME
  - myssh_in_SFTP_TRANS_INIT
  - myssh_in_SFTP_CREATE_DIRS_INIT
  - myssh_in_SFTP_CREATE_DIRS
  - myssh_in_SFTP_CREATE_DIRS_MKDIR
  - myssh_in_SCP_UPLOAD_INIT
  - myssh_in_SCP_DOWNLOAD_INIT
  - myssh_in_SCP_DONE
  - myssh_in_SCP_SEND_EOF
  - myssh_in_SCP_CHANNEL_FREE
  - myssh_in_SESSION_FREE
  - myssh_statemachine
  - myssh_pollset
  - myssh_multi_statemach
  - myssh_block_statemach
  - myssh_easy_dtor
  - myssh_conn_dtor
  - myssh_setup_connection
  - myssh_connect
  - scp_doing
  - scp_perform
  - scp_disconnect
  - myssh_done
  - scp_done
  - scp_send
  - scp_recv
  - sftp_perform
  - sftp_doing
  - sftp_disconnect
  - sftp_done
  - sftp_send
  - sftp_recv
  - myssh_do_it
  - Curl_ssh_init
  - Curl_ssh_cleanup
  - Curl_ssh_version
  source_file: /src/curl/lib/vssh/libssh.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSH_S_IFMT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/vssh/libssh.c
      type_or_value: '00170000'
    - item_type: preproc_def
      name: SSH_S_IFLNK
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/lib/vssh/libssh.c
      type_or_value: '0120000'
    - item_type: preproc_def
      name: CURL_LIBSSH_VFS_SIZE_MASK
      pos:
        line_end: 636
        line_start: 635
        source_file: /src/curl/lib/vssh/libssh.c
      type_or_value: '"I64u"'
    - item_type: preproc_def
      name: CURL_LIBSSH_VFS_SIZE_MASK
      pos:
        line_end: 638
        line_start: 637
        source_file: /src/curl/lib/vssh/libssh.c
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: CURL_LIBSSH_VFS_SIZE_MASK
      pos:
        line_end: 640
        line_start: 639
        source_file: /src/curl/lib/vssh/libssh.c
      type_or_value: PRIu64
    structs: []
    typedefs: []
    union: []
- function_names:
  - sftp_libssh2_strerror
  - kbd_callback
  - sftp_libssh2_error_to_CURLE
  - libssh2_session_error_to_CURLE
  - LIBSSH2_ALLOC_FUNC
  - LIBSSH2_REALLOC_FUNC
  - LIBSSH2_FREE_FUNC
  - sshkeycallback
  - convert_ssh2_keytype
  - ssh_knownhost
  - ssh_check_fingerprint
  - ssh_force_knownhost_key_type
  - quote_error
  - sftp_quote
  - sftp_upload_init
  - ssh_state_pkey_init
  - sftp_quote_stat
  - sftp_download_stat
  - sftp_readdir
  - ssh_state_init
  - ssh_state_startup
  - ssh_state_hostkey
  - ssh_state_authlist
  - ssh_state_auth_pkey
  - ssh_state_auth_pass_init
  - ssh_state_auth_pass
  - ssh_state_auth_host_init
  - ssh_state_auth_agent_init
  - ssh_state_auth_agent_list
  - ssh_state_auth_agent
  - ssh_state_auth_key_init
  - ssh_state_auth_key
  - ssh_state_auth_done
  - ssh_state_sftp_init
  - ssh_state_sftp_realpath
  - ssh_state_sftp_quote_init
  - ssh_state_sftp_postquote_init
  - ssh_state_sftp_quote
  - ssh_state_sftp_next_quote
  - ssh_state_sftp_quote_stat
  - ssh_state_sftp_quote_setstat
  - ssh_state_sftp_quote_symlink
  - ssh_state_sftp_quote_mkdir
  - ssh_state_sftp_quote_rename
  - ssh_state_sftp_quote_rmdir
  - ssh_state_sftp_quote_unlink
  - ssh_state_sftp_quote_statvfs
  - ssh_state_sftp_create_dirs_mkdir
  - ssh_state_sftp_readdir_init
  - ssh_state_sftp_readdir_link
  - ssh_state_scp_download_init
  - ssh_state_sftp_close
  - ssh_state_sftp_shutdown
  - ssh_state_sftp_download_init
  - ssh_state_scp_upload_init
  - ssh_state_session_disconnect
  - sshc_cleanup
  - ssh_state_sftp_getinfo
  - ssh_state_sftp_filetime
  - ssh_state_sftp_trans_init
  - ssh_state_sftp_upload_init
  - ssh_state_sftp_create_dirs_init
  - ssh_state_sftp_create_dirs
  - ssh_state_sftp_readdir
  - ssh_state_sftp_readdir_bottom
  - ssh_state_sftp_readdir_done
  - ssh_state_sftp_download_stat
  - ssh_state_scp_trans_init
  - ssh_state_scp_done
  - ssh_state_scp_send_eof
  - ssh_state_scp_wait_eof
  - ssh_state_scp_wait_close
  - ssh_state_scp_channel_free
  - ssh_state_session_free
  - ssh_statemachine
  - ssh_pollset
  - ssh_block2waitfor
  - ssh_multi_statemach
  - ssh_block_statemach
  - myssh_easy_dtor
  - myssh_conn_dtor
  - ssh_setup_connection
  - ssh_tls_recv
  - ssh_tls_send
  - ssh_connect
  - scp_perform
  - scp_doing
  - scp_disconnect
  - ssh_done
  - scp_done
  - scp_send
  - scp_recv
  - sftp_perform
  - sftp_doing
  - sftp_disconnect
  - sftp_done
  - sftp_send
  - sftp_recv
  - ssh_do
  - Curl_ssh_init
  - Curl_ssh_cleanup
  - Curl_ssh_version
  - ssh_attach
  source_file: /src/curl/lib/vssh/libssh2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_LIBSSH2_VFS_SIZE_MASK
      pos:
        line_end: 2144
        line_start: 2143
        source_file: /src/curl/lib/vssh/libssh2.c
      type_or_value: '"I64u"'
    - item_type: preproc_def
      name: CURL_LIBSSH2_VFS_SIZE_MASK
      pos:
        line_end: 2146
        line_start: 2145
        source_file: /src/curl/lib/vssh/libssh2.c
      type_or_value: '"llu"'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: '*recvp'
        type: void
      - name: (*recvptr)(libssh2_socket_t, void *, size_t, int, void **)
        type: ssize_t
      item_type: union
      name: receive
      pos:
        line_end: 3539
        line_start: 3536
        source_file: /src/curl/lib/vssh/libssh2.c
    - fields:
      - name: '*sendp'
        type: void
      - name: (*sendptr)(libssh2_socket_t, const void *, size_t, int, void **)
        type: ssize_t
      item_type: union
      name: transfer
      pos:
        line_end: 3543
        line_start: 3540
        source_file: /src/curl/lib/vssh/libssh2.c
- function_names: []
  source_file: /src/curl/lib/vssh/vssh.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/strerr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/strdup.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/wait.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/timediff.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FMT_TIMEDIFF_T
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/curlx/timediff.h
      type_or_value: FMT_OFF_T
    - item_type: preproc_def
      name: TIMEDIFF_T_MAX
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/curlx/timediff.h
      type_or_value: CURL_OFF_T_MAX
    - item_type: preproc_def
      name: TIMEDIFF_T_MIN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/curlx/timediff.h
      type_or_value: CURL_OFF_T_MIN
    structs: []
    typedefs:
    - item_type: typedef
      name: timediff_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/curl/lib/curlx/timediff.h
      type: curl_off_t
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/winapi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WINAPI_ERROR_LEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/lib/curlx/winapi.h
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/nonblock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_convert_UTF8_to_tchar
  - curlx_convert_tchar_to_UTF8
  - curlx_convert_UTF8_to_tchar
  - curlx_convert_tchar_to_UTF8
  source_file: /src/curl/lib/curlx/multibyte.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: '*tchar_ptr'
        type: unsigned short
      - name: '*const_tchar_ptr'
        type: unsigned short
      - name: '*tbyte_ptr'
        type: unsigned short
      - name: '*const_tbyte_ptr'
        type: unsigned short
      item_type: union
      name: xcharp_u
      pos:
        line_end: 55
        line_start: 50
        source_file: /src/curl/lib/curlx/multibyte.h
    - fields:
      - name: '*tchar_ptr'
        type: char
      - name: '*const_tchar_ptr'
        type: char
      - name: '*tbyte_ptr'
        type: unsigned char
      - name: '*const_tbyte_ptr'
        type: unsigned char
      item_type: union
      name: xcharp_u
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/curl/lib/curlx/multibyte.h
- function_names:
  - curlx_nonblock
  source_file: /src/curl/lib/curlx/nonblock.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_wait_ms
  source_file: /src/curl/lib/curlx/wait.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inet_pton4
  - inet_pton6
  - curlx_inet_pton
  source_file: /src/curl/lib/curlx/inet_pton.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IN6ADDRSZ
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/curlx/inet_pton.c
      type_or_value: '16'
    - item_type: preproc_def
      name: INADDRSZ
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/curlx/inet_pton.c
      type_or_value: '4'
    - item_type: preproc_def
      name: INT16SZ
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/curlx/inet_pton.c
      type_or_value: '2'
    - item_type: preproc_def
      name: AF_INET6
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/curlx/inet_pton.c
      type_or_value: (AF_INET + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_fopen
  - curlx_freopen
  - curlx_fdopen
  - curlx_fclose
  source_file: /src/curl/lib/curlx/fopen.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: curlx_fstat
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: _fstati64
    - item_type: preproc_def
      name: curlx_struct_stat
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: struct _stati64
    - item_type: preproc_def
      name: CURLX_FOPEN_LOW
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: curlx_win32_fopen
    - item_type: preproc_def
      name: CURLX_FREOPEN_LOW
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: curlx_win32_freopen
    - item_type: preproc_def
      name: CURLX_FDOPEN_LOW
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: _fdopen
    - item_type: preproc_def
      name: curlx_stat
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: curlx_win32_stat
    - item_type: preproc_def
      name: curlx_open
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: curlx_win32_open
    - item_type: preproc_def
      name: curlx_close
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: _close
    - item_type: preproc_def
      name: curlx_rename
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: curlx_win32_rename
    - item_type: preproc_def
      name: curlx_fstat
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: fstat
    - item_type: preproc_def
      name: curlx_struct_stat
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: struct stat
    - item_type: preproc_def
      name: CURLX_FOPEN_LOW
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: fopen
    - item_type: preproc_def
      name: CURLX_FREOPEN_LOW
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: freopen
    - item_type: preproc_def
      name: CURLX_FDOPEN_LOW
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: fdopen
    - item_type: preproc_def
      name: curlx_stat
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: stat
    - item_type: preproc_def
      name: curlx_open
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: open
    - item_type: preproc_def
      name: curlx_close
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: close
    - item_type: preproc_def
      name: curlx_rename
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: rename
    - item_type: preproc_def
      name: curlx_fopen
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: CURLX_FOPEN_LOW
    - item_type: preproc_def
      name: curlx_freopen
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: CURLX_FREOPEN_LOW
    - item_type: preproc_def
      name: curlx_fdopen
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: CURLX_FDOPEN_LOW
    - item_type: preproc_def
      name: curlx_fclose
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/lib/curlx/fopen.h
      type_or_value: fclose
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_verify_windows_init
  source_file: /src/curl/lib/curlx/version_win32.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/timeval.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: tv_sec
        type: time_t
      - name: tv_usec
        type: int
      item_type: struct
      name: curltime
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/curl/lib/curlx/timeval.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/snprintf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SNPRINTF
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/curlx/snprintf.h
      type_or_value: curlx_win32_snprintf
    - item_type: preproc_def
      name: SNPRINTF
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/curlx/snprintf.h
      type_or_value: snprintf
    - item_type: preproc_def
      name: SNPRINTF
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/curlx/snprintf.h
      type_or_value: curl_msnprintf
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_basename
  source_file: /src/curl/lib/curlx/basename.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_str_init
  - curlx_str_assign
  - curlx_str_trim
  - curlx_str_until
  - curlx_str_word
  - curlx_str_untilnl
  - curlx_str_quotedword
  - curlx_str_single
  - curlx_str_singlespace
  - valid_digit
  - str_num_base
  - curlx_str_number
  - curlx_str_hex
  - curlx_str_octal
  - curlx_str_numblanks
  - curlx_str_newline
  - curlx_str_casecompare
  - curlx_str_cmp
  - curlx_str_nudge
  - curlx_str_cspn
  - curlx_str_trimblanks
  - curlx_str_passblanks
  source_file: /src/curl/lib/curlx/strparse.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_ultouc
  - curlx_uztosi
  - curlx_uztoul
  - curlx_uztoui
  - curlx_sltosi
  - curlx_sltoui
  - curlx_sltous
  - curlx_uztosz
  - curlx_sotouz
  - curlx_sztosi
  - curlx_uitous
  - curlx_sitouz
  - curlx_uitouz
  - curlx_sotouz_range
  - curlx_sztouz
  - curlx_sotouz_fits
  - curlx_sltouz
  - curlx_uztoso
  source_file: /src/curl/lib/curlx/warnless.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_MASK_UCHAR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/curlx/warnless.c
      type_or_value: ((unsigned char)~0)
    - item_type: preproc_def
      name: CURL_MASK_USHORT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/curl/lib/curlx/warnless.c
      type_or_value: ((unsigned short)~0)
    - item_type: preproc_def
      name: CURL_MASK_UINT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/curl/lib/curlx/warnless.c
      type_or_value: ((unsigned int)~0)
    - item_type: preproc_def
      name: CURL_MASK_SINT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/curl/lib/curlx/warnless.c
      type_or_value: (CURL_MASK_UINT >> 1)
    - item_type: preproc_def
      name: CURL_MASK_ULONG
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/curl/lib/curlx/warnless.c
      type_or_value: ((unsigned long)~0)
    - item_type: preproc_def
      name: CURL_MASK_USIZE_T
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/curl/lib/curlx/warnless.c
      type_or_value: ((size_t)~0)
    - item_type: preproc_def
      name: CURL_MASK_SSIZE_T
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/lib/curlx/warnless.c
      type_or_value: (CURL_MASK_USIZE_T >> 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_base64_decode
  - base64_encode
  - curlx_base64_encode
  - curlx_base64url_encode
  source_file: /src/curl/lib/curlx/base64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_get_winapi_error
  - curlx_winapi_strerror
  source_file: /src/curl/lib/curlx/winapi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/strcopy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_basename
  source_file: /src/curl/lib/curlx/basename.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_fseek
  - CURLX_MALLOC
  - CURLX_FREE
  - CURLX_MALLOC
  - CURLX_FREE
  - fn_convert_UTF8_to_wchar
  - fix_excessive_path
  - curlx_CreateFile
  - curlx_win32_open
  - curlx_win32_fopen
  - curlx_win32_freopen
  - curlx_win32_stat
  - curlx_win32_rename
  source_file: /src/curl/lib/curlx/fopen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_win32_snprintf
  source_file: /src/curl/lib/curlx/snprintf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_strcopy
  source_file: /src/curl/lib/curlx/strcopy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CURLX_FUNCTION_CAST
  source_file: /src/curl/lib/curlx/warnless.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/dynbuf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_DYNBUF_SIZE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: (SIZE_MAX / 2)
    - item_type: preproc_def
      name: DYN_DOH_RESPONSE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '3000'
    - item_type: preproc_def
      name: DYN_DOH_CNAME
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '256'
    - item_type: preproc_def
      name: DYN_PAUSE_BUFFER
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: (64 * 1024 * 1024)
    - item_type: preproc_def
      name: DYN_HAXPROXY
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: DYN_HTTP_REQUEST
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: (1024 * 1024)
    - item_type: preproc_def
      name: DYN_APRINTF
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '8000000'
    - item_type: preproc_def
      name: DYN_RTSP_REQ_HEADER
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: DYN_TRAILERS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: DYN_PROXY_CONNECT_HEADERS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: DYN_QLOG_NAME
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: DYN_H1_TRAILER
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: DYN_PINGPPONG_CMD
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: DYN_IMAP_CMD
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: DYN_MQTT_RECV
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: DYN_MQTT_SEND
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '0xFFFFFFF'
    - item_type: preproc_def
      name: DYN_CRLFILE_SIZE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '(400 * 1024 * 1024) '
    - item_type: preproc_def
      name: DYN_CERTFILE_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '(100 * 1024) '
    - item_type: preproc_def
      name: DYN_KEYFILE_SIZE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/curlx/dynbuf.h
      type_or_value: '(100 * 1024) '
    structs:
    - fields:
      - name: '*bufr'
        type: char
      - name: leng
        type: size_t
      - name: allc
        type: size_t
      - name: toobig
        type: size_t
      item_type: struct
      name: dynbuf
      pos:
        line_end: 34
        line_start: 26
        source_file: /src/curl/lib/curlx/dynbuf.h
    typedefs: []
    union: []
- function_names:
  - curlx_mstotv
  - curlx_tvtoms
  source_file: /src/curl/lib/curlx/timediff.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_str
  - curlx_strlen
  - curlx_hexval
  source_file: /src/curl/lib/curlx/strparse.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRE_OK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/lib/curlx/strparse.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STRE_BIG
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/curlx/strparse.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STRE_SHORT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/curl/lib/curlx/strparse.h
      type_or_value: '2'
    - item_type: preproc_def
      name: STRE_BEGQUOTE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/curl/lib/curlx/strparse.h
      type_or_value: '3'
    - item_type: preproc_def
      name: STRE_ENDQUOTE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/curlx/strparse.h
      type_or_value: '4'
    - item_type: preproc_def
      name: STRE_BYTE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/curl/lib/curlx/strparse.h
      type_or_value: '5'
    - item_type: preproc_def
      name: STRE_NEWLINE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/curl/lib/curlx/strparse.h
      type_or_value: '6'
    - item_type: preproc_def
      name: STRE_OVERFLOW
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/curlx/strparse.h
      type_or_value: '7'
    - item_type: preproc_def
      name: STRE_NO_NUM
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/lib/curlx/strparse.h
      type_or_value: '8'
    structs:
    - fields:
      - name: '*str'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: Curl_str
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/curl/lib/curlx/strparse.h
    typedefs: []
    union: []
- function_names:
  - curlx_convert_UTF8_to_wchar
  - curlx_convert_wchar_to_UTF8
  source_file: /src/curl/lib/curlx/multibyte.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_verify_windows_init
  - curlx_verify_windows_version
  source_file: /src/curl/lib/curlx/version_win32.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dwOSVersionInfoSize
        type: ULONG
      - name: dwMajorVersion
        type: ULONG
      - name: dwMinorVersion
        type: ULONG
      - name: dwBuildNumber
        type: ULONG
      - name: dwPlatformId
        type: ULONG
      - name: szCSDVersion[128]
        type: WCHAR
      - name: wServicePackMajor
        type: USHORT
      - name: wServicePackMinor
        type: USHORT
      - name: wSuiteMask
        type: USHORT
      - name: wProductType
        type: UCHAR
      - name: wReserved
        type: UCHAR
      item_type: struct
      name: OUR_OSVERSIONINFOEXW
      pos:
        line_end: 44
        line_start: 32
        source_file: /src/curl/lib/curlx/version_win32.c
    typedefs:
    - item_type: typedef
      name: "(APIENTRY *RTLVERIFYVERSIONINFO_FN)\n  (struct OUR_OSVERSIONINFOEXW *,
        ULONG, ULONGLONG)"
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/curlx/version_win32.c
      type: LONG
    union: []
- function_names:
  - curlx_dyn_init
  - curlx_dyn_free
  - dyn_nappend
  - curlx_dyn_reset
  - curlx_dyn_tail
  - curlx_dyn_addn
  - curlx_dyn_add
  - curlx_dyn_vaddf
  - curlx_dyn_addf
  - curlx_dyn_ptr
  - curlx_dyn_take
  - curlx_dyn_uptr
  - curlx_dyn_len
  - curlx_dyn_setlen
  source_file: /src/curl/lib/curlx/dynbuf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_FIRST_ALLOC
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/curl/lib/curlx/dynbuf.c
      type_or_value: '32'
    - item_type: preproc_def
      name: DYNINIT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/curlx/dynbuf.c
      type_or_value: '0xbee51da '
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_now_init
  - curlx_pnow
  - curlx_pnow
  - curlx_pnow
  - curlx_pnow
  - curlx_now
  - curlx_ptimediff_ms
  - curlx_timediff_ms
  - curlx_timediff_ceil_ms
  - curlx_ptimediff_us
  - curlx_timediff_us
  - curlx_gmtime
  source_file: /src/curl/lib/curlx/timeval.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: gmtime_s
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/curl/lib/curlx/timeval.c
      type_or_value: _gmtime32_s
    - item_type: preproc_def
      name: gmtime_s
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/curl/lib/curlx/timeval.c
      type_or_value: _gmtime64_s
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/curlx/base64.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_MAX_BASE64_INPUT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/curlx/base64.h
      type_or_value: '16000000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_inet_pton
  - curlx_inet_pton
  source_file: /src/curl/lib/curlx/inet_pton.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - curlx_inet_ntop
  - curlx_inet_ntop
  source_file: /src/curl/lib/curlx/inet_ntop.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inet_ntop4
  - inet_ntop6
  - curlx_inet_ntop
  source_file: /src/curl/lib/curlx/inet_ntop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IN6ADDRSZ
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/curl/lib/curlx/inet_ntop.c
      type_or_value: '16'
    - item_type: preproc_def
      name: INT16SZ
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/curlx/inet_ntop.c
      type_or_value: '2'
    - item_type: preproc_def
      name: AF_INET6
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/curl/lib/curlx/inet_ntop.c
      type_or_value: (AF_INET + 1)
    structs:
    - fields:
      - name: base
        type: int
      - name: len
        type: int
      item_type: struct
      name: best
      pos:
        line_end: 101
        line_start: 98
        source_file: /src/curl/lib/curlx/inet_ntop.c
    typedefs: []
    union: []
- function_names:
  - curlx_wcsdup
  - curlx_memdup
  - curlx_memdup0
  - curlx_memzero
  - curlx_freezero
  - curlx_freezeroz
  source_file: /src/curl/lib/curlx/strdup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_winsock_error
  - curlx_strerror
  source_file: /src/curl/lib/curlx/strerr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_ngtcp2_ver
  - CF_CTX_CALL_DATA
  - cf_ngtcp2_ctx_init
  - cf_ngtcp2_ctx_free
  - cf_ngtcp2_setup_keep_alive
  - h3_stream_ctx_free
  - h3_stream_hash_free
  - h3_data_setup
  - cf_ngtcp2_sfind
  - cf_ngtcp2_get_stream
  - cf_ngtcp2_get_stream
  - cf_ngtcp2_stream_close
  - h3_data_done
  - pktx_update_time
  - pktx_init
  - get_conn
  - quic_printf
  - qlog_callback
  - quic_settings
  - cb_ngtcp2_handshake_completed
  - cf_ngtcp2_err_is_fatal
  - cf_ngtcp2_err_set
  - cf_ngtcp2_h3_err_is_fatal
  - cf_ngtcp2_h3_err_set
  - cb_recv_stream_data
  - cb_acked_stream_data_offset
  - cb_stream_close
  - cb_stream_reset
  - cb_stream_stop_sending
  - cb_extend_max_local_streams_bidi
  - cb_extend_max_stream_data
  - cb_rand
  - cb_get_new_connection_id
  - cb_get_new_connection_id2
  - cb_recv_rx_key
  - check_and_set_expiry
  - cf_ngtcp2_adjust_pollset
  - cb_h3_stream_close
  - h3_xfer_write_resp_hd
  - h3_xfer_write_resp
  - cf_ngtcp2_upd_rx_win
  - cb_h3_recv_data
  - cb_h3_deferred_consume
  - cb_h3_end_headers
  - cb_h3_recv_header
  - cb_h3_stop_sending
  - cb_h3_reset_stream
  - init_ngh3_conn
  - recv_closed_stream
  - cf_ngtcp2_recv
  - cb_h3_acked_req_body
  - cb_h3_read_req_body
  - h3_stream_open
  - cf_ngtcp2_send
  - cf_ngtcp2_recv_pkts
  - cf_progress_ingress
  - read_pkt_to_send
  - cf_progress_egress
  - h3_data_pause
  - cf_ngtcp2_cntrl
  - cf_ngtcp2_ctx_close
  - cf_ngtcp2_shutdown
  - cf_ngtcp2_conn_close
  - cf_ngtcp2_destroy
  - quic_ossl_new_session_cb
  - gtls_hs_msg_name
  - quic_gtls_handshake_cb
  - wssl_quic_new_session_cb
  - cf_ngtcp2_tls_ctx_setup
  - cf_ngtcp2_on_session_reuse
  - cf_ngtcp2_need_httpsrr
  - cf_connect_start
  - cf_ngtcp2_connect
  - cf_ngtcp2_query
  - cf_ngtcp2_conn_is_alive
  - Curl_cf_ngtcp2_create
  - Curl_cf_ngtcp2_insert_after
  source_file: /src/curl/lib/vquic/cf-ngtcp2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_MAX_STREAMS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: (256 * 1024)
    - item_type: preproc_def
      name: QUIC_HANDSHAKE_TIMEOUT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: (10 * NGTCP2_SECONDS)
    - item_type: preproc_def
      name: QUIC_TUNNEL_INBUF_SIZE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: H3_STREAM_WINDOW_SIZE_INITIAL
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: (32 * 1024)
    - item_type: preproc_def
      name: H3_STREAM_WINDOW_SIZE_MAX
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: (10 * 1024 * 1024)
    - item_type: preproc_def
      name: H3_CONN_WINDOW_SIZE_MAX
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: (100 * H3_STREAM_WINDOW_SIZE_MAX)
    - item_type: preproc_def
      name: H3_STREAM_CHUNK_SIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: H3_STREAM_POOL_SPARES
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: '2'
    - item_type: preproc_def
      name: H3_STREAM_SEND_BUFFER_MAX
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: (10 * 1024 * 1024)
    - item_type: preproc_def
      name: H3_STREAM_SEND_CHUNKS
      pos:
        line_end: 100
        line_start: 98
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: (H3_STREAM_SEND_BUFFER_MAX / H3_STREAM_CHUNK_SIZE)
    - item_type: preproc_def
      name: QUIC_TUNNEL_INGRESS_PKT_LIMIT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
      type_or_value: '1000'
    structs:
    - fields:
      - name: q
        type: struct cf_quic_ctx
      - name: peer
        type: struct ssl_peer
      - name: tls
        type: struct curl_tls_ctx
      - name: connected_path
        type: ngtcp2_path
      - name: '*qconn'
        type: ngtcp2_conn
      - name: dcid
        type: ngtcp2_cid
      - name: scid
        type: ngtcp2_cid
      - name: version
        type: uint32_t
      - name: settings
        type: ngtcp2_settings
      - name: transport_params
        type: ngtcp2_transport_params
      - name: last_error
        type: ngtcp2_ccerr
      - name: conn_ref
        type: ngtcp2_crypto_conn_ref
      - name: call_data
        type: struct cf_call_data
      - name: '*h3conn'
        type: nghttp3_conn
      - name: h3settings
        type: nghttp3_settings
      - name: started_at
        type: struct curltime
      - name: handshake_at
        type: struct curltime
      - name: stream_bufcp
        type: struct bufc_pool
      - name: scratch
        type: struct dynbuf
      - name: streams
        type: struct uint_hash
      - name: used_bidi_streams
        type: uint64_t
      - name: max_bidi_streams
        type: uint64_t
      - name: earlydata_max
        type: size_t
      - name: earlydata_skip
        type: size_t
      - name: tls_vrfy_result
        type: CURLcode
      - name: qlogfd
        type: int
      - name: '*tunnel_inbuf'
        type: unsigned char
      - name: tunnel_inbuf_len
        type: size_t
      item_type: struct
      name: cf_ngtcp2_ctx
      pos:
        line_end: 152
        line_start: 113
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
    - fields:
      - name: id
        type: int64_t
      - name: sendbuf
        type: struct bufq
      - name: h1
        type: struct h1_req_parser
      - name: sendbuf_len_in_flight
        type: size_t
      - name: error3
        type: uint64_t
      - name: upload_left
        type: curl_off_t
      - name: rx_offset
        type: uint64_t
      - name: rx_offset_max
        type: uint64_t
      - name: window_size_max
        type: uint64_t
      - name: status_code
        type: int
      - name: xfer_result
        type: CURLcode
      item_type: struct
      name: h3_stream_ctx
      pos:
        line_end: 254
        line_start: 237
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
    - fields:
      - name: stream_id
        type: int64_t
      - name: '*stream'
        type: struct h3_stream_ctx
      - name: mid
        type: uint32_t
      item_type: struct
      name: cf_ngtcp2_sfind_ctx
      pos:
        line_end: 313
        line_start: 309
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
    - fields:
      - name: '*cf'
        type: struct Curl_cfilter
      - name: '*data'
        type: struct Curl_easy
      - name: ts
        type: ngtcp2_tstamp
      - name: ps
        type: ngtcp2_path_storage
      item_type: struct
      name: pkt_io_ctx
      pos:
        line_end: 393
        line_start: 388
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
    - fields:
      - name: '*pktx'
        type: struct pkt_io_ctx
      - name: pkt_count
        type: size_t
      item_type: struct
      name: cf_ngtcp2_recv_ctx
      pos:
        line_end: 1846
        line_start: 1843
        source_file: /src/curl/lib/vquic/cf-ngtcp2.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vquic/cf-capsule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_quiche_ver
  - quiche_debug_log
  - cf_quiche_ctx_init
  - cf_quiche_ctx_free
  - cf_quiche_ctx_close
  - h3_stream_ctx_free
  - h3_stream_hash_free
  - cf_quiche_stream_do
  - cf_quiche_for_all_streams
  - cf_quiche_do_resume
  - cf_quiche_do_expire
  - h3_data_setup
  - cf_quiche_stream_close
  - h3_data_done
  - cf_quiche_expire_conn_closed
  - cf_quiche_write_hd
  - is_valid_h3_header
  - cb_each_header
  - stream_resp_read
  - cf_quiche_flush_body
  - cf_quiche_recv_body
  - cf_quiche_process_ev
  - cf_quiche_disp_event
  - cf_poll_events
  - cf_quiche_recv_pkts
  - cf_process_ingress
  - read_pkt_to_send
  - cf_flush_egress
  - recv_closed_stream
  - cf_quiche_recv
  - cf_quiche_send_body
  - h3_open_stream
  - cf_quiche_send
  - stream_is_writable
  - cf_quiche_adjust_pollset
  - h3_data_pause
  - cf_quiche_cntrl
  - cf_quiche_ctx_open
  - cf_quiche_verify_peer
  - cf_quiche_connect
  - cf_quiche_shutdown
  - cf_quiche_destroy
  - cf_quiche_query
  - cf_quiche_conn_is_alive
  - Curl_cf_quiche_create
  source_file: /src/curl/lib/vquic/cf-quiche.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_H3_NO_ERROR
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/vquic/cf-quiche.c
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: MAX_PKT_BURST
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/lib/vquic/cf-quiche.c
      type_or_value: '10'
    - item_type: preproc_def
      name: QUIC_MAX_STREAMS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/lib/vquic/cf-quiche.c
      type_or_value: '100'
    - item_type: preproc_def
      name: H3_STREAM_WINDOW_SIZE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/lib/vquic/cf-quiche.c
      type_or_value: (1024 * 128)
    - item_type: preproc_def
      name: H3_STREAM_CHUNK_SIZE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/lib/vquic/cf-quiche.c
      type_or_value: (1024 * 16)
    - item_type: preproc_def
      name: H3_STREAM_RECV_CHUNKS
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/curl/lib/vquic/cf-quiche.c
      type_or_value: (H3_STREAM_WINDOW_SIZE / H3_STREAM_CHUNK_SIZE)
    structs:
    - fields:
      - name: q
        type: struct cf_quic_ctx
      - name: peer
        type: struct ssl_peer
      - name: tls
        type: struct curl_tls_ctx
      - name: '*qconn'
        type: quiche_conn
      - name: '*cfg'
        type: quiche_config
      - name: '*h3c'
        type: quiche_h3_conn
      - name: '*h3config'
        type: quiche_h3_config
      - name: scid[QUICHE_MAX_CONN_ID_LEN]
        type: uint8_t
      - name: started_at
        type: struct curltime
      - name: handshake_at
        type: struct curltime
      - name: streams
        type: struct uint_hash
      - name: h1hdr
        type: struct dynbuf
      - name: writebuf
        type: struct bufq
      - name: data_recvd
        type: curl_off_t
      item_type: struct
      name: cf_quiche_ctx
      pos:
        line_end: 94
        line_start: 75
        source_file: /src/curl/lib/vquic/cf-quiche.c
    - fields:
      - name: id
        type: uint64_t
      - name: h1
        type: struct h1_req_parser
      - name: error3
        type: uint64_t
      - name: status_code
        type: int
      - name: xfer_result
        type: CURLcode
      item_type: struct
      name: h3_stream_ctx
      pos:
        line_end: 180
        line_start: 167
        source_file: /src/curl/lib/vquic/cf-quiche.c
    - fields:
      - name: '*cf'
        type: struct Curl_cfilter
      - name: '*multi'
        type: struct Curl_multi
      - name: '*cb'
        type: cf_quiche_svisit
      - name: '*user_data'
        type: void
      item_type: struct
      name: cf_quiche_visit_ctx
      pos:
        line_end: 205
        line_start: 200
        source_file: /src/curl/lib/vquic/cf-quiche.c
    - fields:
      - name: '*cf'
        type: struct Curl_cfilter
      - name: '*data'
        type: struct Curl_easy
      - name: '*stream'
        type: struct h3_stream_ctx
      item_type: struct
      name: cb_ctx
      pos:
        line_end: 349
        line_start: 345
        source_file: /src/curl/lib/vquic/cf-quiche.c
    - fields:
      - name: stream_id
        type: uint64_t
      - name: '*cf'
        type: struct Curl_cfilter
      - name: '*multi'
        type: struct Curl_multi
      - name: '*ev'
        type: quiche_h3_event
      item_type: struct
      name: cf_quich_disp_ctx
      pos:
        line_end: 576
        line_start: 571
        source_file: /src/curl/lib/vquic/cf-quiche.c
    - fields:
      - name: '*cf'
        type: struct Curl_cfilter
      - name: '*data'
        type: struct Curl_easy
      - name: pkts
        type: int
      item_type: struct
      name: recv_ctx
      pos:
        line_end: 638
        line_start: 634
        source_file: /src/curl/lib/vquic/cf-quiche.c
    - fields:
      - name: '*cf'
        type: struct Curl_cfilter
      - name: '*data'
        type: struct Curl_easy
      - name: send_info
        type: quiche_send_info
      item_type: struct
      name: read_ctx
      pos:
        line_end: 736
        line_start: 732
        source_file: /src/curl/lib/vquic/cf-quiche.c
    typedefs:
    - item_type: typedef
      name: "cf_quiche_svisit(struct Curl_cfilter *cf,\n                              struct
        Curl_easy *sdata,\n                              struct h3_stream_ctx *stream,\n
        \                             void *user_data)"
      pos:
        line_end: 198
        line_start: 195
        source_file: /src/curl/lib/vquic/cf-quiche.c
      type: bool
    union: []
- function_names:
  - Curl_vquic_init
  source_file: /src/curl/lib/vquic/vquic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Curl_vquic_tls_init
  - Curl_vquic_tls_cleanup
  - Curl_vquic_tls_before_recv
  - Curl_vquic_tls_verify_peer
  - Curl_vquic_tls_get_ssl_info
  - Curl_vquic_report_handshake
  source_file: /src/curl/lib/vquic/vquic-tls.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vquic/cf-ngtcp2.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vquic_h3_err_str
  - H3_STREAM_CTX
  source_file: /src/curl/lib/vquic/vquic_int.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_UDP_PAYLOAD_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/curl/lib/vquic/vquic_int.h
      type_or_value: '1452'
    structs:
    - fields:
      - name: sockfd
        type: curl_socket_t
      - name: local_addr
        type: struct sockaddr_storage
      - name: local_addrlen
        type: socklen_t
      - name: sendbuf
        type: struct bufq
      - name: first_byte_at
        type: struct curltime
      - name: last_op
        type: struct curltime
      - name: last_io
        type: struct curltime
      - name: gsolen
        type: size_t
      - name: split_len
        type: size_t
      - name: split_gsolen
        type: size_t
      item_type: struct
      name: cf_quic_ctx
      pos:
        line_end: 77
        line_start: 60
        source_file: /src/curl/lib/vquic/vquic_int.h
    typedefs:
    - item_type: typedef
      name: "vquic_recv_pkts_cb(const unsigned char *buf, size_t buflen,\n                                    size_t
        gso_size,\n                                    struct sockaddr_storage *remote_addr,\n
        \                                   socklen_t remote_addrlen, int ecn,\n                                    void
        *userp)"
      pos:
        line_end: 114
        line_start: 110
        source_file: /src/curl/lib/vquic/vquic_int.h
      type: CURLcode
    union: []
- function_names:
  - Curl_vquic_init
  - Curl_quic_ver
  - vquic_ctx_init
  - vquic_ctx_free
  - vquic_ctx_set_time
  - vquic_ctx_update_time
  - do_sendmsg
  - send_packet_no_gso
  - send_packet_no_gso_cf
  - vquic_send_packets
  - vquic_flush
  - vquic_send
  - vquic_send_tail_split
  - vquic_msghdr_get_udp_gro
  - recvmmsg_packets
  - recvmsg_packets
  - recvfrom_packets
  - vquic_recv_packets
  - Curl_qlogdir
  - Curl_cf_quic_insert_after
  - Curl_cf_quic_create
  - Curl_cf_h3_proxy_insert_after
  - Curl_cf_h3_proxy_create
  - Curl_conn_may_http3
  - vquic_h3_err_str
  - vquic_ngtcp2_malloc
  - vquic_ngtcp2_free
  - vquic_ngtcp2_calloc
  - vquic_ngtcp2_realloc
  - Curl_ngtcp2_mem
  - Curl_nghttp3_mem
  - Curl_conn_may_http3
  source_file: /src/curl/lib/vquic/vquic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NW_CHUNK_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/lib/vquic/vquic.c
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: NW_SEND_CHUNKS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/lib/vquic/vquic.c
      type_or_value: '1'
    - item_type: preproc_def
      name: VQUIC_SEND_METHOD
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/curl/lib/vquic/vquic.c
      type_or_value: '"sendmsg"'
    - item_type: preproc_def
      name: VQUIC_SEND_METHOD
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/curl/lib/vquic/vquic.c
      type_or_value: '"send"'
    - item_type: preproc_def
      name: MMSG_NUM
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/curl/lib/vquic/vquic.c
      type_or_value: '16'
    - item_type: preproc_def
      name: UDP_GRO_CNT_MAX
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/curl/lib/vquic/vquic.c
      type_or_value: '64'
    - item_type: preproc_def
      name: MMSG_NUM
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/curl/lib/vquic/vquic.c
      type_or_value: '64'
    - item_type: preproc_def
      name: UDP_GRO_CNT_MAX
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/curl/lib/vquic/vquic.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MSG_BUF_SIZE
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/curl/lib/vquic/vquic.c
      type_or_value: (UDP_GRO_CNT_MAX * 1500)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vquic/cf-quiche.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - capsule_ntohll
  - capsule_encode_varint_buf
  - capsule_peek_u8
  - capsule_decode_varint_at
  - capsule_encap_udp_hdr
  - Curl_capsule_encap_udp_datagram
  - Curl_capsule_process_udp_raw
  source_file: /src/curl/lib/vquic/capsule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: u64
        type: uint64_t
      - name: u32[2]
        type: uint32_t
      item_type: union
      name: src
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/curl/lib/vquic/capsule.c
- function_names: []
  source_file: /src/curl/lib/vquic/vquic-tls.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: curl_tls_ctx
      pos:
        line_end: 49
        line_start: 41
        source_file: /src/curl/lib/vquic/vquic-tls.h
    typedefs:
    - item_type: typedef
      name: "Curl_vquic_tls_ctx_setup(struct Curl_cfilter *cf,\n                                          struct
        Curl_easy *data,\n                                          void *cb_user_data)"
      pos:
        line_end: 60
        line_start: 58
        source_file: /src/curl/lib/vquic/vquic-tls.h
      type: CURLcode
    - item_type: typedef
      name: "Curl_vquic_session_reuse_cb(struct Curl_cfilter *cf,\n                                             struct
        Curl_easy *data,\n                                             struct alpn_spec
        *alpns,\n                                             struct Curl_ssl_session
        *scs,\n                                             bool *do_early_data)"
      pos:
        line_end: 66
        line_start: 62
        source_file: /src/curl/lib/vquic/vquic-tls.h
      type: CURLcode
    union: []
- function_names:
  - h3_tunnel_stream_init
  - h3_tunnel_stream_reset
  - h3_tunnel_stream_clear
  - h3_tunnel_go_state
  - H3_PROXY_STREAM_CTX
  - H3_STREAM_ID
  - h3_proxy_stream_ctx_free
  - h3_proxy_stream_hash_free
  - cf_ngtcp2_proxy_ctx_init
  - cf_ngtcp2_proxy_ctx_free
  - cf_ngtcp2_proxy_ctx_close
  - cf_ngtcp2_proxy_setup_keep_alive
  - proxy_pktx_update_time
  - proxy_pktx_init
  - proxy_get_conn
  - proxy_quic_printf
  - proxy_qlog_callback
  - quic_settings_proxy
  - cf_ngtcp2_proxy_err_is_fatal
  - cf_ngtcp2_proxy_err_set
  - cf_ngtcp2_proxy_h3_err_is_fatal
  - cf_ngtcp2_proxy_h3_err_set
  - cf_h3_proxy_call_data
  - CF_CTX_CALL_DATA
  - cf_h3_proxy_ctx_clear
  - cf_h3_proxy_ctx_free
  - h3_proxy_data_setup
  - cb_h3_proxy_acked_req_body
  - cb_h3_proxy_stream_close
  - cf_h3_proxy_upd_rx_win
  - cb_h3_proxy_recv_data
  - cb_h3_proxy_deferred_consume
  - cb_h3_proxy_recv_header
  - cb_h3_proxy_end_headers
  - cb_h3_proxy_stop_sending
  - cb_h3_proxy_reset_stream
  - cb_h3_read_data_for_tunnel_stream
  - cf_ngtcp2_proxy_sfind
  - cf_ngtcp2_proxy_get_stream
  - cf_ngtcp2_proxy_get_stream
  - cf_ngtcp2_h3conn_init
  - cb_ngtcp2_proxy_handshake_completed
  - cb_ngtcp2_recv_stream_data
  - cb_ngtcp2_acked_stream_data_offset
  - cb_ngtcp2_stream_close
  - cb_ngtcp2_extend_max_local_streams_bidi
  - cb_ngtcp2_rand
  - cb_ngtcp2_get_new_connection_id
  - cb_ngtcp2_get_new_connection_id2
  - cb_ngtcp2_stream_reset
  - cb_ngtcp2_extend_max_stream_data
  - cb_ngtcp2_stream_stop_sending
  - cb_ngtcp2_recv_rx_key
  - cf_ngtcp2_recv_pkts_proxy
  - proxy_h3_progress_ingress_ngtcp2
  - proxy_read_pkt_to_send
  - proxy_h3_progress_egress_ngtcp2
  - cf_ngtcp2_proxy_shutdown
  - cf_ngtcp2_proxy_conn_close
  - cf_ngtcp2_proxy_close
  - cf_ngtcp2_proxy_stream_close
  - check_and_set_expiry_ngtcp2
  - proxy_recv_closed_stream
  - h3_proxy_resolve_send_stream
  - h3_proxy_sendbuf_add
  - cf_h3_proxy_send
  - cf_h3_proxy_recv
  - proxy_h3_submit
  - cf_h3_proxy_is_alive
  - cf_ngtcp2_proxy_query
  - cf_ngtcp2_proxy_adjust_pollset
  - cf_h3_proxy_query
  - cf_h3_proxy_adjust_pollset
  - cf_h3_proxy_data_pending
  - proxy_quic_ossl_new_session_cb
  - cf_ngtcp2_proxy_tls_ctx_setup
  - cf_ngtcp2_proxy_on_session_reuse
  - cf_h3_proxy_ctx_init
  - h3_submit_CONNECT
  - h3_proxy_inspect_response
  - cf_h3_proxy_quic_connect
  - H3_CONNECT
  - cf_h3_proxy_connect
  - h3_proxy_data_pause
  - h3_proxy_data_done
  - cf_h3_proxy_cntrl
  - cf_h3_proxy_destroy
  - cf_h3_proxy_shutdown
  - Curl_cf_ngtcp2_proxy_create
  - Curl_cf_ngtcp2_proxy_insert_after
  source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROXY_H3_STREAM_WINDOW_SIZE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
      type_or_value: (128 * 1024)
    - item_type: preproc_def
      name: PROXY_H3_STREAM_WINDOW_SIZE_MAX
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
      type_or_value: (10 * 1024 * 1024)
    - item_type: preproc_def
      name: PROXY_H3_STREAM_CHUNK_SIZE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
      type_or_value: (16 * 1024)
    - item_type: preproc_def
      name: PROXY_H3_STREAM_POOL_SPARES
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
      type_or_value: ((PROXY_H3_STREAM_WINDOW_SIZE / PROXY_H3_STREAM_CHUNK_SIZE) /
        2)
    - item_type: preproc_def
      name: PROXY_H3_STREAM_RECV_CHUNKS
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
      type_or_value: (PROXY_H3_STREAM_WINDOW_SIZE / PROXY_H3_STREAM_CHUNK_SIZE)
    - item_type: preproc_def
      name: PROXY_H3_STREAM_SEND_CHUNKS
      pos:
        line_end: 92
        line_start: 90
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
      type_or_value: (PROXY_H3_STREAM_WINDOW_SIZE / PROXY_H3_STREAM_CHUNK_SIZE)
    - item_type: preproc_def
      name: PROXY_QUIC_MAX_STREAMS
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
      type_or_value: (256 * 1024)
    - item_type: preproc_def
      name: PROXY_QUIC_HANDSHAKE_TIMEOUT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
      type_or_value: (10 * NGTCP2_SECONDS)
    structs:
    - fields:
      - name: '*resp'
        type: struct http_resp
      - name: '*authority'
        type: char
      - name: '*stream'
        type: struct h3_proxy_stream_ctx
      - name: stream_id
        type: int64_t
      - name: state
        type: h3_tunnel_state
      item_type: struct
      name: h3_tunnel_stream
      pos:
        line_end: 114
        line_start: 106
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    - fields:
      - name: q
        type: struct cf_quic_ctx
      - name: peer
        type: struct ssl_peer
      - name: tls
        type: struct curl_tls_ctx
      - name: connected_path
        type: ngtcp2_path
      - name: '*qconn'
        type: ngtcp2_conn
      - name: dcid
        type: ngtcp2_cid
      - name: scid
        type: ngtcp2_cid
      - name: version
        type: uint32_t
      - name: settings
        type: ngtcp2_settings
      - name: transport_params
        type: ngtcp2_transport_params
      - name: last_error
        type: ngtcp2_ccerr
      - name: conn_ref
        type: ngtcp2_crypto_conn_ref
      - name: call_data
        type: struct cf_call_data
      - name: '*h3conn'
        type: nghttp3_conn
      - name: h3settings
        type: nghttp3_settings
      - name: started_at
        type: struct curltime
      - name: handshake_at
        type: struct curltime
      - name: stream_bufcp
        type: struct bufc_pool
      - name: scratch
        type: struct dynbuf
      - name: streams
        type: struct uint_hash
      - name: used_bidi_streams
        type: uint64_t
      - name: max_bidi_streams
        type: uint64_t
      - name: earlydata_max
        type: size_t
      - name: earlydata_skip
        type: size_t
      - name: tls_vrfy_result
        type: CURLcode
      - name: qlogfd
        type: int
      item_type: struct
      name: cf_ngtcp2_proxy_ctx
      pos:
        line_end: 250
        line_start: 213
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    - fields:
      - name: '*ngtcp2_ctx'
        type: struct cf_ngtcp2_proxy_ctx
      - name: call_data
        type: struct cf_call_data
      - name: inbufq
        type: struct bufq
      - name: '*dest'
        type: struct Curl_peer
      - name: tunnel
        type: struct h3_tunnel_stream
      item_type: struct
      name: cf_h3_proxy_ctx
      pos:
        line_end: 260
        line_start: 252
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    - fields:
      - name: id
        type: int64_t
      - name: sendbuf
        type: struct bufq
      - name: sendbuf_len_in_flight
        type: size_t
      - name: error3
        type: uint64_t
      - name: upload_left
        type: curl_off_t
      - name: tun_data_recvd
        type: curl_off_t
      - name: rx_offset
        type: uint64_t
      - name: rx_offset_max
        type: uint64_t
      - name: window_size_max
        type: uint64_t
      - name: status_code
        type: int
      - name: xfer_result
        type: CURLcode
      item_type: struct
      name: h3_proxy_stream_ctx
      pos:
        line_end: 282
        line_start: 265
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    - fields:
      - name: '*cf'
        type: struct Curl_cfilter
      - name: '*data'
        type: struct Curl_easy
      - name: ts
        type: ngtcp2_tstamp
      - name: ps
        type: ngtcp2_path_storage
      item_type: struct
      name: proxy_pkt_io_ctx
      pos:
        line_end: 401
        line_start: 396
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    - fields:
      - name: stream_id
        type: int64_t
      - name: '*stream'
        type: struct h3_proxy_stream_ctx
      - name: mid
        type: uint32_t
      item_type: struct
      name: cf_ngtcp2_proxy_sfind_ctx
      pos:
        line_end: 1105
        line_start: 1101
        source_file: /src/curl/lib/vquic/cf-ngtcp2-proxy.c
    typedefs: []
    union: []
- function_names:
  - capsule_cf_destroy
  - capsule_cf_connect
  - capsule_cf_send
  - capsule_cf_recv
  - capsule_cf_data_pending
  - Curl_cf_capsule_create
  - Curl_cf_capsule_insert_after
  source_file: /src/curl/lib/vquic/cf-capsule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CAPSULE_RECV_CHUNKS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/curl/lib/vquic/cf-capsule.c
      type_or_value: '4'
    - item_type: preproc_def
      name: CAPSULE_CHUNK_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/curl/lib/vquic/cf-capsule.c
      type_or_value: (16 * 1024)
    structs:
    - fields:
      - name: recvbuf
        type: struct bufq
      - name: call_data
        type: struct cf_call_data
      - name: '*pending'
        type: unsigned char
      - name: pending_len
        type: size_t
      - name: pending_offset
        type: size_t
      - name: pending_payload
        type: size_t
      item_type: struct
      name: cf_capsule_ctx
      pos:
        line_end: 47
        line_start: 40
        source_file: /src/curl/lib/vquic/cf-capsule.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/lib/vquic/capsule.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_CAPSULE_HEADER_MAX_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/curl/lib/vquic/capsule.h
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/projects/OS400/ccsidcurl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/projects/OS400/curlmain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_ifs
  - parse_command_line
  - main
  source_file: /src/curl/projects/OS400/curlcl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURLPGM
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/curl/projects/OS400/curlcl.c
      type_or_value: '"CURL"'
    structs:
    - fields:
      - name: len
        type: short
      - name: string[5000]
        type: char
      item_type: struct
      name: vary2
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/curl/projects/OS400/curlcl.c
    - fields:
      - name: '*pgm'
        type: char
      - name: '*cmdargs'
        type: struct vary2
      item_type: struct
      name: arguments
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/curl/projects/OS400/curlcl.c
    typedefs: []
    union: []
- function_names:
  - ICONV_OPEN_ERROR
  - makeOS400IconvCode
  - iconv_open_CCSID
  - convert
  - dynconvert
  - slist_convert
  - keyed_string
  - curl_to_ccsid
  - curl_from_ccsid
  - curl_version_ccsid
  - curl_easy_escape_ccsid
  - curl_easy_unescape_ccsid
  - curl_slist_append_ccsid
  - curl_getdate_ccsid
  - convert_version_info_string
  - curl_version_info_ccsid
  - curl_easy_strerror_ccsid
  - curl_share_strerror_ccsid
  - curl_multi_strerror_ccsid
  - curl_url_strerror_ccsid
  - curl_certinfo_free_all
  - curl_easy_getinfo_ccsid
  - Curl_is_formadd_string
  - Curl_formadd_release_local
  - Curl_formadd_convert
  - curl_formadd_ccsid
  - Curl_formget_callback_ccsid
  - curl_formget_ccsid
  - curl_easy_setopt_ccsid
  - curl_form_long_value
  - curl_easy_setopt_RPGnum_
  - curl_multi_setopt_RPGnum_
  - curl_pushheader_bynum_cssid
  - curl_pushheader_byname_ccsid
  - mime_string_call
  - curl_mime_name_ccsid
  - curl_mime_filename_ccsid
  - curl_mime_type_ccsid
  - curl_mime_encoder_ccsid
  - curl_mime_filedata_ccsid
  - curl_mime_data_ccsid
  - curl_url_get_ccsid
  - curl_url_set_ccsid
  - curl_easy_option_by_name_ccsid
  - curl_easy_option_get_name_ccsid
  - curl_easy_header_ccsid
  source_file: /src/curl/projects/OS400/ccsidcurl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/curl/projects/OS400/ccsidcurl.c
      type_or_value: '((size_t)~0)   '
    - item_type: preproc_def
      name: ASCII_CCSID
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/projects/OS400/ccsidcurl.c
      type_or_value: '819     '
    - item_type: preproc_def
      name: NOCONV_CCSID
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/projects/OS400/ccsidcurl.c
      type_or_value: '65535   '
    - item_type: preproc_def
      name: ICONV_ID_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/projects/OS400/ccsidcurl.c
      type_or_value: '32 '
    - item_type: preproc_def
      name: ALLOC_GRANULE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/projects/OS400/ccsidcurl.c
      type_or_value: '8 '
    structs:
    - fields:
      - name: append
        type: curl_formget_callback
      - name: '*                arg'
        type: void
      - name: ccsid
        type: unsigned int
      item_type: struct
      name: cfcdata
      pos:
        line_end: 977
        line_start: 973
        source_file: /src/curl/projects/OS400/ccsidcurl.c
    typedefs: []
    union: []
- function_names:
  - thdbufdestroy
  - terminate
  - get_buffer
  - buffer_unthreaded
  - buffer_threaded
  - buffer_undef
  - set_thread_string
  - Curl_getnameinfo_a
  - Curl_getaddrinfo_a
  - Curl_gss_convert_in_place
  - Curl_gss_import_name_a
  - Curl_gss_display_status_a
  - Curl_gss_init_sec_context_a
  - Curl_gss_delete_sec_context_a
  - Curl_ldap_init_a
  - Curl_ldap_simple_bind_s_a
  - Curl_ldap_search_s_a
  - Curl_ldap_get_values_len_a
  - Curl_ldap_err2string_a
  - Curl_ldap_get_dn_a
  - Curl_ldap_first_attribute_a
  - Curl_ldap_next_attribute_a
  - sockaddr2ebcdic
  - sockaddr2ascii
  - Curl_os400_connect
  - Curl_os400_bind
  - Curl_os400_sendto
  - Curl_os400_recvfrom
  - Curl_os400_getpeername
  - Curl_os400_getsockname
  - Curl_os400_zlibVersion
  - Curl_os400_inflateInit_
  - Curl_os400_inflateInit2_
  - Curl_os400_inflate
  - Curl_os400_inflateEnd
  source_file: /src/curl/projects/OS400/os400sys.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_BYTE_GAIN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/projects/OS400/os400sys.c
      type_or_value: '1024    '
    - item_type: preproc_def
      name: CURL_MAX_INPUT_LENGTH
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/curl/projects/OS400/os400sys.c
      type_or_value: '8000000'
    structs:
    - fields:
      - name: size
        type: unsigned long
      - name: '*buf'
        type: char
      item_type: struct
      name: buffer_t
      pos:
        line_end: 72
        line_start: 69
        source_file: /src/curl/projects/OS400/os400sys.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/projects/OS400/os400sys.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CONV_EXPANSION
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/curl/projects/OS400/os400sys.h
      type_or_value: '4       '
    structs: []
    typedefs: []
    union: []
- function_names:
  - sys_trnlnm
  - $DESCRIPTOR
  - sys_crelnm
  - set_feature_default
  - set_feature_default
  - set_features
  source_file: /src/curl/projects/vms/curl_crtl_init.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENABLE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/projects/vms/curl_crtl_init.c
      type_or_value: '"ENABLE"'
    - item_type: preproc_def
      name: DISABLE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/projects/vms/curl_crtl_init.c
      type_or_value: '"DISABLE"'
    - item_type: preproc_def
      name: ENABLE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/projects/vms/curl_crtl_init.c
      type_or_value: 'TRUE'
    - item_type: preproc_def
      name: DISABLE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/projects/vms/curl_crtl_init.c
      type_or_value: '0'
    structs:
    - fields:
      - name: buflen
        type: unsigned short int
      - name: itmcode
        type: unsigned short int
      - name: '*bufadr'
        type: void
      - name: '*retlen'
        type: unsigned short int
      item_type: struct
      name: itmlst_3
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/curl/projects/vms/curl_crtl_init.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/projects/vms/curlmsg_vms.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/projects/vms/vms_eco_level.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VMS_ECO_LEVEL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/curl/projects/vms/vms_eco_level.h
      type_or_value: '"0"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/curl/projects/vms/report_openssl_version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/curl/projects/vms/curlmsg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_FACILITY
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '3841'
    - item_type: preproc_def
      name: CURL_OK
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756553'
    - item_type: preproc_def
      name: CURL_UNSUPPORTED_PROTOCOL
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756562'
    - item_type: preproc_def
      name: CURL_FAILED_INIT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756570'
    - item_type: preproc_def
      name: CURL_URL_MALFORMAT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756578'
    - item_type: preproc_def
      name: CURL_OBSOLETE4
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756586'
    - item_type: preproc_def
      name: CURL_COULDNT_RESOLVE_PROXY
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756594'
    - item_type: preproc_def
      name: CURL_COULDNT_RESOLVE_HOST
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756602'
    - item_type: preproc_def
      name: CURL_COULDNT_CONNECT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756610'
    - item_type: preproc_def
      name: CURL_WEIRD_SERVER_REPLY
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756618'
    - item_type: preproc_def
      name: CURL_FTP_WEIRD_SERVER_REPLY
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: CURL_WEIRD_SERVER_REPLY
    - item_type: preproc_def
      name: CURL_FTP_ACCESS_DENIED
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756626'
    - item_type: preproc_def
      name: CURL_OBSOLETE10
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756634'
    - item_type: preproc_def
      name: CURL_FTP_WEIRD_PASS_REPLY
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756642'
    - item_type: preproc_def
      name: CURL_OBSOLETE12
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756650'
    - item_type: preproc_def
      name: CURL_FTP_WEIRD_PASV_REPLY
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756658'
    - item_type: preproc_def
      name: CURL_FTP_WEIRD_227_FORMAT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756666'
    - item_type: preproc_def
      name: CURL_FTP_CANT_GET_HOST
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756674'
    - item_type: preproc_def
      name: CURL_OBSOLETE16
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756682'
    - item_type: preproc_def
      name: CURL_FTP_COULDNT_SET_TYPE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756690'
    - item_type: preproc_def
      name: CURL_PARTIAL_FILE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756698'
    - item_type: preproc_def
      name: CURL_FTP_COULDNT_RETR_FILE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756706'
    - item_type: preproc_def
      name: CURL_OBSOLETE20
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756714'
    - item_type: preproc_def
      name: CURL_QUOTE_ERROR
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756722'
    - item_type: preproc_def
      name: CURL_HTTP_RETURNED_ERROR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756730'
    - item_type: preproc_def
      name: CURL_WRITE_ERROR
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756738'
    - item_type: preproc_def
      name: CURL_OBSOLETE24
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756746'
    - item_type: preproc_def
      name: CURL_UPLOAD_FAILED
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756754'
    - item_type: preproc_def
      name: CURL_READ_ERROR
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756762'
    - item_type: preproc_def
      name: CURL_OUT_OF_MEMORY
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756770'
    - item_type: preproc_def
      name: CURL_OPERATION_TIMEOUTED
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756778'
    - item_type: preproc_def
      name: CURL_OBSOLETE29
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756786'
    - item_type: preproc_def
      name: CURL_FTP_PORT_FAILED
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756794'
    - item_type: preproc_def
      name: CURL_FTP_COULDNT_USE_REST
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756802'
    - item_type: preproc_def
      name: CURL_OBSOLETE32
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756810'
    - item_type: preproc_def
      name: CURL_RANGE_ERROR
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756818'
    - item_type: preproc_def
      name: CURL_HTTP_POST_ERROR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756826'
    - item_type: preproc_def
      name: CURL_SSL_CONNECT_ERROR
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756834'
    - item_type: preproc_def
      name: CURL_BAD_DOWNLOAD_RESUME
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756842'
    - item_type: preproc_def
      name: CURL_FILE_COULDNT_READ_FILE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756850'
    - item_type: preproc_def
      name: CURL_LDAP_CANNOT_BIND
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756858'
    - item_type: preproc_def
      name: CURL_LDAP_SEARCH_FAILED
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756866'
    - item_type: preproc_def
      name: CURL_OBSOLETE40
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756874'
    - item_type: preproc_def
      name: CURL_FUNCTION_NOT_FOUND
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756882'
    - item_type: preproc_def
      name: CURL_ABORTED_BY_CALLBACK
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756890'
    - item_type: preproc_def
      name: CURL_BAD_FUNCTION_ARGUMENT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756898'
    - item_type: preproc_def
      name: CURL_OBSOLETE44
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756906'
    - item_type: preproc_def
      name: CURL_INTERFACE_FAILED
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756914'
    - item_type: preproc_def
      name: CURL_OBSOLETE46
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756922'
    - item_type: preproc_def
      name: CURL_TOO_MANY_REDIRECTS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756930'
    - item_type: preproc_def
      name: CURL_UNKNOWN_TELNET_OPTION
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756938'
    - item_type: preproc_def
      name: CURL_TELNET_OPTION_SYNTAX
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756946'
    - item_type: preproc_def
      name: CURL_OBSOLETE50
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756954'
    - item_type: preproc_def
      name: CURL_PEER_FAILED_VERIF
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756962'
    - item_type: preproc_def
      name: CURL_GOT_NOTHING
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756970'
    - item_type: preproc_def
      name: CURL_SSL_ENGINE_NOTFOUND
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756978'
    - item_type: preproc_def
      name: CURL_SSL_ENGINE_SETFAILED
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756986'
    - item_type: preproc_def
      name: CURL_SEND_ERROR
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251756994'
    - item_type: preproc_def
      name: CURL_RECV_ERROR
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757002'
    - item_type: preproc_def
      name: CURL_OBSOLETE57
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757010'
    - item_type: preproc_def
      name: CURL_SSL_CERTPROBLEM
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757018'
    - item_type: preproc_def
      name: CURL_SSL_CIPHER
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757026'
    - item_type: preproc_def
      name: CURL_SSL_CACERT
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757034'
    - item_type: preproc_def
      name: CURL_BAD_CONTENT_ENCODING
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757042'
    - item_type: preproc_def
      name: CURL_LDAP_INVALID_URL
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757050'
    - item_type: preproc_def
      name: CURL_FILESIZE_EXCEEDED
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757058'
    - item_type: preproc_def
      name: CURL_USE_SSL_FAILED
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757066'
    - item_type: preproc_def
      name: CURL_SEND_FAIL_REWIND
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757074'
    - item_type: preproc_def
      name: CURL_SSL_ENGINE_INITFAILED
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757082'
    - item_type: preproc_def
      name: CURL_LOGIN_DENIED
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757090'
    - item_type: preproc_def
      name: CURL_TFTP_NOTFOUND
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757098'
    - item_type: preproc_def
      name: CURL_TFTP_PERM
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757106'
    - item_type: preproc_def
      name: CURL_REMOTE_DISK_FULL
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757114'
    - item_type: preproc_def
      name: CURL_TFTP_ILLEGAL
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757122'
    - item_type: preproc_def
      name: CURL_TFTP_UNKNOWNID
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757130'
    - item_type: preproc_def
      name: CURL_REMOTE_FILE_EXISTS
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757138'
    - item_type: preproc_def
      name: CURL_TFTP_NOSUCHUSER
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757146'
    - item_type: preproc_def
      name: CURL_CONV_FAILED
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757154'
    - item_type: preproc_def
      name: CURL_CONV_REQD
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757162'
    - item_type: preproc_def
      name: CURL_SSL_CACERT_BADFILE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757170'
    - item_type: preproc_def
      name: CURL_REMOTE_FILE_NOT_FOUND
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757178'
    - item_type: preproc_def
      name: CURL_SSH
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757186'
    - item_type: preproc_def
      name: CURL_SSL_SHUTDOWN_FAILED
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757194'
    - item_type: preproc_def
      name: CURL_AGAIN
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757202'
    - item_type: preproc_def
      name: CURL_SSL_CRL_BADFILE
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757210'
    - item_type: preproc_def
      name: CURL_SSL_ISSUER_ERROR
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757218'
    - item_type: preproc_def
      name: CURL_CURL_LAST
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/curl/projects/vms/curlmsg.h
      type_or_value: '251757226'
    structs: []
    typedefs: []
    union: []
